CartSpy for AI assistants

Ask Shopify Sidekick, Claude, ChatGPT or any MCP-capable assistant what happens in your store before checkout - the part Shopify's own order data never sees.

Shopify's connectors already answer everything about orders, products and customers. CartSpy adds the other half: how much cart value, how many carts, checkouts and abandoned carts a day or a week brought compared with the one before, carts that were built and dropped and what was in them, who is on the store right now, which products get carted but rarely bought, what gets removed from carts, one visitor's whole path, and which traffic sources send shoppers who fill carts and leave. Everything is read-only, scoped to your store, and every answer links into the app.

Try: "How much cart value came in today?" · "Which carts over $100 were abandoned this week and what was in them?" · "Which products get added to cart but rarely bought?" · "Who is on the store right now?" · "Which traffic source sends people who leave before paying?"

Shopify Sidekick

Nothing to set up. Once CartSpy is installed, Sidekick in your Shopify admin can ask it the same questions, next to Shopify's own data - so "carts spiked but orders didn't - why?" gets answered from both in one breath.

Claude, ChatGPT, Cursor and other MCP clients

Endpoint: https://app.cartspy.app/mcp (MCP, Streamable HTTP).

Two ways to connect. OAuth: in Claude.ai (Settings › Connectors › Add custom connector) or ChatGPT (Settings › Apps › Advanced › Developer mode) paste the endpoint; you approve the connection inside your Shopify admin and no password is ever typed. A key: create one in CartSpy › Settings › AI assistants and give it to a client that takes a bearer header, or use the key-in-URL form https://app.cartspy.app/mcp/csm_… for clients that only take a URL.

Claude Code
claude mcp add --transport http cartspy https://app.cartspy.app/mcp --header "Authorization: Bearer <key>"
Claude Desktop (claude_desktop_config.json)
{ "mcpServers": { "cartspy": { "url": "https://app.cartspy.app/mcp", "headers": { "Authorization": "Bearer <key>" } } } }
Cursor (.cursor/mcp.json)
{ "mcpServers": { "cartspy": { "url": "https://app.cartspy.app/mcp", "headers": { "Authorization": "Bearer <key>" } } } }
VS Code (.vscode/mcp.json)
{ "servers": { "cartspy": { "type": "http", "url": "https://app.cartspy.app/mcp", "headers": { "Authorization": "Bearer <key>" } } } }

What it can ask

store_overviewHeadline cart figures for a period, against the period before: carts, cart value, checkouts, orders, revenue, abandoned carts, cart-to-order rate. Use it first for "how much cart value today", "how are my carts doing this week", "how many abandoned carts yesterday". period: today, yesterday or last_days (days, default 7, max 90), in the shop timezone. Money in the shop currency. Same figures as CartSpy's Overview and Analytics. For which carts were abandoned and what was in them, use abandoned_carts.
abandoned_cartsCarts that were built and then abandoned, with what was in them - the ones Shopify's abandoned checkouts never see, because most shoppers leave before checkout. Filters: since (days, default 7, max 90), min_value (in the shop currency), product (title text), stage (cart|checkout|payment). Returns the carts newest first with items, value, stage, source and device, plus totals.
product_cart_funnelPer product: views, adds to cart, checkouts and orders over a window - so the products that get carted but rarely bought stand out. Sorted by adds to cart. Filters: since (days, default 30, max 90), product (title text), sort (adds|drop_off|views|orders). drop_off is adds minus orders.
live_nowWho is on the store right now: visitors active in the last minutes, how many have something in their cart and what those carts hold, and the last pages viewed. window_minutes default 15, max 120.
session_pathOne visitor's journey: every event CartSpy recorded for a client id (from abandoned_carts or live_now), in order - pages, adds, removals, checkout steps - with where they came from and what device. Up to 200 events.
source_cart_qualityCarts, checkouts and orders by traffic source over a window, with cart-to-order rate per source - which sources send shoppers who fill carts and leave. since default 30, max 90.
cart_removalsProducts most often removed from carts over a window, with how many times they were added in the same window - hesitation, price shock or a wrong variant show up here. since default 30, max 90.
checkout_funnelCheckout step funnel: started, contact, address, shipping, payment, completed - checkouts per step, drop-off % between steps, and the same for the previous period of equal length with the change in points. compare_from (YYYY-MM-DD) compares the days since a change the merchant made (e.g. new shipping rates) with as many days before it. by=device|source splits it. Use for "where do shoppers leave checkout" or "did X change checkout completion".
checkout_dropoff_by_segmentCheckout drop-off at each step split by device (mobile, desktop, tablet) and by the top traffic sources, each against the store average, flagging the segment and step that drop most. Use for "do mobile shoppers leave checkout more" or "which source loses shoppers at shipping". since default 30, max 90.
campaign_cart_qualityPer UTM campaign (source, medium, campaign): carts, checkouts, orders, revenue, cart-to-order rate, abandoned carts and value, and the checkout step its shoppers drop most. Campaigns under min_carts are summed separately so tiny ones do not mislead. Use for "which campaigns fill carts but do not sell". since default 30, max 90.
out_of_stock_demandProducts shoppers viewed while sold out: sold-out views, days seen, and an estimated lost cart value (views x the product's add-to-cart rate x its price - an estimate). The same data as CartSpy's Out of stock report; Advanced plan. Use for "what should I restock" or "what demand am I missing". since default 30, max 90.
search_demandStorefront searches: top terms, terms that found no products or only 1-2, and how many searchers ordered afterwards. The same data as CartSpy's Top Searches; Advanced plan. Use for "what do shoppers search for and not find" or "which products am I missing". since default 30, max 90.
co_abandoned_productsPairs of products most often left together in abandoned carts, with their value and how often the same pair was bought together in orders - pairs abandoned together far more than bought together are bundle or offer candidates. since default 30, max 90.

Nothing writes. Assistants that support MCP prompts (Claude shows them as slash commands) also get four workflows: Where did this week's carts go?, Which products get carted but not bought?, Which traffic sources send shoppers who leave? and What did this visitor do?

Privacy and limits

A connection or key names one store and can read only that store. Visitor ids are CartSpy's own anonymous ids; a customer's name or email appears only where the shopper typed it at checkout, exactly as in the app. Requests are limited to 120 a minute per connection. Revoke a key or a connection at any time in Settings › AI assistants.