← Back to directory
S

Shopify MCP Server

Community
Manage your Shopify store's products, customers, and orders through natural language.
Category
Other #101 of 230
Stars
★ 236 Popular
Transport
stdio (local process)
Runtime
Node.js 18+
Credentials
API key / credential required
License
MIT
Last commit
⚠
Tools
31
56FMRS · C

The source material contains no third-party review or user rating data; the above is based solely on the project's README description.

Strongest · Documentation 16/20 Weakest · Reliability 8/20

Reliability
8/20
Security and permissions
9/20
Maintenance
10/20
Documentation
16/20
Setup experience
13/20
Why each score
Reliability 8/20
Only a README was supplied—no source code, test files, or CI workflows were available to verify that the 31 declared tools actually behave as described or that the MCP init/tool-list handshake completes cleanly. The README's per-tool input/output descriptions are detailed and internally consistent, suggesting a reasonably mature implementation, but there is no reproducible execution evidence (no committed tests, no CI logs). Per the static calibration rule, reliability is capped at 12 without such evidence, so a modest score reflects 'plausible but unverified.'
Security and permissions 9/20
Credentials can be passed via CLI flags (--clientSecret/--accessToken) or a .env file; CLI flags carry the usual risk of exposure via shell history or process listings, though all documented examples use placeholders rather than real secrets. The tool surface includes several irreversible operations (delete-product, delete-customer, order-cancel explicitly marked 'Irreversible', refund-create, order-mark-as-paid, complete-draft-order), but these require explicit required parameters (e.g., reason, restock) rather than executing with silent defaults, so this falls short of the full red-line 'irreversible action defaults without confirmation' scenario. Still, no built-in server-side confirmation step is documented, and least-privilege scoping is left entirely to the user's OAuth app configuration, which limits the score.
Maintenance 10/20
The repository is MIT-licensed, not archived, and shows 235 stars with 10 open issues, indicating some ongoing activity, but no commit history, release/version cadence, changelog, or security-response channel was provided in the materials. Absent evidence is treated as a deduction rather than assumed positive, yielding a mid-range score.
Documentation 16/20
The README is thorough, covering both authentication methods (OAuth client credentials and legacy static tokens), Claude Desktop/Claude Code configuration examples, an environment-variable alternative, detailed per-tool parameter documentation for all 31 tools, pagination/sorting/filtering conventions, an order query filter reference table, and a troubleshooting note about package-name confusion. It falls short of full marks because it omits API cost/rate-limit disclosure, does not map required OAuth scopes to individual tools, and lacks systematic error-code/failure-mode documentation.
Setup experience 13/20
Setup steps are clear: npx-based execution, optional global install, JSON config examples for Claude Desktop, a Claude Code CLI command, and an equivalent .env-based flow, with both new and legacy auth options documented — low friction for mainstream client users. However, per the static calibration rule, setup cannot exceed 15 without verifiable execution evidence (CI plus committed tests covering key paths), so the score is high within that cap but not higher.

Static review · not runListed 2026-08-26

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkChanges third-party account data

Best for

  • Shopify merchants or support staff who want conversational access to store data
  • Developers building e-commerce operations assistants on Claude Desktop, Claude Code, or Cursor
  • Technical users comfortable creating a Shopify custom app and obtaining API credentials

Not for

  • Users without a Shopify custom app or unable to obtain a Client ID/Secret or access token
  • Storefront/customer-facing checkout use cases — this tool operates against the Admin API only
  • Compliance scenarios requiring strict audit trails or permission scoping beyond what the README's Admin API scopes provide

Required permissions

  • Shopify Admin API scopes: read_products / write_products
  • read_customers / write_customers
  • read_orders / write_orders
  • Full read/write access to the connected store via OAuth Client ID/Secret or a static shpat_ access token

Risks and side effects

  • The README explicitly flags order-cancel as an irreversible operation
  • Full read/write access to customer personal data (name, email, phone, address) creates exposure risk from data leaks or misuse
  • Client Secret or static access tokens configured as plaintext CLI arguments or environment variables risk credential exposure
  • This is an independently maintained third-party open-source project, not an official Shopify release, so users should review the code themselves

Setup

Before you start

Runtime:Node.js 18+

SHOPIFY_CLIENT_SECRET optionalsecret Client Secret of a Dev Dashboard app; can be passed via --clientSecret instead. Sensitive credential from the same page as the Client ID.
SHOPIFY_ACCESS_TOKEN optionalsecret Static shpat_ access token for legacy custom apps; can be passed via --accessToken instead. Found in the custom app's API credentials page.
Other optional settings (3)
SHOPIFY_CLIENT_ID optional Client ID of a Dev Dashboard app; can be passed via --clientId instead. Obtained after creating an app in Shopify admin under Settings > Apps and sales channels.
MYSHOPIFY_DOMAIN optional Your store domain (e.g. your-store.myshopify.com); can be passed via --domain instead.
SHOPIFY_API_VERSION optional Optional Shopify API version, defaults to 2026-01; can also be set via --apiVersion.
  1. Ensure Node.js 18 or higher is installed.
  2. In Shopify admin, create a custom app: as of January 2026, new apps are created in the Dev Dashboard with Admin API scopes for read/write_products, read/write_customers, and read/write_orders, then installed to obtain a Client ID and Client Secret; alternatively, reuse an existing app's static shpat_ access token.
  3. Add the mcpServers entry from the README to the Claude Desktop config file (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json; Windows: %APPDATA%/Claude/claude_desktop_config.json), or register it with Claude Code via claude mcp add shopify -- npx shopify-mcp ...; alternatively, set the credentials as environment variables in a .env file and run npx shopify-mcp, or install globally with npm install -g shopify-mcp and run the shopify-mcp command directly.
  4. Optionally pin the Shopify API version with --apiVersion or SHOPIFY_API_VERSION (default 2026-01).
claude_desktop_config.json
{"mcpServers":{"shopify":{"command":"npx","args":["shopify-mcp","--clientId","<YOUR_CLIENT_ID>","--clientSecret","<YOUR_CLIENT_SECRET>","--domain","<YOUR_SHOP>.myshopify.com"]}}}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "shopify": {
      "command": "npx",
      "args": [
        "shopify-mcp",
        "--clientId",
        "<YOUR_CLIENT_ID>",
        "--clientSecret",
        "<YOUR_CLIENT_SECRET>",
        "--domain",
        "<YOUR_SHOP>.myshopify.com"
      ]
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add shopify -- npx shopify-mcp --clientId '<YOUR_CLIENT_ID>' --clientSecret '<YOUR_CLIENT_SECRET>' --domain '<YOUR_SHOP>.myshopify.com'

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

Add the server to Claude Desktop or Cursor using the npx config, restart the client, and confirm tools like get-products appear in the tool list; then ask for your products to verify the Shopify connection works.

Troubleshooting

  1. Check Claude Desktop's MCP logs: `tail -n 20 -f ~/Library/Logs/Claude/mcp*.log`
  2. Confirm the installed package is `shopify-mcp`, not the similarly named `shopify-mcp-server`
  3. Verify Node.js version is 18 or higher
  4. Confirm the Shopify custom app has the required Admin API scopes configured and installed
  5. Make sure the authentication method used (client credentials vs. static token) matches what's in the config
  6. Verify the --domain value is formatted as `<store>.myshopify.com`

Things to try

Once connected, you can ask your AI assistant things like:

  • Search my store for products with the tag 'sale' and list the first 10.
  • Find order #77235 and mark it as paid.
  • Create a new customer named Jane with email [email protected] and tag her 'vip'.
  • Show the metafields on my top 5 active products.

Tools 31

get-products read-only
List or search products by title, with pagination, sorting, and Shopify query-syntax filtering.
get-product-by-id read-only
Fetch full details for a single product by GID, including SEO, options, media, variants, and collections.
create-product writes
Create a new product; when using productOptions, Shopify only generates one default variant, so use manage-product-variants afterward to create real variants.
update-product writes
Update an existing product's title, description, status, tags, SEO, metafields, and collection membership.
delete-product destructive
Delete a product.
manage-product-options writes
Create, update, or delete product options such as size or color.
manage-product-variants writes
Bulk create or update product variants (price, SKU, tracking, barcode, weight, option values).
delete-product-variants destructive
Delete one or more variants from a product.
Show 23 more tools
get-customers read-only
List customers with free-text or Shopify query-syntax search, pagination, and sorting.
get-customer-by-id read-only
Fetch full details for a single customer by numeric ID, including addresses, tags, spend, and metafields.
create-customer writes
Create a new customer with name, contact info, tags, note, tax status, address, and metafields.
update-customer writes
Update a customer's information, including email marketing consent and metafields.
delete-customer destructive
Delete a customer.
customer-merge destructive
Merge two customer records into one, optionally choosing which record's fields to keep.
manage-customer-address writes
Create, update, or delete a customer's mailing address, and optionally set it as default.
get-orders read-only
Get orders filtered by status or raw Shopify query syntax, with pagination and sorting.
get-order-by-id read-only
Look up an order by name (#77235), numeric ID, or full GID, returning pricing, addresses, line items, discounts, and refund status.
update-order writes
Update an order's tags, email, note, phone, PO number, custom attributes, metafields, or shipping address.
get-customer-orders read-only
List orders for a specific customer, with pagination and sorting.
order-cancel destructive
Cancel an order with options for refunding, restocking, and customer notification. Irreversible.
order-close-open writes
Close or reopen an order.
order-mark-as-paid writes
Mark an order as paid for manual or offline payments.
create-fulfillment writes
Create a fulfillment (mark items shipped) with optional tracking information.
refund-create destructive
Create a full or partial refund with optional restocking.
create-draft-order writes
Create a draft order for phone/chat sales, invoicing, or wholesale, with variant or custom line items.
complete-draft-order writes
Convert a draft order into a real order.
get-metafields read-only
Get metafields for any Shopify resource such as products, orders, or customers.
set-metafields writes
Create or update up to 25 metafields atomically on any resource.
delete-metafields destructive
Delete metafields from any Shopify resource.
inventory-set-quantities writes
Set absolute available or on-hand inventory quantities at specific locations.
manage-tags writes
Add or remove tags on any taggable resource such as orders, products, customers, or draft orders.

Use cases

Querying, creating, and updating the product catalog conversationally
Support staff quickly looking up customer details and order history
Processing order cancellations, refunds, and fulfillments
Bulk adjusting inventory quantities or product/customer tags
Creating and completing draft orders for phone, chat, or wholesale sales

Supported clients

Claude Desktop
Claude Code
CursorPartial support

Listed from the project's documentation, not tested by this site.

Overview

Shopify MCP Server is a community-built TypeScript project that exposes Shopify's GraphQL Admin API (2026-01) to MCP hosts such as Claude and Cursor. It provides 31 tools covering product, customer, order, draft order, metafield, inventory, and tag management, with cursor-based pagination, sorting, and Shopify query-syntax filtering across list endpoints. Authentication supports two modes: OAuth client credentials (Client ID/Secret) for apps created in Shopify's Dev Dashboard since January 2026 — with automatic token exchange and refresh — or a legacy static shpat_ access token for existing custom apps. The project is MIT-licensed and maintained by an individual developer (GeLi2001), not by Shopify.

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 659 · Tools 11 Compare with this →

Source revision c90faaf43402 Data synced 2026-10-19 Read the FMRS scoring method