Skip to main content
Glama

Shopify MCP Server

A Model Context Protocol (MCP) server for Shopify order management using the official MCP Python SDK.

Features

  • āœ… MCP-Compliant: Follows official MCP specification

  • šŸ› ļø Two Tools: Create orders and check order status via Shopify Admin REST API

  • 🌐 Remote Access: SSE transport for cloud deployment

  • šŸ”’ Secure: Environment-based credential management

Related MCP server: OHMS

Available Tools

1. create_order

Create new Shopify orders with line items and customer information.

Parameters:

  • line_items (array, required): Product items to order

  • customer_email (string, optional): Customer email

  • financial_status (string, optional): Payment status (default: "pending")

  • test (boolean, optional): Create as test order (default: true)

2. get_order_status

Retrieve complete order details by order ID.

Parameters:

  • order_id (integer, required): Shopify order ID

Quick Start

Prerequisites

  • Python 3.10 or higher

  • Shopify Admin API access token

  • Shopify store URL

Local Setup

# Clone the repository
cd mcp-server

# Create and activate virtual environment (recommended)
python -m venv mcpserver
mcpserver\Scripts\activate  # Windows
# source mcpserver/bin/activate  # macOS/Linux

# Install dependencies
pip install -r requirements.txt

# Configure environment variables
# Create .env file with:
SHOPIFY_ADMIN_API_BASE_URL=https://your-store.myshopify.com/admin/api/2025-07
SHOPIFY_ACCESS_TOKEN=your_access_token_here
USE_DUMMY_RESPONSES=true  # Optional: returns mock data when API fails (for testing)

# Run the server
python shopify_mcp_server.py

Testing Mode (Dummy Responses)

For development and testing without valid Shopify credentials, enable dummy response mode:

# In .env file
USE_DUMMY_RESPONSES=true

When enabled:

  • āœ… API errors return realistic mock data instead of error messages

  • āœ… Test tools without valid Shopify store credentials

  • āœ… See what successful responses look like

  • āœ… All responses include "dummy_mode": true flag

Demo:

python demo_dummy_responses.py

Example dummy response:

{
  "success": true,
  "dummy_mode": true,
  "order_id": 9999999999,
  "order_number": 1001,
  "financial_status": "paid",
  "total_price": "79.97",
  "note": "This is a dummy response for testing purposes"
}

Disable for production:

USE_DUMMY_RESPONSES=false  # or remove the variable entirely

Usage with MCP Clients

Claude Desktop Integration

Add to your Claude Desktop configuration file:

Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "shopify": {
      "command": "python",
      "args": ["C:\\path\\to\\mcp-server\\shopify_mcp_server.py"],
      "env": {
        "SHOPIFY_ADMIN_API_BASE_URL": "https://your-store.myshopify.com/admin/api/2025-07",
        "SHOPIFY_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

Restart Claude Desktop, and you'll see the Shopify tools available.

MCP Inspector (Testing)

Test your server with the official MCP Inspector:

npx @modelcontextprotocol/inspector python shopify_mcp_server.py

This opens a web interface to test tool discovery and execution.

Remote Deployment

The server uses SSE (Server-Sent Events) transport for remote access, making it compatible with cloud platforms.

Railway Deployment

  1. Fork/Clone this repository

  2. Connect to Railway:

    • Go to Railway.app

    • Click "New Project" → "Deploy from GitHub repo"

    • Select this repository

  3. Set Environment Variables in Railway dashboard:

    SHOPIFY_ADMIN_API_BASE_URL=https://your-store.myshopify.com/admin/api/2025-07
    SHOPIFY_ACCESS_TOKEN=your_access_token_here
  4. Deploy: Railway auto-deploys from Procfile

Your MCP server will be available at: https://your-app.up.railway.app

Render Deployment

  1. Connect GitHub repo to Render

  2. Create new Web Service

  3. Set environment variables

  4. Set start command: python shopify_mcp_server.py

Other Platforms (Fly.io, Heroku, etc.)

The server works on any platform supporting Python web services. Use the start command:

python shopify_mcp_server.py

Transport Options

The server supports two transport modes (configured in code):

# SSE Transport (remote access, default)
mcp.run(transport="sse")

# STDIO Transport (local only, for Claude Desktop)
mcp.run(transport="stdio")

Current configuration: SSE (remote deployment)

Environment Variables

Variable

Description

Example

SHOPIFY_ADMIN_API_BASE_URL

Shopify Admin API endpoint

https://store.myshopify.com/admin/api/2025-07

SHOPIFY_ACCESS_TOKEN

Admin API access token

shpat_xxxxx

USE_DUMMY_RESPONSES

Enable mock responses for testing (optional)

true or false (default: false)

Security Best Practices

āš ļø Important Security Notes:

  • Never commit .env files to version control (already in .gitignore)

  • Use environment variables on hosting platforms

  • Rotate access tokens regularly

  • Enable HTTPS in production (automatic on Railway/Render)

  • Restrict API scopes to minimum required permissions

Troubleshooting

"SHOPIFY_ACCESS_TOKEN not set"

  • Verify .env file exists and contains the token

  • Check environment variables in your deployment platform

"Order not found" (404)

  • Verify the order ID is correct (use numeric ID, not order number)

  • Check API access token has permission to read orders

Tools not appearing in Claude Desktop

  • Verify configuration file path is correct

  • Check Python path in the command field

  • Restart Claude Desktop after config changes

  • Check Claude Desktop logs for errors

Development

Project Structure

mcp-server/
ā”œā”€ā”€ shopify_mcp_server.py   # Main MCP server
ā”œā”€ā”€ requirements.txt         # Python dependencies
ā”œā”€ā”€ .env                     # Local environment variables (gitignored)
ā”œā”€ā”€ Procfile                # Railway/Heroku deployment
└── README.md               # This file

Testing

Use MCP Inspector for development testing:

npx @modelcontextprotocol/inspector python shopify_mcp_server.py

Resources

License

MIT

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A Shopify-focused MCP server that enables AI agents to manage store operations like order tracking, product discovery, and checkout link generation. It facilitates customer-facing interactions including shipping estimates and real-time inventory searches.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Exposes Shopify order and inventory management tools via MCP, allowing agents to fetch, update, and print orders without exposing raw Shopify credentials.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language management of Shopify stores, including orders, customers, products, and inventory, with support for multiple stores and both static and OAuth authentication.
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    A comprehensive MCP server for Shopify Admin API integration, enabling AI assistants to manage products, orders, customers, inventory, analytics, and more through natural language.
    20
    18
    MIT