Shopify MCP
Connects to a Shopify store to manage orders (list, get, update, cancel, fulfill), customers (list, get, update), and products/inventory (list, get, update inventory levels) via the Shopify Admin REST API.
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 MCPShow me the last 5 orders"
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 MCP
A Model Context Protocol (MCP) server that connects Claude / OpenClaw directly to your Shopify store. Manage orders, customers, products, and inventory through natural language — no dashboard switching required.
Supports multiple stores and both static access tokens and OAuth client credentials.
Tools
Orders
Tool | Description |
| List orders with filters: status, tag, date range, financial status, fulfillment status |
| Full order details: line items, fulfillments, refunds, notes |
| Add or remove tags, update internal note |
| Cancel an order with reason; optionally notify the customer |
| Create a fulfillment with tracking number and carrier |
Customers
Tool | Description |
| List recent customers or search by email, phone, name, or tag |
| Customer details with optional order history |
| Add or remove tags, update internal note |
Products & Inventory
Tool | Description |
| List products with filters: title, vendor, status |
| Product details: all variants, prices, inventory quantities, |
| Set absolute inventory quantity at a location |
Requirements
Python 3.9+
A Shopify store with a Custom App
Shopify API Scopes
Grant the following scopes when configuring your Custom App:
Scope | Used by |
| List, update, cancel orders |
| List, search, update customers |
| List and inspect products/variants |
| Read and update inventory levels |
| Create fulfillments |
Installation
git clone <repo-url> shopify-mcp
cd shopify-mcp
python3 -m venv venv
venv/bin/pip install -r requirements.txtConfiguration
Copy the example env file and fill in your credentials:
cp .env.example .envSingle store — static token
SHOPIFY_SHOP_DOMAIN=your-store.myshopify.com
SHOPIFY_ACCESS_TOKEN=shpat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
SHOPIFY_API_VERSION=2026-04Single store — OAuth (auto-refresh)
SHOPIFY_SHOP_DOMAIN=your-store.myshopify.com
SHOPIFY_CLIENT_ID=your_client_id
SHOPIFY_CLIENT_SECRET=your_client_secret
SHOPIFY_API_VERSION=2026-04Multiple stores
SHOPIFY_STORES=[{"shop_domain":"store-a.myshopify.com","access_token":"shpat_aaa"},{"shop_domain":"store-b.myshopify.com","client_id":"xxx","client_secret":"yyy"}]
SHOPIFY_API_VERSION=2026-04When using multiple stores, pass the shop parameter to any tool to target a specific store. Omitting shop defaults to the first configured store.
Adding to Claude Code / OpenClaw
Add to ~/.claude/settings.json (global) or .claude/settings.json (project):
{
"mcpServers": {
"shopify-mcp": {
"command": "/absolute/path/to/shopify-mcp/venv/bin/python",
"args": ["server.py"],
"cwd": "/absolute/path/to/shopify-mcp"
}
}
}Restart Claude Code / OpenClaw after saving.
Usage examples
List the last 10 open orders
Show me order #1042
Find customer with email: john@example.com
Add tag "wholesale" to customer 123456
Get product details for product ID 789012
Cancel order 6543210987654 — customer changed their mind
Fulfill order 6543210987654 with GHN tracking number ABC123456789
Set inventory for inventory_item_id 11223344 to 50 unitsHow it works
Claude / OpenClaw
│ MCP (stdio)
▼
server.py ──► shopify_api.py ──► Shopify Admin REST API
│
storage/ ← OAuth token cache (chmod 600)No daemon required — the MCP server is a lightweight process started on demand by the MCP host.
Rate limiting — automatically waits on
429 Too Many Requestsusing Shopify'sRetry-Afterheader.Token refresh — OAuth tokens are cached locally and refreshed 5 minutes before expiry. On a
401, the token is force-refreshed and the request retried once.Retries — transient network errors are retried up to 3 times with exponential backoff.
File structure
shopify-mcp/
├── server.py ← MCP server entry point (11 tools)
├── shopify_api.py ← Shopify Admin REST API client
├── requirements.txt
├── .env.example
└── storage/ ← auto-created; stores OAuth token cacheLicense
MIT
This server cannot be installed
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
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/dzunglaviet/shopify-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server