Shopify Insights MCP
Enables Shopify store owners to get actionable business insights such as sales comparisons, inventory alerts, and recommendations, transforming raw data into meaningful decisions.
README
Shopify Insights MCP
MCP Server for Shopify that delivers actionable business insights — comparisons, alerts, and recommendations, not just numbers.
Demo
https://github.com/user-attachments/assets/4541bf2d-8974-4944-b3cb-4b8597d071cf
Why This Exists
Existing Shopify MCP servers return raw data. Shopify Insights MCP answers "what does it mean?" and "what should I do?":
| Other MCPs | Shopify Insights MCP |
|---|---|
| "You have $45,000 in sales" | "You have $45,000, 12% less than last month" |
| "List of 50 products" | "5 products have critical stock and high demand" |
| "10 pending orders" | "3 orders have been unfulfilled for 5+ days" |
Stack
- TypeScript + MCP SDK (
@modelcontextprotocol/sdk) - Shopify Admin API (GraphQL)
- Zod for input validation
- Transport: stdio
Installation
Option A: npm (recommended)
npm install -g shopify-insights-mcp
shopify-insights-mcp init
The init command will guide you through connecting your Shopify store and generate the Claude Desktop configuration.
Option B: From source
git clone https://github.com/VenticinqueMauro/shopify-insights-mcp.git
cd shopify-insights-mcp
npm install
npm run build
npm run setup # Guided configuration
Shopify App Requirements
You need a Custom App with these scopes:
read_orders,read_products,read_customers
Create one at: Shopify Admin > Settings > Apps and sales channels > Develop apps
Build & Run
npm run build # Compile TypeScript → dist/
npm start # Run the MCP server (stdio)
npm run setup # Guided setup wizard
npm run inspector # Open MCP Inspector for debugging
Usage with Claude Desktop
Quick setup (via npx)
{
"mcpServers": {
"shopify-insights": {
"command": "npx",
"args": ["-y", "shopify-insights-mcp"],
"env": {
"SHOPIFY_SHOP_DOMAIN": "your-store.myshopify.com",
"SHOPIFY_ACCESS_TOKEN": "shpat_your_token"
}
}
}
}
Local install
{
"mcpServers": {
"shopify-insights": {
"command": "node",
"args": ["/path/to/shopify-insights-mcp/dist/index.js"],
"env": {
"SHOPIFY_SHOP_DOMAIN": "your-store.myshopify.com",
"SHOPIFY_ACCESS_TOKEN": "shpat_your_token"
}
}
}
}
Run
shopify-insights-mcp initto generate this config automatically.
Then ask Claude things like:
- "How are sales this month compared to last month?"
- "Which products are trending up?"
- "Are there any orders that need urgent attention?"
- "How are my customers segmented?"
Configuration
Required Environment Variables
| Variable | Description |
|---|---|
SHOPIFY_SHOP_DOMAIN |
Your store domain (e.g., my-store.myshopify.com) |
SHOPIFY_ACCESS_TOKEN |
Admin API access token (starts with shpat_) |
Optional Environment Variables
| Variable | Default | Description |
|---|---|---|
SHOPIFY_TIMEZONE |
Auto-detected from store | IANA timezone override (e.g., America/New_York). Use when your Shopify store timezone setting is incorrect |
SHOPIFY_API_VERSION |
2025-01 |
Shopify Admin API version |
SHOPIFY_MAX_RECORDS |
1000 |
Maximum records fetched per tool call. Increase for large stores |
Tools (10)
Sales & Revenue
| Tool | Description |
|---|---|
get_sales_summary |
Sales summary with period-over-period comparison. Revenue, orders, AOV, units sold |
get_sales_comparison |
Side-by-side comparison of two custom date ranges |
get_revenue_breakdown |
Revenue broken down by product, vendor, or product type |
Products & Inventory
| Tool | Description |
|---|---|
get_product_performance |
Product ranking by revenue, units sold, or order count |
get_inventory_alerts |
Stock alerts: out-of-stock, low stock, overstock detection |
get_trending_products |
Trending products (rising/falling) vs. previous period |
Customers
| Tool | Description |
|---|---|
get_customer_segments |
Automatic segmentation: VIP, Loyal, Returning, New, Inactive |
get_top_customers |
Customer ranking by total spend or order count |
Operations
| Tool | Description |
|---|---|
get_order_alerts |
Orders needing attention: delayed fulfillment, financial issues, high-value pending |
get_fulfillment_metrics |
Operational metrics: fulfillment rate, financial status, health score |
Architecture
src/
├── index.ts # Entry point
├── server.ts # Tool registration & request handler
├── shopify/
│ ├── auth.ts # Credentials from env vars
│ ├── client.ts # GraphQL wrapper
│ └── queries/ # Orders, products, customers queries
├── tools/
│ ├── sales/ # 3 sales tools
│ ├── products/ # 3 product tools
│ ├── customers/ # 2 customer tools
│ └── operations/ # 2 operations tools
├── analytics/
│ ├── comparisons.ts # Change calculation (%, direction)
│ ├── insights.ts # Automatic insight generation
│ └── recommendations.ts # Actionable recommendations
├── types/
│ └── shopify.ts # Shared GraphQL types
└── utils/
├── dates.ts # Period handling & date formatting
├── formatting.ts # Currency, percentage, number formatting
└── errors.ts # Standard error handling
Example Output
📊 SALES SUMMARY - THIS MONTH
CURRENT METRICS:
• Revenue: $1,245,000.00
• Orders: 234
• Avg Order Value: $5,320.51
• Units Sold: 892
VS. PREVIOUS MONTH:
• Revenue: +18.0% (+$190,000.00)
• Orders: +12.0% (+25)
• Avg Order Value: +5.4% (+$272.00)
💡 INSIGHTS:
• 📈 Revenue grew 18.0% compared to the previous period.
• 🛒 Order volume increased 12.0% (+25 orders).
📋 RECOMMENDATIONS:
• 🚀 Leverage the positive momentum by increasing investment in top-performing channels.
• 📦 Ensure sufficient stock to sustain demand growth.
Testing
# Run unit tests
npm test
# Manual test via JSON-RPC over stdio
export $(grep -v '^#' .env | xargs)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_sales_summary","arguments":{"period":"month"}}}' | node dist/index.js
# Or use MCP Inspector
npm run inspector
Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
License
MIT
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.