Firecrawl
CAUTIONgrade B · trust 87/100🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
batch processingclaudecontent extractiondata collectionfirecrawlfirecrawl aijavascript renderingllm toolsOverview
From the repository's own README, as read at the audited commit.
<div align="center"> <a name="readme-top"></a> <img src="https://raw.githubusercontent.com/firecrawl/firecrawl-mcp-server/main/img/fire.png" height="140" ></div># Firecrawl MCP ServerA Model Context Protocol (MCP) server that brings [Firecrawl](https://github.com/firecrawl/firecrawl) to MCP-compatible AI agents — search, scrape, and interact with the live web for clean, agent-ready context.> Big thanks to [@vrknetha](https://github.com/vrknetha), [@knacklabs](https://www.knacklabs.ai) for the initial implementation!## Features- Search the web and get full page content- Search an index built for coding agents: GitHub issues, merged pull requests, READMEs, and docs- Scrape any URL into clean, structured data- Interact with pages — click, navigate, and operate- Deep research with autonomous agent- Automatic retries and rate limiting- Cloud and self-hosted support- SSE support> Play around with [our MCP Server on MCP.so's playground](https://mcp.so/playground?server=firecrawl-mcp-server) or on [Klavis AI](https://www.klavis.ai/mcp-servers).## When to Use This Server- Use `firecrawl_scrape` when you have a known URL and want its content as markdown or as JSON matching a schema you supply.- Use `firecrawl_map` when you need to discover URLs on a site without fetching their content.- Use `firecrawl_crawl` when you need content from many pages under a site; set `limit`, `includePaths`/`excludePaths`, or `maxDiscoveryDepth` to bound it.- Use `firecrawl_search` when you're starting from a query rather than a URL and want ranked web results; add `scrapeOptions` if you also want page content fetched in the same call (the search-only endpoint never fetches content).- Use `firecrawl_interact` when a page needs a click, type, or navigate action before you can read it — pass a `url` for a fresh page or a `scrapeId` to continue on one you already scraped.- Use the `firecrawl_monitor_*` tools when the same page needs to be checked on a recurring schedule with diffs and chang
Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add firecrawl-mcp --env FIRECRAWL_API_KEY=${FIRECRAWL_API_KEY} -- npx -y [email protected]Details
- Source
- mendableai/firecrawl-mcp-server
- npm
firecrawl-mcp@3.24.1- Transports
- stdio
- Credentials it reads
FIRECRAWL_API_KEYFIRECRAWL_MCP_ACTION_LOG_SECRETFIRECRAWL_MCP_SEARCH_OAUTH_ONLYFIRECRAWL_OAUTH_INTROSPECT_SECRETFIRECRAWL_OAUTH_ISSUERFIRECRAWL_OAUTH_TOKENKEYLESS_PROXY_SECRETMCP_DELEGATED_CREDENTIAL_SECRETMCP_OAUTH_ACCEPT_LEGACY_V2_MCP_AUDOPENAI_APPS_CHALLENGE_TOKEN- Tools
- Registered at runtime; the list could not be read from source.
- License
- MIT
- Stars
- 7,478 · pushed 0d ago
Trust audit
Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (6 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (11)
api_key: 'fc-managed-parse-key',
api_key: 'fc-untrusted-purpose',
const url = `http://127.0.0.1:${port}/health`;url: `http://127.0.0.1:${port}`,return fetch(`http://127.0.0.1:${port}${endpoint}`, {`http://127.0.0.1:${searchPort}/.well-known/oauth-protected-resource${SEARCH_ENDPOINT}``http://127.0.0.1:${fullPort}/.well-known/oauth-protected-resource`dotenv, zod, @types/node, tsup, typescript
- `firecrawl_parse` now works on the remote hosted MCP server (`CLOUD_SERVICE`), not just local mode. Because the hosted server cannot read the caller's filesystem, hosted parse uses a two-call flow:
img/fire.png
Gates applied: no_behavioural_pass.
Audited 2026-09-18 · audit v0.4.0 · source sha 436fd1a4207c · full audit: observations/trust-audit/mcp-server/mendableai__firecrawl.json · Report an issue or request a re-scan
Audit history
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-09-18 | 436fd1a4207c | CAUTION | B | 87 | first audit |
Alternatives
Other servers in the same categories, safer ones first.
Questions
What is the Firecrawl MCP server?
🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
Is Firecrawl safe to connect to an agent?
With care. The audit graded it B (87/100) and found 11 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does Firecrawl need?
It reads FIRECRAWL_API_KEY, FIRECRAWL_MCP_ACTION_LOG_SECRET, FIRECRAWL_MCP_SEARCH_OAUTH_ONLY, FIRECRAWL_OAUTH_INTROSPECT_SECRET, FIRECRAWL_OAUTH_ISSUER, FIRECRAWL_OAUTH_TOKEN, KEYLESS_PROXY_SECRET, MCP_DELEGATED_CREDENTIAL_SECRET, MCP_OAUTH_ACCEPT_LEGACY_V2_MCP_AUD and OPENAI_APPS_CHALLENGE_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Firecrawl run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as firecrawl-mcp at 3.24.1.
How current is this page?
The grade is for one exact copy of the source (436fd1a4207c), read on 2026-09-18. The repository is watched and re-audited when it changes.
Provenance: OBSERVED · read 2026-09-18 · job trust-audit-2026-09-18