Skip to content

REVIEWS.io MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi

Read REVIEWS.io product and company reviews, ratings, UGC, surveys; tag reviews; invite one buyer.

Deletes · 2Changes · 3

16 tools: 2 can delete or cancel things, 3 change things and 11 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http reviews-io https://reviews-io.usefulapi.io/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "reviewsio_list_surveys" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "reviewsio_list_surveys" says "list": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

16 tools

Deletes or cancels 2Claude Code: deny
  • reviewsio_queue_company_invitationWRITE - SENDS A MESSAGE TO A REAL CUSTOMER: queues ONE company review invitation e-mail to the given customer address; REVIEWS.io then e-mails that person (when and with which temp…No findings

    Why it is in this group

    • The description's first verb is "write": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE - SENDS A MESSAGE TO A REAL CUSTOMER: queues ONE company review invitation e-mail to the given customer address; REVIEWS.io then e-mails that person (when and with which template follows your Flow Sequence / template_id, usually within hours or days). It cannot be recalled from this server. Only call it when the user has explicitly asked to invite this exact customer, and pass confirm_send_email: true. There is no bulk or SMS invitation tool. POST /merchant/invitation.

    Annotations the server declares

    • title: Queue one company review invitation (e-mails a customer)
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • reviewsio_unsubscribe_userWRITE: stops REVIEWS.io sending review invitation e-mails to one e-mail address.No findings

    Why it is in this group

    • The name "reviewsio_unsubscribe_user" says "unsubscribe": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: stops REVIEWS.io sending review invitation e-mails to one e-mail address. Use it for a customer who asked not to be contacted. This server has no tool to re-subscribe an address; it can only be undone in the REVIEWS.io dashboard. Nothing is sent to the customer. POST /unsubscribe/email.

    Annotations the server declares

    • title: Unsubscribe a user from invitation e-mails
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Changes things 3Claude Code: ask
  • reviewsio_list_surveysThe store's surveys (campaigns) with their ids; use an id with reviewsio_list_survey_responses.1 finding

    Why it is in this group

    • The name "reviewsio_list_surveys" says "list": a word for reading.
    • The description's first verb is "store": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "reviewsio_list_surveys" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "reviewsio_list_surveys" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    The store's surveys (campaigns) with their ids; use an id with reviewsio_list_survey_responses. GET /widget/surveys.

    Annotations the server declares

    • title: List surveys
    • readOnlyHint: true
    • openWorldHint: true
  • reviewsio_tag_company_reviewWRITE: adds a tag to one company review (visible in your REVIEWS.io dashboard and usable as a filter).No findings

    Why it is in this group

    • The description's first verb is "write": a word for a change.
    Description, as the server wrote it
    WRITE: adds a tag to one company review (visible in your REVIEWS.io dashboard and usable as a filter). Adding the same tag twice changes nothing. Nothing is sent to the customer. POST /review/tag/{id}.

    Annotations the server declares

    • title: Tag a company review
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • reviewsio_tag_product_reviewWRITE: adds a tag to one product review (visible in your REVIEWS.io dashboard and usable as a filter).No findings

    Why it is in this group

    • The description's first verb is "write": a word for a change.
    Description, as the server wrote it
    WRITE: adds a tag to one product review (visible in your REVIEWS.io dashboard and usable as a filter). Adding the same tag twice changes nothing. Nothing is sent to the customer. POST /product-review/tag/{id}.

    Annotations the server declares

    • title: Tag a product review
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 11Claude Code: allow
  • reviewsio_get_product_ratingsAverage rating and review count for one or more products by SKU (batch).No findings

    Why it is in this group

    • The name "reviewsio_get_product_ratings" says "get": a word for reading.
    Description, as the server wrote it
    Average rating and review count for one or more products by SKU (batch). GET /product/rating-batch.

    Annotations the server declares

    • title: Get product ratings
    • readOnlyHint: true
    • openWorldHint: true
  • reviewsio_get_review_nuggetsShort, highlight-worthy review snippets (nuggets) of company and/or product reviews, for marketing.No findings

    Why it is in this group

    • The name "reviewsio_get_review_nuggets" says "get": a word for reading.
    Description, as the server wrote it
    Short, highlight-worthy review snippets (nuggets) of company and/or product reviews, for marketing. Filter by SKU, tags, branch, minimum rating. GET /review-nuggets/data.

    Annotations the server declares

    • title: Get review nuggets
    • readOnlyHint: true
    • openWorldHint: true
  • reviewsio_get_review_statsBasic review statistics: average rating and review count for product reviews, company reviews and third-party reviews.No findings

    Why it is in this group

    • The name "reviewsio_get_review_stats" says "get": a word for reading.
    Description, as the server wrote it
    Basic review statistics: average rating and review count for product reviews, company reviews and third-party reviews. GET /stats/all.

    Annotations the server declares

    • title: Get review statistics
    • readOnlyHint: true
    • openWorldHint: true
  • reviewsio_list_company_invitationsCompany review invitations that are queued or sent (customer, order, send date, status); filter by order id or sent state, and page through with page/limit.No findings

    Why it is in this group

    • The name "reviewsio_list_company_invitations" says "list": a word for reading.
    Description, as the server wrote it
    Company review invitations that are queued or sent (customer, order, send date, status); filter by order id or sent state, and page through with page/limit. GET /merchant/invitations.

    Annotations the server declares

    • title: List company invitations
    • readOnlyHint: true
    • openWorldHint: true
  • reviewsio_list_company_reviewsCompany (store) reviews with private data (order number, reviewer details, tags) and optionally the replies.No findings

    Why it is in this group

    • The name "reviewsio_list_company_reviews" says "list": a word for reading.
    Description, as the server wrote it
    Company (store) reviews with private data (order number, reviewer details, tags) and optionally the replies. Filter by rating range, dates, order number, branch, invitation id; order by date or rating. Pages are 0-based; next_page is set when more remain. GET /merchant/reviews.

    Annotations the server declares

    • title: List company reviews
    • readOnlyHint: true
    • openWorldHint: true
  • reviewsio_list_product_invitationsProduct review invitations that are queued or sent (customer, order, send date, status); filter by SKU, order id or sent state, and page through with page/limit.No findings

    Why it is in this group

    • The name "reviewsio_list_product_invitations" says "list": a word for reading.
    Description, as the server wrote it
    Product review invitations that are queued or sent (customer, order, send date, status); filter by SKU, order id or sent state, and page through with page/limit. GET /product/invitation.

    Annotations the server declares

    • title: List product invitations
    • readOnlyHint: true
    • openWorldHint: true
  • reviewsio_list_reviewsThe recommended way to read reviews: company (store) reviews, product reviews, third-party reviews and product questions in one filterable timeline, with the account's private data…No findings

    Why it is in this group

    • The name "reviewsio_list_reviews" says "list": a word for reading.
    Description, as the server wrote it
    The recommended way to read reviews: company (store) reviews, product reviews, third-party reviews and product questions in one filterable timeline, with the account's private data (reviewer e-mail, order). Filter by type, SKU/MPN/GTIN, tag, branch, keyword, date range, minimum rating, photos/videos; sort newest-first by default. Pages are 1-based; next_page is set when more results remain. GET /reviews.

    Annotations the server declares

    • title: List reviews and questions
    • readOnlyHint: true
    • openWorldHint: true
  • reviewsio_list_survey_responsesThe responses submitted to one survey.No findings

    Why it is in this group

    • The name "reviewsio_list_survey_responses" says "list": a word for reading.
    Description, as the server wrote it
    The responses submitted to one survey. Get the survey id from reviewsio_list_surveys. GET /widget/survey-responses.

    Annotations the server declares

    • title: List survey responses
    • readOnlyHint: true
    • openWorldHint: true
  • reviewsio_list_ugcCustomer photos/videos (UGC) collected through REVIEWS.io, filterable by SKU, tag, category or videos only.No findings

    Why it is in this group

    • The name "reviewsio_list_ugc" says "list": a word for reading.
    Description, as the server wrote it
    Customer photos/videos (UGC) collected through REVIEWS.io, filterable by SKU, tag, category or videos only. GET /ugc.

    Annotations the server declares

    • title: List user generated content
    • readOnlyHint: true
    • openWorldHint: true
  • reviewsio_list_unsubscribed_usersE-mail addresses that unsubscribed from (or were unsubscribed from) REVIEWS.io invitation e-mails.No findings

    Why it is in this group

    • The name "reviewsio_list_unsubscribed_users" says "list": a word for reading.
    Description, as the server wrote it
    E-mail addresses that unsubscribed from (or were unsubscribed from) REVIEWS.io invitation e-mails. GET /unsubscribe/list.

    Annotations the server declares

    • title: List unsubscribed users
    • readOnlyHint: true
    • openWorldHint: true
  • reviewsio_list_webhooksThe review-submitted webhooks registered for the store (read-only; this server never adds or removes webhooks).No findings

    Why it is in this group

    • The name "reviewsio_list_webhooks" says "list": a word for reading.
    Description, as the server wrote it
    The review-submitted webhooks registered for the store (read-only; this server never adds or removes webhooks). GET /webhook/list.

    Annotations the server declares

    • title: List webhooks
    • readOnlyHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.3.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http reviews-io https://reviews-io.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__reviews-io__reviewsio_list_reviews",
      "mcp__reviews-io__reviewsio_list_company_reviews",
      "mcp__reviews-io__reviewsio_get_review_stats",
      "mcp__reviews-io__reviewsio_get_product_ratings",
      "mcp__reviews-io__reviewsio_get_review_nuggets",
      "mcp__reviews-io__reviewsio_list_ugc",
      "mcp__reviews-io__reviewsio_list_survey_responses",
      "mcp__reviews-io__reviewsio_list_product_invitations",
      "mcp__reviews-io__reviewsio_list_company_invitations",
      "mcp__reviews-io__reviewsio_list_unsubscribed_users",
      "mcp__reviews-io__reviewsio_list_webhooks"
    ],
    "ask": [
      "mcp__reviews-io__reviewsio_list_surveys",
      "mcp__reviews-io__reviewsio_tag_company_review",
      "mcp__reviews-io__reviewsio_tag_product_review"
    ],
    "deny": [
      "mcp__reviews-io__reviewsio_unsubscribe_user",
      "mcp__reviews-io__reviewsio_queue_company_invitation"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as reviews-io. Review it before you use it.