Doramagic Project Pack · Human Manual
firecrawl-mcp-server
MCP server for Firecrawl — search, scrape, and interact with the web. Supports both cloud and self-hosted instances. Features include web search, scraping, page interaction, batch processing, and LLM-powered content analysis.
Server Overview and Architecture
Related topics: Available Tools and Capabilities, Configuration, Authentication, and Client Integration
Continue reading this section for the full explanation and source context.
Continue reading this section for the full explanation and source context.
Continue reading this section for the full explanation and source context.
Continue reading this section for the full explanation and source context.
Related Pages
Related topics: Available Tools and Capabilities, Configuration, Authentication, and Client Integration
Server Overview and Architecture
Purpose and Scope
The firecrawl-mcp-server is the official Model Context Protocol (MCP) server that exposes Firecrawl — a web search, scraping, and interaction platform — to MCP-compatible clients such as Claude Desktop, Cursor, and n8n. The server translates MCP tool calls into requests against the Firecrawl REST API (v1/v2) and returns markdown, JSON, or branding payloads to the LLM client. Source: package.json:1-3 declares the package as "MCP server for Firecrawl — search, scrape, and interact with the web. Supports both cloud and self-hosted instances."
Architecturally the project is a thin TypeScript layer over two external packages:
| Component | Role | Source |
|---|---|---|
firecrawl-fastmcp | MCP transport + tool-registration framework (FastMCP) | src/index.ts:1-50 |
@mendable/firecrawl-js (4.25.2) | Firecrawl REST SDK providing FirecrawlApp and the authenticated HTTP client | package.json:42-44 |
The runtime artifact is a single executable, dist/index.js, published to npm as firecrawl-mcp and started via the firecrawl-mcp bin or through npx -y firecrawl-mcp Source: package.json:5-9, 20-22.
High-Level Architecture
The server follows a standard MCP request/response pipeline. Each tool is registered with FastMCP using a Zod-validated parameter schema, and the executor delegates to a per-session Firecrawl SDK client that injects the API key.
flowchart LR
Client[MCP Client<br/>Claude / Cursor / n8n] -- JSON-RPC over stdio --> Server[firecrawl-mcp-server<br/>FastMCP]
Server -- tool call --> Tool[Registered Tool<br/>e.g. firecrawl_scrape]
Tool -- getClient(session) --> SDK[mendable/firecrawl-js]
SDK -- HTTPS --> API[Firecrawl REST API<br/>v1 or v2]
API -- markdown / JSON --> SDK
SDK --> Tool
Tool -- string response --> Server
Server --> ClientTransport and Registration
The official MCP manifest declares a single transport — stdio — which is the path most local clients use. Source: server.json:11-21 advertises "transport": { "type": "stdio" } for the npm package firecrawl-mcp at version 3.20.2. The runtime package.json is intentionally ahead of the manifest (3.21.0) and uses the canonical MCP name io.github.firecrawl/firecrawl-mcp-server Source: package.json:4, 6.
Session-Scoped Authentication
Authentication is per-session rather than global. Each call site receives a SessionData object that may carry firecrawlApiKey, and a getClient(session) factory builds (or reuses) a FirecrawlApp for that session. Source: src/index.ts:40-95 shows the SessionData interface and the client construction pattern. This allows MCP hosts that forward per-user credentials (e.g. proxying from n8n) to isolate keys, and it is the layer that produced the regression tracked in issue #246 where stdio calls returned Unauthorized because the session key stopped being propagated in 3.18.0+.
Tool Surface
Tools are registered through server.addTool(...) blocks in src/index.ts. The visible surface (from descriptions, schemas, and the firecrawl_* family) includes at least:
firecrawl_scrape— fetch a single URL with markdown / JSON / branding formats,waitFor,lockdown,redactPII, andmaxAgecache hints. Source: src/index.ts:200-300 documents the format-selection rules and lockdown mode (5 credits, errors on cache miss).firecrawl_parse— parse a local file (.html,.htm,.xhtml,.pdf,.docx,.doc,.odt,.rtf,.xlsx,.xls) into markdown or JSON. Source: src/index.ts:120-180.firecrawl_map— discover URLs on a site, with optionalsearchfilter used as a recovery step whenfirecrawl_scrapereturns empty content. Source: src/index.ts:300-340.firecrawl_extract— LLM-driven structured extraction across a list of URLs with a JSON schema. Source: src/index.ts:340-400.firecrawl_agent— asynchronous research agent that returns a job ID; clients must pollfirecrawl_agent_statusfor 1–5 minutes. Source: src/index.ts:380-420.firecrawl_feedback— submit a quality rating (good/partial/bad) withvaluableSources,missingContent, andquerySuggestions; the server enforces a substantive-feedback minimum and a ~2 minute time window. Source: src/index.ts:400-460.firecrawl_research_*— experimental wrappers over/v2/search/research/*for arXiv papers and GitHub history/readme search. Source: src/research.ts:1-180.firecrawl_monitor_*— goal-based change monitoring returningjudgment/meaningfulChangespayloads. Source: src/monitor.ts:1-50 and CHANGELOG.md:1-10 (entries for 3.19.x documenting the simplifiedfirecrawl_monitor_createAPI).
The firecrawl_batch_scrape name referenced in older documentation is not registered as a tool; the description string in server.addTool that mentions it is stale and tracked in issue #130. Clients that need batch behavior should call firecrawl_scrape per URL or use the async batch endpoints via the SDK.
Build, Distribution, and Versioning
The repository is a TypeScript ESM project that compiles with tsc and emits a dist/ directory. Source: package.json:18-34 defines build, start, start:cloud (CLOUD_SERVICE=true node dist/index.js), lint, format, and two publish scripts (publish-prod and publish-beta with the --tag beta flag). Distribution is npm-only with publishConfig.access: "public" and files: ["dist"] Source: package.json:7-16.
Versioning has had friction in the community: the npm package.json reports 3.21.0 while server.json reports 3.20.2, and no GitHub release has been tagged since v3.2.1 (2025-09-26), per issue #255. Operators pinning the server should rely on the npm version, not GitHub tags. The mcpName field in package.json and the name field in server.json are the stable identifiers MCP hosts use for resolution Source: package.json:6, server.json:4-5.
Common Failure Modes
Several recurring deployment issues are tied to the server's architecture:
- Docker binding to IPv6 loopback only. The provided image binds the stdio/HTTP listener to
::1; front-ends like NGINX that proxy to127.0.0.1get connection refused. See issue #251. Workaround: bind to0.0.0.0or proxy to[::1]. - Self-hosted still demanding an API key. After v3.2.0 a
FIRECRAWL_API_URLshould make the key optional, but regression #126 shows the key is still required for some self-hosted configurations. SettingCLOUD_SERVICE=true(npm run start:cloud) bypasses the local client. - stdio
Unauthorizedregression (3.18.0+). Issue #246 — every tool call fails withAPI key is required when not using a self-hosted instance. Pin to 3.17.0 or pass the key explicitly in the MCP client config. - n8n 404s. Issue #64 — n8n's MCP client can hit a wrong route when the server is fronted by a path prefix; expose the server on a bare host:port rather than behind a sub-path.
See Also
- Tool reference:
firecrawl_scrape,firecrawl_map,firecrawl_agent,firecrawl_extract,firecrawl_feedback(descriptions inlined insrc/index.ts). - Research endpoints: arXiv and GitHub history in
src/research.ts. - Monitor endpoints:
firecrawl_monitor_createandfirecrawl_monitor_checksinsrc/monitor.ts. - Versioning policy:
VERSIONING.mdandCHANGELOG.mdfor the v1/v2 client compatibility matrix.
Source: https://github.com/firecrawl/firecrawl-mcp-server / Human Manual
Available Tools and Capabilities
Related topics: Server Overview and Architecture, Configuration, Authentication, and Client Integration
Continue reading this section for the full explanation and source context.
Related Pages
Related topics: Server Overview and Architecture, Configuration, Authentication, and Client Integration
Available Tools and Capabilities
Overview
The Firecrawl MCP Server exposes a curated set of Model Context Protocol (MCP) tools that wrap Firecrawl's web data platform, letting LLM agents search, scrape, extract, research, and monitor web content. Tools are registered through the FastMCP server and dispatched via the Firecrawl JS SDK (@mendable/firecrawl-js 4.25.2) defined in package.json. The official MCP server name is io.github.firecrawl/firecrawl-mcp-server, versioned separately from the npm package as shown in server.json.
The server is designed to be transport-agnostic and to work against either the managed Firecrawl cloud (when CLOUD_SERVICE=true) or a self-hosted instance, with FIRECRAWL_API_KEY resolved per-session from environment or request headers.
Tool Inventory
The following table summarizes the tools registered by the server, grouped by capability. Each row links to the source file that defines or documents the tool.
| Tool | Purpose | Source |
|---|---|---|
firecrawl_scrape | Extract content from a single URL in markdown, JSON, branding, or other formats; supports lockdown and redactPII | src/index.ts |
firecrawl_parse | Parse a local file (HTML, PDF, DOCX, XLSX, etc.) into structured output | src/index.ts |
firecrawl_map | Discover indexed URLs on a website, optionally filtered by a search term | src/index.ts |
firecrawl_extract | Run LLM-driven structured extraction across one or more URLs using a prompt and JSON schema | src/index.ts |
firecrawl_search | Web search returning ranked results with optional sources/categories | src/index.ts |
firecrawl_agent | Asynchronously dispatch a research agent that browses the web autonomously | src/index.ts |
firecrawl_agent_status | Poll the status of a previously submitted agent job | src/index.ts |
firecrawl_feedback | Submit structured feedback (rating, issues, valuable sources, missing content) for a search | src/index.ts |
firecrawl_research_arxiv | Search arXiv papers by query, returning formatted hits | src/research.ts |
firecrawl_research_github | Search GitHub issue/PR history and repository READMEs | src/research.ts |
firecrawl_monitor_create | Create a monitor that watches one or more pages for goal-relevant changes | src/monitor.ts |
firecrawl_monitor_checks | List or fetch monitor check results, with judgment and meaningfulChanges fields | src/monitor.ts |
Synchronous Extraction Tools
The synchronous tools — firecrawl_scrape, firecrawl_parse, firecrawl_map, and firecrawl_extract — return a result inline and are best used when the target is known. Each tool carries a Zod-validated schema and an LLM-oriented description explaining when to prefer it, common mistakes, and example payloads. For example, firecrawl_scrape accepts formats (markdown, json, branding, etc.), maxAge for cached responses, lockdown for cache-only retrieval, and redactPII for privacy filtering (Source: src/index.ts).
firecrawl_map is positioned in its description as the recommended first step when firecrawl_scrape returns empty or minimal content: pass a search term to discover the correct page URL before re-scraping. firecrawl_parse is restricted to local file paths and explicitly rejects URL inputs, screenshots, and most proxy/location options; its supported extensions are .html, .htm, .xhtml, .pdf, .docx, .doc, .odt, .rtf, .xlsx, and .xls (Source: src/index.ts).
Asynchronous and Feedback Tools
Three tools operate outside the request/response cycle:
firecrawl_search— Returns search results and optionally asearchIdthat can be passed to feedback (Source: src/index.ts).firecrawl_feedback— Accepts aratingofgood,partial, orbadtogether with structured payloads (valuableSources,missingContent,querySuggestions,issues). Substantive content is required:goodmust include at least onevaluableSourcesentry,badmust includemissingContentorquerySuggestions. Feedback is idempotent persearchIdand has a ~2-minute submission window, after which the API returnsFEEDBACK_WINDOW_EXPIRED(Source: src/index.ts).firecrawl_agentandfirecrawl_agent_status— The agent runs asynchronously and returns a job ID immediately; clients are instructed to pollfirecrawl_agent_statuspatiently (every 15–30 seconds for 2–5 minutes) since complex research can take several minutes (Source: src/index.ts).
Research and Monitoring Tools
The research tools in src/research.ts call /v2/search/research/* directly through the SDK's HTTP layer (the installed SDK predates the native research client). firecrawl_research_arxiv formats paper hits with capped author lists and inline affiliations, while firecrawl_research_github searches issue/PR history and READMEs, rendering results as [repo#number] blocks with a 1,200-character content cap to stay within MCP output limits.
Monitoring tools were simplified in version 3.19.0: firecrawl_monitor_create accepts a single page or a pages array plus a goal string, and firecrawl_monitor_checks returns structured results that include isMeaningful, judgment, and meaningfulChanges for goal-based diff interpretation (Source: CHANGELOG.md). When summarizing a check, the tool description recommends using diff.json paths and judgment.meaningfulChanges over raw markdown diffs (Source: src/monitor.ts).
Tool Registration and Data Flow
flowchart LR
A[MCP Client<br/>Claude, Cursor, n8n] -->|JSON-RPC| B[FastMCP Server<br/>src/index.ts]
B --> C[getClient<br/>per-session API key]
C --> D[@mendable/firecrawl-js]
D --> E[Firecrawl Cloud<br/>or Self-hosted]
B --> F[src/research.ts<br/>research tools]
B --> G[src/monitor.ts<br/>monitor tools]
F --> D
G --> DgetClient resolves a Firecrawl client per session, threading through the API key supplied via FIRECRAWL_API_KEY or the per-request session header. The transport (stdio or Streamable HTTP) is declared in server.json; stdio is the default registry transport.
Community Notes
Several community-reported issues intersect with the tool surface:
- A regression in 3.18.0+ caused every stdio tool call to return
Unauthorized: API key is requiredeven whenFIRECRAWL_API_KEYwas set (Source: #246). - Self-hosted users still report that the server requires an API key despite the v3.2.0 fix intended to remove that requirement when a custom base URL is configured (Source: #126).
- Documentation references
firecrawl_batch_scrape, but the tool was removed and the registered descriptions still mention it, leading to inconsistent model behavior (Source: #113, #130). - The
firecrawl_searchtool'ssourcesschema has been reported as inconsistent between documentation and runtime, producing 422 errors in some clients (Source: #127). - The Docker image binds only to IPv6
::1, breaking NGINX proxies that forward to127.0.0.1(Source: #251). - Windows 11 clients have reported "Client Closed or Failed to create" errors when launching the server (Source: #36).
- An n8n integration reported 404 errors when proxying the MCP server (Source: #64).
See Also
- Firecrawl MCP Server repository
- CHANGELOG.md for version-by-version tool additions
Source: https://github.com/firecrawl/firecrawl-mcp-server / Human Manual
Configuration, Authentication, and Client Integration
Related topics: Server Overview and Architecture, Available Tools and Capabilities, Deployment, Infrastructure, and Troubleshooting
Continue reading this section for the full explanation and source context.
Related Pages
Related topics: Server Overview and Architecture, Available Tools and Capabilities, Deployment, Infrastructure, and Troubleshooting
Configuration, Authentication, and Client Integration
Overview
The Firecrawl MCP Server is a Model Context Protocol (MCP) server that exposes Firecrawl's web search, scrape, crawl, extract, and agent capabilities as tools callable by MCP clients such as Claude Desktop, Cursor, and n8n. The server is published as the npm package firecrawl-mcp and is registered in the MCP registry under the identifier io.github.firecrawl/firecrawl-mcp-server Source: [package.json, server.json].
Configuration, authentication, and client integration form the boundary between the MCP server and the rest of the world: environment variables select transport and cloud behavior, the API key authorizes Firecrawl API calls, and the session abstraction lets the server support both shared deployments and per-request credentials.
Environment Variables and Build Targets
The package.json defines the runtime scripts and the single published binary dist/index.js, which is the compiled MCP server entrypoint. Two notable npm scripts gate behavior at startup:
npm startruns the local server in V2 mode by default.npm run start:cloudsetsCLOUD_SERVICE=trueto enable versioned cloud endpoints.
The server also recognizes two transport flags documented in VERSIONING.md:
SSE_LOCAL=trueswitches the local server to Server-Sent Events.HTTP_STREAMABLE_SERVER=trueswitches the local server to the Streamable HTTP transport introduced in v2.0.0.
The server depends on @mendable/firecrawl-js 4.25.2 for the underlying Firecrawl SDK and on dotenv for loading .env files Source: [package.json, VERSIONING.md].
| Variable | Purpose | Mode |
|---|---|---|
FIRECRAWL_API_KEY | Authenticates requests to the Firecrawl API (cloud or self-hosted) | All modes |
CLOUD_SERVICE | Enables versioned cloud endpoint paths | Cloud |
SSE_LOCAL | Selects the SSE transport for local development | Local |
HTTP_STREAMABLE_SERVER | Selects the Streamable HTTP transport | Local |
FIRECRAWL_API_URL (implicit) | Custom base URL for self-hosted Firecrawl instances | Self-hosted |
Source: package.json, VERSIONING.md, server.json
The MCP registry entry only declares FIRECRAWL_API_KEY as an environment variable and marks it as a secret, reflecting that the API key is the only required credential for cloud usage Source: [server.json].
Authentication Model and Session Data
Every tool executor in src/index.ts follows the same authentication pattern: it receives a session: SessionData object alongside a log: Logger, and constructs its Firecrawl client via getClient(session). The SessionData interface minimally carries an optional firecrawlApiKey, allowing the server to read the API key from the MCP session header, from the environment, or from a self-hosted override Source: [src/index.ts].
The same pattern is reused in auxiliary modules. src/research.ts defines its own SessionData shape with firecrawlApiKey? and uses the getClient callback to obtain an SDK instance whose private http layer is used to call the /v2/search/research/* endpoints directly. src/monitor.ts exposes long-running monitor checks whose JSON-mode responses include diff, snapshot, and an LLM judgment block, all of which are produced through the same authenticated client. This consistent shape is what allows the same deployment to serve both cloud and self-hosted Firecrawl instances without per-tool branching Source: [src/research.ts, src/monitor.ts].
The v3.2.0 release note is the canonical reference for how this model is supposed to behave: self-hosted instances should not require an API key when a custom base URL is configured. Community reports of "Self-hosted Firecrawl still requires API key after v3.2.0 fix" indicate that callers must still ensure their base URL is actually picked up by the SDK client, otherwise the client falls back to the cloud endpoint and demands a key Source: [VERSIONING.md, GitHub issue #126].
Client Integration Patterns
Clients integrate with the Firecrawl MCP server in three main ways, all of which are surfaced through package.json and the registry manifest:
MCP client (Claude Desktop / Cursor / n8n)
│
├── stdio transport ──► npx -y firecrawl-mcp (FIRECRAWL_API_KEY env)
├── SSE transport ──► SSE_LOCAL=true npm start
└── Streamable HTTP ─► HTTP_STREAMABLE_SERVER=true npm start
The stdio path is the default and the one used by the registry server.json declaration. Cloud and self-hosted modes are differentiated at runtime through the same client, with CLOUD_SERVICE=true enabling versioned endpoint paths such as /v2/sse and /v2/messages (introduced in v2.0.0) Source: [server.json, VERSIONING.md, package.json].
For the n8n use case in particular, the community reports of 404 errors typically trace back to the client targeting the wrong URL path: the v1 paths (/:apiKey/sse, /:apiKey/messages) were retired in v2.0.0 in favor of /v2/sse and /v2/messages. Self-hosters must also confirm that the MCP process is reachable on the address the client uses; the official Docker image binds to IPv6 ::1 by default, which is incompatible with IPv4-only reverse proxies such as NGINX that target 127.0.0.1 Source: [VERSIONING.md, GitHub issues #64 and #251].
Common Failure Modes
Three recurring failure modes are visible in the issue tracker and in the source:
- "Unauthorized: API key is required when not using a self-hosted instance" (3.18.0+ stdio regression). Calls over stdio failed even when
FIRECRAWL_API_KEYwas set, because session credentials were not being propagated to the SDK client. Operators rolling back to 3.17.0 or fixing the session wiring are the documented workarounds [Source: GitHub issue #246]. - Self-hosted requires an API key. v3.2.0 fixed the case where a custom base URL was ignored; remaining reports (#126) suggest verifying that the base URL is actually read by
getClient(session)so the SDK does not fall back to the cloud endpoint Source: [VERSIONING.md, GitHub issue #126]. - Tool description drift. Some tool descriptions passed to the LLM still mention
firecrawl_batch_scrape, but the tool is no longer registered with the server. Clients and prompts that rely on these descriptions will see inconsistent behavior; the canonical tool list is whatsrc/index.tsregisters with the MCP framework Source: GitHub issues #113 and #130, [src/index.ts].
See Also
- Tools and Capabilities — reference for each registered MCP tool
- Versioning and Migration Guide — V1→V2 path changes and defaults
- Self-Hosting Guide — running the server against a self-hosted Firecrawl instance
Source: https://github.com/firecrawl/firecrawl-mcp-server / Human Manual
Deployment, Infrastructure, and Troubleshooting
Related topics: Configuration, Authentication, and Client Integration, Server Overview and Architecture
Continue reading this section for the full explanation and source context.
Related Pages
Related topics: Configuration, Authentication, and Client Integration, Server Overview and Architecture
Deployment, Infrastructure, and Troubleshooting
Overview
The firecrawl-mcp-server package is published to npm as firecrawl-mcp and is the official Model Context Protocol (MCP) bridge between an MCP-capable client (Claude Desktop, Cursor, n8n, etc.) and the Firecrawl web data platform. It exposes a large tool surface — firecrawl_scrape, firecrawl_search, firecrawl_crawl, firecrawl_map, firecrawl_extract, firecrawl_agent, firecrawl_monitor_*, plus research tools (firecrawl_research_search, firecrawl_research_github) — that all delegate to the upstream @mendable/firecrawl-js SDK. Source: package.json.
The server can target either the managed Firecrawl cloud or a self-hosted Firecrawl instance. Which target it talks to is decided at startup from environment variables, which makes environment configuration the central concern of any deployment. Source: src/index.ts.
Package Metadata & Distribution
The npm package identity, runtime requirements, and entry points are declared in package.json:
| Field | Value |
|---|---|
name | firecrawl-mcp |
version | 3.21.0 (latest in repo) |
mcpName | io.github.firecrawl/firecrawl-mcp-server |
bin | firecrawl-mcp → dist/index.js |
engines.node | >=18.0.0 |
type | module (ESM) |
main SDK | @mendable/[email protected] |
MCP framework | firecrawl-fastmcp@^1.0.5 |
Validation | zod@^4.1.5 |
Source: package.json.
The package is also published to the MCP server registry under the same mcpName, with a separate version: 3.20.2 and a single environmentVariables slot for FIRECRAWL_API_KEY (declared isSecret: true, isRequired: false). Source: server.json.
Release hygiene note (community): issue #255 reports that the GitHub repository is already on3.20.2(and the in-treepackage.jsonis at3.21.0) but no GitHub Release tag has been cut sincev3.2.0(2025-09-26). When you pin a version in production, pin the npm tag rather than relying on GitHub release notes. Source: issue #255.
Deployment Surfaces & Run Scripts
package.json defines the canonical build and run flow:
npm run build # tsc + chmod dist/index.js 755
npm start # node dist/index.js (self-hosted friendly)
npm run start:cloud # CLOUD_SERVICE=true node dist/index.js
npm test # jest via --experimental-vm-modules
npm run test:endpoints
npm run lint / lint:fix
Source: package.json.
The compiled entrypoint is dist/index.js and is published with mode 755 so npx firecrawl-mcp works directly. The CLOUD_SERVICE=true flag switches the client into cloud mode (managed Firecrawl API), while the default start script keeps the self-hosted code path active. Source: src/index.ts.
Two transports are relevant to deployment, both routed through firecrawl-fastmcp:
- stdio — what
npx firecrawl-mcpand most desktop clients use. Issue #246 documents a regression in the3.18.0 → 3.19.1burst where every stdio tool call returnedUnauthorized: API key is required when not using a self-hosted instance, even with a validFIRECRAWL_API_KEYset. Source: issue #246. - Streamable HTTP — added in v2.0.0 for HTTP-based MCP hosts. The v2.0.0 release notes are the canonical confirmation of this transport. Source: v2.0.0 release notes.
Configuration & Environment
Tool execution goes through a shared getClient(session) factory in src/index.ts that resolves an @mendable/firecrawl-js client from either the per-session API key or the environment. Research tools (firecrawl_research_search, firecrawl_research_github) reuse the same client via the SDK's client.http.get(...) layer, hitting /v2/search/research/*. Source: src/research.ts. Monitor tools (e.g. firecrawl_monitor_create, firecrawl_monitor_checks) likewise reuse the shared client and return structured judgment + diff.json results. Source: src/monitor.ts.
The minimum configuration surface for a deployment is:
FIRECRAWL_API_KEY— required when targeting the cloud; declared as a secret in the registry manifest. Source: server.json.FIRECRAWL_API_URL/CLOUD_SERVICE— flip the client to your self-hosted instance. The v3.2.0 release notes explicitly fixed a bug where self-hosted deployments were still demanding an API key even when a custom base URL was set. Source: v3.2.0 release notes.
CHANGELOG.md also documents FIRECRAWL_RETRY_MAX_ATTEMPTS, FIRECRAWL_RETRY_INITIAL_DELAY, FIRECRAWL_RETRY_MAX_DELAY, FIRECRAWL_RETRY_BACKOFF_FACTOR, FIRECRAWL_CREDIT_WARNING_THRESHOLD, and FIRECRAWL_CREDIT_CRITICAL_THRESHOLD as configurable retry and credit-monitoring knobs. Source: CHANGELOG.md.
Troubleshooting Common Failures
flowchart TD
A[Tool call fails] --> B{Error message}
B -->|Unauthorized / API key required| C{CLOUD_SERVICE?}
C -->|true| D[Set FIRECRAWL_API_KEY env or per-session]
C -->|false| E[Confirm FIRECRAWL_API_URL points at self-hosted]
B -->|404 from MCP host| F[Check path: n8n expects /mcp or SSE path]
B -->|Connection refused on Windows| G[Issue #36: verify npx + PATH, see Client Closed bug]
B -->|IPv6 ::1 only in Docker| H[Issue #251: bind to 0.0.0.0 or proxy to ::1]
B -->|422 from firecrawl_search| I[Issue #127: sources must be objects with 'type']
B -->|batch_scrape not found| J[Issue #113/#130: tool was removed; use batch/crawl instead]- Cloud vs self-hosted API key confusion — even after the v3.2.0 fix, issue #126 reports self-hosted instances still demanding an API key. Verify
FIRECRAWL_API_URLis set, then re-check that the deployedpackage.jsonis>= 3.2.0. Source: issue #126. - n8n / non-stdio hosts returning 404 — issue #64 shows a self-hosted Firecrawl working via cURL on
/v1/scrape, but n8n hitting the MCP returns 404; this is almost always a path/transport mismatch, not a Firecrawl bug. Source: issue #64. - Windows client crashes — issue #36 documents "Client Closed or Failed to create" on Windows 11. Check Node version (
>=18.0.0is required), PATH, and that no antivirus is blocking the stdio pipe. Source: issue #36. - Docker IPv6-only bind — issue #251 reports the provided container only listens on
::1while NGINX proxies to127.0.0.1. Bind to0.0.0.0or update the proxy to the IPv6 loopback. Source: issue #251. - Schema regressions — issue #127 documents that
firecrawl_searchrequiressourcesentries to be objects with atypefield; flat strings produce HTTP 422. Source: issue #127. - Stale docs referencing removed tools — issues #113 and #130 note that docs and
server.AddTooldescriptions still referencefirecrawl_batch_scrape, which has been removed; rely onfirecrawl_crawl/firecrawl_batch_scrape_urlsinstead. Source: issue #113, issue #130.
For each failure, the first triage step is to confirm which version is actually running (npx firecrawl-mcp --version or check package.json) and to capture the exact error string from the MCP host — the Unauthorized, 404, and 422 classes above each have a single, version-pinned root cause.
See Also
- Tool Reference (per-tool schemas in
src/index.ts) - Self-Hosted Firecrawl Integration
- Configuration Reference (env-var matrix)
Citations and version-pinning guidance adapted from CHANGELOG.md, package.json, server.json, src/index.ts, src/research.ts, and src/monitor.ts.
Source: https://github.com/firecrawl/firecrawl-mcp-server / Human Manual
Doramagic Pitfall Log
Source-linked risks stay visible on the manual page so the preview does not read like a recommendation.
May increase setup, validation, or first-run risk for the user.
Developers may expose sensitive permissions or credentials: Proposal: Free AI Agent identity verification for Firecrawl MCP
Developers may fail before the first successful local run: Project is on 3.20.2 (2026-06-01) but has no tags or releases since 3.2.0 (2025-09-26)
Developers may fail before the first successful local run: stdio: every tool call returns "Unauthorized" in 3.18.0+ with FIRECRAWL_API_KEY (regression from 3.17.0)
Doramagic Pitfall Log
Found 29 structured pitfall item(s), including 2 high/blocking item(s). Top priority: Installation risk - Installation risk requires verification.
1. Installation risk: Installation risk requires verification
- Severity: high
- Finding: Project evidence flags a installation risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: community_evidence:github | https://github.com/firecrawl/firecrawl-mcp-server/issues/64
2. Security or permission risk: Security or permission risk requires verification
- Severity: high
- Finding: Developers should check this security_permissions risk before relying on the project: Proposal: Free AI Agent identity verification for Firecrawl MCP
- User impact: Developers may expose sensitive permissions or credentials: Proposal: Free AI Agent identity verification for Firecrawl MCP
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: Proposal: Free AI Agent identity verification for Firecrawl MCP. Context: Observed when using python
- Evidence: failure_mode_cluster:github_issue | https://github.com/firecrawl/firecrawl-mcp-server/issues/243
3. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: Project is on 3.20.2 (2026-06-01) but has no tags or releases since 3.2.0 (2025-09-26)
- User impact: Developers may fail before the first successful local run: Project is on 3.20.2 (2026-06-01) but has no tags or releases since 3.2.0 (2025-09-26)
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: Project is on 3.20.2 (2026-06-01) but has no tags or releases since 3.2.0 (2025-09-26). Context: Observed when using node
- Evidence: failure_mode_cluster:github_issue | https://github.com/firecrawl/firecrawl-mcp-server/issues/255
4. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: stdio: every tool call returns "Unauthorized" in 3.18.0+ with FIRECRAWL_API_KEY (regression from 3.17.0)
- User impact: Developers may fail before the first successful local run: stdio: every tool call returns "Unauthorized" in 3.18.0+ with FIRECRAWL_API_KEY (regression from 3.17.0)
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: stdio: every tool call returns "Unauthorized" in 3.18.0+ with FIRECRAWL_API_KEY (regression from 3.17.0). Context: Observed when using node, macos, linux
- Evidence: failure_mode_cluster:github_issue | https://github.com/firecrawl/firecrawl-mcp-server/issues/246
5. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: v1.12.0
- User impact: Upgrade or migration may change expected behavior: v1.12.0
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: v1.12.0. Context: Observed when using docker
- Evidence: failure_mode_cluster:github_release | https://github.com/firecrawl/firecrawl-mcp-server/releases/tag/v1.12.0
6. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Project evidence flags a installation risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: community_evidence:github | https://github.com/firecrawl/firecrawl-mcp-server/issues/271
7. Configuration risk: Configuration risk requires verification
- Severity: medium
- Finding: Developers should check this configuration risk before relying on the project: v1.2.3: Optimize Batch Processing
- User impact: Upgrade or migration may change expected behavior: v1.2.3: Optimize Batch Processing
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: v1.2.3: Optimize Batch Processing. Context: Source discussion did not expose a precise runtime context.
- Evidence: failure_mode_cluster:github_release | https://github.com/firecrawl/firecrawl-mcp-server/releases/tag/v1.2.3
8. Configuration risk: Configuration risk requires verification
- Severity: medium
- Finding: Developers should check this configuration risk before relying on the project: v1.2.4: Configurable Settings & Enhanced Documentation
- User impact: Upgrade or migration may change expected behavior: v1.2.4: Configurable Settings & Enhanced Documentation
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: v1.2.4: Configurable Settings & Enhanced Documentation. Context: Source discussion did not expose a precise runtime context.
- Evidence: failure_mode_cluster:github_release | https://github.com/firecrawl/firecrawl-mcp-server/releases/tag/v1.2.4
9. Configuration risk: Configuration risk requires verification
- Severity: medium
- Finding: Project evidence flags a configuration risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: community_evidence:github | https://github.com/firecrawl/firecrawl-mcp-server/issues/279
10. Capability evidence risk: Capability evidence risk requires verification
- Severity: medium
- Finding: README/documentation is current enough for a first validation pass.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: capability.assumptions | https://www.npmjs.com/package/firecrawl-mcp
11. Runtime risk: Runtime risk requires verification
- Severity: medium
- Finding: Project evidence flags a runtime risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: packet_text.keyword_scan | https://www.npmjs.com/package/firecrawl-mcp
12. Maintenance risk: Maintenance risk requires verification
- Severity: medium
- Finding: Project evidence flags a maintenance risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: evidence.maintainer_signals | https://www.npmjs.com/package/firecrawl-mcp
Source: Doramagic discovery, validation, and Project Pack records
Community Discussion Evidence
These external discussion links are review inputs, not standalone proof that the project is production-ready.
Count of project-level external discussion links exposed on this manual page.
Open the linked issues or discussions before treating the pack as ready for your environment.
Community Discussion Evidence
Doramagic exposes project-level community discussion separately from official documentation. Review these links before using firecrawl-mcp-server with real data or production workflows.
- MCP tool descriptions teach models the wrong calling convention, causing - github / github_issue
- [[Regulatory Signals] firecrawl-mcp is listed on the MCP Trust Registry —](https://github.com/firecrawl/firecrawl-mcp-server/issues/274) - github / github_issue
- Proposal: Free AI Agent identity verification for Firecrawl MCP - github / github_issue
- Your project is now listed on CodeGuilds - github / github_issue
- Your project is now listed on CodeGuilds - github / github_issue
- Your project is now listed on CodeGuilds - github / github_issue
- Your project is now listed on CodeGuilds - github / github_issue
- Your project is now listed on CodeGuilds - github / github_issue
- Your project is now listed on CodeGuilds - github / github_issue
- Your project is now listed on CodeGuilds - github / github_issue
- Your project is now listed on CodeGuilds - github / github_issue
- Your project is now listed on CodeGuilds - github / github_issue
Source: Project Pack community evidence and pitfall evidence