# Firecrawl MCP Server (remote · mcp.firecrawl.dev)

Firecrawl, the context API for AI agents: search, scrape, interact with the web, plus paper search.

- Trust score: 77/100 (medium)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-06

## Components

- remote · `mcp.firecrawl.dev`: 77/100 (this document), [markdown](https://verifymcp.io/servers/firecrawl-firecrawl-mcp-server/v2-mcp.md), [page](https://verifymcp.io/servers/firecrawl-firecrawl-mcp-server/v2-mcp)
- npm · `firecrawl-mcp`: 83/100, [markdown](https://verifymcp.io/servers/firecrawl-firecrawl-mcp-server/firecrawl-mcp.md), [page](https://verifymcp.io/servers/firecrawl-firecrawl-mcp-server/firecrawl-mcp)

## Channel facts

- Endpoint: `https://mcp.firecrawl.dev/v2/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `3.37.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-06.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 63/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 3068 tokens (~767/item across 4 items; 3 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 67/100
  - Stability check failed: schema churn in the 30 days we've observed: 0 tool removals, 2 breaking changes, 0 auth/transport breaks, 0 additions.
- **Tool Coverage**: 82/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 38% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 3 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 5 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the Firecrawl MCP Server server?

Firecrawl MCP Server is a hosted endpoint at https://mcp.firecrawl.dev/v2/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http firecrawl-firecrawl-mcp-server 'https://mcp.firecrawl.dev/v2/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "firecrawl-firecrawl-mcp-server": {
      "url": "https://mcp.firecrawl.dev/v2/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "firecrawl-firecrawl-mcp-server": {
      "type": "http",
      "url": "https://mcp.firecrawl.dev/v2/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.firecrawl-firecrawl-mcp-server]
url = "https://mcp.firecrawl.dev/v2/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "firecrawl-firecrawl-mcp-server": {
      "type": "remote",
      "url": "https://mcp.firecrawl.dev/v2/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add firecrawl-firecrawl-mcp-server --url 'https://mcp.firecrawl.dev/v2/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  firecrawl-firecrawl-mcp-server:
    url: "https://mcp.firecrawl.dev/v2/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "firecrawl-firecrawl-mcp-server": {
      "Transport": "http",
      "Url": "https://mcp.firecrawl.dev/v2/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add firecrawl-firecrawl-mcp-server -t streamable-http -u 'https://mcp.firecrawl.dev/v2/mcp'
```

### Other

```json
{
  "mcpServers": {
    "firecrawl-firecrawl-mcp-server": {
      "type": "http",
      "url": "https://mcp.firecrawl.dev/v2/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-06 (score 77, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-11-05 (score 77, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] Server version: 3.36.1 → 3.37.0

### 2026-11-04 (score 76, −1)

- [security] The server rewrote its instructions, which are the text every model session reads

### 2026-11-03 (score 77, 0)

- [functional] Server version: 3.36.0 → 3.36.1

### 2026-11-01 (score 77, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [cosmetic] “firecrawl_parse” added an optional parameter “conversationId”
- [cosmetic] “firecrawl_scrape” added an optional parameter “conversationId”
- [cosmetic] “firecrawl_search” added an optional parameter “conversationId”

### 2026-10-28 (score 77, +1)

- [functional] MCP protocol: Implements a current MCP spec version (2026-07-28).
- [functional] MCP protocol version: 2025-11-25 → 2026-07-28
- [functional] Server version: 3.35.0 → 3.36.0
- [cosmetic] “firecrawl_scrape” reworded the description of “alexandria”

### 2026-10-26 (score 76, +1)

- [functional] Server version: 3.34.1 → 3.35.0

### 2026-10-24 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 47 to 50.

## MCP tools (3)

### `firecrawl_scrape` (~896 tokens)

Firecrawl scrape

Scrape one URL and return its content: markdown by default, or HTML, links, screenshots, branding data, a targeted answer, or JSON matching a supplied schema. Use it when the request identifies a page and needs its content or defined fields: the user gives a URL or names a page or PDF and wants it read or summarized, or wants prices, specs, contact details or a table from it. Use `firecrawl_search` when additional web sources are needed; on an authenticated session, `firecrawl_map` lists a site's URLs and `firecrawl_crawl` collects a set of pages.

Firecrawl may serve recently indexed content; set `maxAge: 0` for a live fetch or a smaller `maxAge` to bound staleness. A successful response does not by itself confirm the page is still current. A named browser profile loads saved session data without saving changes to it. Authenticated responses can include a `metadata.scrapeId` for optional scrape feedback.

On an authenticated session, `firecrawl_search` and `firecrawl_find_tools` can discover providers for the same fields across several pages; a matching provider returns typed records in one call.

With `alexandria` in place of `url`, the tool runs catalogued provider capabilities instead of fetching a page. Some providers require accepted terms; when a response reports a terms requirement, direct the user to the Firecrawl dashboard URL in that response.

Input parameters:

- `alexandria`: Catalogued Alexandria capability invocation, mutually exclusive with url. One {provider, capability, options} object or an array of 1-10, with contracts available through firecrawl_search or firecraw…
- `conversationId` (string): conversationId from any earlier Firecrawl tool result in this conversation; after parallel calls, any one of theirs. Omit only on the first call of a conversation; the result returns one to pass on e…
- `domainTools` (boolean): URL mode only: include domain-matched Alexandria tools for the page in tools on the returned document. Ignored with alexandria.
- `excludeTags` (array)
- `formats` (array)
- `includeTags` (array)
- `jsonOptions` (object)
- `location` (object)
- `lockdown` (boolean)
- `maxAge` (number)
- `mobile` (boolean)
- `objective` (string, required): The user's underlying goal for this call, in one sentence: what they are ultimately trying to accomplish, not a restatement of the URL or query. Reuse it across related calls. Avoid sensitive informa…
- `onlyMainContent` (boolean)
- `parsers` (array)
- `pdfOptions` (object)
- `profile` (object): Loads a saved browser profile without saving changes to it.
- `proxy` (string)
- `queryOptions` (object)
- `redactPII` (boolean)
- `removeBase64Images` (boolean)
- `requestId` (string): Idempotency key bound to one Alexandria execution payload. Generated when omitted and returned with the result.
- `screenshotOptions` (object)
- `skipTlsVerification` (boolean)
- `storeInCache` (boolean)
- `timeout` (integer): Execution timeout in milliseconds.
- `toolDetail` (string): URL mode only: domain discovery detail, summary by default; compact returns provider/capability/description, full includes contracts. Ignored with alexandria.
- `url` (string)
- `waitFor` (number)
- `zeroDataRetention` (boolean)

Output parameters:

- `actions`: Results of the browser actions that ran during the scrape.
- `agent_hints` (array): Optional response guidance from the Firecrawl API.
- `answer`: Targeted answer to the question that was asked of the page.
- `attributes`: Values collected by the requested attribute selectors.
- `audio`: Audio extracted from the page.
- `blocks`: Typed PDF layout blocks, when `parsers[].blocks` is set.
- `branding`: Branding data extracted from the page.
- `changeTracking`: Change-tracking comparison against the previous scrape.
- `conversationId` (string): Pass on later Firecrawl calls in this conversation.
- `creditsCost`: Credits this call consumed.
- `data`: Alexandria mode: per-capability results in `data.alexandria`, each with `data`, `records`, or an `error`.
- `delivery`: `retained` when the full result stayed server-side instead of being inlined.
- `error`: Error message or error object when the call did not succeed.
- `estimatedTokens`: Estimated token cost of the full result.
- `feedbackTool`: Pointer to the feedback tool for reporting how this result served the task.
- `highlights`: Highlighted passages from the page.
- `html`: Processed HTML of the page.
- `idleTtlSeconds`: Seconds a retained workspace stays available while idle.
- `images`: Images found on the page.
- `inlineTokenBudget`: Token budget above which a result is retained rather than inlined.
- `json`: Structured data matching the requested JSON schema or prompt.
- `links`: Links found on the page.
- `markdown`: Page content as markdown.
- `menu`: Menu data extracted from the page.
- `message`: Guidance that accompanies the result.
- `metadata`: Page metadata; authenticated responses can include `metadata.scrapeId` for scrape feedback.
- `nextTool`: A follow-up tool call (`{name, arguments}`) that continues or inspects this result.
- `pages`: Physical PDF pages, when `parsers[].pages` is set.
- `product`: Product data extracted from the page.
- `rawHtml`: Unprocessed HTML of the page.
- `receipt`: Billing receipt for the execution.
- `requestId`: Identifier of this Alexandria execution.
- `responseBytes`: Size of the full result in bytes.
- `scrape_id`: Identifier of the underlying scrape.
- `screenshot`: Screenshot of the page.
- `success`: Whether the API call succeeded.
- `summary`: Summary of the page content.
- `tokenEstimateMethod`: How `estimatedTokens` was derived.
- `tools`: Domain-matched Alexandria tools for the page, when `domainTools` is set.
- `video`: Video extracted from the page.
- `warning`: Non-fatal warning about the result.
- `workspaceId`: Workspace holding a retained result, for inspection through virtual Bash.

### `firecrawl_search` (~1226 tokens)

Firecrawl web search

Search web, news, or image sources and return ranked results with query-relevant highlights. Use it for current information, or to list businesses, people, products, jobs or events with websites, prices or contacts. Each web result is a title, URL, and description; use `firecrawl_scrape` on a result URL when the excerpt is not enough.

Authenticated search also returns matching Alexandria data providers in data.tools (companies, people, jobs, finance and filings, public records and government spending, real estate, places and restaurants, retail and prices, package registries and developer data, news, research, and more). Prefer a provider over scraping pages when the task needs the same fields across several entities, exact figures or timestamps, provenance, or many records; use web results when they already answer the question. Authenticated searches always add alexandria to the sources, so sources: ["web"] also returns providers; domainTools: false turns off website-matched tools only.

On an authenticated session, tool matches describe available capabilities; `firecrawl_find_tools` returns their contracts and `firecrawl_scrape` with an `alexandria` body executes a selected capability. Keyless sessions get no Alexandria matches in data.tools.

For a programming question, add `categories: ["developer"]`; its hits return in `data.web` with `category: "developer"`. For a legal or regulatory question, `categories: ["gov"]` returns hits in `data.web` with `category: "gov"` and cannot be combined with other categories; authenticated sessions also have `firecrawl_gov_search` as the dedicated tool. Verify gov results' issuer, jurisdiction, status, and version before citing current law. `categories: ["research"]` restricts web results to research-affiliated websites; the `firecrawl_research_*` tools are a separate surface over paper abstracts and full text (PubMed, bioRxiv, medRxiv, arXiv). Returns source-type result groups and usage metadata. Authenticated responses ca…

Input parameters:

- `categories` (array): Limit results to specific source types. `research` restricts ordinary web results to research-affiliated websites and returns page snippets, which is separate from the `firecrawl_research_*` tools th…
- `conversationId` (string): conversationId from any earlier Firecrawl tool result in this conversation; after parallel calls, any one of theirs. Omit only on the first call of a conversation; the result returns one to pass on e…
- `domainTools` (boolean): Include domain-matched tools for result URLs. Defaults to true when Alexandria is combined with web, news or images; semantic-only search leaves domain matching off.
- `enterprise` (array)
- `excludeDomains` (array): Hostnames to leave out of results. Mutually exclusive with includeDomains.
- `filter` (string)
- `highlights` (boolean): Return query-relevant page excerpts for web and news results when available (default). Highlights appear in web `description` and news `snippet`; otherwise, original snippets are returned. Set to fal…
- `includeDomains` (array): Hostnames to restrict results to. Mutually exclusive with excludeDomains.
- `limit` (integer)
- `location` (string)
- `objective` (string, required): The user's underlying goal for this call, in one sentence: what they are ultimately trying to accomplish, not a restatement of the URL or query. Reuse it across related calls. Avoid sensitive informa…
- `query` (string, required): Query for web and semantic tool discovery. Operators include quoted phrases, `-term`, `site:host`, `inurl:term`, `intitle:term`, and `related:host`; the set is non-exhaustive. Catalogue browsing is a…
- `scrapeOptions` (object): Fetches the full page of every web result in the same call, and each fetched result is billed as a scrape. Leave it unset unless the task needs the full text of a few results: highlights usually answ…
- `sources` (array): Search sources; authenticated sessions default to web + alexandria, keyless sessions to web only. Authenticated searches always add alexandria to the sources, so sources: ["web"] also returns provide…
- `tbs` (string)
- `toolDetail` (string): Compact by default. Compact returns only provider, capability and description; full includes contracts. Inspect selected compact tools with firecrawl_find_tools providers and capabilities.

Output parameters:

- `agent_hints` (array): Optional response guidance from the Firecrawl API.
- `conversationId` (string): Pass on later Firecrawl calls in this conversation.
- `creditsUsed`: Credits this search consumed.
- `data`: Ranked results grouped by source, such as `web`, `news`, `images`, and `alexandria`. Each result carries its `source` and a 1-indexed `position` within that group; pass those pairs to `firecrawl_sear…
- `error`: Error message or error object when the call did not succeed.
- `feedbackTool`: Pointer to the feedback tool for this search.
- `id`: Search identifier, for optional `firecrawl_search_feedback`.
- `nextTool`: A follow-up tool call that continues this search.
- `success`: Whether the API call succeeded.
- `tools`: Domain-matched Alexandria tools for the results.
- `warning`: Non-fatal warning about the result.

### `firecrawl_parse` (~520 tokens)

Firecrawl file parsing

Parse one supported document into markdown, HTML, links, summary, targeted answers, or JSON matching a schema. Supported inputs include common HTML, PDF, Word, RTF, OpenDocument, and spreadsheet files; PDF parsing can be bounded with `pdfOptions.maxPages`.

Local MCP reads `filePath` from the server filesystem. Hosted MCP uses two calls: first provide `filePath` to receive upload instructions, upload locally, then call again with the returned `uploadRef`; do not send both fields together. Remote web URLs belong in `firecrawl_scrape`.

Set `redactPII` to request redaction of personally identifiable information in the returned content. `zeroDataRetention` requires an eligible authenticated account; omit it for anonymous keyless use. Returns upload instructions for hosted phase one or parsed document content for the final call. Authenticated final responses can include a `data.metadata.scrapeId` for optional parse feedback.

Input parameters:

- `contentType` (string): Phase 1 MIME type override. If omitted, the server infers it from the file extension without reading the file.
- `conversationId` (string): conversationId from any earlier Firecrawl tool result in this conversation; after parallel calls, any one of theirs. Omit only on the first call of a conversation; the result returns one to pass on e…
- `declaredSizeBytes` (integer): Optional phase 1 size declaration. Hosted MCP does not stat the file; provide this only if the caller already knows it.
- `excludeTags` (array)
- `filePath` (string): Phase 1 only: path to the local file on the caller/harness machine. Hosted MCP will not read or stat this path; it is used only to produce upload instructions.
- `formats` (array)
- `includeTags` (array)
- `jsonOptions` (object)
- `maxAge` (number): Ignored: parse never reuses or stores indexed content.
- `onlyMainContent` (boolean)
- `parsers` (array)
- `pdfOptions` (object)
- `proxy` (string)
- `queryOptions` (object)
- `redactPII` (boolean)
- `removeBase64Images` (boolean)
- `skipTlsVerification` (boolean)
- `storeInCache` (boolean)
- `uploadRef` (string): Phase 2 only: short-lived upload reference returned by phase 1 after the local PUT upload completes.
- `zeroDataRetention` (boolean)

Output parameters:

- `agent_hints` (array): Optional response guidance from the Firecrawl API.
- `conversationId` (string): Pass on later Firecrawl calls in this conversation.
- `data`: Parsed document content; can include `data.metadata.scrapeId` for parse feedback.
- `error`: Error message or error object when the call did not succeed.
- `message`: Guidance for the next call.
- `mode`: Which phase of the hosted flow produced this response.
- `nextToolCall`: Hosted phase one: the second `firecrawl_parse` call to make once the upload succeeds, as `{name, arguments}`.
- `notes`: Hosted phase one: constraints on completing the upload flow.
- `raw`: Response body when it was not JSON.
- `success`: Whether the API call succeeded.
- `upload` (object): Hosted phase one: how to upload the local file.
- `warning`: Non-fatal warning about the result.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/firecrawl-firecrawl-mcp-server/v2-mcp#diagnostics

## Score history

- 2026-11-06: 77
- 2026-11-05: 77
- 2026-11-04: 76
- 2026-11-03: 77
- 2026-11-02: 77
- 2026-11-01: 77
- 2026-10-31: 77
- 2026-10-30: 77
- 2026-10-29: 77
- 2026-10-28: 77
- 2026-10-27: 76
- 2026-10-26: 76
- 2026-10-25: 75
- 2026-10-24: 75
- 2026-10-23: 74
- 2026-10-22: 74
- 2026-10-21: 70
- 2026-10-20: 70
- 2026-10-19: 69
- 2026-10-18: 69
- 2026-10-17: 73
- 2026-10-16: 73
- 2026-10-15: 72
- 2026-10-14: 67
- 2026-10-13: 67
- 2026-10-12: 71
- 2026-10-10: 70
- 2026-10-07: 69
- 2026-10-06: 68
- 2026-10-04: 67

## Common questions

### What is the Firecrawl MCP Server server?

Firecrawl MCP Server is listed in the public MCP registry as io.github.firecrawl/firecrawl-mcp-server. Firecrawl, the context API for AI agents: search, scrape, interact with the web, plus paper search. This page covers its hosted endpoint (https://mcp.firecrawl.dev/v2/mcp).

### Is the Firecrawl MCP Server server safe to use?

Firecrawl MCP Server scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Firecrawl MCP Server server expose?

Firecrawl MCP Server exposes 3 tools: firecrawl_scrape, firecrawl_search, firecrawl_parse. Their descriptions and schemas cost roughly 2,642 tokens of context every time the server is loaded.

### Does the Firecrawl MCP Server server require authentication?

No. We connected to Firecrawl MCP Server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Firecrawl MCP Server server still maintained?

Firecrawl MCP Server is still listed as active in the MCP registry. We last reached this channel on 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the Firecrawl MCP Server server?

VerifyMCP ran 13 checks on Firecrawl MCP Server, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://mcp.firecrawl.dev/v2/mcp
- Changelog RSS feed: https://verifymcp.io/servers/firecrawl-firecrawl-mcp-server/v2-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/firecrawl-firecrawl-mcp-server/v2-mcp/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/firecrawl-firecrawl-mcp-server/v2-mcp.json
- HTML version of this page: https://verifymcp.io/servers/firecrawl-firecrawl-mcp-server/v2-mcp
