Shopify Store Intelligence MCP avatar

Shopify Store Intelligence MCP

Pricing

Pay per usage

Go to Apify Store
Shopify Store Intelligence MCP

Shopify Store Intelligence MCP

Scrapes any public Shopify store and returns structured competitive intelligence: products, collections, pricing analysis, theme detection, and installed apps β€” with no API key required. Runs as an MCP server via Apify Standby.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Sam Rothschild

Sam Rothschild

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

3 days ago

Last modified

Share

An Apify Actor that scrapes any public Shopify store (no API key required) and returns structured competitive intelligence data. Runs as a persistent MCP server via Apify Standby, making it directly usable from Claude Desktop, Cursor, and any MCP-compatible AI client.


What it does

Point it at any Shopify store URL and get back:

  • πŸͺ Store metadata β€” name, description, currency, country
  • πŸ“¦ Product catalog β€” paginated, with prices as numbers, discount %, variants
  • πŸ—‚οΈ Collections β€” all categories with handles and URLs
  • πŸ’° Price intelligence β€” min/max/mean/median, discount frequency, price buckets
  • 🎨 Theme & apps β€” theme name/ID, installed apps (Klaviyo, ReCharge, etc.), tracking pixels, social links

MCP Tools

analyze_store

Full competitive intelligence report in a single call.

Input:

{ "store_url": "https://allbirds.com" }

Output:

{
"tool": "analyze_store",
"store_url": "https://allbirds.com",
"scraped_at": "2024-01-15T10:30:00.000Z",
"store_name": "Allbirds",
"description": "The world's most comfortable shoes...",
"currency": "USD",
"country": "US",
"total_collections": 24,
"collections_preview": [...],
"top_products": [
{
"title": "Men's Tree Runners",
"handle": "mens-tree-runners",
"price": 98,
"compare_at_price": null,
"discount_percent": null,
"available": true,
"image_url": "https://cdn.shopify.com/...",
"url": "https://allbirds.com/products/mens-tree-runners",
"variants": [...]
}
],
"theme": { "name": "Prestige", "id": "123456789" },
"detected_apps": ["Klaviyo", "Yotpo", "Gorgias"],
"tracking_pixels": ["Google Tag Manager", "Facebook Pixel"],
"social_links": {
"instagram": "https://instagram.com/allbirds",
"twitter": "https://twitter.com/allbirds"
}
}

get_products

Paginated product catalog.

Input:

{
"store_url": "https://gymshark.com",
"page": 1,
"limit": 50,
"collection": "mens-t-shirts"
}

Output: { products: [...], page, limit, has_more, total_on_page }


get_collections

All collections/categories.

Input: { "store_url": "https://gymshark.com" }

Output:

{
"total_collections": 42,
"collections": [
{
"handle": "mens-t-shirts",
"title": "Men's T-Shirts",
"url": "https://gymshark.com/collections/mens-t-shirts",
"product_count": 36
}
]
}

price_intelligence

Comprehensive pricing analysis.

Input: { "store_url": "https://gymshark.com" }

Output:

{
"total_products_analyzed": 847,
"price_range": { "min": 9, "max": 65, "mean": 34.50, "median": 35 },
"discount_analysis": {
"products_on_sale": 124,
"sale_percent": 14.6,
"avg_discount_percent": 22,
"max_discount_percent": 60
},
"distribution": [
{ "label": "$25 – $50", "count": 412, "percent": 48.6, "from": 25, "to": 50 }
],
"top_priced": [...],
"deepest_discounts": [...]
}

detect_theme_and_apps

Tech stack detection from homepage HTML.

Input: { "store_url": "https://allbirds.com" }

Output:

{
"theme": { "name": "Prestige", "id": "123456789" },
"detected_apps": ["Klaviyo", "ReCharge", "Yotpo", "Gorgias", "Smile.io"],
"tracking_pixels": ["Google Tag Manager", "Facebook Pixel", "Hotjar"],
"social_links": { "instagram": "https://instagram.com/allbirds" }
}

Using as an MCP Server

With Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
"mcpServers": {
"shopify-intel": {
"url": "https://rothy--shopify-intel-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_API_TOKEN"
}
}
}
}

Then ask Claude: "Analyze the Shopify store gymshark.com and tell me their top products and pricing strategy."

With Cursor

Add in Cursor settings β†’ MCP:

{
"shopify-intel": {
"url": "https://rothy--shopify-intel-mcp.apify.actor/mcp"
}
}

Local development

npm install
npm run build
ACTOR_STANDBY_PORT=4321 npm start
# MCP endpoint: http://localhost:4321/mcp

Running via Apify API (single tool call)

curl -X POST https://api.apify.com/v2/acts/rothy~shopify-intel-mcp/runs \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"tool": "analyze_store",
"store_url": "https://allbirds.com"
}'

Publishing to Apify

  1. Install Apify CLI: npm install -g apify-cli
  2. Authenticate: apify login
  3. Build and push:
    npm run build
    apify push
  4. In the Apify Console:
    • Set Actor type to Standby (persistent HTTP server)
    • Enable Pay Per Event monetization
    • Set price per tool-call event (suggested: $0.01)

Pricing

This actor uses Apify's pay-per-event model β€” pay only for what you use:

ToolPrice
analyze_store$0.10 / call
price_intelligence$0.05 / call
detect_theme_and_apps$0.05 / call
get_products$0.02 / call
get_collections$0.02 / call

No subscription required.


Supported Shopify Endpoints

All requests use public, unauthenticated Shopify APIs:

EndpointUsed For
/products.jsonProduct catalog
/collections.jsonCollection list
/collections/{handle}/products.jsonCollection products
/meta.jsonStore metadata
Homepage HTMLTheme & app detection

Error Handling

  • Not a Shopify store: Clear error if /products.json returns 404
  • Password-protected: Clear error for 401/password-gated stores
  • Rate limiting: Automatic pagination with graceful stops
  • Partial failures: analyze_store returns partial data if some endpoints fail

Tech Stack