Suggest a server AI tools directory →

Shopify MCP server

Last verified: 2026-09

Catalog and orders on a Shopify store.

Community Chat, mail & docs Needs a secret Claude Desktop, Cursor, Windsurf, Claude Code

What it does

Shopify Admin GraphQL via MCP. Products, customers, orders — read and write depending on the custom app scopes (read_products vs write_orders, etc.).

It sits in Chat, mail & docs: These servers act as the bot or the integration you install.

Good for

  • get-products on a dev store with a small page size.
  • Read orders on a staging shop, never write_orders on live.
  • Look up a customer the support thread named — on a copy store.
  • Use cursor pagination instead of asking for 'all orders'.

Tools

  • get-products / get-customers / get-orders / get-customer-orders — List with cursor pagination and query filters.
  • write counterparts — When the app has write_* scopes — check the connected tool list.

Config (Claude Desktop / Cursor / Windsurf)

Paste the JSON below. Same mcpServers shape. Replace placeholder paths and secrets. Windows paths look like C:\\Users\\you\\project, not /path/to. Host-side steps →

Claude Desktop

OSConfig file
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json (usually C:\Users\<you>\AppData\Roaming\Claude\)
Linux~/.config/Claude/claude_desktop_config.json

Cursor

ScopemacOS / LinuxWindows
This project.cursor/mcp.json in the repo root
This user~/.cursor/mcp.json %USERPROFILE%\.cursor\mcp.json

Windsurf

OSConfig file
macOS / Linux~/.codeium/windsurf/mcp_config.json
Windows%USERPROFILE%\.codeium\windsurf\mcp_config.json
{
  "mcpServers": {
    "shopify": {
      "command": "npx",
      "args": [
        "-y",
        "shopify-mcp"
      ],
      "env": {
        "SHOPIFY_ACCESS_TOKEN": "shpat_...",
        "SHOPIFY_DOMAIN": "store.myshopify.com"
      }
    }
  }
}

Windsurf remote MCP: use serverUrl instead of url if the block below is HTTP.

One-liner: npx -y shopify-mcp

Secrets it wants: SHOPIFY_ACCESS_TOKEN, SHOPIFY_DOMAIN

Source repo →

How to get started

  1. Create a custom app on the store. Grant the smallest Admin scopes. Copy the Admin API token and shop domain.
  2. Ask for get-products with a small page size.
  3. Never give write_orders on a live store to evaluate the server.

Access risk

Customer PII and the ability to mutate inventory/orders. This is the store.

When to skip it

Skip it for Stripe-only billing or a HubSpot CRM that is not the store.

Instead: Stripe, HubSpot, Airtable.

Vs alternatives

ServerOfficial?Needs a secret?Best for
ShopifyNoYesCatalog and orders on a Shopify store.
StripeNoYesLook up customers, payments, and products.
HubSpotNoYesContacts and deals in HubSpot.
AirtableNoYesRead and write Airtable bases.

More in Chat, mail & docs

All 18 in this category →

FAQ

Which token?

A custom app Admin API token on one shop. Grant read_products first. write_orders on a live store is how inventory and refunds go wrong.

PII?

Customers and orders are other people's data. GDPR still applies in a chat.

Shopify or Stripe?

Store vs payments. If checkout is Shopify, start here. If billing is Stripe-only, use Stripe.

GraphQL or REST?

This community server is Admin GraphQL-shaped (get-products, etc.).