Apify MCP Server for Claude Desktop: Setup, Prompts & Alternatives (2026)
MCP (Model Context Protocol) is an open standard (originated by Anthropic) that lets assistants like Claude call external tools over a defined protocol. The Apify MCP server exposes thousands of Apify Actors as those tools so Claude can start real scrapes and automations on Apify's cloud and read the results back into chat. Claude Desktop setup: the recommended path in 2026 is to add the hosted remote connector at https://mcp.apify.com/?fpr=use-apify and authenticate via OAuth on first use (no token to paste, auto-updating). The local alternative runs npx -y @apify/actors-mcp-server with your APIFY_TOKEN and a short --actors list. Either way, restart Claude fully after editing config. Runs bill like normal Apify usage (free tier includes monthly credits).
Large language models do not browse the web on their own. MCP fixes that gap: the client (Claude Desktop) talks to a small MCP server, which runs tools on your behalf. With Apify, those tools are Actors (pre-built scrapers and automations in the Apify Store), so Claude can request live data instead of guessing from training cutoffs. MCP is the same open standard that Claude Code, ChatGPT, VS Code, and Cursor use, so the Apify connector works across those clients too.
This guide focuses on Claude Desktop, compares hosted vs local Apify MCP, shows example prompts, contrasts Firecrawl and Bright Data MCP-style workflows, and covers troubleshooting. New to Claude Desktop? You can try Claude free for a week and wire up the connector before deciding on a paid plan.
Start scraping on Apify for free · Apify MCP docs
What the Apify MCP server does
- Tool definitions: each allowed Actor is described as an MCP tool (name, parameters, description). Claude uses these to decide what it can run.
- Execution: when you ask for data, Claude issues a tool call. The MCP server starts (or talks to) Apify, runs the Actor with the chosen input, and waits for the run to finish.
- Results: output (often JSON or structured fields) is returned to Claude so it can answer, summarize, or plan a follow-up run.
Hosted (https://mcp.apify.com/?fpr=use-apify), recommended: Apify runs the server and your client connects over remote Streamable HTTP (older clients fall back to SSE). You authenticate with OAuth in the browser on first use, so there is no token to paste and the server stays auto-updating. See the Apify MCP documentation.
Local (@apify/actors-mcp-server): Claude spawns a Node.js process on your machine (npx). The process uses stdio (stdin/stdout) to speak MCP with Claude, and your APIFY_TOKEN to talk to Apify's API. You pass --actors to whitelist which Store Actors appear as tools.
Choose hosted or local for Claude Desktop
| Approach | Best for | Auth | Notes |
|---|---|---|---|
Hosted https://mcp.apify.com/?fpr=use-apify | Least setup, OAuth, auto-updating, no token in a file | OAuth (recommended) | Apify's recommended path in 2026. Add it as a remote MCP connector in Claude Desktop. |
Local npx @apify/actors-mcp-server | Explicit allowlists, token kept in local env | APIFY_TOKEN in env | You control exactly which Actor IDs are exposed via --actors. Useful for older clients without remote MCP support. |
If you are unsure, start hosted from the official MCP guide. Fall back to local only if your client version cannot add a remote connector by URL.
Claude Desktop: local configuration (stdio)
Use this pattern when running the open-source @apify/actors-mcp-server package:
{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"-y",
"@apify/actors-mcp-server",
"--actors",
"apify/website-content-crawler,compass/crawler-google-places"
],
"env": {
"APIFY_TOKEN": "apify_api_YOUR_TOKEN_HERE"
}
}
}
}
- Replace
apify_api_YOUR_TOKEN_HEREwith a real token from Apify Integrations. - Replace
--actorswith the exact Store IDs you want Claude to see. Best practice is to expose only one or two Actors. Too many inflate tool metadata and can waste context or confuse routing.
Claude Desktop: hosted configuration (recommended)
The hosted endpoint is the recommended path. In recent Claude Desktop builds you add it as a remote MCP connector by URL and complete OAuth in the browser, so no token lives in a config file. If your build still uses the JSON config for remote servers, the shape is:
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?fpr=use-apify"
}
}
}
Complete the OAuth flow when Claude prompts you. Details change with client releases, so always cross-check the Apify MCP documentation.
Defining the Actor allowlist (--actors)
The --actors flag is your security and UX knob: only listed Actors become callable tools. With the hosted server you choose the same scope through the Apify UI instead of a flag.
| Actor (example ID) | Typical use |
|---|---|
apify/website-content-crawler | Crawl URLs and return cleaner text/Markdown-style content for summarization or RAG-style use. |
compass/crawler-google-places | Google Maps / Places–style local business data when you need structured location leads. |
Pick Actors from the Apify Store that match your sites and compliance rules. Both example IDs above are real Store Actors. If an Actor is pay-per-result or rental, the same billing rules apply when Claude triggers it.
Example prompts (copy and adapt)
Keep prompts specific: URL, field names, limits, and output shape.
- Single page → summary: “Use website-content-crawler on
https://example.com/docs/pricing. Return a bullet list of plans and prices only.” - Maps leads: “With crawler-google-places, find 15 coffee shops near downtown Austin; return name, address, rating, and review count as a table.”
- Bounded crawl: “Crawl at most 20 pages under
https://example.com/blog/and list post title + publication date.” - Structured extraction: “From this product URL, return JSON with
title,price,currency,availability. If a field is missing, set it null.”
Always ask for limit / maxCrawlPages (or your Actor’s equivalent) so a loop does not explode compute usage.
Apify MCP vs Firecrawl MCP vs Bright Data
None of these “replace” the others; they optimize different layers.
| Apify MCP | Firecrawl MCP | Bright Data (MCP / AI integrations) | |
|---|---|---|---|
| Core strength | Thousands of site-specific Actors plus full platform (runs, storage, schedules) | LLM-oriented crawl/scrape to clean Markdown and single-URL fetch | Proxy plus scraped datasets at enterprise scale; MCP-style access depends on product surface |
| Best when | You want Google Maps, Amazon, Instagram, etc. as packaged tools | You want quick “read this URL” or map-style crawl to Markdown | You already standardize on Bright Data proxies or datasets for compliance-heavy scraping |
| Try it | Apify | Firecrawl | Bright Data |
For a deeper crawler-vs-platform comparison, see Apify vs Firecrawl vs Jina.
Cost, limits, and safe defaults
- Not a separate “MCP subscription.” You pay for Apify runs (compute units, pay-per-result, or rentals, depending on the Actor).
- Free plan includes monthly credits, enough to validate configs and small tests.
- Agent risk: A vague prompt (“research this company exhaustively”) can chain many runs. Cap pages, results, and retries in the prompt and in Actor input where possible.
Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| No Apify tools in Claude | Config path wrong or Claude not fully restarted | Verify OS-specific claude_desktop_config.json path; quit Claude completely and reopen. |
npx / Node errors | Node not installed or too old | Install Node.js 18+; confirm npx works in a terminal. |
401 / unauthorized | Wrong or missing token | Regenerate token in Integrations; ensure APIFY_TOKEN env name matches the local server docs. |
| Claude hangs a long time | Long Actor run | Normal for big scrapes; tighten limits or use smaller inputs. |
| “Context” / payload errors | Huge JSON pasted into chat | Lower limit, fetch fewer fields, or summarize in a second step instead of dumping full arrays. |
| Wrong tool chosen | Too many similar Actors | Reduce --actors list; rename server or tool usage in prompts to be explicit about Actor ID. |
Cursor and other IDEs: You can attach the same npx @apify/actors-mcp-server command in Cursor → Settings → MCP (or your client’s equivalent) and ensure APIFY_TOKEN is visible to that process. See Use Apify with MCP servers.
Create an Apify account, connect MCP, and run your first whitelisted Actor from Claude in minutes.
MCP is an open protocol that connects AI clients (like Claude Desktop) to MCP servers. The server advertises tools; the client can invoke them and return results into the conversation. It is a structured alternative to ad-hoc plugins or raw REST calls inside prompts.
Apify exposes Actors as MCP tools. When Claude calls a tool, Apify runs the corresponding Actor on the platform, waits for results, and returns structured output. Locally, @apify/actors-mcp-server runs on your machine and uses your APIFY_TOKEN; hosted mcp.apify.com handles the server side with OAuth or tokens per Apify docs.
There is no separate fee just for MCP. You pay normal Apify usage for Actor runs. The free plan includes monthly credits, enough to test MCP with small runs. Heavy or high-volume scraping still consumes compute or pay-per-result charges.
Anything covered by the Actors you allowlist. Common cases include maps leads, e-commerce catalogs, social profiles (where permitted), and generic crawlers for articles or docs. You are responsible for terms of service, robots.txt, and local law; Apify provides the infrastructure, not legal clearance for each target.
Edit claude_desktop_config.json (paths differ on macOS, Windows, and Linux). Add mcpServers.apify with either url https://mcp.apify.com/?fpr=use-apify for hosted OAuth or command npx with @apify/actors-mcp-server, --actors, and env APIFY_TOKEN for local stdio. Save, fully quit Claude, and reopen. Confirm MCP tools appear before running large jobs.
Use Firecrawl when you mainly need fast, LLM-friendly page reads or crawls to Markdown. Use Apify when you need a specific Store Actor (Maps, Amazon, Instagram, etc.) or full Apify platform features like datasets and schedules. Many teams use both for different prompts.
The model may retry on errors or vague prompts. Narrow the task, add explicit limits, and check the Actor run log in Apify Console. Avoid huge result sets in one shot; fetch a page of results, then refine.




