shopify-multistore-mcp
Provides tools for managing multiple Shopify stores via the Admin GraphQL API, including listing stores, fetching shop info, products, orders, and executing raw GraphQL queries/mutations with a production write-gate for safety.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@shopify-multistore-mcpShow unfulfilled orders in acme-live."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
shopify-multistore-mcp
An MCP server for working across multiple Shopify stores (multi-client dev work)
through the Admin GraphQL API. Every tool takes a store argument that routes
the call to the right client store, so one connector covers all your stores.
Designed to sit alongside Shopify's official tooling, not replace it:
Layer | What it does | You build it? |
Shopify AI Toolkit / Dev MCP | Theme, apps, Functions, extensions, docs + GraphQL validation | No — install it |
Shopify CLI |
| No — install it |
This server | Conversational Admin API read/write across stores, with a production write-gate | Yes — this repo |
What's here (first milestone)
Tools exposed to Claude:
list_stores— list configured stores (alias, domain, env, API version)shop_info— identity/plan for a store (great connectivity check)get_products— list/search products (Shopify search syntax)get_orders— list/search recent ordersgraphql— raw Admin GraphQL escape hatch (query or mutation)
The production write-gate
Each store is tagged env: "production" or env: "dev".
Mutations against a dev store run freely.
Mutations against a production store are blocked unless the call passes
confirm: true. The model must inspect what will change, then explicitly confirm.
This protects live client data while keeping dev stores frictionless.
Related MCP server: Shopify Store MCP Server
Setup
1. Install dependencies & build
npm install
npm run buildThis machine's Node lives in Laragon:
D:\Ahsan\laragon\bin\nodejs\node-v22\. Either add that folder to your PATH, or use the full path tonode.exe/npm.cmd(the Claude config below uses the full path so it works regardless of PATH).
2. Create your store registry
Copy the example and fill in real values:
cp stores.example.json stores.jsonstores.json is gitignored — never commit real tokens.
{
"defaultApiVersion": "2026-07",
"stores": {
"acme-live": {
"label": "Acme Corp (production)",
"domain": "acme-corp.myshopify.com",
"env": "production",
"adminToken": "shpat_xxx"
},
"acme-dev": {
"label": "Acme dev store",
"domain": "acme-corp-dev.myshopify.com",
"env": "dev",
"adminToken": "shpat_yyy"
}
}
}adminToken— inline the token, or useadminTokenEnvto read it from an environment variable (e.g."adminTokenEnv": "ACME_TOKEN") so secrets stay out of the file.apiVersion— optional per-store override ofdefaultApiVersion.
3. Get an Admin API access token per store
In each store's admin: Settings → Apps and sales channels → Develop apps →
Create an app → Configure Admin API scopes, then install and copy the
Admin API access token (shpat_…).
Grant only the scopes you need, e.g. read_products, write_products,
read_orders, read_content, write_content, read_themes, write_themes,
read_metaobjects, write_metaobjects.
Connect it to Claude
Add to your MCP config (Claude Desktop claude_desktop_config.json, or Claude Code
.mcp.json). This wires all three layers — official Dev MCP + this multi-store
server:
{
"mcpServers": {
"shopify-dev": {
"command": "npx",
"args": ["-y", "@shopify/dev-mcp@latest"]
},
"shopify-multistore": {
"command": "D:\\Ahsan\\laragon\\bin\\nodejs\\node-v22\\node.exe",
"args": ["D:\\Ahsan\\workstuff\\source\\shopify-mcp-connector\\dist\\index.js"],
"env": {
"STORES_CONFIG": "D:\\Ahsan\\workstuff\\source\\shopify-mcp-connector\\stores.json"
}
}
}
}For the theme/app/Functions dev workflow, also install the official Shopify AI Toolkit Claude Code plugin and the Shopify CLI.
Config resolution
The server finds stores.json in this order:
STORES_CONFIGenv var (recommended — see config above)./stores.jsonrelative to the working directory
Usage examples (things to ask Claude)
"List my configured stores."
"Show active products from vendor Acme in acme-dev."
"How many unfulfilled orders does acme-live have this week?"
"Add a metafield
custom.care_instructionsto product X in acme-dev." (rawgraphql, dev store — runs)"Update the price of variant Y in acme-live." (raw
graphql, production — asks you to confirm first)
Roadmap (next milestones)
Dedicated write tools (create/update products, metafields, pages) with the same gate
Metafield/metaobject read + write helpers
Theme asset read/write, page/blog content tools
Bulk operation helpers (bulk query +
bulkOperationRunMutation)Optional remote/HTTP deployment if the connector needs to be shared with a team
Development
npm run dev # tsc --watch
npm run typecheck # type-check without emitting
npm run build # compile to dist/Project layout
src/
index.ts # MCP server entry (stdio)
config.ts # store registry loader + zod validation
shopify.ts # Admin GraphQL client + production write-gate
tools.ts # tool definitions
stores.example.json # template — copy to stores.json (gitignored)This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ItisAhsan/shopify-multistore-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server