Shopify MCP — Claude Code MCP server: what it does, how to install
Read-only Shopify Admin GraphQL integration for AI agents. Run queries, fetch analytics via ShopifyQL, and export large datasets safely without write risks.
claude mcp add --env SHOPIFY_STORES=<SHOPIFY_STORES> --env SHOPIFY_SHOP_DOMAIN=<SHOPIFY_SHOP_DOMAIN> --env SHOPIFY_CLIENT_ID=<SHOPIFY_CLIENT_ID> --env SHOPIFY_CLIENT_SECRET=<SHOPIFY_CLIENT_SECRET> --env SHOPIFY_ACCESS_TOKEN=<SHOPIFY_ACCESS_TOKEN> --transport stdio shopify-mcp -- uvx scalably-shopify-mcpWhat Shopify MCP does
This server connects coding agents to the Shopify Admin GraphQL API (version 2026-04) strictly in read mode. To prevent accidental inventory or pricing updates, an internal graphql-core parser validates every payload beforehand. The process rejects all mutations, subscriptions, syntax mistakes, and queries exceeding 100KB before any network call reaches Shopify. The sole exception is bulkOperationCancel, which aborts an active background job.
Six tools cover schema introspection, general GraphQL querying, ShopifyQL reporting, and large JSONL bulk exports. Multi-store setups are supported through the SHOPIFY_STORES environment variable, keeping rate limits isolated per store. When Shopify throttles requests, the server calculates sleep duration automatically and retries up to three times.
Running the server requires uvx, a store domain, and either an access token (SHOPIFY_ACCESS_TOKEN) or a client credentials pair (SHOPIFY_CLIENT_ID and SHOPIFY_CLIENT_SECRET).
What it helps with
- Inspect store schemas and retrieve GraphQL records without edit access
- Export large product and order catalogs asynchronously via JSONL bulk jobs
- Query sales metrics using ShopifyQL reports
- Manage multiple Shopify store connections within one agent session
Example prompts for the agent
- List configured shops using
shopify_list_stores - Execute a read-only query with
shopify_graphql_queryto check inventory levels for recent products - Run a ShopifyQL query via
shopify_shopifyqlto summarize total sales by day
How to install Shopify MCP
Platform CLI
claude mcp add --env SHOPIFY_STORES=<SHOPIFY_STORES> --env SHOPIFY_SHOP_DOMAIN=<SHOPIFY_SHOP_DOMAIN> --env SHOPIFY_CLIENT_ID=<SHOPIFY_CLIENT_ID> --env SHOPIFY_CLIENT_SECRET=<SHOPIFY_CLIENT_SECRET> --env SHOPIFY_ACCESS_TOKEN=<SHOPIFY_ACCESS_TOKEN> --transport stdio shopify-mcp -- uvx scalably-shopify-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from scalably-shopify-mcp <command>
Platform CLI
codex mcp add shopify-mcp --env SHOPIFY_STORES=<SHOPIFY_STORES> --env SHOPIFY_SHOP_DOMAIN=<SHOPIFY_SHOP_DOMAIN> --env SHOPIFY_CLIENT_ID=<SHOPIFY_CLIENT_ID> --env SHOPIFY_CLIENT_SECRET=<SHOPIFY_CLIENT_SECRET> --env SHOPIFY_ACCESS_TOKEN=<SHOPIFY_ACCESS_TOKEN> -- uvx scalably-shopify-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from scalably-shopify-mcp <command>
Config file
{
"mcpServers": {
"shopify-mcp": {
"command": "uvx",
"args": [
"scalably-shopify-mcp"
],
"env": {
"SHOPIFY_STORES": "<SHOPIFY_STORES>",
"SHOPIFY_SHOP_DOMAIN": "<SHOPIFY_SHOP_DOMAIN>",
"SHOPIFY_CLIENT_ID": "<SHOPIFY_CLIENT_ID>",
"SHOPIFY_CLIENT_SECRET": "<SHOPIFY_CLIENT_SECRET>",
"SHOPIFY_ACCESS_TOKEN": "<SHOPIFY_ACCESS_TOKEN>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from scalably-shopify-mcp <command>
Config file
{
"servers": {
"shopify-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"scalably-shopify-mcp"
],
"env": {
"SHOPIFY_STORES": "<SHOPIFY_STORES>",
"SHOPIFY_SHOP_DOMAIN": "<SHOPIFY_SHOP_DOMAIN>",
"SHOPIFY_CLIENT_ID": "<SHOPIFY_CLIENT_ID>",
"SHOPIFY_CLIENT_SECRET": "<SHOPIFY_CLIENT_SECRET>",
"SHOPIFY_ACCESS_TOKEN": "<SHOPIFY_ACCESS_TOKEN>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from scalably-shopify-mcp <command>
Platform CLI
gemini mcp add -e SHOPIFY_STORES=<SHOPIFY_STORES> -e SHOPIFY_SHOP_DOMAIN=<SHOPIFY_SHOP_DOMAIN> -e SHOPIFY_CLIENT_ID=<SHOPIFY_CLIENT_ID> -e SHOPIFY_CLIENT_SECRET=<SHOPIFY_CLIENT_SECRET> -e SHOPIFY_ACCESS_TOKEN=<SHOPIFY_ACCESS_TOKEN> shopify-mcp uvx scalably-shopify-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from scalably-shopify-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Shopify MCP
How do I install Shopify MCP in Claude Code?
Run the following command in your terminal: `claude mcp add shopify-mcp -e SHOPIFY_STORES=<SHOPIFY_STORES> -e SHOPIFY_CLIENT_SECRET=<SHOPIFY_CLIENT_SECRET> -e SHOPIFY_ACCESS_TOKEN=<SHOPIFY_ACCESS_TOKEN> -- uvx scalably-shopify-mcp`. Replace placeholder keys with your store credentials.
What does Shopify MCP do?
It provides an MCP interface for querying the Shopify Admin GraphQL API in read-only mode. Agents can inspect schemas, pull order and product data, run ShopifyQL analytics, and manage bulk exports.
How does it prevent accidental store changes?
A local parser inspects the syntax tree of every GraphQL payload before dispatching. Any mutation or subscription operation gets blocked immediately, keeping production store data untouched.