# shopify-mcp-pro [Health: Active]

**Category:** 🛒 E-Commerce  
**Repository:** https://github.com/den-indance/shopify-mcp-pro  
**GitHub Stars:** 1  
**npm Downloads (last month):** 225  
**Views:** 7  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/shopify-mcp-pro

## Description
Shopify MCP server with real analytics (ShopifyQL), auto-refresh auth, and Shopify API 2026-04.

## Tools
Capabilities this server exposes over MCP:

- **listProducts** — List products from the Shopify store
- **getProduct** — Get a specific product by ID
- **createProduct** — Create a new product
- **updateProduct** — Update an existing product
- **listOrders** — List orders from the Shopify store
- **getOrder** — Get a specific order by ID
- **listCustomers** — List customers from the Shopify store
- **getCustomer** — Get a specific customer by ID
- **getInventoryLevels** — Get inventory levels for a product variant
- **adjustInventory** — Adjust inventory quantity
- **setMetafield** — Set a metafield on a resource
- **listCollections** — List collections from the Shopify store
- **listLocations** — List all store locations
- **getShopInfo** — Get shop information and analytics
- **listDiscounts** — List discount codes and automatic discounts
- **createDiscountCode** — Create a discount code
- **listFulfillmentOrders** — List fulfillment orders
- **createFulfillment** — Create a fulfillment for an order
- **getShippingZones** — Get shipping zones and rates
- **listTransactions** — List transactions for an order
- **createRefund** — Create a refund for an order
- **listGiftCards** — List gift cards
- **createGiftCard** — Create a gift card
- **listPages** — List store pages
- **createPage** — Create a new page
- **listBlogs** — List blogs
- **createArticle** — Create a blog article
- **createRedirect** — Create a URL redirect
- **listThemes** — List installed themes
- **listWebhooks** — List configured webhooks
- **createWebhook** — Create a webhook subscription
- **listDraftOrders** — List draft orders
- **createDraftOrder** — Create a draft order
- **listMetaobjectDefinitions** — List all metaobject type definitions configured in the store. Use this to discover valid `type` values (e.g. `shopify--color-pattern`, `product.material`) before calling listMetaobjects. Returns id/type/name/description + field schema per definition.
- **listMetaobjects** — List metaobjects of a given type. The `type` arg must match a definition exactly (case-sensitive identifier like `shopify--color-pattern`). Run listMetaobjectDefinitions first to discover what types exist in this store. Non-existent type → empty result, not error.
- **createMetaobject** — Create a metaobject
- **listMarkets** — List configured markets
- **listPriceRules** — List discounts (covers code, automatic, BxGy, free-shipping). Replaces deprecated priceRules query with discountNodes in 2026-04+.
- **listAbandonedCheckouts** — List abandoned checkouts
- **runShopifyQL** — Run an arbitrary ShopifyQL analytics query against the store. Same data as Admin → Analytics. Canonical clause order: FROM → SHOW → WHERE → SINCE/UNTIL/DURING → GROUP BY → ORDER BY → LIMIT. Dates are BARE (no quotes): `SINCE 2026-01-01 UNTIL today` or relative `SINCE -30d UNTIL today`. Use `GROUP BY` (full keyword), not `BY`. Dimensions in SHOW must also appear in GROUP BY. Verified datasets: `sales` (metrics: total_sales, gross_sales, net_sales, orders, average_order_value; dims: product_title, billing_country, customer_type), `sessions` (metrics: sessions, online_store_visitors, conversion_rate; dims: referrer_source, utm_source, utm_medium, referrer_host). Note: `orders` and `products` are NOT valid ShopifyQL datasets — use GraphQL tools instead. Returns { parseErrors: [String], tableData: { columns: [{name,dataType,displayName}], rows: JSON } }. parseErrors is non-empty when the query is syntactically/semantically invalid — read it for the exact field/dataset name issue.
- **getSalesReport** — Sales analytics via ShopifyQL. Default columns: total_sales, gross_sales, net_sales, total_orders, average_order_value over the date range. Pass `query` to override with raw ShopifyQL.
- **getProductAnalytics** — Get product performance analytics
- **getCustomerAnalytics** — Get customer behavior analytics
- **getInventoryReport** — Get inventory analytics and forecasting
- **getMarketingReport** — Get marketing campaign performance
- **getFinancialSummary** — Get financial summary including revenue, expenses, and profit
- **getConversionReport** — Product performance via ShopifyQL. Default: top 25 products by total_sales over date range. Pass `query` to override with raw ShopifyQL (e.g. session/conversion-funnel queries).
- **getAbandonmentReport** — Get cart and checkout abandonment analytics
- **getTrafficReport** — Orders grouped by traffic source via ShopifyQL. Default: total_sales/orders/AOV by referrer_source. Pass `query` to override.
- **getCustomReport** — Alias for runShopifyQL — pass a raw ShopifyQL string in `query`. See runShopifyQL description for syntax.
- **listCompanies** — List B2B companies
- **createCompany** — Create a B2B company

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "shopify-mcp-pro": {
    "command": "npx",
    "args": ["-y","@den.dance/shopify-mcp-pro"],
    "env": {
      "SHOPIFY_STORE_DOMAIN": "",
      "SHOPIFY_CLIENT_ID": "",
      "SHOPIFY_CLIENT_SECRET": ""
    }
  }
}
```

**Requires environment variables:** `SHOPIFY_STORE_DOMAIN`, `SHOPIFY_CLIENT_ID`, `SHOPIFY_CLIENT_SECRET` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What shopify-mcp-pro MCP server does

The shopify-mcp-pro MCP server exposes Shopify store operations to MCP-compatible AI clients. Its tools cover product lookup and management, inventory inspection and adjustment, orders, customers, fulfillment, discounts, content, store configuration, and financial records. The exact operations available depend on the Shopify Admin API scopes granted to the custom app.

For reporting, the server includes tools for sales totals, order counts, average order value, top-selling products, conversion funnels, traffic by referrer, and cart abandonment over a date range. The `runShopifyQL` tool accepts raw ShopifyQL, Shopify’s SQL-like analytics language, so an agent can request reports beyond the predefined queries.

## How it works

The server runs locally through `npx @den.dance/shopify-mcp-pro` and communicates with an MCP client over stdio by default. It can also run in SSE mode for HTTP-based access or cloud deployment. SSE exposes `/sse` for the event stream, `/messages?sessionId={id}` for client messages, and `/health` for a health check.

Authentication uses a Shopify custom app’s Client ID and Client Secret rather than a static access token. The server refreshes OAuth tokens automatically. Shopify Admin API version 2026-04 is the default, and the version can be changed with an environment variable. Tools that lack the required Shopify scope return authorization errors without disabling unrelated tools.

## Setup and configuration

Create a custom app in Shopify Admin, enable the required Admin API scopes, install the app, and obtain its Client ID and Client Secret. At minimum, product and inventory operations use product and inventory scopes, while analytics requires `read_analytics` and `read_reports`. ShopifyQL queries also require Level 2 customer data access in the app settings.

Set `SHOPIFY_STORE_DOMAIN`, `SHOPIFY_CLIENT_ID`, and `SHOPIFY_CLIENT_SECRET` before starting the process. Optional settings control API version, log level, transport mode, and the SSE port. Claude Desktop can load the server through its MCP configuration file, and Claude Code can add it with `claude mcp add` and environment flags.

## Tools and capabilities

The shopify-mcp-pro MCP server includes tools to:

- Filter, sort, paginate, retrieve, create, and update products.
- Inspect inventory across locations and adjust stock quantities.
- List or retrieve orders, create draft orders, and handle fulfillment and refunds.
- List customers and obtain customer analytics.
- Create discount codes, pages, articles, redirects, webhooks, gift cards, companies, and metaobjects.
- Inspect themes, locations, markets, shipping zones, and store information.
- Run predefined reports or submit direct ShopifyQL queries.

Use raw ShopifyQL for queries such as sales by product, sessions by referrer, or orders within a date range, provided the Shopify app has the necessary access.

## Limitations and notes

This server does not grant Shopify permissions by itself; each operation depends on the scopes assigned to the custom app. Analytics access needs additional reporting permissions, and raw ShopifyQL has the extra customer-data requirement described above. Keep Client ID, Client Secret, and other credentials in environment variables rather than committing them to source control. The README recommends separate apps with minimal scopes for different use cases and regular Client Secret rotation.

_Full upstream README: https://allmcps.com/mcp/shopify-mcp-pro/readme_

