All MCP servers

Shopify MCP server

Products, customers, and orders in the Shopify store they connected.

How it connects

New to MCP? What is an MCP server?

Runs on
Statio's runtime
Connects with
Credentials you paste in once: Admin API Access Token, Store Domain
May connect to
*.myshopify.com
Category
Payments

Checked October 16, 2026 against the tools/list of shopify-mcp 1.0.8 (reports itself as 1.0.0)

What it does

This server reads and edits one store's products, customers and orders through Shopify's GraphQL Admin API. It is shopify-mcp, an MIT-licensed community package on npm, and Shopify does not maintain it. Statio runs version 1.0.8 of it with your store's Admin API token. Shopify's own MCP servers are built for other jobs: the Dev MCP server (@shopify/dev-mcp) runs locally and connects to Shopify's developer resources, and the Storefront and Customer Accounts servers are for shopping agents talking to a storefront.

Tools

The package lists 14 tools. They don't set read-only or destructive hints, so the last column is judged from the GraphQL query or mutation each one sends.

ToolWhat it doesReads or changes
get-productsLists products, or searches them by title.Reads
get-product-by-idGets one product with its variants.Reads
create-productCreates a product, as a draft unless you set a status. With options, Shopify makes one default variant priced at $0.Changes
update-productEdits title, description, handle, status, tags, SEO, metafields and collections. New tags replace the old ones.Changes
manage-product-variantsCreates or updates variants in bulk, including price, compare-at price, SKU and inventory tracking.Changes
manage-product-optionsCreates, renames or deletes product options such as Size and Color, and adds or removes their values.Changes
delete-productDeletes a product. This can't be undone.Changes
delete-product-variantsDeletes one or more variants from a product.Changes
get-customersLists customers, or searches by name or email. Returns emails, phone numbers and addresses.Reads
update-customerEdits a customer's name, email, phone, tags, note, tax-exempt flag and metafields.Changes
get-customer-ordersLists one customer's orders.Reads
get-ordersLists orders, optionally filtered by status, with customer email and shipping address.Reads
get-order-by-idGets one order by its full ID.Reads
update-orderEdits an order's tags, email, note, custom attributes, metafields and shipping address.Changes

Each tool needs an Admin API access scope on the token. The product reads need read_products and the product writes write_products. get-customers needs read_customers and update-customer needs write_customers. The three order reads need read_orders and update-order needs write_orders. Shopify's order scopes cover orders from the last 60 days. Older orders need read_all_orders, which Shopify has to approve.

Set it up

Directly

The package needs your *.myshopify.com domain and either a static Admin API access token or an app's client ID and secret. The token route works for legacy custom apps, which Shopify stopped letting merchants create on January 1, 2026. A new app comes from the Dev Dashboard and gives you a client ID and secret instead. The package exchanges those for a token through Shopify's client credentials grant and refreshes it before the 24 hours run out. That grant only works when the app and the store belong to the same Shopify organization.

Either way, give the app only the scopes your agent needs. In Claude Code, with a version pin:

bash
claude mcp add shopify \
  -e SHOPIFY_CLIENT_ID=<client id> \
  -e SHOPIFY_CLIENT_SECRET=<client secret> \
  -e MYSHOPIFY_DOMAIN=your-store.myshopify.com \
  -- npx -y shopify-mcp@1.0.8

For a legacy app, swap the two client variables for SHOPIFY_ACCESS_TOKEN=shpat_.... In Cursor's mcp.json:

json
{
  "mcpServers": {
    "shopify": {
      "command": "npx",
      "args": ["-y", "shopify-mcp@1.0.8"],
      "env": {
        "SHOPIFY_ACCESS_TOKEN": "shpat_...",
        "MYSHOPIFY_DOMAIN": "your-store.myshopify.com"
      }
    }
  }
}

Both put a store credential in a file on your machine. How to keep API keys out of your AI agent's reach covers why that matters, and How to pin MCP server versions covers the pin. The general client steps are in How to add MCP servers to Claude Code and How to set up MCP servers in Cursor.

Through Statio

Install Shopify from the catalog, open the server's Credentials and add the Admin API access token and your store domain. Statio's entry takes a static shpat_ token, so you need one from a legacy custom app. A token from the client credentials grant expires after 24 hours and would stop working the next day. Then grant tools under Permissions. Nothing is callable until you do.

Let the desktop app write the Claude Code and Cursor configs, or follow Connect a client to do it by hand. When a granted tool is missing, the client is usually still running an old session; How to debug an MCP server that won't connect has the rest.

What to hold back

Two layers limit a Shopify agent. The token's scopes set what the API will accept at all, and per-tool grants pick tools within that. A reporting agent should get a token with only the read_* scopes, so a mistake in its grants can't turn into a write.

A merchandising agent that writes product copy needs get-products, get-product-by-id and update-product. Keep from it:

  • delete-product and delete-product-variants. A deleted product is gone, along with its variants and the URL customers and ads link to.
  • manage-product-variants, which sets prices. An agent asked to "clean up the variants" can reprice a product to $0, and a live product sells at that price until someone notices.
  • update-product if it shouldn't publish. Setting status to ACTIVE puts a draft in front of shoppers.

A support agent that looks up orders needs get-orders, get-order-by-id, get-customers and get-customer-orders. Think hard before adding writes:

  • update-order can change the shipping address and email on an order. Order notes and customer notes are text that customers or staff wrote, and an agent that reads "please send it to this new address instead" in one could redirect a parcel before it ships.
  • update-customer can change a customer's email and set them tax-exempt.

The customer and order reads return personal data: names, emails, phone numbers and addresses. An agent that holds those reads and can also send messages or reach the web elsewhere can leak them, as The lethal trifecta: how AI agents leak data explains. MCP permissions shows how grants on single tools work.

Questions

No. shopify-mcp is a community package on npm under the MIT license. Shopify publishes the Dev MCP server, @shopify/dev-mcp, which runs locally and connects to developer resources, plus Storefront and Customer Accounts MCP servers for shopping agents.

read_products and write_products for the product tools, read_customers and write_customers for customers, and read_orders and write_orders for orders. Grant only the read scopes if the agent shouldn't change anything.

Not a new one in the Shopify admin. Since January 1, 2026, new apps are made in the Dev Dashboard and give you a client ID and secret. Legacy custom apps created before then keep their tokens and can still be managed from the admin.

What Statio adds

  • You choose which of its tools each agent may call. A tool you hold back is removed from that agent's tool list, and a call to it is refused.
  • The credentials stay encrypted in Statio, so they never sit in an agent config file.
  • Every call is recorded with the agent that made it, when, how long it took and whether it succeeded.
  • The outbound list above is enforced outside the server's container, so it cannot reach any other host.

Lock down your first tool in minutes.

Three MCP servers, one of them hosted, and 10,000 calls a month, free and without a card. If you outgrow it the next plan is $19.

Two steps: create your account, then install the desktop app on each machine that runs an AI client.