MCP server
by geli2001
Bridge your workflow to Shopify using the Shopify API for seamless product, order, and customer management—all via the S
Connects to your Shopify store's GraphQL API to manage products, customers, orders, and discounts. Enables comprehensive store operations through Claude or other AI assistants.
Shopify is a community-built MCP server published by geli2001 that provides AI assistants with tools and capabilities via the Model Context Protocol. Bridge your workflow to Shopify using the Shopify API for seamless product, order, and customer management—all via the S It is categorized under developer tools.
You can install Shopify in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
MIT
Shopify is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
I recommend Shopify for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
According to our notes, Shopify benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
Shopify is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
Shopify has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
Useful MCP listing: Shopify is the kind of server we cite when onboarding engineers to host + tool permissions.
Shopify is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
We evaluated Shopify against two servers with overlapping tools; this profile had the clearer scope statement.
Useful MCP listing: Shopify is the kind of server we cite when onboarding engineers to host + tool permissions.
Shopify reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
We wired Shopify into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
showing 1-10 of 34
(please leave a star if you like!)
MCP Server for Shopify API, enabling interaction with store data through GraphQL API. This server provides tools for managing products, customers, orders, and more.
📦 Package Name: shopify-mcp
🚀 Command: shopify-mcp (NOT shopify-mcp-server)
This server supports two authentication methods:
As of January 1, 2026, new Shopify apps are created in the Dev Dashboard and use OAuth client credentials instead of static access tokens.
read_products, write_productsread_customers, write_customersread_orders, write_ordersThe server will automatically exchange these for an access token and refresh it before it expires (tokens are valid for ~24 hours).
If you have an existing custom app with a static shpat_ access token, you can still use it directly.
Client Credentials (recommended):
{
"mcpServers": {
"shopify": {
"command": "npx",
"args": [
"shopify-mcp",
"--clientId",
"<YOUR_CLIENT_ID>",
"--clientSecret",
"<YOUR_CLIENT_SECRET>",
"--domain",
"<YOUR_SHOP>.myshopify.com"
]
}
}
}
Static Access Token (legacy):
{
"mcpServers": {
"shopify": {
"command": "npx",
"args": [
"shopify-mcp",
"--accessToken",
"<YOUR_ACCESS_TOKEN>",
"--domain",
"<YOUR_SHOP>.myshopify.com"
]
}
}
}
Locations for the Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.jsonClient Credentials:
claude mcp add shopify -- npx shopify-mcp \
--clientId YOUR_CLIENT_ID \
--clientSecret YOUR_CLIENT_SECRET \
--domain your-store.myshopify.com
Static Access Token (legacy):
claude mcp add shopify -- npx shopify-mcp \
--accessToken YOUR_ACCESS_TOKEN \
--domain your-store.myshopify.com
If you prefer to use environment variables instead of command-line arguments:
Create a .env file with your Shopify credentials:
Client Credentials:
SHOPIFY_CLIENT_ID=your_client_id
SHOPIFY_CLIENT_SECRET=your_client_secret
MYSHOPIFY_DOMAIN=your-store.myshopify.com
Static Access Token (legacy):
SHOPIFY_ACCESS_TOKEN=your_access_token
MYSHOPIFY_DOMAIN=your-store.myshopify.com
Run the server with npx:
npx shopify-mcp
If you want to install the package globally:
npm install -g shopify-mcp
Then run it:
shopify-mcp --clientId=<ID> --clientSecret=<SECRET> --domain=<YOUR_SHOP>.myshopify.com
--apiVersion: Specify the Shopify API version (default: 2026-01). Can also be set via SHOPIFY_API_VERSION environment variable.⚠️ Important: If you see errors about "SHOPIFY_ACCESS_TOKEN environment variable is required" when using command-line arguments, you might have a different package installed. Make sure you're using shopify-mcp, not shopify-mcp-server.
get-products
searchTitle (optional string): Filter products by titlelimit (number): Maximum number of products to returnget-product-by-id
productId (string): ID of the product to retrievecreate-product
productOptions, Shopify registers all option values but only creates one default variant (first value of each option, price $0). Use manage-product-variants with strategy: REMOVE_STANDALONE_VARIANT afterward to create all real variants with prices.title (string, required): Title of the productdescriptionHtml (string, optional): Description with HTMLhandle (string, optional): URL slug. Auto-generated from title if omittedvendor (string, optional): Vendor of the productproductType (string, optional): Type of the producttags (array of strings, optional): Product tagsstatus (string, optional): "ACTIVE", "DRAFT", or "ARCHIVED". Default "DRAFT"seo (object, optional): { title, description } for search enginesmetafields (array of objects, optional): Custom metafields (namespace, key, value, type)productOptions (array of objects, optional): Options to create inline, e.g. [{ name: "Size", values: [{ name: "S" }, { name: "M" }] }]. Max 3 options.collectionsToJoin (array of strings, optional): Collection GIDs to add the product toupdate-product
id (string, required): Shopify product GIDtitle (string, optional): New titledescriptionHtml (string, optional): New descriptionhandle (string, optional): New URL slugvendor (string, optional): New vendorproductType (string, optional): New product typetags (array of strings, optional): New tags (overwrites existing)status (string, optional): "ACTIVE", "DRAFT", or "ARCHIVED"seo (object, optional): { title, description } for search enginesmetafields (array of objects, optional): Metafields to set or updatecollectionsToJoin (array of strings, optional): Collection GIDs to add the product tocollectionsToLeave (array of strings, optional): Collection GIDs to remove the product fromredirectNewHandle (boolean, optional): If true, old handle redirects to new handledelete-product
id (string, required): Shopify product GIDmanage-product-options
productId (string, required): Shopify product GIDaction (string, required): "create", "update", or "delete"action: "create":
options (array, required): Options to create, e.g. [{ name: "Size", values: ["S", "M", "L"] }]action: "update":
optionId (string, required): Option GID to updatename (string, optional): New name for the optionposition (number, optional): New positionvaluesToAdd (array of strings, optional): Values to addvaluesToDelete (array of strings, optional): Value GIDs to removeaction: "delete":
optionIds (array of strings, required): Option GIDs to deletemanage-product-variants
productId (string, required): Shopify product GIDstrategy (string, optional): How to handle the default variant when creating. "DEFAULT" (removes "Default Title" automatically), "REMOVE_STANDALONE_VARIANT" (recommended for full control), or "PRESERVE_STANDALONE_VARIANT"variants (array, required): Variants to create or update. Each variant:
id (string, optional): Variant GID for updates. Omit to create newprice (string, optional): Price, e.g. "49.00"compareAtPrice (string, optional): Compare-at price for showing discountssku (string, optional): SKU (mapped to inventoryItem.sku)tracked (boolean, optional): Whether inventory is tracked. Set false for print-on-demandtaxable (boolean, optional): Whether the variant is taxablebarcode (string, optional): BarcodeoptionValues (array, optional): Option values, e.g. [{ optionName: "Size", name: "A4" }]delete-product-variants
productId (string, required): Shopify product GIDvariantIds (array of strings, required): Variant GIDs to deleteget-customers
searchQuery (optional string): Filter customers by name or emaillimit (optional number, default: 10): Maximum number of customers to returnupdate-customer
id (string, required): Shopify customer ID (numeric ID only, like "6276879810626")firstName (string, optional): Customer's first namelastName (string, optional): Customer's last nameemail (string, optional): Customer's email addressphone (string, optional): Customer's phone numbertags (array of strings, optional): Tags to apply to the cusPrerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.