
Firecrawl
OfficialOfficial Firecrawl MCP server — scrape, crawl, map, search, and structured extraction for any LLM client.
Add to your client
Copy the config for your MCP client and paste it into its config file.
npx -y firecrawl-mcpPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"firecrawl": {
"command": "npx",
"args": [
"-y",
"firecrawl-mcp"
],
"env": {
"FIRECRAWL_API_KEY": "<your-firecrawl-api-key>"
}
}
}
}Before you start
- Node.js (18+) with npx, or install globally via npm
- A Firecrawl API key (format fc-...) from https://www.firecrawl.dev/app/api-keys
- Optional: FIRECRAWL_API_URL to target a self-hosted Firecrawl instance instead of the cloud API
About Firecrawl
Firecrawl MCP is the official Model Context Protocol server from the Firecrawl team. It exposes Firecrawl's web data API — scraping, crawling, mapping, search, and LLM-powered structured extraction — to any MCP client such as Claude Desktop, Cursor, VS Code, and Windsurf.
Where a plain HTTP scraper returns raw HTML, Firecrawl returns clean Markdown (or JSON) ready for LLM consumption, handling JavaScript rendering, pagination, and anti-bot challenges server-side. Async jobs (crawl, batch scrape, extract, agent) are submitted and then polled via status tools, so long-running site-wide jobs don't block the model.
The server runs over stdio by default and can also serve HTTP Streamable or local SSE transports. It is a thin client over the hosted Firecrawl API, so it needs a FIRECRAWL_API_KEY; it can also point at a self-hosted Firecrawl instance via FIRECRAWL_API_URL. Built-in automatic retries with exponential backoff and credit-usage warnings help manage rate limits and spend.
Tools & capabilities (8)
firecrawl_scrapeScrape a single URL and return clean Markdown or JSON content.
firecrawl_batch_scrapeScrape multiple known URLs in one async batch job.
firecrawl_check_batch_statusPoll the progress and results of a batch scrape job.
firecrawl_mapDiscover and list all indexed/linked URLs on a website.
firecrawl_searchRun a web search and optionally scrape the result pages' content.
firecrawl_crawlAsynchronously crawl a site across multiple pages with depth and limit controls.
firecrawl_check_crawl_statusPoll the status and accumulated results of a crawl job.
firecrawl_extractExtract structured data from pages using an LLM and a custom JSON schema/prompt.
When to use it
- Use it when an LLM needs clean Markdown from a JavaScript-heavy page that a simple HTTP fetch can't render.
- Use it when you want to crawl an entire docs site or knowledge base into structured content for RAG.
- Use it when you need structured fields (prices, contacts, specs) pulled from pages against a JSON schema.
- Use it when you want web search results plus the actual page content in one step.
- Use it when mapping a site's URL structure before deciding what to scrape.
- Use it when you need anti-bot handling and automatic retries without writing scraping infrastructure yourself.
Quick setup
- 1Get a Firecrawl API key from the Firecrawl dashboard (firecrawl.dev/app/api-keys).
- 2Add the server to your MCP client config with command `npx -y firecrawl-mcp` and `FIRECRAWL_API_KEY` in the env block.
- 3Optionally set FIRECRAWL_API_URL for a self-hosted instance, or retry/credit-warning env vars.
- 4Restart the MCP client so it picks up the new server.
- 5Verify by asking the model to scrape a URL and confirm it returns Markdown.
Security notes
Requires a FIRECRAWL_API_KEY that gates billable credits; keep it secret and watch for credit-usage warnings. The crawl/scrape tools fetch arbitrary URLs you supply, so treat all returned page content as untrusted model input.
Firecrawl FAQ
Do I need an API key?
Yes. The server is a client for the hosted Firecrawl API and requires a FIRECRAWL_API_KEY (format fc-...). You can self-host the Firecrawl backend and point FIRECRAWL_API_URL at it.
Is there a free tier?
Firecrawl offers a free plan with a limited monthly credit allowance; scrapes, crawls, and extractions consume credits. Heavy crawling requires a paid plan.
Which MCP clients does it support?
Any MCP-compatible client over stdio, including Claude Desktop, Cursor, VS Code, and Windsurf. It can also run as an HTTP Streamable or local SSE server for remote setups.
What's the difference between scrape, crawl, and map?
Scrape fetches one URL's content, map lists the URLs on a site without fetching content, and crawl asynchronously visits many pages and returns their content.
Why are crawl and extract returning a job ID instead of results?
Those operations run asynchronously. Submit the job, then call firecrawl_check_crawl_status (or the extract/batch status tool) with the returned ID to retrieve results.
Alternatives to Firecrawl
Official MCP reference server that fetches a URL and returns its content as clean Markdown, with chunking.
Exa's neural web search and crawling MCP server — runs locally via npx or as a hosted remote endpoint.
Official Perplexity MCP server — web search, ask, deep research, and reasoning via Sonar models.
Compare Firecrawl with: