shopify-admin-readonly-mcp
v1.1.0
Published
A read-only MCP server for the Shopify Admin GraphQL API — query products, orders, customers, inventory, and more
Maintainers
Readme
Shopify Admin Readonly MCP Server
A read-only MCP (Model Context Protocol) server for the Shopify Admin GraphQL API. Allows AI assistants to query your Shopify store data without any risk of modification.
Tools Available
| Tool | Description |
|------|-------------|
| shopify_get_shop | Get store info (name, domain, currency, plan) |
| shopify_list_products | List products with filtering and pagination |
| shopify_get_product | Get full product details including variants and images |
| shopify_list_product_variants | List variants with SKU/inventory filtering |
| shopify_list_orders | List orders with status filtering |
| shopify_get_order | Get full order details with fulfillments |
| shopify_list_customers | Search/list customers |
| shopify_get_customer | Get full customer details with order history |
| shopify_list_collections | List product collections |
| shopify_list_locations | List fulfillment locations |
| shopify_get_inventory_levels | Get inventory by location |
Setup
Step 1 — Create a Shopify App in Dev Dashboard
- Go to dev.shopify.com and sign in with your Shopify Partner account
- Click Create app and give it a name (e.g.
Claude Admin MCP) - Under App setup, set the App URL to
http://localhost - Add
http://localhost:3456/callbackto Allowed redirect URLs - Save
Then configure the required API scopes. You need:
| Scope | Used for |
|-------|----------|
| read_products | Products, variants, collections |
| read_orders | Orders (last 60 days) |
| read_all_orders | Orders older than 60 days |
| read_customers | Customers |
| read_inventory | Inventory levels |
| read_locations | Fulfillment locations |
- From the app's Settings page, copy your Client ID and Client Secret
Step 2 — Get Your Access Token
Run the included helper script to go through the OAuth flow once and get a permanent offline access token:
npx shopify-admin-readonly-mcp get-token <shop-domain> <client-id> <client-secret>Or clone the repo and run directly:
git clone https://github.com/vessi-dev/shopify-admin-mcp
cd shopify-admin-mcp
node get-token.js your-store.myshopify.com YOUR_CLIENT_ID YOUR_CLIENT_SECRETThis will:
- Open your browser to the Shopify authorization page
- After you click Install, automatically exchange the code for a token
- Print your permanent access token to the terminal
Copy the token — it starts with shpca_... and never expires.
Step 3 — Configure Claude Desktop
Add to your claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"shopify-admin-readonly": {
"command": "npx",
"args": ["-y", "shopify-admin-readonly-mcp@latest"],
"env": {
"SHOPIFY_SHOP_DOMAIN": "your-store.myshopify.com",
"SHOPIFY_ACCESS_TOKEN": "shpca_xxxxxxxxxxxx"
}
}
}
}Restart Claude Desktop — the server will connect automatically.
Step 4 (optional) — Run as HTTP Server
TRANSPORT=http SHOPIFY_SHOP_DOMAIN=your-store.myshopify.com SHOPIFY_ACCESS_TOKEN=shpca_xxx PORT=3000 npx shopify-admin-readonly-mcp@latestEnvironment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| SHOPIFY_SHOP_DOMAIN | ✅ | Your store domain (e.g., my-store.myshopify.com) |
| SHOPIFY_ACCESS_TOKEN | ✅ | Offline access token from the OAuth flow (shpca_...) |
| SHOPIFY_API_VERSION | Optional | API version (default: 2025-01) |
| TRANSPORT | Optional | stdio (default) or http |
| PORT | Optional | HTTP port when using HTTP transport (default: 3000) |
Security
This server is strictly read-only — it only uses GraphQL queries, never mutations. All tools have readOnlyHint: true and destructiveHint: false annotations.
