Monitors are live: get a webhook when any Shopify store changes a price, sells out, or starts a promo

[ BLOG ]

All posts

AI agents ·

How to Connect Claude or ChatGPT to Shopify Store Data with MCP

Give Claude, ChatGPT, Cursor or Claude Code live data on any Shopify store through an MCP server, with setup steps for each app and prompts that work.

To give Claude or ChatGPT data on Shopify stores, add an MCP server that serves that data as a custom connector. Once it's connected, the assistant can call tools that search stores, look one up, read its ads and list its team, and it answers from that data instead of guessing or browsing storefronts page by page. Setup takes about two minutes in each app: paste the server URL, sign in and approve the connection.

What MCP is, briefly

The Model Context Protocol is an open standard for connecting AI applications to external tools and data. An MCP server exposes a set of tools, each with a name, a description and typed inputs. The AI app reads the list, and when your question needs one of the tools, the model calls it and reads the result. Claude, ChatGPT, Cursor, Claude Code, Perplexity and many other apps support remote MCP servers.

Why not let the assistant browse the store

Most assistants can browse the web, so you could ask one to read a store's pages. In practice that works poorly for store research. Storefronts are large HTML pages full of scripts and markup, so reading a few of them fills the model's context window quickly. Browsing also can't see numbers the storefront doesn't show, such as traffic estimates or the store's ads across platforms, and it fails on stores with bot protection. A data server answers with compact JSON, which costs fewer tokens and gives the model fields it can compare across stores.

What you need

  • A paid plan on an app that supports custom MCP connectors. Availability depends on the app and plan; check the app's own help pages.
  • A ShopLens account. The MCP server shares the same credits as the REST API, and each tool call costs the same as the endpoint it calls; see [pricing](/pricing).
  • The server URL: https://data.shoplens.dev/mcp.

Steps for Claude

  1. In Claude, open Settings, then Customize, then Connectors.
  2. Click Add and choose Add custom connector.
  3. Name it ShopLens, paste the server URL and click Add.
  4. Approve the connection in the ShopLens dashboard when the sign-in window opens.

The connector also shows up in the Claude desktop and mobile apps once it's added.

Steps for ChatGPT

  1. In ChatGPT, open Plugins in the sidebar and click +.
  2. Name it ShopLens, paste the server URL, accept the warning and click Create.
  3. Click Sign in with ShopLens and approve the connection in the ShopLens dashboard.

Steps for Claude Code and Cursor

In Claude Code, add the server from the terminal, then run /mcp, pick shoplens and choose Authenticate:

bash
claude mcp add --transport http shoplens https://data.shoplens.dev/mcp

In Cursor, add it to ~/.cursor/mcp.json:

json
{
  "mcpServers": {
    "shoplens": { "url": "https://data.shoplens.dev/mcp" }
  }
}

Setup for other clients, including Codex, VS Code, Windsurf and Gemini CLI, is on the home page under the agent setup section.

The tools the assistant gets

ToolWhat it does
search_shopsFind and rank stores by country, category, sales, Shopify Plus and creation date
get_shopOne store's profile: location, theme, counts, estimates, best sellers, similar stores
get_shop_adsThe store's latest ads on Meta, Google and TikTok
list_shop_platform_adsEvery ad of the store on one platform, with filters
get_shop_peopleThe people at the store's company and their job titles
reveal_shop_personOne person's work email and LinkedIn, on request

The descriptions are written for the model, so you don't need to name tools in your prompt. Ask in plain language and the assistant picks them.

Prompts that work

Specific prompts get better results than "research this store". A few that use the data well:

  • "Look up example-store.com and give me its country, category, estimated monthly sales, theme and its five best sellers with prices."
  • "Find 20 US pet stores on Shopify with estimated sales between $50k and $500k a month, sorted by sales, as a table."
  • "Which of example-store.com's Meta ads has been running the longest, and what does it promote?"
  • "Compare example-store.com with the stores in its similar shops list on traffic, sales and catalog size."
  • "Who leads ecommerce or marketing at example-store.com? Don't reveal any contacts yet."

The last prompt shows a habit worth keeping: ask for the people list first and reveal a contact only for the person you'll actually write to. Reveals cost more than lookups, and the reveal tool is meant for one person at a time. How to find the decision makers at a Shopify brand covers which role to look for.

Keeping credit use predictable

Each tool call spends credits like the matching API request: a store lookup is 1 credit, search is 1 credit per store returned, ads are 40 credits and a contact reveal is 25. An open-ended prompt such as "research every pet store in the US" can make many calls. Put a number in your prompts ("the top 20", "five best sellers") and the assistant will keep the calls bounded. Only successful calls spend credits.

Using it inside an agent

The same server works in agents you build yourself, not only in chat apps. Any framework with an MCP client can connect to the URL, list the tools and pass them to the model. A sales research agent, for example, can take a domain from your CRM, call get_shop and get_shop_ads, and write a short account brief before a rep's first call. Keep the tool list small for each job: an agent that only writes account briefs doesn't need the reveal tool, and leaving it out removes the chance of it revealing contacts nobody asked for.

Common mistakes

  • Connecting but not enabling the connector in the chat. Some apps require you to switch the connector on per conversation from the tools menu.
  • Asking about stores that aren't on Shopify. The tools only cover public Shopify stores. Check first with [how to check if a website is built on Shopify](/blog/check-if-website-is-shopify).
  • Treating estimates as facts. The model will happily repeat an estimated sales figure as "revenue". Ask it to label estimates, and read [how to estimate a Shopify store's sales](/blog/shopify-store-sales-estimate) for what they mean.

How to check it worked

Start a new chat and ask: "Using ShopLens, look up" followed by the domain of a Shopify store you know. The app should show a tool call to get_shop and answer with fields from the response. For a domain that has never been looked up, the first answer says the store is being looked up; ask again a few minutes later.

[ GET STARTED ]

Start building on Shopify data

Get an API key and make your first store lookup in a few minutes.