Shopify MCP Server
Open-source Model Context Protocol (MCP) server for Shopify Admin API. Works with Claude Code, Cursor, OpenClaw, and any MCP-compatible client.
Why This Exists
- Composio = commercial, paid, complex
- Shopify's Storefront MCP = Hydrogen-only, limited scope
- This = open-source, self-hosted, Admin API coverage
Features
- 🔍 Product Search — Find products by title, handle, or tags
- 📦 Product Management — Get, update products and variants
- 📋 Order Queries — View orders and line items
- 🏷️ Metafield Operations — Read and write metafields on products, collections, customers
- 🎨 Theme Asset Editing — Read and edit Liquid, CSS, JS files directly
- 👥 Customer Management — Customer queries (coming soon)
Installation
# Clone and setup
git clone https://github.com/karangoyal/shopify-mcp-server.git
cd shopify-mcp-server
npm install
# Configure
cp .env.example .env
# Edit .env with your Shopify credentials
# Build
npm run build
Usage with Claude Code
Add to your Claude Code settings:
{
"mcpServers": {
"shopify": {
"command": "node",
"args": ["/path/to/shopify-mcp-server/dist/index.js"],
"env": {
"SHOPIFY_SHOP": "your-store.myshopify.com",
"SHOPIFY_ACCESS_TOKEN": "your_token_here"
}
}
}
}
Available Tools
search_products
Search for products by query string.
{
"query": "t-shirt",
"limit": 10
}
get_product
Get detailed product information.
{
"id": "gid://shopify/Product/123456"
}
update_product
Update product details.
{
"id": "gid://shopify/Product/123456",
"title": "New Title",
"tags": ["new", "featured"],
"status": "ACTIVE"
}
get_orders
Get recent orders.
{
"status": "open",
"limit": 10
}
get_metafields
Get metafields for a product or shop.
{
"ownerType": "PRODUCT",
"ownerId": "gid://shopify/Product/123456",
"namespace": "custom"
}
update_metafield
Create or update a metafield.
{
"ownerType": "PRODUCT",
"ownerId": "gid://shopify/Product/123456",
"namespace": "custom",
"key": "warranty",
"value": "2 years",
"type": "single_line_text_field"
}
get_themes
List all themes in the store.
{}
get_theme_asset
Read a theme file (Liquid, CSS, JS).
{
"themeId": "gid://shopify/Theme/123456789",
"filename": "sections/header.liquid"
}
update_theme_asset
Edit a theme file directly.
{
"themeId": "gid://shopify/Theme/123456789",
"filename": "assets/custom.css",
"content": "/* Your CSS here */"
}
Environment Variables
| Variable | Required | Description | |----------|----------|-------------| | SHOPIFY_SHOP | Yes | Store domain (e.g., mystore.myshopify.com) | | SHOPIFY_ACCESS_TOKEN | Yes | Admin API access token | | SHOPIFY_API_VERSION | No | API version (default: 2024-01) |
Getting a Shopify Access Token
- Go to your Shopify Admin → Settings → Apps and sales channels
- Click "Develop apps" → Create an app
- Configure Admin API scopes (read_products, write_products, read_orders, etc.)
- Install the app to your store
- Copy the Admin API access token
Roadmap
- [x] Product search and retrieval
- [x] Product updates
- [x] Order queries
- [x] Metafield read/write
- [x] Theme asset editing
- [ ] Customer management
- [ ] Collection operations
- [ ] Bulk operations
- [ ] Webhook support
License
MIT — See LICENSE file
Contributing
PRs welcome. This is an open-source alternative to commercial MCP offerings.
---
Built by Karan Goyal | Open-source Shopify tooling











