firecrawl-mcpCAUTION
🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
<img src="https://raw.githubusercontent.com/firecrawl/firecrawl-mcp-server/main/img/fire.png" height="140"
A Model Context Protocol (MCP) server that brings Firecrawl to MCP-compatible AI agents — search, scrape, and interact with the live web for clean, agent-ready context.
Big thanks to @vrknetha, @knacklabs 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
- Check current and historical Firecrawl credit usage
- Automatic retries and rate limiting
- Cloud and self-hosted support
- SSE support
Play around with our MCP Server on MCP.so's playground or on Klavis AI.
When to Use This Server
- Use
firecrawl_scrapewhen you have a known URL and want its content as markdown or as JSON matching a schema you supply. - Use
firecrawl_mapwhen you need to discover URLs on a site without fetching their content. - Use
firecrawl_crawlwhen you need content from many pages under a site; setlimit,includePaths/excludePaths, ormaxDiscoveryDepthto bound it. - Use
firecrawl_searchwhen you're starting from a query rather than a URL and want ranked web results; addscrapeOptionsif you also want page content fetched in the same call (the search-only endpoint never fetches content). - Use
firecrawl_interactwhen a page needs a click, type, or navigate action before you can read it — pass aurlfor a fresh page or ascrapeIdto continue on one you already scraped. - Use the
firecrawl_monitor_*t
ac61ac69b031OBSERVED · 2026-10-07Connect
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]Trust audit
CAUTIONgrade B · trust 82/100 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 (16)
api_key: 'fc-managed-parse-key',
api_key: 'fc-untrusted-purpose',
api_key: 'fc-managed-credit-usage',
.app.json
'../../plugins/openai/app-6a314a73f8ac819195b0d55e36b9c609/',
new URL('../../plugins/claude/firecrawl-search/', import.meta.url)FIRECRAWL_API_URL: `http://127.0.0.1:${backendPort}`,FIRECRAWL_OAUTH_ISSUER: `http://127.0.0.1:${backendPort}`,const url = new URL(req.url ?? '/', 'http://127.0.0.1');
url: `http://127.0.0.1:${server.address().port}`,const response = await fetch(`http://127.0.0.1:${port}/health`);@modelcontextprotocol/sdk, dotenv, fuse.js, hono, mcp-proxy, undici, uri-templates, xsschema
- `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
- Keyless recovery messages now link to the caller's own signup link, `https://firecrawl.dev/k/<token>` (a 12-character encrypted token), instead of `/app/api-keys`. The API issues the link (the `sign
Gates applied: no_behavioural_pass.
ac61ac69b031full audit observations/trust-audit/mcp-server/firecrawl__firecrawl-mcp-server.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | ac61ac69b031 | CAUTION | B | 82 | first audit |
Questions
What is the firecrawl-mcp MCP server?
🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
Is firecrawl-mcp safe to connect to an agent?
With care. The audit graded it B (82/100) and found 16 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does firecrawl-mcp need?
It reads FIRECRAWL_API_KEY, FIRECRAWL_MCP_ACTION_LOG_SECRET, FIRECRAWL_MCP_SEARCH_OAUTH_ONLY, FIRECRAWL_OAUTH_INTROSPECT_CACHE_TTL_MS, 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-mcp run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as firecrawl-mcp at 3.28.2.
How current is this page?
The grade is for one exact copy of the source (ac61ac69b031), read on 2026-10-07. The repository is watched and re-audited when it changes.