MCP ExplorerExplorer

Shopify Mcp

@tanush-yadavon 10 months ago
2 MIT
FreeCommunity
AI Systems
MCP to query your shopify store

Overview

What is Shopify Mcp

shopify-mcp is an MCP Server designed to interact with the Shopify API, allowing users to query their Shopify store data such as products, customers, and orders using GraphQL.

Use cases

Use cases for shopify-mcp include managing product inventories, retrieving customer information, processing orders, and integrating Shopify data with other applications.

How to use

To use shopify-mcp, clone the repository, install the necessary dependencies, and configure your Shopify custom app access token and store domain in the environment variables. Then, set up the Claude Desktop configuration to run the MCP server.

Key features

Key features include product, customer, and order management tools, direct integration with GraphQL, and robust error handling capabilities.

Where to use

shopify-mcp is primarily used in e-commerce environments where Shopify stores are managed, enabling seamless data interaction and management.

Content

Shopify MCP Server

MCP Server for Shopify API, enabling interaction with store data (products, customers, orders, etc.) via GraphQL.

Features

Provides tools for product, customer, and order management, direct GraphQL integration, and clear error handling.

Prerequisites

  1. Node.js (v16+)
  2. Shopify Custom App Access Token

Installation

git clone https://github.com/pashpashpash/shopify-mcp-server.git
cd shopify-mcp-server
npm install
npm run build

Shopify Setup & Configuration

  1. Create Custom App: In Shopify admin > Settings > Apps and sales channels > Develop apps > Create an app.
  2. Configure Scopes: Grant read/write permissions for products, customers, and orders.
  3. Install App & Get Token: Install the app and copy the Admin API access token.
  4. Create .env file in the project root:
    SHOPIFY_ACCESS_TOKEN=your_access_token
    MYSHOPIFY_DOMAIN=your-store.myshopify.com
    
  5. Configure Claude Desktop (claude_desktop_config.json):
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%/Claude/claude_desktop_config.json
    {
      "mcpServers": {
        "shopify": {
          "command": "node",
          "args": [
            "path/to/shopify-mcp-server/dist/index.js"
          ],
          "env": {
            "SHOPIFY_ACCESS_TOKEN": "your_access_token",
            "MYSHOPIFY_DOMAIN": "your-store.myshopify.com"
          }
        }
      }
    }
    Note: Use the correct path to the cloned repo and store your token securely.

Available Tools

Product Management

  1. findProducts: Get all products or search by title.
    • searchTitle (optional string): Filter by title.
    • limit (number): Max products.
  2. listProductsInCollection: Get products from a collection.
    • collectionId (string): Collection ID.
    • limit (optional number, default: 10): Max products.
  3. getProductsByIds: Get products by IDs.
    • productIds (array of strings): Product IDs.
  4. getVariantsByIds: Get variants by IDs.
    • variantIds (array of strings): Variant IDs.

Customer Management

  1. listCustomers: Get customers with pagination.
    • limit (optional number): Max customers.
    • next (optional string): Next page cursor.
  2. addCustomerTags: Add tags to a customer.
    • customerId (string): Customer ID.
    • tags (array of strings): Tags to add.

Order Management

  1. findOrders: Get orders with advanced filtering/sorting.
    • first (optional number): Limit orders.
    • after (optional string): Next page cursor.
    • query (optional string): Filter query.
    • sortKey (optional enum): Sort field.
    • reverse (optional boolean): Reverse sort.
  2. getOrderById: Get a single order by ID.
    • orderId (string): Order ID.
  3. createDraftOrder: Create a draft order.
    • lineItems (array): Items (variantId, quantity).
    • email (string): Customer email.
    • shippingAddress (object): Shipping details.
    • note (optional string): Order note.
  4. completeDraftOrder: Complete a draft order.
    • draftOrderId (string): Draft order ID.
    • variantId (string): Variant ID.

Discount Management

  1. createDiscountCode: Create a basic discount code.
    • title (string): Discount title.
    • code (string): Discount code.
    • valueType (enum): ‘percentage’ or ‘fixed_amount’.
    • value (number): Discount value.
    • startsAt (string): Start date (ISO).
    • endsAt (optional string): End date (ISO).
    • appliesOncePerCustomer (boolean): Limit one use per customer.

Collection Management

  1. listCollections: Get all collections.
    • limit (optional number, default: 10): Max collections.
    • name (optional string): Filter by name.

Shop Information

  1. getShopDetails: Get basic shop details (No inputs).
  2. getExtendedShopDetails: Get extended shop details (No inputs).

Webhook Management

  1. manageWebhooks: Manage webhooks.
    • action (enum): ‘subscribe’, ‘find’, ‘unsubscribe’.
    • callbackUrl (string): Webhook URL.
    • topic (enum): Webhook topic.
    • webhookId (optional string): Required for unsubscribe.

Debugging Tools

  1. debugGetVariantMetafield: Get variant & size_chart_json metafield.
    • variantId (string): Variant GID.

Developer Tools

  1. introspect_admin_schema: Introspect Admin API GraphQL schema.
    • query (string): Filter term.
    • filter (optional array): Filter by ‘types’, ‘queries’, ‘mutations’, ‘all’.
  2. search_dev_docs: Search shopify.dev docs.
    • prompt (string): Search query.

Debugging

Check Claude Desktop MCP logs:
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Common issues:

  • Authentication: Check token, domain format, API scopes.
  • API Errors: Check rate limits, input formats, required fields.

Development

npm install
npm run build
npm test

Dependencies

  • @modelcontextprotocol/sdk
  • graphql-request
  • zod

License

MIT


Note: Fork of original shopify-mcp-server repository

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers