Skip to main content
Glama

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

Related MCP server: Shopify MCP Server

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

  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

  • Product search and retrieval

  • Product updates

  • Order queries

  • Metafield read/write

  • 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

Related MCP Connectors

Related MCP Servers