Shopify MCP Server
by kgoyal000
README.md
# 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
```bash
# 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:
```json
{
"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.
```json
{
"query": "t-shirt",
"limit": 10
}
```
### get_product
Get detailed product information.
```json
{
"id": "gid://shopify/Product/123456"
}
```
### update_product
Update product details.
```json
{
"id": "gid://shopify/Product/123456",
"title": "New Title",
"tags": ["new", "featured"],
"status": "ACTIVE"
}
```
### get_orders
Get recent orders.
```json
{
"status": "open",
"limit": 10
}
```
### get_metafields
Get metafields for a product or shop.
```json
{
"ownerType": "PRODUCT",
"ownerId": "gid://shopify/Product/123456",
"namespace": "custom"
}
```
### update_metafield
Create or update a metafield.
```json
{
"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.
```json
{}
```
### get_theme_asset
Read a theme file (Liquid, CSS, JS).
```json
{
"themeId": "gid://shopify/Theme/123456789",
"filename": "sections/header.liquid"
}
```
### update_theme_asset
Edit a theme file directly.
```json
{
"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
1. Go to your Shopify Admin → Settings → Apps and sales channels
2. Click "Develop apps" → Create an app
3. Configure Admin API scopes (read_products, write_products, read_orders, etc.)
4. Install the app to your store
5. 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](https://karangoyal.cc) | Open-source Shopify toolingThis server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues