S
Shopify
community
other
MCP to interact with Shopify API including order, product, customers and so on.
Shopify MCP Server
(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.
<a href="https://glama.ai/mcp/servers/@GeLi2001/shopify-mcp">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@GeLi2001/shopify-mcp/badge" alt="Shopify MCP server" />
</a>
Features
- Product Management: Search and retrieve product information
- Customer Management: Load customer data and manage customer tags
- Order Management: Advanced order querying and filtering
- GraphQL Integration: Direct integration with Shopify's GraphQL Admin API
- Comprehensive Error Handling: Clear error messages for API and authentication issues
Prerequisites
- Node.js (version 16 or higher)
- Shopify Custom App Access Token (see setup instructions below)
Setup
Shopify Access Token
To use this MCP server, you'll need to create a custom app in your Shopify store:
- From your Shopify admin, go to Settings > Apps and sales channels
- Click Develop apps (you may need to enable developer preview first)
- Click Create an app
- Set a name for your app (e.g., "Shopify MCP Server")
- Click Configure Admin API scopes
- Select the following scopes:
,read_products
write_products
,read_customers
write_customers
,read_orders
write_orders
- Click Save
- Click Install app
- Click Install to give the app access to your store data
- After installation, you'll see your Admin API access token
- Copy this token - you'll need it for configuration
Usage with Claude Desktop
Add this to your
claude_desktop_config.json
:{ "mcpServers": { "shopify": { "command": "npx", "args": [ "shopify-mcp", "--accessToken", "<YOUR_ACCESS_TOKEN>", "--domain", "<YOUR_SHOP>.myshopify.com" ] } } }
Locations for the Claude Desktop config file:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%/Claude/claude_desktop_config.json
Alternative: Run Locally with Environment Variables
If you prefer to use environment variables instead of command-line arguments:
-
Create a
file with your Shopify credentials:.env
SHOPIFY_ACCESS_TOKEN=your_access_token MYSHOPIFY_DOMAIN=your-store.myshopify.com
-
Run the server with npx:
npx shopify-mcp-server
Direct Installation (Optional)
If you want to install the package globally:
npm install -g shopify-mcp-server
Then run it:
shopify-mcp-server --accessToken=<YOUR_ACCESS_TOKEN> --domain=<YOUR_SHOP>.myshopify.com
Available Tools
Product Management
-
get-products
- Get all products or search by title
- Inputs:
(optional string): Filter products by titlesearchTitle
(number): Maximum number of products to returnlimit
-
get-product-by-id
- Get a specific product by ID
- Inputs:
(string): ID of the product to retrieveproductId
Customer Management
-
get-customers
- Get customers or search by name/email
- Inputs:
(optional string): Filter customers by name or emailsearchQuery
(optional number, default: 10): Maximum number of customers to returnlimit
-
update-customer
- Update a customer's information
- Inputs:
(string, required): Shopify customer ID (numeric ID only, like "6276879810626")id
(string, optional): Customer's first namefirstName
(string, optional): Customer's last namelastName
(string, optional): Customer's email addressemail
(string, optional): Customer's phone numberphone
(array of strings, optional): Tags to apply to the customertags
(string, optional): Note about the customernote
(boolean, optional): Whether the customer is exempt from taxestaxExempt
(array of objects, optional): Customer metafields for storing additional datametafields
-
get-customer-orders
- Get orders for a specific customer
- Inputs:
(string, required): Shopify customer ID (numeric ID only, like "6276879810626")customerId
(optional number, default: 10): Maximum number of orders to returnlimit
Order Management
-
get-orders
- Get orders with optional filtering
- Inputs:
(optional string): Filter by order statusstatus
(optional number, default: 10): Maximum number of orders to returnlimit
-
get-order-by-id
- Get a specific order by ID
- Inputs:
(string, required): Full Shopify order ID (e.g., "gid://shopify/Order/6090960994370")orderId
-
update-order
- Update an existing order with new information
- Inputs:
(string, required): Shopify order IDid
(array of strings, optional): New tags for the ordertags
(string, optional): Update customer emailemail
(string, optional): Order notesnote
(array of objects, optional): Custom attributes for the ordercustomAttributes
(array of objects, optional): Order metafieldsmetafields
(object, optional): Shipping address informationshippingAddress
Debugging
If you encounter issues, check Claude Desktop's MCP logs:
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
License
MIT
Related Servers
S
Sequential Thinking
reference
Dynamic and reflective problem-solving through thought sequences
View Details