How to Give Claude or GPT Real-Time Product Data via Apify's MCP Server 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). What's actually happening here 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. Step 1: Connect Claude Desktop to Apify's MCP server 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. Using ChatGPT instead 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: Settings → Apps → Advanced Settings → turn on Developer Mode. Settings → Apps → Create → add a new connector. Paste the server URL: https://mcp.apify.com, set auth (OAuth is easiest — same flow as Claude). Click Scan Tools and wait for it to index Apify's tool list. In a new chat, click the tools icon, select the Apify connector, and ask the same way you would in Claude — or @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. Step 2: Pull real product data 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. Step 3: Use it like an agent would 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. Why this works better than an agent just browsing the page directly 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. Pricing 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. Try it Product Data for AI Shopping Agents on Apify Store Sources: Apify — Real-time product data for AI agents, Apify MCP server documentation