Shopify MCP Server
Provides tools for managing products, inventory, orders, customers, media, and abandonments in a Shopify store. Also includes GraphQL capabilities for custom queries and mutations against the Shopify Admin API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Shopify MCP Server what are my top 5 selling products?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Shopify MCP Server for Claude Desktop
This is a simple Model Context Protocol (MCP) server that connects your Shopify store data to Claude Desktop, allowing Claude to access your store information.
Setup
Install dependencies:
npm installCreate a
.envfile with your Shopify credentials:SHOPIFY_STORE_NAME=your-store-name SHOPIFY_API_ACCESS_TOKEN=your-access-tokenBuild the TypeScript code:
npm run buildRun the MCP server:
npm startIn Claude Desktop, set the MCP server to point to this server. You should now be able to access your Shopify data.
Related MCP server: Shopify MCP Server
Features
This server provides access to the following Shopify functionality through MCP tools:
Product Tools
create_product: This tool creates a product structure with options (e.g., Color, Size) in DRAFT status. It handles product title, description, vendor, type, tags, and options configuration, but does not create variants with prices. Use this as the first step in product creation.browse_products: This tool retrieves a list of products with optional inventory information. It supports pagination and provides key product details like title, description, images, variants, and inventory levels. When provided with a specific product_id, it returns detailed information for that single product.update_variant_price: This tool updates the price and/or compare-at price of a specific product variant. It can set a new regular price, add/update a compare-at price, or remove a compare-at price by passing null or an empty string.
Inventory Tools
list_inventory_items: This tool retrieves a list of inventory items with optional filtering by SKU. It supports pagination and provides inventory details like available quantities, costs, and locations where items are stocked.get_inventory_item: This tool retrieves detailed information about a specific inventory item by ID or SKU. It returns comprehensive inventory data including tracked status, available quantities across all locations, and associated variant information.update_inventory_quantity: This tool updates the available quantity of an inventory item at a specific location. It accepts inventory item ID, location ID, and the new available quantity, returning the updated inventory level after adjustment.
Order Tools
browse_orders: This tool retrieves Shopify orders with powerful filtering options. It supports filtering by status, date range, customer email, financial status, fulfillment status, and allows searching by order number or customer details. When provided with a specific order_id, it returns detailed information for that single order.
Customer Tools
browse_customers: This tool retrieves customer information with spending data and advanced filtering options. It supports sorting by multiple fields, filtering by minimum/maximum spend, and returns detailed customer profiles. When provided with a specific customer_id, it returns comprehensive information for that single customer.
Media Tools
upload_image_from_url: This tool uploads an image from a public URL to the Shopify CDN Files section. It handles the transfer of image data to Shopify's servers, allowing you to specify alt text and optional filename for the uploaded image.
Abandonment Tools
get_abandonment: This tool retrieves detailed information about cart or checkout abandonments by ID. It returns data about abandoned carts including items, prices, customer information (if available), and abandonment timing. You can customize which fields are returned in the response.
GraphQL Tools
query_shopify: This tool executes custom GraphQL queries or mutations against the Shopify Admin API. It allows for complete flexibility to access any Shopify Admin API endpoint not covered by the specialized tools, with options to pass variables and enable mutation operations.introspect_admin_schema: This tool introspects and returns the portion of the Shopify Admin API GraphQL schema relevant to the user prompt. Only use this for the Shopify Admin API, and not any other APIs like the Shopify Storefront API or the Shopify Functions API. It accepts search terms to filter schema elements by name and provides options to focus on specific sections like types, queries, or mutations.
License
MIT
Available Tools
15 toolsadd_product_variantB
Adds a new variant (combination of options like color/size) with its price to an existing product.
Inputs: price (required), product_id (required), option_values (required), sku, +1 more.
browse_customersB
This tool retrieves customer information with spending data and advanced filtering options. It supports sorting by multiple fields, filtering by minimum/maximum spend, and returns detailed customer profiles. When provided with a specific customer_id, it returns comprehensive information for that single customer.
Inputs: limit, sort_by, max_spend, min_spend, +2 more.
browse_ordersA
This tool retrieves Shopify orders with powerful filtering options. It supports filtering by status, date range, customer email, financial status, fulfillment status, and allows searching by order number or customer details. When provided with a specific order_id, it returns detailed information for that single order.
Inputs: limit, search, status, reverse, +7 more.
browse_productsA
This tool retrieves a list of products with optional inventory information. It supports pagination and provides key product details like title, description, images, variants, and inventory levels. When provided with a specific product_id, it returns detailed information for that single product.
Inputs: limit, product_id, include_inventory.
create_productA
This tool creates a product structure with options (e.g., Color, Size) in DRAFT status. It handles product title, description, vendor, type, tags, and options configuration, but does not create variants with prices. Use this as the first step in product creation.
Inputs: name (required), tags, vendor, options, +3 more.
get_abandonmentA
This tool retrieves detailed information about cart or checkout abandonments by ID. It returns data about abandoned carts including items, prices, customer information (if available), and abandonment timing. You can customize which fields are returned in the response.
Inputs: id (required), fields.
get_customer_contactsD
Inputs: limit, search, created_at_max, created_at_min.
get_customer_phoneD
Inputs: order_id, customer_email.
get_inventory_itemA
This tool retrieves detailed information about a specific inventory item by ID or SKU. It returns comprehensive inventory data including tracked status, available quantities across all locations, and associated variant information.
Inputs: id, sku.
introspect_admin_schemaA
This tool introspects and returns the portion of the Shopify Admin API GraphQL schema relevant to the user prompt. Only use this for the Shopify Admin API, and not any other APIs like the Shopify Storefront API or the Shopify Functions API.
It takes two arguments: query and filter. The query argument is the string search term to filter schema elements by name. The filter argument is an array of strings to filter results to show specific sections.Inputs: query (required), filter.
list_inventory_itemsA
This tool retrieves a list of inventory items with optional filtering by SKU. It supports pagination and provides inventory details like available quantities, costs, and locations where items are stocked.
Inputs: limit, cursor, sku_filter.
query_shopifyA
This tool executes custom GraphQL queries or mutations against the Shopify Admin API. It allows for complete flexibility to access any Shopify Admin API endpoint not covered by the specialized tools, with options to pass variables and enable mutation operations.
Inputs: query (required), variables, allow_mutations.
update_inventory_quantityA
This tool updates the available quantity of an inventory item at a specific location. It accepts inventory item ID, location ID, and the new available quantity, returning the updated inventory level after adjustment.
Inputs: available (required), location_id (required), inventory_item_id (required).
update_variant_priceA
This tool updates the price and/or compare-at price of a specific product variant. It can set a new regular price, add/update a compare-at price, or remove a compare-at price by passing null or an empty string.
Inputs: variant_id (required), new_price, new_compare_at_price.
upload_image_from_urlA
This tool uploads an image from a public URL to the Shopify CDN Files section. It handles the transfer of image data to Shopify's servers, allowing you to specify alt text and optional filename for the uploaded image.
Inputs: image_url (required), alt_text, filename.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Most resource-specific tools are distinct, but the two undocumented customer tools (get_customer_phone, get_customer_contacts) blur into the same customer area and overlap with browse_customers. Without descriptions, an agent cannot reliably choose among them, and query_shopify is a catch-all that further obscures boundaries.
All names use snake_case verb_noun style, but retrieval verbs are inconsistent: browse_products/browse_orders/browse_customers, list_inventory_items, get_inventory_item, get_customer_phone. This is readable but not a predictable convention.
15 tools is a reasonable size for the broad Shopify Admin domain, covering products, variants, inventory, orders, customers, abandonments, images, and GraphQL access. A few tools (get_customer_phone, get_customer_contacts) seem redundant or narrow, but the count itself is not excessive.
Specialized coverage is strong for product creation and inventory, but missing obvious CRUD operations like updating/deleting products or mutating orders/customers. The query_shopify GraphQL fallback fills these gaps, so agents can complete workflows even if the specialized surface is incomplete.
Maintenance
Related MCP Connectors
Connect AI to store orders, products and inventory with scoped access and human approvals.
Ask Claude, ChatGPT or Cursor about your Shopify SEO, answered from Google Search Console data.
Run Meta Ads and Google Ads for your Shopify store from Claude, ChatGPT or Cursor, with the store's own Shopify, Stripe or Klaviyo revenue next to ad spend. New campaigns are created paused.
Connect Amazon Seller Central to Claude or ChatGPT via MCP. Orders, inventory, pricing, fees, FBA.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Shopify store data (products, customers, orders) via GraphQL, providing comprehensive tools for store management through Claude.116 npm3MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to access and manage Shopify store data including products, orders, inventory, and analytics through the Model Context Protocol. It allows users to query store performance and customer details using natural language.-
- AlicenseNot gradedqualityCmaintenanceEnables querying Shopify store data (products, customers, orders) via GraphQL API using read-only tools. Works with Claude Desktop via npx command.24 npmMIT
- FlicenseNot gradedqualityDmaintenanceAI-powered Shopify Admin via Claude + MCP, enabling full store management through conversation including products, collections, analytics, and bulk operations.-