MCP.Market

Shopify MCP server

by AIWerk·io.github.AIWerk/mcp-server-shopify·v0.1.2

Shopify Admin GraphQL API: products, orders, customers, inventory, and more (read and write).

B75/100grade B
What users say
No reviews yet
Be the first
Safety scan
B75/100

full report

Adoption
New

0 stars43 downloads/wk

Reviews

Write one

Nobody has reviewed Shopify yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Shopify tools (28, 11 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • shopify_add_customer_note

    Add a note to a customer. mode=append (default) reads the current note and concatenates with two newlines; mode=replace overwrites. Append makes one extra read query.

  • shopify_add_order_notewrite action

    Add a note to an order. mode=append (default) reads the current note and concatenates with two newlines; mode=replace overwrites. Required: id, note. Append makes one extra read query.

  • shopify_add_product_tag

    Add one or more tags to a product. Required: productId, tags (non-empty array). Idempotent server-side. Returns the updated product node + userErrors.

  • shopify_adjust_inventory_level

    Adjust the available or on_hand quantity at a location by a delta (positive or negative integer, non-zero). Uses inventoryAdjustQuantities. Defaults: name=available, reason=correction. Optional: referenceDocumentUri.

  • shopify_archive_product

    Archive a product (sets status to ARCHIVED, hiding it from sale). Reversible. Destructive: requires confirm=true. Without confirm, returns a structured "would do X" response without firing.

  • shopify_cancel_orderwrite action

    Cancel an order asynchronously (orderCancel returns a job). Destructive: requires confirm=true. Default reason=OTHER, restock=true, refund=false, notifyCustomer omitted.

  • shopify_complete_draft_orderwrite action

    Complete a draft order, converting it into a real order (draftOrderComplete). Destructive: requires confirm=true. paymentPending=true marks the resulting order as payment pending instead of paid.

  • shopify_create_customerwrite action

    Create a customer (customerCreate). At least one of email/phone is required. Optional: firstName, lastName, note, tags, locale.

  • shopify_create_draft_orderwrite action

    Create a draft order. Required: lineItems (non-empty). Each line item needs quantity, plus either variantId (existing variant) or title+originalUnitPrice (custom item). Optional: email, customerId, note, tags, shippingAddress, billingAddress, useCustomerDefaultAddress.

  • shopify_create_productwrite action

    Create a new product. Required: title. Optional: descriptionHtml, productType, vendor, tags, status (ACTIVE|ARCHIVED|DRAFT, default ACTIVE), handle. Returns product + userErrors.

  • shopify_get_customer

    Get a single customer by GID or numeric ID. Returns full detail including default address, addresses (with truncation marker), tags, locale, and lifetime value.

  • shopify_get_inventory_level

    Get the inventory level (available, on_hand, committed, incoming, reserved) for an inventory item at a single location. Required: inventoryItemId, locationId.

  • shopify_get_orderwrite action

    Get a single order by GID or numeric ID. Returns full detail including line items (with truncation marker), customer, addresses, and financial totals.

  • shopify_get_product

    Get a product by GID or numeric ID (e.g. "gid://shopify/Product/123" or "123"). Returns full product detail including variants and images, with truncation markers when capped.

  • shopify_get_shop_info

    Get shop-level metadata: name, primary domain, currency, timezone, plan, billing address, contact email, weight unit.

  • shopify_list_collections

    List collections with optional Shopify search query. Returns id, title, handle, descriptionHtml, sortOrder, productsCount.

  • shopify_list_customers

    List customers with optional Shopify search query (e.g. "orders_count:>0 country:CH"). Default first=50, max=250.

  • shopify_list_locations

    List shop locations (warehouses, retail stores). By default excludes inactive and legacy locations; toggle with includeInactive / includeLegacy.

  • shopify_list_metafields

    List metafields on any HasMetafields resource (Product, ProductVariant, Customer, Order, Collection, Shop, Company, Location). Required: ownerId, ownerType. Optional: namespace filter.

  • shopify_list_orders

    List orders with optional Shopify search query (e.g. "financial_status:paid created_at:>2026-01-01"). Default first=50, max=250.

  • shopify_list_products

    List products with optional Shopify search query syntax (e.g. "status:active vendor:Acme"). Optional pagination via cursor. Default first=50, max=250.

  • shopify_mark_order_paidwrite action

    Mark an order as paid (orderMarkAsPaid). Use for offline payments where the funds were captured outside Shopify. Returns updated order + userErrors.

  • shopify_remove_product_tagwrite action

    Remove one or more tags from a product. Required: productId, tags (non-empty array). Returns the updated product node + userErrors.

  • shopify_search_customers

    Search customers by Shopify search query (e.g. "email:foo@bar.com OR last_name:Smith"). Required: query.

  • shopify_search_orders

    Search orders by Shopify search query (e.g. "name:#1001 OR email:foo@bar.com"). Required: query.

  • shopify_search_products

    Search products by Shopify search query (full-text + filters like "title:T-Shirt status:active"). Required: query. Optional pagination + sort.

  • shopify_update_customerwrite action

    Update a customer (customerUpdate). Required: id. All other fields are optional and only applied if provided.

  • shopify_update_productwrite action

    Update fields on an existing product by GID or numeric ID. Required: id. All other fields are optional and only applied if provided. Returns product + userErrors.

Public scan report

scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it

no findings
  • Code scan11 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 47 days ago12/15
  • Maintainer identityregistry namespace matches repository owner6/10
Overall 75/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Shopify compares

Against every graded E-commerce MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
75/100
higher than 50% of 2,174 E-commerce servers
Tools
28
the typical E-commerce server has 6
Tools that change things
39%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
43
more than 41% of 411 E-commerce servers with a package

What its tools let an agent do: 17 read · 11 change

Install Shopify in Claude Code, Cursor or VS Code

Runs npx -y @aiwerk/mcp-server-shopify on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add mcp-server-shopify -- npx -y @aiwerk/mcp-server-shopify
Add to Cursor

What the publisher says

From the Shopify repository's README, as published. We do not edit it. Read it on GitHub

@aiwerk/mcp-server-shopify

Shopify Admin GraphQL API MCP server. Lets an AI agent read and write to a Shopify store: products, orders, customers, inventory, draft orders, collections, locations, metafields.

Built and signed by AIWerk. MIT licensed.

Status

v0.1.0 — under active development. Tool surface and credential flow may change before v1.0.

Install

npx -y @aiwerk/mcp-server-shopify

Authentication

This server uses the modern OAuth clientcredentials grant (Shopify Dev Dashboard apps). Legacy shpat custom-app tokens are not supported.

Three environment variables:

The server automatically exchanges the client credentials for an Admin API access token and refreshes the token before its 24h expiry. No manual token rotation.

Creating the Dev Dashboard app

  1. Sign in to Shopify Partner Dashboard, then open the Dev Dashboard.
  2. Apps → Create app → Start from Dev Dashboard. Name it (e.g. my-mcp-app).
  3. Versions tab → set the scopes you need (see below) → Release.
  4. Home tab → Install app → choose your store → Install.
  5. Settings tab → copy Client ID and Client Secret.

Scopes

The 12 scopes below cover the full v0.1 tool surface. Trim to a smaller set if you want a more restricted token (e.g. read-only orders).

read_products, write_products,
read_customers, write_customers,
read_orders, write_orders,
read_draft_orders, write_draft_orders,
read_inventory, write_inventory,
read_locations,
read_publications

Tools

v0.1 ships 28 tools across the Shopify Admin GraphQL API. See src/tools/ for the implementation; tool names are shown in tools/list after the server starts.

Protected customer data

Shopify gates access to customer-bearing objects (Customer, DraftOrder, plus customer { ... } selections inside Order) behind a separate approval. Apps not approved for protected customer data will see this error from the affected tools:

GraphQL error: This app is not approved to access the Customer object.
See https://shopify.dev/docs/apps/launch/protected-customer-data

The server returns this error verbatim to the AI client. Apply for protected-data approval at the link above if you need:

  • shopifylistcustomers, getcustomer, searchcustomers, createcustomer, updatecustomer, addcustomer_note
  • shopifycreatedraftorder, completedraftorder
  • shopifygetorder, listorders, searchorders, markorderpaid, cancelorder, addordernote (these may also be affected when the response includes customer fields)

Product, inventory, location, collection, metafield, and shop-info tools are unaffected.

API version

The server pins the Shopify GraphQL Admin API to 2026-04. Bumped quarterly per the Shopify release schedule.

Local development

npm install
npm run build

export SHOPIFY_STORE_DOMAIN=your-store.myshopify.com
export SHOPIFY_CLIENT_ID=YOUR_CLIENT_ID
export SHOPIFY_CLIENT_SECRET=YOUR_CLIENT_SECRET
node dist/src/server.js

Pull the secrets from your preferred secret store however you like. For example, with pass(1):

SHOPIFY_CLIENT_ID=$(pass show aiwerk/shopify-dev-client-id)
SHOPIFY_CLIENT_SECRET=$(pass show aiwerk/shopify-dev-client-secret)
export SHOPIFY_CLIENT_ID SHOPIFY_CLIENT_SECRET

Tests

npm test

Unit tests use mocked GraphQL responses and run with no external dependencies. There is no live integration harness in this repo — for now we smoke-test against an internal AIWerk dev store before publish.

Security

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Shopify: common questions

Is Shopify MCP server safe?
Mostly: it is graded B (75/100). Read the Shopify safety report
How do I install Shopify?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Shopify need an API key?
Yes. The registry entry asks for SHOPIFY_CLIENT_ID, SHOPIFY_CLIENT_SECRET.
Is Shopify maintained?
The last commit was 86 days ago (2026-08-10). The latest release is v0.1.2.
What can I use instead of Shopify?
Servers from other publishers that do the same job: Omie MCP server, Shopware MCP server and Stripe MCP server.
How does Shopify compare with other E-commerce MCP servers?
safety score 75/100 (higher than 50% of 2,174 E-commerce servers); tools 28 (the typical E-commerce server has 6); tools that change things 39% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Shopify

Same job from other publishers: the closest match first, then the best rated.

  • Omie
    MCP server for Omie — ERP, customers, products, orders, invoices, financials
    B
  • Shopware
    Query and safely manage a Shopware 6 shop: products, orders, customers, stock, audits, reports.
    B
  • Stripe
    MCP server integrating with Stripe - tools for customers, products, payments, and more.
    A
  • HasData Walmart
    Walmart search, product pages and customer reviews on walmart.com and walmart.ca, as JSON.
    A
  • WebCake Storefront
    Build pages and manage products, orders, and content on the WebCake/StoreCake storefront builder.
    A

More from AIWerk →