Ask Claude or ChatGPT to check the price of something on a random e-commerce site, and it'll either refuse (no browsing) or guess from stale training data. Even agents with browsing turn up empty-handed more often than you'd expect: Apify's own testing found that Claude browsing five major retailers directly pulled 0 products out of 100 — with Apify's MCP server in the loop, that became 100 out of 100. Same model, same question, completely different result, because the bottleneck was never the model's reasoning — it was the lack of a reliable way to read a product page.
This guide shows the exact setup: connecting Claude Desktop to Apify's MCP server, then pulling clean, structured product data through it — including a real example using an actor built specifically for this (Product Data for AI Shopping Agents).
MCP (Model Context Protocol) is a standard that lets an AI model call external tools mid-conversation — not just generate text, but actually fetch live data or take actions. Apify runs an MCP server that exposes its entire Store (70,000+ actors — scrapers, extractors, automations) as callable tools. Once connected, Claude can search for the right tool, call it with real input, and get real output back, all inside the conversation.
Open Claude Desktop's config file (claude_desktop_config.json) and add one of these:
Remote, OAuth (recommended — no token to manage):
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}
First connection opens your browser for Apify sign-in and approval. Nothing else to configure.
Remote, with a token (if you'd rather not do the OAuth flow):
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
}
Get your token from Apify Console → Settings → API & Integrations.
Local (stdio), if you want it running on your own machine instead of Apify's remote endpoint:
{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server"],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_TOKEN"
}
}
}
}
Restart Claude Desktop. You should now see Apify's tools available — search-actors, call-actor, get-dataset-items, and a few others.
ChatGPT connects to MCP servers through Developer Mode, not a config file. Full read/write access (needed for call-actor, since running an actor is a write-style action) is available on Business, Enterprise, and Edu plans; Pro gets read/fetch-only in developer mode. Plus and Free currently don't support custom connectors.
If you're on a supported plan:
https://mcp.apify.com, set auth (OAuth is easiest — same flow as Claude).@mention it mid-conversation when you need a fresh call.
Everything past this point — the call-actor input, the output shape, the pricing — works identically once the connector is scanned in.
You don't need to know actor names by heart — just ask Claude naturally, and it uses search-actors to find the right one:
"Search Apify for an actor that turns e-commerce product pages into structured data for AI agents."
Or skip straight to it and call the actor directly by name using call-actor:
{
"actor": "dynamict3ch/product-data-for-ai-shopping-agents",
"input": {
"startUrls": [
{ "url": "https://mejuri.com/ca/en/products/bia-mini-hoops" }
],
"maxRequestsPerCrawl": 10
}
}
Real output from this exact call:
{
"id": "p134860210",
"name": "18k Gold Vermeil / Lab Grown White Sapphire",
"brand": "Mejuri",
"price": 168,
"currency": "CAD",
"availability": "InStock",
"rating": 4.6,
"reviewCount": 29,
"url": "https://mejuri.com/ca/en/products/bia-mini-hoops",
"imageUrl": "https://cdn.shopify.com/...",
"description": null,
"embeddingText": "18k Gold Vermeil / Lab Grown White Sapphire — Mejuri",
"source": "json-ld",
"scrapedAt": "2026-09-11T04:01:52.791Z"
}
Same shape every time, regardless of which store the URL points to — name, brand, price, currency, stock status, rating, and a source URL, with every field explicitly present (or explicitly null) instead of missing keys you have to guard against.
Once connected, you're not limited to one call at a time. A real prompt might look like:
"Here are three ring product URLs. Get the current price and rating for each, and tell me which one has the best rating-to-price ratio."
Claude calls the actor once per URL (or batches them in one startUrls list), gets back structured records, and reasons over actual numbers instead of guessing from a product description it half-remembers.
Most e-commerce sites embed schema.org/JSON-LD product markup for Google's own crawler — this actor reads that structured data first, falling back to Open Graph tags when JSON-LD isn't present. That's the difference between an agent parsing a hundred different HTML layouts (and breaking on every redesign) and an agent reading data the site already publishes in a machine-readable format.
Pay-per-event: charged per product record returned, not per page crawled. Roughly $0.01 per product — a batch of 100 products costs about a dollar.
Product Data for AI Shopping Agents on Apify Store
Sources: Apify — Real-time product data for AI agents, Apify MCP server documentation