{"slug": "let-claude-desktop-or-cursor-run-apify-actors-mcp-setup-with-two-real-examples", "title": "Let Claude Desktop or Cursor run Apify actors: MCP setup with two real examples", "summary": "A developer published a how-to for connecting Claude Desktop and Cursor to Apify's hosted MCP server at mcp.apify.com, using the ?tools= parameter to restrict the agent to specific Apify actors. The setup is demonstrated with two actors, pennydata/website-contact-extractor and pennydata/sitemap-extractor-plus, showing OAuth-based remote configuration plus an npx fallback for clients that only support local servers.", "body_md": "SUPERSEDES effect 840.\n\nDisclosure: I publish the two Apify actors used below (pennydata/website-contact-extractor and pennydata/sitemap-extractor-plus) and earn a fee when they run. This post was written with AI assistance (Claude). It is a how-to for the MCP setup; the actors are just worked examples.\n\nShort answer: Apify hosts an MCP server at `https://mcp.apify.com`. Point your client at it, restrict it to the actors you want with `?tools=`, and the agent can run them from a plain-English prompt.\n\nAdd the server to your MCP client. OAuth is the recommended route, so no token sits in the file:\n\n```\n{\n  \"mcpServers\": {\n    \"apify\": {\n      \"url\": \"https://mcp.apify.com?tools=pennydata/website-contact-extractor,pennydata/sitemap-extractor-plus\"\n    }\n  }\n}\n```\n\n`apify mcp install cursor`.` https://mcp.apify.com?tools=...` as a remote MCP server/connector. If your build only supports local servers, the docs give an `npx` fallback:\n\n```\n{\n  \"mcpServers\": {\n    \"actors-mcp-server\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@apify/actors-mcp-server\"],\n      \"env\": { \"APIFY_TOKEN\": \"YOUR_APIFY_TOKEN\" }\n    }\n  }\n}\n```\n\n`\"headers\": { \"Authorization\": \"Bearer <APIFY_TOKEN>\" }` next to `url`.\nWithout `?tools=` you get Apify's default tool set (search the Store, run any actor). Listing actors explicitly keeps the agent focused and makes runs predictable.\n\nPrompt:\n\nUse website-contact-extractor on apify.com, [www.mozilla.org](http://www.mozilla.org) and [www.python.org](http://www.python.org). Give me a table of contact page, contact form and public emails. Don't guess addresses that aren't in the output.\n\nThe actor takes `urls` (bare domains work) and returns one row per site. Fields: `input`, `finalUrl`, `contactPageUrl`, `contactFormUrl`, `emails`, `phones`, `socials` (keyed by network, values are lists), or `error` for a failed site. What the actor's code produced for these three sites in a local run on 2026-10-21 (not an MCP transcript):\n\n| input | contact page | contact form | emails | \n|---|---|---|---|\n| [www.python.org](http://www.python.org) | /about/ | none | none | \n| [www.mozilla.org](http://www.mozilla.org) | /en-US/contact/ | none | [trademark-permissions@mozilla.com](mailto:trademark-permissions@mozilla.com) | \n| apify.com | /contact | /contact-sales | [support@apify.com](mailto:support@apify.com) ,[hello@apify.com](mailto:hello@apify.com) ,[john.wick@thecontinental.com](mailto:john.wick@thecontinental.com) | \n\nThe last address is a joke printed on apify.com's own page. The actor returns what is on the page and does not check mailboxes, so tell the agent to flag oddities. Price on the actor page at time of writing: $0.002 per site where something was found; empty, failed and robots-skipped sites are not charged.\n\nUse sitemap-extractor-plus on [https://docs.apify.com](https://docs.apify.com) with maxUrls 20, then group the URLs by first path segment and tell me which sections have lastmod dates.\n\nInput is `{ \"startUrls\": [\"https://docs.apify.com\"], \"maxUrls\": 20 }`. Each output row:\n\n```\n{\n  \"url\": \"https://docs.apify.com/api\",\n  \"lastmod\": null,\n  \"priority\": 0.5,\n  \"changefreq\": \"weekly\",\n  \"sitemapUrl\": \"https://docs.apify.com/sitemap_base.xml\",\n  \"source\": \"https://docs.apify.com/\"\n}\n```\n\n`lastmod` is `null` here because that sitemap does not publish it, which is a good test of whether your agent reports missing data honestly. Price at time of writing: $0.0004 per unique URL; sitemap files, errors, duplicates and filtered-out URLs are free. `maxUrls` doubles as a spend cap.\n\n`maxUrls` / `maxCostUsd` in the prompt, and watch usage in the Apify Console.\nActor pages:\n\nWritten with AI (Claude).", "url": "https://wpnews.pro/news/let-claude-desktop-or-cursor-run-apify-actors-mcp-setup-with-two-real-examples", "canonical_source": "https://dev.to/jeezleweez_71e2a581f71298/let-claude-desktop-or-cursor-run-apify-actors-mcp-setup-with-two-real-examples-3lpg", "published_at": "2026-10-21 18:02:00+00:00", "updated_at": "2026-10-21 18:10:09.721789+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-tools", "developer-tools"], "entities": ["Apify", "Claude Desktop", "Cursor", "Anthropic", "pennydata/website-contact-extractor", "pennydata/sitemap-extractor-plus"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/let-claude-desktop-or-cursor-run-apify-actors-mcp-setup-with-two-real-examples", "markdown": "https://wpnews.pro/news/let-claude-desktop-or-cursor-run-apify-actors-mcp-setup-with-two-real-examples.md", "text": "https://wpnews.pro/news/let-claude-desktop-or-cursor-run-apify-actors-mcp-setup-with-two-real-examples.txt", "jsonld": "https://wpnews.pro/news/let-claude-desktop-or-cursor-run-apify-actors-mcp-setup-with-two-real-examples.jsonld"}}