# https://github.com/firecrawl/firecrawl-mcp-server Project Manual

Generated at: 2026-06-21 09:41:40 UTC

## Table of Contents

- [Server Overview and Architecture](#page-1)
- [Available Tools and Capabilities](#page-2)
- [Configuration, Authentication, and Client Integration](#page-3)
- [Deployment, Infrastructure, and Troubleshooting](#page-4)

<a id='page-1'></a>

## Server Overview and Architecture

### Related Pages

Related topics: [Available Tools and Capabilities](#page-2), [Configuration, Authentication, and Client Integration](#page-3)

<details>
<summary>Related Source Files</summary>

The following source files were used to generate this page:

- [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts)
- [src/research.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/research.ts)
- [src/monitor.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/monitor.ts)
- [package.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/package.json)
- [server.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/server.json)
- [CHANGELOG.md](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/CHANGELOG.md)
</details>

# Server Overview and Architecture

## Purpose and Scope

The `firecrawl-mcp-server` is the official Model Context Protocol (MCP) server that exposes [Firecrawl](https://firecrawl.dev) — 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.

```mermaid
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 --> Client
```

### Transport 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](https://github.com/firecrawl/firecrawl-mcp-server/issues/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`, and `maxAge` cache 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 optional `search` filter used as a recovery step when `firecrawl_scrape` returns 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 poll `firecrawl_agent_status` for 1–5 minutes. Source: [src/index.ts:380-420]().
- `firecrawl_feedback` — submit a quality rating (`good` / `partial` / `bad`) with `valuableSources`, `missingContent`, and `querySuggestions`; 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 returning `judgment` / `meaningfulChanges` payloads. Source: [src/monitor.ts:1-50]() and [CHANGELOG.md:1-10]() (entries for 3.19.x documenting the simplified `firecrawl_monitor_create` API).

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](https://github.com/firecrawl/firecrawl-mcp-server/issues/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](https://github.com/firecrawl/firecrawl-mcp-server/issues/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:

1. **Docker binding to IPv6 loopback only.** The provided image binds the stdio/HTTP listener to `::1`; front-ends like NGINX that proxy to `127.0.0.1` get connection refused. See issue [#251](https://github.com/firecrawl/firecrawl-mcp-server/issues/251). Workaround: bind to `0.0.0.0` or proxy to `[::1]`.
2. **Self-hosted still demanding an API key.** After v3.2.0 a `FIRECRAWL_API_URL` should make the key optional, but regression [#126](https://github.com/firecrawl/firecrawl-mcp-server/issues/126) shows the key is still required for some self-hosted configurations. Setting `CLOUD_SERVICE=true` (`npm run start:cloud`) bypasses the local client.
3. **stdio `Unauthorized` regression (3.18.0+).** Issue [#246](https://github.com/firecrawl/firecrawl-mcp-server/issues/246) — every tool call fails with `API 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.
4. **n8n 404s.** Issue [#64](https://github.com/firecrawl/firecrawl-mcp-server/issues/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 in `src/index.ts`).
- Research endpoints: arXiv and GitHub history in `src/research.ts`.
- Monitor endpoints: `firecrawl_monitor_create` and `firecrawl_monitor_checks` in `src/monitor.ts`.
- Versioning policy: `VERSIONING.md` and `CHANGELOG.md` for the v1/v2 client compatibility matrix.

---

<a id='page-2'></a>

## Available Tools and Capabilities

### Related Pages

Related topics: [Server Overview and Architecture](#page-1), [Configuration, Authentication, and Client Integration](#page-3)

<details>
<summary>Related Source Files</summary>

The following source files were used to generate this page:

- [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts)
- [src/research.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/research.ts)
- [src/monitor.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/monitor.ts)
- [CHANGELOG.md](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/CHANGELOG.md)
- [package.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/package.json)
- [server.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/server.json)
</details>

# 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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts) |
| `firecrawl_parse` | Parse a local file (HTML, PDF, DOCX, XLSX, etc.) into structured output | [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts) |
| `firecrawl_map` | Discover indexed URLs on a website, optionally filtered by a `search` term | [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts) |
| `firecrawl_extract` | Run LLM-driven structured extraction across one or more URLs using a prompt and JSON schema | [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts) |
| `firecrawl_search` | Web search returning ranked results with optional sources/categories | [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts) |
| `firecrawl_agent` | Asynchronously dispatch a research agent that browses the web autonomously | [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts) |
| `firecrawl_agent_status` | Poll the status of a previously submitted agent job | [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts) |
| `firecrawl_feedback` | Submit structured feedback (rating, issues, valuable sources, missing content) for a search | [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts) |
| `firecrawl_research_arxiv` | Search arXiv papers by query, returning formatted hits | [src/research.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/research.ts) |
| `firecrawl_research_github` | Search GitHub issue/PR history and repository READMEs | [src/research.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/research.ts) |
| `firecrawl_monitor_create` | Create a monitor that watches one or more pages for goal-relevant changes | [src/monitor.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/monitor.ts) |
| `firecrawl_monitor_checks` | List or fetch monitor check results, with `judgment` and `meaningfulChanges` fields | [src/monitor.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts)).

## Asynchronous and Feedback Tools

Three tools operate outside the request/response cycle:

- `firecrawl_search` — Returns search results and optionally a `searchId` that can be passed to feedback (Source: [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts)).
- `firecrawl_feedback` — Accepts a `rating` of `good`, `partial`, or `bad` together with structured payloads (`valuableSources`, `missingContent`, `querySuggestions`, `issues`). Substantive content is required: `good` must include at least one `valuableSources` entry, `bad` must include `missingContent` or `querySuggestions`. Feedback is idempotent per `searchId` and has a ~2-minute submission window, after which the API returns `FEEDBACK_WINDOW_EXPIRED` (Source: [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts)).
- `firecrawl_agent` and `firecrawl_agent_status` — The agent runs asynchronously and returns a job ID immediately; clients are instructed to poll `firecrawl_agent_status` patiently (every 15–30 seconds for 2–5 minutes) since complex research can take several minutes (Source: [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts)).

## Research and Monitoring Tools

The research tools in [src/research.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/monitor.ts)).

## Tool Registration and Data Flow

```mermaid
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 --> D
```

`getClient` 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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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 required` even when `FIRECRAWL_API_KEY` was set (Source: [#246](https://github.com/firecrawl/firecrawl-mcp-server/issues/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](https://github.com/firecrawl/firecrawl-mcp-server/issues/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](https://github.com/firecrawl/firecrawl-mcp-server/issues/113), [#130](https://github.com/firecrawl/firecrawl-mcp-server/issues/130)).
- The `firecrawl_search` tool's `sources` schema has been reported as inconsistent between documentation and runtime, producing 422 errors in some clients (Source: [#127](https://github.com/firecrawl/firecrawl-mcp-server/issues/127)).
- The Docker image binds only to IPv6 `::1`, breaking NGINX proxies that forward to `127.0.0.1` (Source: [#251](https://github.com/firecrawl/firecrawl-mcp-server/issues/251)).
- Windows 11 clients have reported "Client Closed or Failed to create" errors when launching the server (Source: [#36](https://github.com/firecrawl/firecrawl-mcp-server/issues/36)).
- An n8n integration reported 404 errors when proxying the MCP server (Source: [#64](https://github.com/firecrawl/firecrawl-mcp-server/issues/64)).

## See Also

- [Firecrawl MCP Server repository](https://github.com/firecrawl/firecrawl-mcp-server)
- [CHANGELOG.md](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/CHANGELOG.md) for version-by-version tool additions

---

<a id='page-3'></a>

## Configuration, Authentication, and Client Integration

### Related Pages

Related topics: [Server Overview and Architecture](#page-1), [Available Tools and Capabilities](#page-2), [Deployment, Infrastructure, and Troubleshooting](#page-4)

<details>
<summary>Related Source Files</summary>

The following source files were used to generate this page:

- [package.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/package.json)
- [server.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/server.json)
- [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts)
- [src/research.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/research.ts)
- [src/monitor.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/monitor.ts)
- [VERSIONING.md](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/VERSIONING.md)
</details>

# 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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/package.json), [server.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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 start` runs the local server in V2 mode by default.
- `npm run start:cloud` sets `CLOUD_SERVICE=true` to enable versioned cloud endpoints.

The server also recognizes two transport flags documented in `VERSIONING.md`:

- `SSE_LOCAL=true` switches the local server to Server-Sent Events.
- `HTTP_STREAMABLE_SERVER=true` switches 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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/package.json), [VERSIONING.md](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/package.json), [VERSIONING.md](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/VERSIONING.md), [server.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/research.ts), [src/monitor.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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:

```text
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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/server.json), [VERSIONING.md](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/VERSIONING.md), [package.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/VERSIONING.md), GitHub issues #64 and #251].

## Common Failure Modes

Three recurring failure modes are visible in the issue tracker and in the source:

1. **"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_KEY` was 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].
2. **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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/VERSIONING.md), GitHub issue #126].
3. **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 what `src/index.ts` registers with the MCP framework [Source: GitHub issues #113 and #130, [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts)].

## See Also

- [Tools and Capabilities](tools-and-capabilities.md) — reference for each registered MCP tool
- [Versioning and Migration Guide](versioning-and-migration.md) — V1→V2 path changes and defaults
- [Self-Hosting Guide](self-hosting.md) — running the server against a self-hosted Firecrawl instance

---

<a id='page-4'></a>

## Deployment, Infrastructure, and Troubleshooting

### Related Pages

Related topics: [Configuration, Authentication, and Client Integration](#page-3), [Server Overview and Architecture](#page-1)

<details>
<summary>Related Source Files</summary>

The following source files were used to generate this page:

- [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts)
- [src/research.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/research.ts)
- [src/monitor.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/monitor.ts)
- [CHANGELOG.md](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/CHANGELOG.md)
- [package.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/package.json)
- [server.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/server.json)
</details>

# 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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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/firecrawl-js@4.25.2` |
| `MCP framework` | `firecrawl-fastmcp@^1.0.5` |
| `Validation` | `zod@^4.1.5` |

Source: [package.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/server.json).

> **Release hygiene note (community):** issue #255 reports that the GitHub repository is already on `3.20.2` (and the in-tree `package.json` is at `3.21.0`) but no GitHub Release tag has been cut since `v3.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](https://github.com/firecrawl/firecrawl-mcp-server/issues/255).

## Deployment Surfaces & Run Scripts

`package.json` defines the canonical build and run flow:

```bash
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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts).

Two transports are relevant to deployment, both routed through `firecrawl-fastmcp`:

1. **stdio** — what `npx firecrawl-mcp` and most desktop clients use. Issue #246 documents a regression in the `3.18.0 → 3.19.1` burst where every stdio tool call returned `Unauthorized: API key is required when not using a self-hosted instance`, even with a valid `FIRECRAWL_API_KEY` set. Source: [issue #246](https://github.com/firecrawl/firecrawl-mcp-server/issues/246).
2. **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](https://github.com/firecrawl/firecrawl-mcp-server/releases/tag/v2.0.0).

## 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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/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](https://github.com/firecrawl/firecrawl-mcp-server/releases/tag/v3.2.0).

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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/CHANGELOG.md).

## Troubleshooting Common Failures

```mermaid
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_URL` is set, then re-check that the deployed `package.json` is `>= 3.2.0`. Source: [issue #126](https://github.com/firecrawl/firecrawl-mcp-server/issues/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](https://github.com/firecrawl/firecrawl-mcp-server/issues/64).
- **Windows client crashes** — issue #36 documents "Client Closed or Failed to create" on Windows 11. Check Node version (`>=18.0.0` is required), PATH, and that no antivirus is blocking the stdio pipe. Source: [issue #36](https://github.com/firecrawl/firecrawl-mcp-server/issues/36).
- **Docker IPv6-only bind** — issue #251 reports the provided container only listens on `::1` while NGINX proxies to `127.0.0.1`. Bind to `0.0.0.0` or update the proxy to the IPv6 loopback. Source: [issue #251](https://github.com/firecrawl/firecrawl-mcp-server/issues/251).
- **Schema regressions** — issue #127 documents that `firecrawl_search` requires `sources` entries to be objects with a `type` field; flat strings produce HTTP 422. Source: [issue #127](https://github.com/firecrawl/firecrawl-mcp-server/issues/127).
- **Stale docs referencing removed tools** — issues #113 and #130 note that docs and `server.AddTool` descriptions still reference `firecrawl_batch_scrape`, which has been removed; rely on `firecrawl_crawl` / `firecrawl_batch_scrape_urls` instead. Source: [issue #113](https://github.com/firecrawl/firecrawl-mcp-server/issues/113), [issue #130](https://github.com/firecrawl/firecrawl-mcp-server/issues/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](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/CHANGELOG.md), [package.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/package.json), [server.json](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/server.json), [src/index.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/index.ts), [src/research.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/research.ts), and [src/monitor.ts](https://github.com/firecrawl/firecrawl-mcp-server/blob/main/src/monitor.ts).

---

<!-- evidence_pipeline_checked: true -->
<!-- evidence_injected: true -->

---

## Pitfall Log

Project: firecrawl/firecrawl-mcp-server

Summary: 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
- Evidence strength: source_linked
- 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.
- 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
- Evidence strength: source_linked
- 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
- Evidence: failure_mode_cluster:github_issue | https://github.com/firecrawl/firecrawl-mcp-server/issues/243

## 3. Installation risk - Installation risk requires verification

- Severity: medium
- Evidence strength: source_linked
- 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)
- Evidence: failure_mode_cluster:github_issue | https://github.com/firecrawl/firecrawl-mcp-server/issues/255

## 4. Installation risk - Installation risk requires verification

- Severity: medium
- Evidence strength: source_linked
- 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)
- Evidence: failure_mode_cluster:github_issue | https://github.com/firecrawl/firecrawl-mcp-server/issues/246

## 5. Installation risk - Installation risk requires verification

- Severity: medium
- Evidence strength: source_linked
- 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
- 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
- Evidence strength: source_linked
- 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.
- Evidence: community_evidence:github | https://github.com/firecrawl/firecrawl-mcp-server/issues/271

## 7. Configuration risk - Configuration risk requires verification

- Severity: medium
- Evidence strength: source_linked
- 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
- 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
- Evidence strength: source_linked
- 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
- 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
- Evidence strength: source_linked
- 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.
- Evidence: community_evidence:github | https://github.com/firecrawl/firecrawl-mcp-server/issues/279

## 10. Capability evidence risk - Capability evidence risk requires verification

- Severity: medium
- Evidence strength: source_linked
- Finding: README/documentation is current enough for a first validation pass.
- User impact: May increase setup, validation, or first-run risk for the user.
- Evidence: capability.assumptions | https://www.npmjs.com/package/firecrawl-mcp

## 11. Runtime risk - Runtime risk requires verification

- Severity: medium
- Evidence strength: source_linked
- 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.
- Evidence: packet_text.keyword_scan | https://www.npmjs.com/package/firecrawl-mcp

## 12. Maintenance risk - Maintenance risk requires verification

- Severity: medium
- Evidence strength: source_linked
- 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.
- Evidence: evidence.maintainer_signals | https://www.npmjs.com/package/firecrawl-mcp

## 13. Security or permission risk - Security or permission risk requires verification

- Severity: medium
- Evidence strength: source_linked
- Finding: no_demo
- User impact: May increase setup, validation, or first-run risk for the user.
- Evidence: downstream_validation.risk_items | https://www.npmjs.com/package/firecrawl-mcp

## 14. Security or permission risk - Security or permission risk requires verification

- Severity: medium
- Evidence strength: source_linked
- Finding: no_demo
- User impact: May increase setup, validation, or first-run risk for the user.
- Evidence: risks.scoring_risks | https://www.npmjs.com/package/firecrawl-mcp

## 15. Security or permission risk - Security or permission risk requires verification

- Severity: medium
- Evidence strength: source_linked
- Finding: Project evidence flags a security or permission risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Evidence: community_evidence:github | https://github.com/firecrawl/firecrawl-mcp-server/issues/243

## 16. Security or permission risk - Security or permission risk requires verification

- Severity: medium
- Evidence strength: source_linked
- Finding: Project evidence flags a security or permission risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Evidence: community_evidence:github | https://github.com/firecrawl/firecrawl-mcp-server/issues/274

## 17. Security or permission risk - Security or permission risk requires verification

- Severity: medium
- Evidence strength: source_linked
- Finding: Project evidence flags a security or permission risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Evidence: community_evidence:github | https://github.com/firecrawl/firecrawl-mcp-server/issues/246

## 18. Capability evidence risk - Capability evidence risk requires verification

- Severity: low
- Evidence strength: source_linked
- Finding: Developers should check this capability risk before relying on the project: Provided docker container cannot be connected to, because MCP server only listens to ipv6 ::1 while NGINX proxies traffic to ipv4 loopback
- User impact: Developers may hit a documented source-backed failure mode: Provided docker container cannot be connected to, because MCP server only listens to ipv6 ::1 while NGINX proxies traffic to ipv4 loopback
- Evidence: failure_mode_cluster:github_issue | https://github.com/firecrawl/firecrawl-mcp-server/issues/251

## 19. Capability evidence risk - Capability evidence risk requires verification

- Severity: low
- Evidence strength: source_linked
- Finding: Developers should check this capability risk before relying on the project: Your project is now listed on CodeGuilds
- User impact: Developers may hit a documented source-backed failure mode: Your project is now listed on CodeGuilds
- Evidence: failure_mode_cluster:github_issue | https://github.com/firecrawl/firecrawl-mcp-server/issues/254

## 20. Capability evidence risk - Capability evidence risk requires verification

- Severity: low
- Evidence strength: source_linked
- Finding: Developers should check this conceptual risk before relying on the project: Using n8n to connect to firecrawl-mcp-server throws a 404 error
- User impact: Developers may hit a documented source-backed failure mode: Using n8n to connect to firecrawl-mcp-server throws a 404 error
- Evidence: failure_mode_cluster:github_issue | https://github.com/firecrawl/firecrawl-mcp-server/issues/64

## 21. Maintenance risk - Maintenance risk requires verification

- Severity: low
- Evidence strength: source_linked
- Finding: issue_or_pr_quality=unknown。
- User impact: May increase setup, validation, or first-run risk for the user.
- Evidence: evidence.maintainer_signals | https://www.npmjs.com/package/firecrawl-mcp

## 22. Maintenance risk - Maintenance risk requires verification

- Severity: low
- Evidence strength: source_linked
- Finding: release_recency=unknown。
- User impact: May increase setup, validation, or first-run risk for the user.
- Evidence: evidence.maintainer_signals | https://www.npmjs.com/package/firecrawl-mcp

## 23. Maintenance risk - Maintenance risk requires verification

- Severity: low
- Evidence strength: source_linked
- Finding: Developers should check this maintenance risk before relying on the project: Added Deep Research (Alpha)
- User impact: Upgrade or migration may change expected behavior: Added Deep Research (Alpha)
- Evidence: failure_mode_cluster:github_release | https://github.com/firecrawl/firecrawl-mcp-server/releases/tag/v1.4.1

## 24. Maintenance risk - Maintenance risk requires verification

- Severity: low
- Evidence strength: source_linked
- Finding: Developers should check this maintenance risk before relying on the project: Added llms.txt generator
- User impact: Upgrade or migration may change expected behavior: Added llms.txt generator
- Evidence: failure_mode_cluster:github_release | https://github.com/firecrawl/firecrawl-mcp-server/releases/tag/v1.7.2

## 25. Maintenance risk - Maintenance risk requires verification

- Severity: low
- Evidence strength: source_linked
- Finding: Developers should check this maintenance risk before relying on the project: Official Release - v1.3.3
- User impact: Upgrade or migration may change expected behavior: Official Release - v1.3.3
- Evidence: failure_mode_cluster:github_release | https://github.com/firecrawl/firecrawl-mcp-server/releases/tag/v.1.3.3

## 26. Maintenance risk - Maintenance risk requires verification

- Severity: low
- Evidence strength: source_linked
- Finding: Developers should check this maintenance risk before relying on the project: v2.0.0
- User impact: Upgrade or migration may change expected behavior: v2.0.0
- Evidence: failure_mode_cluster:github_release | https://github.com/firecrawl/firecrawl-mcp-server/releases/tag/v2.0.0

## 27. Maintenance risk - Maintenance risk requires verification

- Severity: low
- Evidence strength: source_linked
- Finding: Developers should check this maintenance risk before relying on the project: v3.0.0
- User impact: Upgrade or migration may change expected behavior: v3.0.0
- Evidence: failure_mode_cluster:github_release | https://github.com/firecrawl/firecrawl-mcp-server/releases/tag/v3.0.0

## 28. Maintenance risk - Maintenance risk requires verification

- Severity: low
- Evidence strength: source_linked
- Finding: Developers should check this maintenance risk before relying on the project: v3.2.0
- User impact: Upgrade or migration may change expected behavior: v3.2.0
- Evidence: failure_mode_cluster:github_release | https://github.com/firecrawl/firecrawl-mcp-server/releases/tag/v3.2.0

## 29. Maintenance risk - Maintenance risk requires verification

- Severity: low
- Evidence strength: source_linked
- Finding: Developers should check this maintenance risk before relying on the project: v3.2.1
- User impact: Upgrade or migration may change expected behavior: v3.2.1
- Evidence: failure_mode_cluster:github_release | https://github.com/firecrawl/firecrawl-mcp-server/releases/tag/v3.2.1

<!-- canonical_name: firecrawl/firecrawl-mcp-server; human_manual_source: deepwiki_human_wiki -->
