A pure Go MCP server that connects LLMs to a Shopify store via the Admin API, enabling AI assistants to read and update products, collections, pages, and navigation menus.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"shopify-admin-stdio": {
"args": [
"-stdio",
"-store",
"myshop.myshopify.com",
"-token",
"shpca_xxx"
],
"type": "stdio",
"command": "shopify-admin-mcp-server"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A lightweight Model Context Protocol server that connects an LLM (such as Claude) to your Shopify store via the Admin API. It lets AI assistants read and update your store's products, collections, pages, and navigation menus.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in ecommerce
35+ AI tools for TCG card grading, Monte Carlo pricing, 370K+ product search. BYOK.
Production-grade MCP server and CLI tool for Shopify Admin GraphQL API — 49+ tools, YAML-extensible, dual auth, dual transport, Docker-ready
A command line tool for setting up commercetools MCP server
This is the reference implementation for the mcp server
MCP Security Weekly
Get CVE alerts and security updates for Shopify Admin Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A lightweight Model Context Protocol server that connects an LLM (such as Claude) to your Shopify store via the Admin API. It lets AI assistants read and update your store's products, collections, pages, and navigation menus.
When creating your Custom App in the Shopify Admin, enable these scopes:
| Scope | Used for |
|---|---|
read_products, write_products | Products |
read_product_listings, write_product_listings | Product listings |
read_content, write_content | Pages |
read_online_store_navigation, write_online_store_navigation | Menus |
git clone https://github.com/mikespook/shopify-admin-mcp-server
cd shopify-admin-mcp-server
make build
# binary: ./build/shopify-admin-mcp-server
docker pull mikespook/shopify-admin-mcp-server
| Flag | Env var | Default | Description |
|---|---|---|---|
-store | SHOPIFY_STORE | — | Shopify store domain, e.g. myshop.myshopify.com |
-token | SHOPIFY_TOKEN | — | Admin API access token (shpca_... or shpat_...) |
-addr | — | localhost:9093 | HTTP listen address |
-config | — | ./config.yaml | Path to YAML config file |
-stdio | — | false | Use stdio transport instead of HTTP |
-version | — | — | Print version and exit |
Priority order: flag > env var > config file > interactive prompt
On first run with an interactive terminal, if credentials are not supplied via flags or env vars, the server will prompt and save them to config.yaml (mode 0600). Subsequent runs load from that file automatically.
In non-interactive environments (Docker, CI, stdio mode) the prompt is skipped — the server exits immediately with an error if credentials are missing.
./shopify-admin-mcp-server -store myshop.myshopify.com -token shpca_xxx
# Listening on localhost:9093
Or with env vars:
export SHOPIFY_STORE=myshop.myshopify.com
export SHOPIFY_TOKEN=shpca_xxx
./shopify-admin-mcp-server
Or with a config file:
# config.yaml
store: myshop.myshopify.com
token: shpca_xxx
addr: localhost:9093
./shopify-admin-mcp-server -config ./config.yaml
Stdio mode is used by MCP clients (such as Claude Desktop or Claude Code) that launch the server as a subprocess. Logs are written to stderr so they do not interfere with the JSON-RPC stream on stdout.
./shopify-admin-mcp-server -stdio -store myshop.myshopify.com -token shpca_xxx
.mcp.json)Add to your project's .mcp.json:
{
"mcpServers": {
"shopify-admin-stdio": {
"type": "stdio",
"command": "shopify-admin-mcp-server",
"args": ["-stdio", "-store", "myshop.myshopify.com", "-token", "shpca_xxx"]
}
}
}
Or point at the running HTTP server:
{
"mcpServers": {
"shopify-admin-http": {
"type": "http",
"url": "http://localhost:9093/mcp"
}
}
}
claude_desktop_config.json){
"mcpServers": {
"shopify": {
"command": "shopify-admin-mcp-server",
"args": ["-stdio", "-store", "myshop.myshopify.com", "-token", "shpca_xxx"]
}
}
}
Once connected, the LLM can use these tools:
| Tool | Description |
|---|---|
shopify_list_products | List all products |
shopify_get_product | Get a product by ID |
shopify_create_product | Create a new product |
shopify_update_product | Update an existing product |
shopify_list_collections | List all custom collections |
shopify_get_collection | Get a collection by ID |
shopify_create_collection | Create a new |