# Shoprocket MCP by usefulapi (remote · shoprocket.usefulapi.io)

MCP server for Shoprocket — orders, products, customers, store stats and discount codes.

- Trust score: 18/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `shoprocket.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket.md), [page](https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket)

## Channel facts

- Endpoint: `https://shoprocket.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.6.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Shoprocket MCP by usefulapi server?

Shoprocket MCP by usefulapi is a hosted endpoint at https://shoprocket.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-shoprocket 'https://shoprocket.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-shoprocket": {
      "url": "https://shoprocket.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-shoprocket": {
      "type": "http",
      "url": "https://shoprocket.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-shoprocket]
url = "https://shoprocket.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-shoprocket": {
      "type": "remote",
      "url": "https://shoprocket.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-shoprocket --url 'https://shoprocket.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-shoprocket:
    url: "https://shoprocket.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-shoprocket": {
      "Transport": "http",
      "Url": "https://shoprocket.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-shoprocket -t streamable-http -u 'https://shoprocket.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-shoprocket": {
      "type": "http",
      "url": "https://shoprocket.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-02 (score 18, −47)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Tool safety: pass → unverified
- [security regression] Authorization: pass → unverified
- [security regression] Stability: 0.03 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-11-01 (score 65, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-31 (score 65)

First indexed and scored.

## MCP tools (26)

### `shoprocket_get_store` (~55 tokens)

Get store

The Shoprocket store this key belongs to: name, address, environment (test or live), paused state, currencies and languages, setup status. The store's API keys are never returned. GET /v1/store/details.

### `shoprocket_get_store_stats` (~86 tokens)

Get store stats

Sales statistics for a date range, compared with the previous period: orders, revenue, visitors, abandoned carts, conversion rate, average order value, a daily sales graph, regions, sources and popular products. GET /v1/store/stats.

Input parameters:

- `from` (string, required): First day, yyyy-mm-dd.
- `to` (string, required): Last day, yyyy-mm-dd.

### `shoprocket_list_orders` (~279 tokens)

List orders

List or search orders with totals, customer, addresses, payment and fulfillment status, discounts, line items and shipping. Filter by payment status, fulfillment status, payment method, customer ids, amount range, sale/discount use or free text. GET /v1/orders.

Input parameters:

- `customer` (string): Comma-separated customer ids (cus_...): only their orders.
- `fulfillment_status` (string): Fulfillment status of the order.
- `has_automatic_discount` (boolean): true: only orders where an automatic discount applied.
- `has_discount_code` (boolean): true: only orders where a discount code applied.
- `has_sale` (boolean): true: only orders where a sale promotion applied.
- `limit` (integer): Results per page, 1-100 (default 25).
- `order_amount_from` (number): Only orders of at least this amount.
- `order_amount_to` (number): Only orders of at most this amount.
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `payment_method` (string): Only orders paid with this method.
- `search` (string): Free-text search: order number, total amount, customer email or name, dates, statuses.
- `status` (string): Payment status of the order.

### `shoprocket_get_order` (~92 tokens)

Get order

One order by id (ord_..., not the #number shown in the dashboard): totals, customer, billing and shipping address, payment and fulfillment status, discounts, line items and tracking. GET /v1/orders/{id}.

Input parameters:

- `order_id` (string, required): Shoprocket order id, e.g. ord_646e1f65ebcad629610675. Find it with shoprocket_list_orders.

### `shoprocket_update_order_status` (~225 tokens)

Update order status

WRITE: change an order's payment status and/or fulfillment status (for example mark it shipped or paid). Shoprocket needs both values, so a value you leave out is read from the order first and kept. With send_email true Shoprocket EMAILS THE CUSTOMER an order update (optionally with custom_text); the default is no email. Cancelling can return the items to stock (release_stock). POST /v1/orders/{id}.

Input parameters:

- `custom_text` (string): Extra text for the customer email. Only used when send_email is true.
- `fulfillment_status` (string): New fulfillment status. Omit to keep the current one.
- `order_id` (string, required): Shoprocket order id (ord_...).
- `payment_status` (string): New payment status. Omit to keep the current one.
- `release_stock` (boolean): true = put the order's items back into stock. Only applies when fulfillment_status is cancelled.
- `send_email` (boolean): true = email the customer about this update. Default false: no email is sent.

### `shoprocket_list_products` (~173 tokens)

List products

List products with price, SKU, stock quantity, categories, images, variants (skus) and status. Search by text, filter by category slugs, product ids or slugs, and sort. GET /v1/products.

Input parameters:

- `ids` (string): Comma-separated product ids (prod_...).
- `limit` (integer): Results per page, 1-100 (default 25).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.
- `product_category` (string): Comma-separated category slugs.
- `search` (string): Search text.
- `slugs` (string): Comma-separated product slugs.
- `sort` (string): product_order = store order (default), created = newest first.

### `shoprocket_get_product` (~76 tokens)

Get product

One product by id (prod_...): description, price, SKU, stock, dimensions, categories, media, variants (skus), add-ons. GET /v1/products/{id}.

Input parameters:

- `product_id` (string, required): Shoprocket product id, e.g. prod_646e0498ec090321649753.

### `shoprocket_create_product` (~256 tokens)

Create product

WRITE: create a product in the store (visible to shoppers unless status is 0). A name and at least one category (name or slug) are required. Does not create duplicates by itself: calling twice creates two products. Variants and add-ons are not set by this tool. PUT /v1/products.

Input parameters:

- `categories` (string, required): Comma-separated categories the product belongs to (as Shoprocket's API takes them; see shoprocket_list_categories).
- `description` (string): Product description (HTML allowed).
- `max_order_quantity` (integer): Maximum quantity per order.
- `min_order_quantity` (integer): Minimum quantity per order.
- `name` (string, required): Product name.
- `price` (integer): Price as an integer in the smallest currency unit (cents: 1999 = 19.99), as Shoprocket's API takes it. Check the reply.
- `quantity` (integer): Stock quantity.
- `sku` (string): SKU.
- `status`: 1 = active (Shoprocket returns status "1" for live products), 0 = inactive.
- `summary` (string): Short summary.
- `weight` (number): Weight, in the store's weight unit.

### `shoprocket_update_product` (~296 tokens)

Update product

WRITE: change a product's fields (price, stock quantity, description, status...). Shoprocket requires the name on every update, so pass the current name to keep it. Only the fields you pass are sent. POST /v1/products/{id}.

Input parameters:

- `categories` (string): Comma-separated categories for the product, in the same form as shoprocket_create_product. Shoprocket lists it as required but leaves it out of its update example: pass it if Shoprocket answers that…
- `description` (string): Product description (HTML allowed).
- `max_order_quantity` (integer): Maximum quantity per order.
- `min_order_quantity` (integer): Minimum quantity per order.
- `name` (string, required): Product name (required by Shoprocket on every update; pass the current one to keep it).
- `price` (integer): Price as an integer in the smallest currency unit (cents: 1999 = 19.99), as Shoprocket's API takes it. Check the reply.
- `product_id` (string, required): Shoprocket product id (prod_...).
- `quantity` (integer): Stock quantity.
- `sku` (string): SKU.
- `status`: 1 = active (Shoprocket returns status "1" for live products), 0 = inactive.
- `summary` (string): Short summary.
- `weight` (number): Weight, in the store's weight unit.

### `shoprocket_list_categories` (~70 tokens)

List categories

List product categories with id, name and slug. GET /v1/categories.

Input parameters:

- `limit` (integer): Results per page, 1-100 (default 25).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.

### `shoprocket_get_category` (~78 tokens)

Get category

One category by id (cat_...); with expand_products also the products in it. GET /v1/categories/{id}.

Input parameters:

- `category_id` (string, required): Shoprocket category id, e.g. cat_646de66683dc4922710922.
- `expand_products` (boolean): true = include the category's products.

### `shoprocket_create_category` (~96 tokens)

Create category

WRITE: create a product category (optionally assigning existing products). Calling twice with the same name may create a duplicate or be refused by Shoprocket. PUT /v1/categories.

Input parameters:

- `name` (string, required): Category name.
- `products` (string): Comma-separated product ids (prod_...) to put in the category.
- `slug` (string): Unique slug. Default: the name, lowercase and hyphenated.

### `shoprocket_update_category` (~97 tokens)

Update category

WRITE: rename a category, change its slug, or set the products in it. Only the fields you pass are sent. POST /v1/categories/{id}.

Input parameters:

- `category_id` (string, required): Shoprocket category id (cat_...).
- `name` (string): New name.
- `products` (string): Comma-separated product ids (prod_...) assigned to the category.
- `slug` (string): New slug.

### `shoprocket_list_customers` (~82 tokens)

List customers

List customers with name, email, phone, company, tax number, country and marketing opt-in. GET /v1/customers.

Input parameters:

- `limit` (integer): Results per page, 1-100 (default 25).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.

### `shoprocket_get_customer` (~57 tokens)

Get customer

One customer by id (cus_...). GET /v1/customers/{id}.

Input parameters:

- `customer_id` (string, required): Shoprocket customer id, e.g. cus_646dec8c0e3a4390458285.

### `shoprocket_create_customer` (~120 tokens)

Create customer

WRITE: add a customer record (it does not email the customer). marketing_subscribed records newsletter consent: set it to true only if the customer actually opted in. PUT /v1/customers.

Input parameters:

- `company_name` (string): Company name.
- `customer_contact` (string): Phone number.
- `customer_email` (string, required): Customer email address.
- `customer_name` (string): Full name.
- `marketing_subscribed` (boolean): true only if the customer opted in to the newsletter.
- `tax_number` (string): Tax number.

### `shoprocket_update_customer` (~142 tokens)

Update customer

WRITE: change a customer's email, name, phone, company, tax number or newsletter consent. Only the fields you pass are sent. Set marketing_subscribed true only if the customer actually opted in. POST /v1/customers/{id}.

Input parameters:

- `company_name` (string): Company name.
- `contact` (string): Phone number.
- `customer_id` (string, required): Shoprocket customer id (cus_...).
- `email` (string): New email address.
- `marketing_subscribed` (boolean): true only if the customer opted in to the newsletter.
- `name` (string): Full name.
- `tax_number` (string): Tax number.

### `shoprocket_list_discount_codes` (~89 tokens)

List discount codes

List discount codes with type, value, what they apply to, usage limit and count, minimum order, dates and status. GET /v1/discount-codes.

Input parameters:

- `limit` (integer): Results per page, 1-100 (default 25).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.

### `shoprocket_get_discount_code` (~63 tokens)

Get discount code

One discount code by id (ofr_...). GET /v1/discount-codes/{id}.

Input parameters:

- `discount_code_id` (string, required): Shoprocket discount code id, e.g. ofr_646dfea0b2880691674525.

### `shoprocket_create_discount_code` (~327 tokens)

Create discount code

WRITE: create a live discount code that shoppers can use at checkout and that reduces the store's revenue. Type fixed or percentage needs coupon_value; free_shipping does not. Use usage_limit and dates to bound it. Calling twice creates two codes. PUT /v1/discount-codes.

Input parameters:

- `coupon_applies_to` (string, required): What it applies to. free_shipping allows only all_orders and all_orders_over.
- `coupon_applies_to_value` (string): Required for multiple_products (comma-separated product ids) and categories (comma-separated category slugs).
- `coupon_code` (string): The code shoppers type. Default: Shoprocket generates a random one.
- `coupon_type` (string, required): fixed = amount off, percentage = percent off, free_shipping.
- `coupon_value` (integer): Required for fixed and percentage. Shoprocket documents 'a positive integer in cents': for fixed 500 = 5.00; for percentage send the whole percent (10 = 10%) and check the reply.
- `description` (string, required): What the code is for (shown in the dashboard).
- `expire_date` (string): Last valid day, yyyy-mm-dd. Required together with start_date.
- `limit_per_user`: 1 = one use per customer.
- `minimum_order_value` (integer): Minimum order value in cents (as Shoprocket takes it); used with all_orders_over.
- `start_date` (string): First valid day, yyyy-mm-dd. Required together with expire_date.
- `usage_limit` (integer): Maximum number of uses in total.

### `shoprocket_list_automatic_discounts` (~89 tokens)

List automatic discounts

List automatic discounts (applied at checkout without a code) with type, value, conditions, dates and status. GET /v1/automatic-discounts.

Input parameters:

- `limit` (integer): Results per page, 1-100 (default 25).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.

### `shoprocket_list_sales` (~86 tokens)

List sale promotions

List sale promotions (price reductions on products) with type, value, what they apply to, dates and status. GET /v1/sale-promotions.

Input parameters:

- `limit` (integer): Results per page, 1-100 (default 25).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.

### `shoprocket_list_shipping_methods` (~71 tokens)

List shipping methods

List the store's shipping methods and rates. GET /v1/shippings.

Input parameters:

- `limit` (integer): Results per page, 1-100 (default 25).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.

### `shoprocket_list_taxes` (~69 tokens)

List taxes

List the store's tax rules. GET /v1/taxes.

Input parameters:

- `limit` (integer): Results per page, 1-100 (default 25).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.

### `shoprocket_list_zones` (~75 tokens)

List shipping zones

List the store's shipping zones (the regions it ships to). GET /v1/zones.

Input parameters:

- `limit` (integer): Results per page, 1-100 (default 25).
- `page` (integer): Page number, from 1 (default 1). Pass the previous reply's next_page.

### `shoprocket_list_payment_methods` (~45 tokens)

List payment methods

List the store's payment gateways (Stripe, PayPal, manual...) and whether they are enabled. Gateway credentials are never returned. GET /v1/payment-methods.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket#diagnostics

## Score history

- 2026-11-05: 18
- 2026-11-04: 18
- 2026-11-03: 18
- 2026-11-02: 18
- 2026-11-01: 65
- 2026-10-31: 65

## Common questions

### What is the Shoprocket MCP by usefulapi server?

Shoprocket MCP by usefulapi is listed in the public MCP registry as io.usefulapi/shoprocket. MCP server for Shoprocket, orders, products, customers, store stats and discount codes. This page covers its hosted endpoint (https://shoprocket.usefulapi.io/mcp).

### Is the Shoprocket MCP by usefulapi server safe to use?

Shoprocket MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Shoprocket MCP by usefulapi server expose?

Shoprocket MCP by usefulapi exposes 26 tools: shoprocket_get_store, shoprocket_get_store_stats, shoprocket_list_orders, shoprocket_get_order, shoprocket_update_order_status, and 21 more. Their descriptions and schemas cost roughly 3,194 tokens of context every time the server is loaded.

### Does the Shoprocket MCP by usefulapi server require authentication?

Its publisher declares no required credentials for Shoprocket MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the Shoprocket MCP by usefulapi server still maintained?

Shoprocket MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://shoprocket.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/shoprocket/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket
