Skip to main content

Shopify Admin API MCP Server — products, orders, customers, inventory, fulfillment, webhooks

Project description

shopify-blade-mcp

Shopify Admin API MCP server for Claude and other LLM agents. Token-efficient, security-first, Sidereal-native.

44 tools covering products, orders, customers, inventory, collections, fulfillment, discounts, metafields, webhooks, and analytics — all via GraphQL Admin API.

Why another Shopify MCP?

Shopify has three official MCPs (Storefront, Customer Accounts, Dev MCP) but none expose the Admin API — the API merchants actually use to manage their stores. Community MCPs fill the gap but lack security fundamentals:

  • SecOps -- Write gating, confirm gate for destructive operations (delete product, cancel order), credential scrubbing in all error paths. No community MCP gates writes at the operation level
  • Token efficiency -- Pipe-delimited lists, cursor-based pagination hints, human-readable money, null-field omission — not raw GraphQL JSON dumps that burn 10-50x more tokens
  • Sidereal ecosystem -- ecommerce-v1 contract with 40 operations across 4 tiers, plugin manifest, webhook HMAC verification for future dispatch integration

Comparison

Capability shopify-blade-mcp @anthropic/shopify-dev-mcp cob-shopify-mcp Shopify Storefront MCP
API surface Admin GraphQL (full) Dev tooling only Admin REST (59 tools) Storefront only (buyer)
Token-efficient responses Pipe-delimited, null omission N/A (dev tools) Raw JSON Raw JSON
Write gating Per-op env var gate N/A None -- all writes open Read-only
Destructive op confirmation confirm=true required N/A None N/A
Credential scrubbing shpat_*, shpss_*, Bearer Unknown None None
GraphQL (post-REST deprecation) Yes (native) N/A No (REST, deprecated Oct 2024) Yes
Webhook HMAC verification Built-in tool No No No
Cost tracking Per-query cost in responses N/A No No
GID normalisation Auto (numeric, string, or full GID) N/A Manual N/A
Analytics (ShopifyQL) Built-in tool No No No
Metafield CRUD Full (namespace filtering) No Partial No
Tests 171 unit tests Unknown Unknown Unknown
Sidereal integration ecommerce-v1 contract None None None
Runtime Python (uv) Node.js (npx) Node.js (npx) Node.js (npx)

Token efficiency: before and after

Typical community MCP (raw GraphQL JSON, ~1200 tokens):

{"data":{"products":{"edges":[{"node":{"id":"gid://shopify/Product/123","title":"Classic T-Shirt","handle":"classic-t-shirt","status":"ACTIVE","productType":"Shirts","vendor":"TestBrand","tags":["summer","cotton"],"createdAt":"2026-03-15T10:00:00Z","updatedAt":"2026-03-20T14:30:00Z","totalInventory":150,"tracksInventory":true,"priceRangeV2":{"minVariantPrice":{"amount":"29.99","currencyCode":"USD"},"maxVariantPrice":{"amount":"39.99","currencyCode":"USD"}}},"cursor":"abc123"}],"pageInfo":{"hasNextPage":true}}}}

shopify-blade-mcp (pipe-delimited, ~80 tokens):

Classic T-Shirt | classic-t-shirt | ACTIVE | Shirts | TestBrand | $29.99-$39.99 USD | 150 in stock | tags: summer, cotton
... 24 more (pass after="abc123" to continue)

Quick start

# Install
uv tool install shopify-blade-mcp

# Configure (stdio mode -- default)
export SHOPIFY_STORE_DOMAIN="my-store.myshopify.com"
export SHOPIFY_ACCESS_TOKEN="shpat_..."

# Run
shopify-blade-mcp

Claude Desktop / Claude Code

{
  "mcpServers": {
    "shopify": {
      "command": "uvx",
      "args": ["shopify-blade-mcp"],
      "env": {
        "SHOPIFY_STORE_DOMAIN": "my-store.myshopify.com",
        "SHOPIFY_ACCESS_TOKEN": "shpat_..."
      }
    }
  }
}

HTTP transport (remote/tunnel access)

export SHOPIFY_MCP_TRANSPORT="http"
export SHOPIFY_MCP_HOST="127.0.0.1"
export SHOPIFY_MCP_PORT="8770"
export SHOPIFY_MCP_API_TOKEN="your-bearer-token"  # optional, enables auth
shopify-blade-mcp

Security model

Write gate

All mutating operations require SHOPIFY_WRITE_ENABLED=true. Without it, the server is read-only -- safe for analytics, auditing, and exploration.

Confirm gate

Destructive operations that are difficult or impossible to reverse require confirm=true:

  • Delete product
  • Cancel order
  • Delete discount
  • Delete metafield
  • Delete webhook

Credential scrubbing

Shopify tokens (shpat_*, shpca_*, shpss_*) and Bearer tokens are scrubbed from all error messages. Credentials never leak through tool responses.

Bearer auth (HTTP transport)

When SHOPIFY_MCP_API_TOKEN is set, every HTTP request must include a matching Authorization: Bearer <token> header. Constant-time comparison via secrets.compare_digest.

GID normalisation

All tools accept flexible resource identifiers -- numeric IDs (123), plain strings, or full Shopify GIDs (gid://shopify/Product/123). Normalised automatically.

Configuration

Variable Required Description
SHOPIFY_STORE_DOMAIN Yes Store domain (my-store.myshopify.com)
SHOPIFY_ACCESS_TOKEN Yes Admin API access token (shpat_...)
SHOPIFY_API_VERSION No API version (default 2025-04)
SHOPIFY_WRITE_ENABLED No Set to true to enable write operations
SHOPIFY_WEBHOOK_SECRET No Webhook signing secret for HMAC verification
SHOPIFY_MCP_TRANSPORT No stdio (default) or http
SHOPIFY_MCP_HOST No HTTP host (default 127.0.0.1)
SHOPIFY_MCP_PORT No HTTP port (default 8770)
SHOPIFY_MCP_API_TOKEN No Bearer token for HTTP transport auth

Tools (44)

Meta (2)

Tool R/W Description
shopify_info R Configuration status, connectivity, API version
shopify_shop R Store details (name, plan, domain, currency, timezone)

Locations (1)

Tool R/W Description
shopify_locations R Warehouse and retail locations with fulfillment capabilities

Products (5)

Tool R/W Description
shopify_products R List/search products (status, type, vendor, query filters)
shopify_product R Product detail with variants, images, SEO, options
shopify_create_product W Create product with variants
shopify_update_product W Update product fields
shopify_delete_product W+C Delete product (confirm required)

Orders (7)

Tool R/W Description
shopify_orders R List orders (status, financial/fulfillment status filters)
shopify_order R Order detail with line items, addresses, transactions
shopify_search_orders R Search by order name (#1001) or query string
shopify_update_order_note W Update order note
shopify_add_order_tags W Add tags to order
shopify_close_order W Close order
shopify_cancel_order W+C Cancel order (confirm required)

Fulfillment (3)

Tool R/W Description
shopify_order_fulfillments R List fulfillment orders for an order
shopify_create_fulfillment W Create fulfillment with tracking
shopify_update_tracking W Update tracking info on existing fulfillment

Customers (5)

Tool R/W Description
shopify_customers R List customers (query filter)
shopify_customer R Customer detail with addresses, orders, spend
shopify_search_customers R Search by email, name, or phone
shopify_create_customer W Create customer
shopify_update_customer W Update customer fields

Inventory (3)

Tool R/W Description
shopify_inventory R Inventory levels by location
shopify_adjust_inventory W Relative inventory adjustment (+/-)
shopify_set_inventory W Set absolute inventory quantity

Collections (4)

Tool R/W Description
shopify_collections R List collections (smart + custom)
shopify_collection R Collection detail with products
shopify_create_collection W Create custom collection
shopify_collection_add_products W Add products to collection

Discounts (3)

Tool R/W Description
shopify_discounts R List discount codes and automatic discounts
shopify_create_discount W Create basic discount code
shopify_delete_discount W+C Delete discount (confirm required)

Metafields (3)

Tool R/W Description
shopify_metafields R List metafields (owner, namespace filters)
shopify_set_metafield W Set metafield value
shopify_delete_metafield W+C Delete metafield (confirm required)

Webhooks (3)

Tool R/W Description
shopify_webhooks R List webhook subscriptions
shopify_create_webhook W Create webhook subscription
shopify_delete_webhook W+C Delete webhook (confirm required)

Analytics (1)

Tool R/W Description
shopify_analytics R Run ShopifyQL queries for sales, traffic, and inventory analytics

Verification (1)

Tool R/W Description
shopify_verify_webhook R HMAC-SHA256 webhook signature verification

R/W legend: R = read, W = write (SHOPIFY_WRITE_ENABLED=true), W+C = write + confirm (confirm=true)

Development

make install-dev    # Install with dev + test dependencies
make test           # Run tests (171 tests)
make check          # Lint + format check + type check
make run            # Run server (stdio)

Sidereal integration

This MCP implements the ecommerce-v1 service contract with full conformance (8/8 required, 11/11 recommended, 7/7 optional, 14/14 gated operations). Registered in the Sidereal Plugin Registry as a certified plugin.

Licence

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shopify_blade_mcp-0.2.0.tar.gz (43.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shopify_blade_mcp-0.2.0-py3-none-any.whl (31.8 kB view details)

Uploaded Python 3

File details

Details for the file shopify_blade_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: shopify_blade_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 43.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for shopify_blade_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 68a854bd52ad2b4f3c799288ca2aedbf5032aaa012803510cc63bec74cb9dc4d
MD5 97bf137b408b232e31ac4df354c76dd2
BLAKE2b-256 578adbe1fdc86fc37bc317791c41626bb933ad3b5966062323cf74165eff060d

See more details on using hashes here.

Provenance

The following attestation bundles were made for shopify_blade_mcp-0.2.0.tar.gz:

Publisher: publish.yml on Groupthink-dev/shopify-blade-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shopify_blade_mcp-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for shopify_blade_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a7d666bf1b9882bf9fd5756da0acf1eaba05d84be89fe177228d0b5cc32a5a28
MD5 dffbfbc2b2c6b901d773491e88b0e243
BLAKE2b-256 145eb1cf3cbac105d962f460a5289c423e08318c9232386dcaed6f522cdd151c

See more details on using hashes here.

Provenance

The following attestation bundles were made for shopify_blade_mcp-0.2.0-py3-none-any.whl:

Publisher: publish.yml on Groupthink-dev/shopify-blade-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page