MCP server · Org-owned · Audited from source

Firecrawl MCP server

by mendableai/firecrawl-mcp-serverMIT licenceAudited 21 Sep 2026 · source e418e97c65b8

npm firecrawl-mcp 3.24.1stdio★ 7,493
!CAUTIONGrade B · 87/100 · 21 Sep 2026 · e418e97
7,493GitHub stars

Is it safe? With care — CAUTION, grade B (87/100). The tool list is built at runtime, so we cannot read it from the source. The audit recorded 11 findings (0 critical, 0 high, 2 medium, 8 low). Maintainer's description: 🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.

Ask an AI about this pageGChatGPTCClaudePPerplexityGeGeminiXGrok
More
Cite

Cite this page

ModelsAtlas. “Firecrawl MCP server (mendableai/firecrawl-mcp-server)”. Retrieved 21 Sep 2026. https://modelsatlas.com/mcp/mendableai/firecrawl

Copy of mcp/firecrawl/firecrawl-10: identical text; the original is the page to read and cite.

Trust audit

Audit 0.4.1 · full source read 21 Sep 2026

Trust score87/100!CAUTION B
0 critical0 high2 medium8 low1 info

11 findings, listed below with the file and line each was found on. Grade A needs a sandboxed behavioural run too; this audit read the source only.

What the source does

  • FilesystemNone observedNothing seen in the source
  • NetworkDeclared6 observations
  • ShellNone observedNothing seen in the source
  • DependenciesNot pinnedSome ranges float
  • SecretsFoundSee the findings

“Declared” means the server says it does this and the source agrees. Browser, file and shell access are expected of some kinds of server.

Five audit layers

LayerWhat we checkResult
L0 ProvenanceRepo owner, licence, archive status, activityPASS 1 finding
L1 Static sourceSecrets, path traversal, supply chainWARN 8 findings
L2 InstructionsPrompt injection and authority framing in docs and tool descriptionsPASS 1 finding
L3 InventoryDeclared tools match the sourcePASS 1 finding
L4 SandboxRun in isolation and watch behaviourSKIPPED

Provenance & runtime

Who published it, and what the audit could and could not run

Provenance

  • Repository owner mendableaiOrganizationAccount type recorded when we read the repository.
  • PackagePublished on npmfirecrawl-mcp at version 3.24.1
  • LicenceMITFrom the repository, as read at the audited commit.
  • Last pushTodayActivity of the repository when we read it.
  • Source commit reade418e97c65b8The audit covers exactly this commit, read on 21 Sep 2026.

Runtime

  • Sandbox runNot run yetThis audit read the source only; it did not execute the server.
  • Tool inventoryBuilt at runtimeThe source declares no tools; the server lists them when a client connects, so we cannot read them.

Every value here is read from the record's own repository and audit.Suggest a correction

Findings (11)

Sorted by severity

MEDIUMHard-coded secretssecret.generic · tests/mcp-smoke.test.mjs:2055
F-03 Hard-coded secretsCWE-798 · CWE-321Layer L1

Excerpt withheld: it is a secret, and we never print one.

Why
No further detail recorded for this rule.
Fix
—
MEDIUMHard-coded secretssecret.generic · tests/mcp-smoke.test.mjs:2684
F-03 Hard-coded secretsCWE-798 · CWE-321Layer L1

Excerpt withheld: it is a secret, and we never print one.

Why
No further detail recorded for this rule.
Fix
—
LOWNetwork egressnet.raw_ip · tests/mcp-search-profile.test.mjs:67
F-04 Network egressCWE-200 · CWE-319Layer L1
const url = `http://127.0.0.1:${port}/health`;
Why
No further detail recorded for this rule.
Fix
—
LOWNetwork egressnet.raw_ip · tests/mcp-search-profile.test.mjs:232
F-04 Network egressCWE-200 · CWE-319Layer L1
url: `http://127.0.0.1:${port}`,
Why
No further detail recorded for this rule.
Fix
—
LOWNetwork egressnet.raw_ip · tests/mcp-search-profile.test.mjs:315
F-04 Network egressCWE-200 · CWE-319Layer L1
return fetch(`http://127.0.0.1:${port}${endpoint}`, {
Why
No further detail recorded for this rule.
Fix
—
LOWNetwork egressnet.raw_ip · tests/mcp-search-profile.test.mjs:693
F-04 Network egressCWE-200 · CWE-319Layer L1
`http://127.0.0.1:${searchPort}/.well-known/oauth-protected-resource${SEARCH_ENDPOINT}`
Why
No further detail recorded for this rule.
Fix
—
LOWNetwork egressnet.raw_ip · tests/mcp-search-profile.test.mjs:796
F-04 Network egressCWE-200 · CWE-319Layer L1
`http://127.0.0.1:${fullPort}/.well-known/oauth-protected-resource`
Why
No further detail recorded for this rule.
Fix
—
LOWSupply chainsupply.unpinned · package.json
F-08 Supply chainCWE-829 · CWE-1357Layer L1
dotenv, zod, @types/node, tsup, typescript
Why
5 dependency range(s) float
Fix
pin exact versions or ship a lockfile
LOWPrompt injectionprompt.transfer_instruction · CHANGELOG.md:7
F-01 Prompt injectionCWE-94 · CWE-1427Layer L2
- `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: 
Why
an instruction to move sensitive data to an outside destination
Fix
remove; a skill never needs the user's secrets off the machine
LOWInventory / provenancemcp.no_tools_extracted · server.json
F-13 Inventory / provenanceCWE-1104Layer L3
Why
the tool list is enumerated at runtime by tools/list, not declared in source
Fix
the page says so rather than showing an empty table
INFOInventory / provenanceinv.oversize · img/fire.png
F-13 Inventory / provenanceCWE-1104Layer L0
img/fire.png
Why
2726130 bytes not read
Fix
—

Tools it exposes

None declared in source

The tool list is built at runtime, so we cannot read it from the source.

Install

Package version 3.24.1 · audited commit e418e97

Read the findings first. The most severe is Hard-coded secrets (medium) at tests/mcp-smoke.test.mjs.

claude mcp add firecrawl-mcp --env FIRECRAWL_API_KEY=${FIRECRAWL_API_KEY} -- npx -y [email protected]

The command pins the package version recorded in the source (3.24.1); the audit covers commit e418e97c65b8. Transport: stdio. Reads these environment variables: 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 and 2 more. Give it the narrowest token it needs.

Audit history

  1. !CAUTION B 87 / 100

    Source changed, verdict held · e418e97c65b8

  2. !CAUTION B 87 / 100

    First audit · 436fd1a4207c

Other ratings

Cited, never blended into our score

No third-party security ratings are recorded for this server yet. When they exist they appear here with their source and date, beside, not inside, our grade.

Questions about Firecrawl MCP server

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 (e418e97c65b8), read on 2026-09-21. The repository is watched and re-audited when it changes.

Sources

  • mendableai/firecrawl-mcp-server on GitHub — the source we read, its licence, stars and activityObserved · 21 Sep 2026
  • ModelsAtlas trust audit — CAUTION verdict for commit e418e97c65b8Observed · 21 Sep 2026

Spotted something wrong? Report a correction · Methodology

Keep going in your AI

Opens with this page as the source. We add nothing else to the prompt.