Skip to main content

Apify MCP Server for Claude Desktop: Setup, Prompts & Alternatives (2026)

· 11 min read
Yassine El Haddad
Software Developer & Automation Specialist

I build production AI agents, web scrapers, and automation pipelines. Most of what I publish here comes from the actual problems they run into: proxies that get banned, anti-bot stacks that fingerprint your client, RAG that drifts when the underlying data moves. Stack: Python, TypeScript, Go, FastAPI, LangChain, Crawlee, Playwright, deployed on AWS, GCP, and Cloudflare.

Quick answer

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

  1. Tool definitions: each allowed Actor is described as an MCP tool (name, parameters, description). Claude uses these to decide what it can run.
  2. 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.
  3. 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

ApproachBest forAuthNotes
Hosted https://mcp.apify.com/?fpr=use-apifyLeast setup, OAuth, auto-updating, no token in a fileOAuth (recommended)Apify's recommended path in 2026. Add it as a remote MCP connector in Claude Desktop.
Local npx @apify/actors-mcp-serverExplicit allowlists, token kept in local envAPIFY_TOKEN in envYou 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_HERE with a real token from Apify Integrations.
  • Replace --actors with 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.

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-crawlerCrawl URLs and return cleaner text/Markdown-style content for summarization or RAG-style use.
compass/crawler-google-placesGoogle 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.

  1. Single page → summary: “Use website-content-crawler on https://example.com/docs/pricing. Return a bullet list of plans and prices only.”
  2. Maps leads: “With crawler-google-places, find 15 coffee shops near downtown Austin; return name, address, rating, and review count as a table.”
  3. Bounded crawl: “Crawl at most 20 pages under https://example.com/blog/ and list post title + publication date.”
  4. 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 MCPFirecrawl MCPBright Data (MCP / AI integrations)
Core strengthThousands of site-specific Actors plus full platform (runs, storage, schedules)LLM-oriented crawl/scrape to clean Markdown and single-URL fetchProxy plus scraped datasets at enterprise scale; MCP-style access depends on product surface
Best whenYou want Google Maps, Amazon, Instagram, etc. as packaged toolsYou want quick “read this URL” or map-style crawl to MarkdownYou already standardize on Bright Data proxies or datasets for compliance-heavy scraping
Try itApifyFirecrawlBright 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.
Apify Affiliate Banner 728x90Apify Affiliate Banner 728x90Apify Affiliate Banner 300x50Apify Affiliate Banner 300x50

Troubleshooting

SymptomLikely causeWhat to do
No Apify tools in ClaudeConfig path wrong or Claude not fully restartedVerify OS-specific claude_desktop_config.json path; quit Claude completely and reopen.
npx / Node errorsNode not installed or too oldInstall Node.js 18+; confirm npx works in a terminal.
401 / unauthorizedWrong or missing tokenRegenerate token in Integrations; ensure APIFY_TOKEN env name matches the local server docs.
Claude hangs a long timeLong Actor runNormal for big scrapes; tighten limits or use smaller inputs.
“Context” / payload errorsHuge JSON pasted into chatLower limit, fetch fewer fields, or summarize in a second step instead of dumping full arrays.
Wrong tool chosenToo many similar ActorsReduce --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.

Start scraping for free

Create an Apify account, connect MCP, and run your first whitelisted Actor from Claude in minutes.

Start scraping for free on Apify →

Frequently Asked Questions

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.