shopify-reports-mcp

shopify-reports-mcp

Enables AI agents to query Shopify analytics with ShopifyQL via the Admin GraphQL endpoint, executing queries and interpreting results like 'show me the products with the highest margins'.

Category
Visit Server

README

shopify-reports-mcp

An MCP server that lets AI agents query Shopify analytics with ShopifyQL via the Admin GraphQL shopifyqlQuery endpoint. Ask your agent "show me the products with the highest margins" — it writes the ShopifyQL, runs it through this server, and interprets the results.

Tools

  • query_shopify — executes a ShopifyQL query, returns { columns, rows } as JSON. Parse errors come back as error results so the agent can self-correct and retry.
  • shopifyql_reference — returns the bundled ShopifyQL reference (syntax, schemas, columns, examples). Also exposed as the MCP resource shopifyql://reference.

Shopify prerequisites

  1. Create an app in your organization's Dev Dashboard (the client-credentials grant only works for org-owned apps installed on stores your org owns).
  2. Grant it the read_reports access scope (plus customer-data access if you want to query customer PII columns).
  3. Install the app on your store and note the Client ID and Client Secret.

Access tokens are exchanged automatically and cached for their full 24-hour lifetime.

Running

Via npx (no clone needed)

Run straight from GitHub — npm clones, builds, and caches the package on first use:

# stdio mode
npx --yes github:mvacha/shopify-reports-mcp --stdio \
  --shop yourstore.myshopify.com \
  --client-id <client id> \
  --client-secret <client secret>

# HTTP mode
npx --yes github:mvacha/shopify-reports-mcp --http --port 3000

Claude Code one-liner:

claude mcp add shopify-reports -- npx --yes github:mvacha/shopify-reports-mcp --stdio \
  --shop yourstore.myshopify.com --client-id <client id> --client-secret <client secret>

Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "shopifyReports": {
      "command": "npx",
      "args": [
        "--yes",
        "github:mvacha/shopify-reports-mcp",
        "--stdio",
        "--shop", "yourstore.myshopify.com",
        "--client-id", "<client id>",
        "--client-secret", "<client secret>"
      ]
    }
  }
}

HTTP mode (primary)

npm install && npm run build
node dist/index.js --http --port 3000

Clients authenticate by sending their Shopify credentials with every request:

{
  "mcpServers": {
    "shopify-reports": {
      "type": "http",
      "url": "http://your-host:3000/mcp",
      "headers": {
        "X-Shopify-Shop": "yourstore.myshopify.com",
        "X-Shopify-Client-Id": "<client id>",
        "X-Shopify-Client-Secret": "<client secret>"
      }
    }
  }
}

Or with the Claude Code CLI:

claude mcp add --transport http shopify-reports http://your-host:3000/mcp \
  --header "X-Shopify-Shop: yourstore.myshopify.com" \
  --header "X-Shopify-Client-Id: <client id>" \
  --header "X-Shopify-Client-Secret: <client secret>"

Requests without all three headers are rejected with 401. The server is stateless and multi-tenant: different clients can point it at different stores.

stdio mode (local testing)

{
  "mcpServers": {
    "shopify-reports": {
      "command": "node",
      "args": [
        "/path/to/shopify-reports-mcp/dist/index.js",
        "--stdio",
        "--shop", "yourstore.myshopify.com",
        "--client-id", "<client id>",
        "--client-secret", "<client secret>"
      ]
    }
  }
}

The SHOPIFY_SHOP, SHOPIFY_CLIENT_ID and SHOPIFY_CLIENT_SECRET environment variables work as fallbacks for the CLI flags.

Development

npm test        # vitest unit tests (mocked Shopify API)
npm run dev     # run from source with tsx
npm run build   # compile to dist/

Design doc: docs/superpowers/specs/2026-07-21-shopify-reports-mcp-design.md.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured