Shopify logo
E-commerce
Live

Shopify MCP server

Ask your store a question instead of clicking through the admin.

Tools
24
Read-only
14
Write
10
Off by default
Destructive
2
Flagged distinctly
What it does

Shopify through an assistant

Connect one Shopify store and an assistant can read orders with their line items, search the catalogue, check inventory per location, and run ShopifyQL analytics against your own data. A generic GraphQL query tool covers the questions the named tools don't. Product, collection, discount and inventory writes exist and stay switched off until you turn them on.

  • Orders with line items, fulfilment state and customer history
  • Product, variant and collection search across the catalogue
  • Inventory levels per location, and the low-stock questions that follow
  • ShopifyQL analytics queries against your own store data
  • A GraphQL escape hatch, capped at the scopes you already granted
  • Create products, collections and discounts, set inventory, fulfil orders (opt-in)
Ask your assistant

What people actually ask

Real questions, answered from live Shopify data.

Which orders from last week are still unfulfilled, and what's in them?

shopify_list_ordersshopify_get_order

How many units of the black hoodie are left, and at which location?

shopify_search_productsshopify_get_inventory_levels

What were my top-selling products by revenue last month?

shopify_run_analytics_query
Tool catalogue

24 Shopify tools

Grouped by what they touch. Every tool is individually toggleable — you expose only what you want.

Products & collections

13 tools6 read-only · 7 write

Showing 10 of 10 tools

  • shopify_add_to_collection
    Write

    Add one or more products to an existing manual collection.

  • shopify_bulk_update_product_status
    Write
    Destructive

    Update the status of multiple products at once, up to 25 per call. Setting status to ARCHIVED hides products from the storefront. There is no dedicated bulk-status mutation on Shopify's API -- this sends one GraphQL request containing an aliased productUpdate call per product, rather than one HTTP round trip per product.

  • shopify_create_collection
    Write

    Create a new collection. Pass product_ids for a manual collection of specific products, or rules for a smart collection that auto-populates from conditions (tag, vendor, type, title, or price). Exactly one of product_ids or rules.

  • shopify_create_product
    Write

    Create a new product in your Shopify store (saved as draft by default).

  • shopify_get_collection
    Read-only

    Retrieve one Shopify collection by ID: title, description, handle, and product count.

  • shopify_get_inventory_levels
    Read-only

    Inventory levels for every variant of a product, across all locations. Call this before shopify_update_inventory when passing compare_quantity, to get the current value to compare against.

  • shopify_get_product
    Read-only

    Get detailed information about a specific Shopify product.

  • shopify_list_products
    Read-only

    List products from your Shopify store.

  • shopify_search_collections
    Read-only

    Search or list the store's collections by title, handle, or type. Results capped at 50 per call.

  • shopify_search_products
    Read-only

    Search the store's products with Shopify's query syntax (e.g. 'status:active AND vendor:Nike', 'price:<=25'), cursor pagination, and sorting. Richer than shopify_list_products, which only filters by status/title.

+ 3 more products & collections tools see the full catalogue

Orders

3 tools2 read-only · 1 write

Showing 3 of 3 tools

  • shopify_fulfill_order
    Write

    Mark a Shopify order as fulfilled and optionally add tracking information.

  • shopify_get_order
    Read-only

    Retrieve a specific Shopify order by ID.

  • shopify_list_orders
    Read-only

    List recent orders from Shopify with filtering by status and date.

Analytics & shop

2 tools2 read-only · 0 write

Showing 2 of 2 tools

  • shopify_get_shop_info
    Read-only

    Basic information about the connected Shopify store: name, domain, email, plan, currency, timezone, and country.

  • shopify_run_analytics_query
    Read-only

    Run a ShopifyQL analytics query against the store. Always use FROM...SHOW syntax. Examples: "FROM sales SHOW gross_sales, orders TIMESERIES day SINCE -30d UNTIL today", "FROM sales SHOW gross_sales, orders GROUP BY product_title ORDER BY gross_sales DESC LIMIT 10", "FROM sessions SHOW sessions, conversion_rate TIMESERIES day SINCE -30d UNTIL today".

Customers

1 tool1 read-only · 0 write

Showing 1 of 1 tools

  • shopify_list_customers
    Read-only

    List customers from your Shopify store.

More tools

5 tools3 read-only · 2 write

Showing 5 of 5 tools

  • shopify_create_discount
    Write

    Create a price rule and discount code in your Shopify store.

  • shopify_graphql_mutation
    Write
    Destructive

    Execute a GraphQL mutation against the Shopify Admin API, for writes with no dedicated tool (metafields, metaobjects, pages, blogs, translations, publications, non-live theme files, etc.). Some mutations are always blocked for safety: refunds, gift card writes, staff/collaborator management, and theme deletion/publishing. Theme file writes are allowed only on a non-live theme -- pass themeId as a $themeId variable, never inlined, so it can be checked first. Use shopify_graphql_schema to look up the exact mutation name and input fields before calling.

  • shopify_graphql_query
    Read-only

    Execute a read-only GraphQL query against the Shopify Admin API, for data with no dedicated tool (metafields, metaobjects, pages, blogs, markets, translations, publications, gift cards, etc.). Use shopify_graphql_schema first to look up the correct types and fields. Can only reach whatever this connection's granted scopes already cover.

  • shopify_graphql_schema
    Read-only

    Look up a type, query, or mutation on the Shopify Admin GraphQL schema: its fields, arguments, and (for input types) input fields. Use before shopify_graphql_query/shopify_graphql_mutation to confirm exact names rather than guessing. Pass 'QueryRoot' or 'Mutation' to list everything available.

  • shopify_validate_graphql
    Read-only

    Validate a GraphQL query or mutation against the Shopify Admin schema before executing it with shopify_graphql_query/shopify_graphql_mutation -- catches hallucinated fields, wrong types, and syntax errors early.

Every tool name and description, machine-readable: /llms-full.txt

Access & safety

You decide what it can touch

The same model applies to every connector, and it defaults closed.

Your own credential

You supply your own Shopify key, scoped however you like on their side. It is encrypted with AES-256-GCM and never returned by any API response or tool call.

Writes off by default

A new connection switches on a read-oriented default set only. Every write tool must be enabled deliberately before any client can call it.

Roles enforced server-side

READ, WRITE and ADMIN gate tool invocation on the server, not just in the UI. A READ member's token is refused any write tool.

Setup

Connect Shopify in minutes

No infrastructure to run. Copy one URL and one token into your client.

  1. 1Create a free workspace and connect Shopify.
  2. 2Choose which tools to expose — writes stay off until you enable them.
  3. 3Copy your MCP endpoint URL and bearer token.
  4. 4Paste them into Claude, Cursor, or any MCP client.
claude_desktop_config.json
{
  "mcpServers": {
    "serve-mcp": {
      "url": "https://servemcp.com/api/mcp/your-workspace",
      "transport": "http",
      "headers": {
        "Authorization": "Bearer smcp_..."
      }
    }
  }
}

Put Shopify in front of your assistant

Free plan, no card required. Connect in minutes.