npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

shopify-graphql-admin-mcp

v1.0.0

Published

MCP server providing full access to Shopify's Admin GraphQL API with schema introspection

Readme

shopify-graphql-admin-mcp

MCP server providing full access to Shopify's Admin GraphQL API. Introspects the live schema on startup so it's always up-to-date with the latest API version — no stale docs, no embeddings needed.

Features

  • Raw GraphQL execution — run any query or mutation against the Admin API
  • Live schema introspection — search and explore the full GraphQL schema (2,700+ types) directly from your AI assistant
  • 29 convenience tools — typed, no-GraphQL-needed CRUD for products, collections, metaobjects, metafields, customers, orders, and inventory
  • Dual auth — supports both OAuth client credentials (new Dev Dashboard apps) and legacy access tokens (shpat_)
  • Auto token refresh — OAuth tokens are refreshed automatically before expiry

Quick Start

# With a legacy access token
npx shopify-graphql-admin-mcp --store mystore.myshopify.com --access-token shpat_xxxxx

# With OAuth client credentials (Dev Dashboard app)
npx shopify-graphql-admin-mcp --store mystore.myshopify.com --client-id YOUR_ID --client-secret YOUR_SECRET

Tools

Core

| Tool | Description | |------|-------------| | shopify_graphql | Execute any raw GraphQL query or mutation | | shopify_schema_search | Search the live schema by keyword (types, queries, mutations) | | shopify_schema_details | Get full details for a specific type, query, or mutation |

Products

| Tool | Description | |------|-------------| | shopify_products_list | List/search products with pagination | | shopify_product_get | Get product by ID with variants and metafields | | shopify_product_create | Create a new product | | shopify_product_update | Update an existing product | | shopify_product_delete | Delete a product |

Collections

| Tool | Description | |------|-------------| | shopify_collections_list | List/search collections with pagination | | shopify_collection_get | Get collection by ID with products | | shopify_collection_create | Create a collection (manual or smart) | | shopify_collection_update | Update a collection | | shopify_collection_delete | Delete a collection |

Metaobjects

| Tool | Description | |------|-------------| | shopify_metaobject_definitions_list | List all metaobject type definitions | | shopify_metaobjects_list | List entries of a specific metaobject type | | shopify_metaobject_get | Get a single metaobject entry | | shopify_metaobject_create | Create a new metaobject entry | | shopify_metaobject_update | Update an existing metaobject entry | | shopify_metaobject_delete | Delete a metaobject entry |

Metafields

| Tool | Description | |------|-------------| | shopify_metafields_list | List metafields on any resource | | shopify_metafields_set | Set (upsert) metafields on any resource | | shopify_metafield_delete | Delete a metafield |

Customers

| Tool | Description | |------|-------------| | shopify_customers_list | List/search customers with pagination | | shopify_customer_get | Get customer by ID with orders | | shopify_customer_update | Update customer details |

Orders

| Tool | Description | |------|-------------| | shopify_orders_list | List/search orders with pagination | | shopify_order_get | Get order by ID with line items |

Inventory

| Tool | Description | |------|-------------| | shopify_inventory_get_levels | Get inventory levels across locations | | shopify_inventory_adjust | Adjust inventory quantity at a location |

Required API Scopes

Configure these scopes on your app to enable all tools:

| Scope | Tools | |-------|-------| | read_products, write_products | Products, inventory | | read_metaobjects, write_metaobjects | Metaobjects | | read_content, write_content | Metafields | | read_customers, write_customers | Customers | | read_orders | Orders | | read_inventory, write_inventory | Inventory adjustments | | read_product_listings | Product listings |

You only need scopes for the tools you plan to use. At minimum for schema introspection and raw GraphQL to work, you need at least one read scope.

Authentication

OAuth Client Credentials (recommended)

For apps created in the Shopify Dev Dashboard:

  1. Create an app in the Dev Dashboard
  2. Configure the Admin API scopes listed above
  3. Release a version and install the app on your store
  4. Use the Client ID and Client Secret:
npx shopify-graphql-admin-mcp \
  --store mystore.myshopify.com \
  --client-id YOUR_CLIENT_ID \
  --client-secret YOUR_CLIENT_SECRET

Legacy Access Token

For existing custom apps with a shpat_ token:

npx shopify-graphql-admin-mcp \
  --store mystore.myshopify.com \
  --access-token shpat_xxxxx

Configuration

| Flag | Env Variable | Description | |------|-------------|-------------| | --store | SHOPIFY_STORE | Store domain (required). Accepts mystore or mystore.myshopify.com | | --access-token | SHOPIFY_ACCESS_TOKEN | Legacy access token (shpat_...) | | --client-id | SHOPIFY_CLIENT_ID | OAuth client ID | | --client-secret | SHOPIFY_CLIENT_SECRET | OAuth client secret | | --api-version | SHOPIFY_API_VERSION | API version (default: 2025-01) |

Usage with Claude Code

claude mcp add shopify -- npx shopify-graphql-admin-mcp \
  --store mystore.myshopify.com \
  --access-token shpat_xxxxx

Or add to your project's .claude.json:

{
  "mcpServers": {
    "shopify": {
      "command": "npx",
      "args": [
        "shopify-graphql-admin-mcp",
        "--store", "mystore.myshopify.com",
        "--access-token", "shpat_xxxxx"
      ]
    }
  }
}

Usage with Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "shopify": {
      "command": "npx",
      "args": [
        "shopify-graphql-admin-mcp",
        "--store", "mystore.myshopify.com",
        "--access-token", "shpat_xxxxx"
      ]
    }
  }
}

Schema Exploration

The killer feature: the server introspects Shopify's live GraphQL schema on startup, so your AI assistant can discover API capabilities in real-time.

You: "What mutations are available for metaobjects?"
→ AI uses shopify_schema_search with query "metaobject" filter "mutations"
→ Returns: metaobjectCreate, metaobjectUpdate, metaobjectDelete, metaobjectUpsert, ...

You: "What fields does MetaobjectCreateInput take?"
→ AI uses shopify_schema_details with name "MetaobjectCreateInput"
→ Returns: full type definition with all fields, types, and descriptions

This means the server works correctly even when Shopify releases new API versions — no code changes needed.

Development

git clone https://github.com/colbymchenry/shopify-graphql-admin-mcp.git
cd shopify-graphql-admin-mcp
npm install
npm run build
npm run dev  # watch mode

License

MIT