Skip to main content
Glama
Shopify MCP Server

Shopify MCP Server

by codeyogi911

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

  1. Install dependencies:

    npm install
  2. Create a .env file with your Shopify credentials:

    SHOPIFY_STORE_NAME=your-store-name
    SHOPIFY_API_ACCESS_TOKEN=your-access-token
  3. Build the TypeScript code:

    npm run build
  4. Run the MCP server:

    npm start
  5. In 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 tools
add_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

    C2.7/5.0

    Scored across 15 tools

    Disambiguation2/5

    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.

    Naming Consistency3/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables 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.
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables querying Shopify store data (products, customers, orders) via GraphQL API using read-only tools. Works with Claude Desktop via npx command.
      24 npm
      MIT