apify MCP
The Apify MCP server, per its repository, lets agents extract data from social media, search engines, maps, e-commerce sites and other websites using thousands of ready-made tools called Actors.
- MCP server
- Official
apify · 13,969 stars
MCP server
MCP server published on npm as firecrawl-mcp, with a hosted endpoint. Transports: stdio, streamable-http. Maintained in firecrawl/firecrawl-mcp-server.
Checked 2026-10-31
claude mcp add firecrawl-mcp-server -- npx -y firecrawl-mcpcodex mcp add firecrawl-mcp-server -- npx -y firecrawl-mcpgemini mcp add firecrawl-mcp-server npx -y firecrawl-mcpHosted endpoint: https://mcp.firecrawl.dev/v2/mcp
Commands come from the project's own docs or registry entry. Check them against the source before you run them.
Loading poll...
The Firecrawl MCP server connects an agent to Firecrawl's web API. It can search the web, scrape a page into clean Markdown or JSON, map and crawl a site, parse PDFs, click through a page in a real browser and watch pages for changes. The server is MIT licensed, but the work runs on Firecrawl's service and costs credits. We checked it on 31 October 2026.
Maintainer | Firecrawl ( |
License | MIT |
Language | TypeScript, run with |
Transports | stdio by default; streamable HTTP and SSE locally; hosted at |
Hosted endpoints |
|
Auth | API key ( |
Tools | 27 when the full profile registers with default settings, per the README |
Container image |
|
Last push we saw | 29 Oct 2026 |
Latest tagged release on GitHub | v3.2.1, 26 Sep 2025; the repo has moved on since without a newer release tag |
Service price | Free tier, then Hobby $19, Standard $99, Growth $399, Scale $749 a month billed monthly |
A plain fetch tool returns raw HTML or a rough text dump. Firecrawl's service renders the page, strips navigation and ads, and gives back Markdown or JSON that fits a schema you write. That matters because an agent pays for every token it reads. A page that comes back as 3,000 words of clean text is cheaper and easier to use than the same page with its menus and scripts.
The README groups the features like this:
Our view: this is a bigger surface than most "scrape" servers. Part of it is a plain scraper. Part of it is a research service that happens to speak MCP.
The README has a decision guide. We have kept its logic and shortened it.
Tool | Use it when | Returns |
|---|---|---|
| You know the URL and want its content or specific fields | JSON (preferred) or Markdown |
| You need the URLs on a site, not their content | A list of URLs |
| You start from a question, not a URL | Ranked results with excerpts |
| You need content from many pages under one site | Final crawl status and data |
| You have a file or an uploaded document | Markdown, JSON or document output |
| A page needs a click, typing or navigation first | Result plus a scrape id |
| The answer spans several sites and the URLs are unknown | Structured JSON |
| A programming question about a library, API or error | Passages from developer sources |
| A legal or regulatory question | Snippets from US government material |
| You need papers, not web pages | Paper metadata, citations and full-text passages |
| A page should be checked on a schedule | Monitor and check data, diffs |
| You want to see what you have left or spent | Current or historical usage |
There are also Alexandria tools, which look up and run capabilities from catalogued data providers, and feedback tools. The search feedback tool refunds 1 credit on the first report per search, with a daily cap, per the README.
The README makes a point that is worth repeating. When you need a price, a name and a description, ask for JSON with a schema. Use Markdown only when you really need the whole page. A schema keeps the response small and stops the agent's context window from filling up.
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/product",
"formats": [{
"type": "json",
"prompt": "Extract the product information",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" }
},
"required": ["name", "price"]
}
}]
}
}You do not write this by hand. You say "get the product details from this URL" and the agent builds the call. It helps to know what is underneath.
A crawl follows links and bills per page. The README says to bound it with limit, includePaths, excludePaths or maxDiscoveryDepth. Without a limit, an enthusiastic agent can spend a lot of credits on a large site. Map first, pick the sections you need, then scrape or crawl those.
Search costs 2 credits per 10 results, per Firecrawl's pricing page. The README warns that scrapeOptions fetches every result's page in the same call and bills each as a scrape. Keep it for the full text of a few results. For most questions, read the excerpts and scrape only the URLs that matter.
firecrawl_interact opens a page and runs one prompt or code turn to completion. You can pass a url for a fresh page or a scrapeId to continue on one you already scraped, then end the session with firecrawl_interact_stop. The README says this is not a good fit when you need to hold a session open across many of your own steps with your own retry logic. For that, a browser tool such as Playwright MCP gives you step-level control.
The MCP server is free. The credits are not. From Firecrawl's pricing page, which shows prices effective 4 September 2026:
Plan | Price per month, billed monthly | Credits per month |
|---|---|---|
Free | $0 | 1,000, refreshed monthly, no card |
Hobby | $19 ($16 billed annually) | 5,000 |
Standard | $99 ($83 billed annually) | 100,000 |
Growth | $399 ($333 billed annually) | 500,000 |
Scale | $749 ($599 billed annually) | 1,000,000 |
Enterprise | Custom | Custom |
How credits are used, from the same page:
Credits are shared across all endpoints. Paid plans can turn on pay-as-you-go, which adds credits in 5 USD steps up to a monthly limit you set.
One planning note. JSON extraction adds 4 credits, so a JSON scrape costs about five times a plain one. That is often still the right call, because the response is smaller, but your budget should use that number.
Firecrawl documents several routes. The hosted server is the simplest, since there is nothing to run.
https://mcp.firecrawl.dev/v2/mcpWith no key, scrape, search and parse work, rate-limited. crawl, map and agent need a key. The README says to prefer OAuth or an API key whenever you can sign up, because that unlocks the full tool set and higher limits.
Keep the URL the same and send the key as a header: Authorization: Bearer <FIRECRAWL_API_KEY>. The README is firm that you should never put an API key in the server URL or in an agent chat. Put it in the client's secret or header setting.
Use https://mcp.firecrawl.dev/v2/mcp-oauth with your client's account connection flow. The README notes this is an MCP endpoint, not a browser page, and that you should not add a second Firecrawl entry when reconnecting.
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcpdocker run -i --rm -e FIRECRAWL_API_KEY=fc-YOUR_API_KEY ghcr.io/firecrawl/firecrawl-mcp-server:latestThe README says to pin sha-<commit sha> or a digest when you need a fixed image, because latest and v<package version> move.
The README documents Cursor, Windsurf, VS Code and Claude Desktop with the stdio entry. Lines for the other agents are our adaptation from each agent's own MCP docs. For how these agents name fields, see MCP clients.
Our adaptation, stdio:
claude mcp add firecrawl -e FIRECRAWL_API_KEY=fc-YOUR_API_KEY -- npx -y firecrawl-mcpHosted, with a header, from Claude Code's MCP docs:
claude mcp add --transport http firecrawl https://mcp.firecrawl.dev/v2/mcp \
--header "Authorization: Bearer fc-YOUR_API_KEY"Our adaptation, in ~/.codex/config.toml:
[mcp_servers.firecrawl]
command = "npx"
args = ["-y", "firecrawl-mcp"]
[mcp_servers.firecrawl.env]
FIRECRAWL_API_KEY = "fc-YOUR_API_KEY"The README's entry, in Cursor's MCP settings or .cursor/mcp.json, needs Cursor 0.45.6 or newer:
{
"mcpServers": {
"firecrawl-mcp": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": { "FIRECRAWL_API_KEY": "YOUR-API-KEY" }
}
}
}Our adaptation. Add the same stdio entry to ~/.gemini/config/mcp_config.json under the mcpServers key. For the hosted endpoint, Antigravity uses serverUrl for Streamable HTTP, so the URL goes there. Antigravity's MCP docs say a headers object sends custom HTTP headers with serverUrl connections, so an Authorization header is possible. Gemini CLI is now for Code Assist enterprise customers only, so we cover Antigravity here.
Our adaptation, in opencode.json:
{
"mcp": {
"firecrawl": {
"type": "local",
"command": ["npx", "-y", "firecrawl-mcp"],
"environment": { "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY" }
}
}
}The README gives a .vscode/mcp.json entry that uses a prompted input for the key, so the key never sits in the file:
{
"inputs": [{ "type": "promptString", "id": "apiKey",
"description": "Firecrawl API Key", "password": true }],
"servers": {
"firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": { "FIRECRAWL_API_KEY": "${input:apiKey}" }
}
}
}FIRECRAWL_API_URL points the server at a self-hosted Firecrawl. A key is optional when your instance does not require one.FIRECRAWL_OAUTH_TOKEN supplies a static OAuth access token over stdio. Use access tokens (fco_), never refresh tokens (fcr_).HTTP_STREAMABLE_SERVER=true serves the tools at http://localhost:3000/mcp instead of stdio.FIRECRAWL_MCP_ALLOWED_HOSTS lists extra host names the local HTTP server will answer.FIRECRAWL_NO_SEARCH_FEEDBACK=1 and FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 remove the feedback tools and shrink the tool count.localhost, 127.0.0.1 and [::1] by default and returns 403 for other Host or Origin headers. The README says this stops web pages you visit from using the local server through DNS rebinding. Setting FIRECRAWL_MCP_ALLOWED_HOSTS=* turns the check off.HOST=0.0.0.0, every client that reaches the port is served with the server's key. The README says to do this only on a trusted network.redactPII: true to return content with personal data redacted, per the README.firecrawl_credit_usage, and set a pay-as-you-go limit if you turn that on. The agent tool also takes a maxCredits cap, which the API defaults to 2,500 when you leave it out.Respect the sites you scrape. Firecrawl returns what it can reach, and whether you may use it is a matter of that site's terms and the law where you work.
Option | Choose it when |
|---|---|
You want a free, local page download with no service behind it | |
You mainly need web search results | |
You want a search-focused service with its own index | |
You want search and extraction built for agents | |
You want ready-made scrapers for specific sites | |
You need step-by-step browser control on your own machine |
The MCP servers hub lists more.
We did not run Firecrawl for this page. This comes from the README, the pricing page and the repo data.
The strongest case for it is structured extraction. A schema in, clean JSON out, is a better contract than a page of text, and it keeps your context small. The developer search and research tools are a thoughtful extra for coding agents, since they aim at the sources a developer actually needs.
The cost is the catch. A free MCP server that draws on a metered service is cheap to try and easy to overspend. Read the credit table before you let an agent crawl, and set limits on every crawl.
If you only need to read a known page now and then, Fetch MCP is free and simple. If you need search, structure and scale, Firecrawl is a reasonable choice.
limit on every crawl.firecrawl_credit_usage after your first real task.It lets an agent search the web, scrape pages into Markdown or JSON, crawl or map sites, parse documents and drive a page in a real browser.
The server is MIT licensed. The service has a free tier of 1,000 credits a month, and the hosted keyless endpoint offers scrape, search and parse with rate limits.
For the full tool set, yes. A self-hosted Firecrawl may not need one.
Yes. Set FIRECRAWL_API_URL to your instance.
A fetch server downloads a page. Firecrawl renders it, returns clean Markdown or schema-shaped JSON, and adds crawling, search and browser actions at a per-credit cost.
The Apify MCP server, per its repository, lets agents extract data from social media, search engines, maps, e-commerce sites and other websites using thousands of ready-made tools called Actors.
apify · 13,969 stars
Scrapling is a Python web scraping framework from D4Vinci, described on GitHub as handling everything from a single request to a full-scale crawl, and this entry is its MCP server.
D4Vinci · 90,477 stars
Browser Use is an open-source Python library for AI browser agents, and our entry covers its MCP route.
browser-use · 119,597 stars
SeleniumBase describes itself as the best API for web automation, testing and scraping, with a CDP Mode that launches a stealth browser to get past bot detection, and this entry is its MCP server, installed with uvx seleniumbase over stdio.
seleniumbase · 13,208 stars
Checked 2026-10-31
Checked 2026-10-31
Checked 2026-10-31
Checked 2026-10-31
Tried it with one of these? Vote below: works for me, or not.
It lets an agent search the web, scrape a page into Markdown or structured JSON, crawl or map a site, parse documents and drive a page in a real browser, using Firecrawl's service.
The server is MIT licensed. Firecrawl's service has a free tier of 1,000 credits a month, and the hosted endpoint offers a keyless mode for scrape, search and parse with rate limits.
For the full tool set, yes. The hosted keyless endpoint exposes only scrape, search and parse. A self-hosted Firecrawl instance may not need a key.
Yes. Set FIRECRAWL_API_URL to your self-hosted API address.
A fetch server downloads a page. Firecrawl renders it, returns clean Markdown or schema-shaped JSON, and adds crawling, search and browser actions, at a per-credit cost.
Loading poll...
Loading reviews…
Only members can review this page. Sign in
Netdata is an observability platform, and this entry is its hosted MCP endpoint at app.netdata.cloud, reached over streamable HTTP.
netdata · 81,227 stars
Claude Flow is published on npm as claude-flow, and its repository now sits at ruvnet/ruflo, which the GitHub description calls the original agent harness for deploying multi-agent swarms and coordinating autonomous workflows.
ruvnet · 80,298 stars
Context7 is an MCP server from Upstash that serves up-to-date library documentation to coding agents, so the model reads current docs instead of guessing from training data.
upstash · 63,974 stars
MCP server published on npm as chrome-devtools-mcp. Transports: stdio. Maintained in ChromeDevTools/chrome-devtools-mcp.
ChromeDevTools · 54,503 stars
The all-in-one WordPress community stack
Also ours: wbcomdesigns.comvapvarun.combrndle.com