Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Firecrawl MCP Server

NPM · FIRECRAWL-MCP · SCANNED SEP 20

MCP server for Firecrawl — web search, scraping, and biomedical/arXiv paper search.

Available components

+1 this week 71 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security89
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects axios 1.16.1, reached via @mendable/firecrawl-js > axios. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 66 of 188 dependencies flagged as unhealthy (2 deprecated). View diagnostics → Partial
Provenance & Transparency19
Schema Quality & AI Usability68
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4141 tokens (~165/item across 25 items; 25 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
  • Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 12% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 26 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Firecrawl MCP Server server?

Firecrawl MCP Server runs locally as an npm package, launched with npx -y firecrawl-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · firecrawl-mcp

# add to Claude Code
claude mcp add firecrawl-firecrawl-mcp-server -- npx -y firecrawl-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "firecrawl-firecrawl-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "firecrawl-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "firecrawl-firecrawl-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "firecrawl-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add firecrawl-firecrawl-mcp-server -- npx -y firecrawl-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "firecrawl-firecrawl-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "firecrawl-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add firecrawl-firecrawl-mcp-server --command npx --arg -y --arg firecrawl-mcp
# ~/.hermes/config.yaml
mcp_servers:
  firecrawl-firecrawl-mcp-server:
    command: "npx"
    args: ["-y", "firecrawl-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "firecrawl-firecrawl-mcp-server": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "firecrawl-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add firecrawl-firecrawl-mcp-server -t stdio -c npx -a -y firecrawl-mcp
// mcp.json
{
  "mcpServers": {
    "firecrawl-firecrawl-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "firecrawl-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1
    • Security disclosure: unverified → fail functional
    • Package version: 3.23.6 → 3.24.0 functional
  • 19 Sept 26 −2
    • Security disclosure: fail → unverified functional
    • Stability: pass → 0.83 functional
  • 18 Sept 26 0
    • Stability: 0.97 → pass security
  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 0
    • Security disclosure: unverified → fail functional
  • 14 Sept 26 +1
    • Security disclosure: fail → unverified functional
  • 12 Sept 26 −2
    • Security disclosure: unverified → fail functional
    • Stability: pass → 0.80 functional
  • 11 Sept 26 0
    • Security disclosure: fail → unverified functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/firecrawl-mcp@3.24.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 10 findings
ID CVE Severity Vector Fix available
GHSA-42h9-826w-cgv3 CVE-2026-67313 medium yes
GHSA-7q8q-rj6j-mhjq CVE-2026-67319 medium yes
GHSA-f4gw-2p7v-4548 CVE-2026-67315 medium yes
GHSA-gcfj-64vw-6mp9 CVE-2026-67320 high yes
GHSA-hcpx-6fm6-wx23 CVE-2026-67321 medium yes
GHSA-jqh4-m9w3-8hp9 CVE-2026-67317 medium yes
GHSA-mmx7-hfxf-jppx CVE-2026-67316 medium yes
GHSA-mwf2-3pr3-8698 CVE-2026-67318 medium yes
GHSA-pmv8-rq9r-6j72 CVE-2026-67312 medium yes
GHSA-xj6q-8x83-jv6g CVE-2026-67314 medium yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 188 packages
Packages resolved 188
Deprecated 2
Stale 65
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 25 exposed · ~3,946 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
firecrawl_agent ~154

Start an asynchronous web research job from a prompt, optional seed URLs, and an optional JSON schema. Use this for a requested synthesis across multiple sources when the task can wait for asynchronous completion. The agent can search, navigate, read pages, and assemble a structured result. This call returns only a job ID, not the research result. Read the job with `firecrawl_agent_status` until it reaches `completed` or `failed`; research commonly takes several minutes. If the job cannot finish within the task's available time, `firecrawl_search` and `firecrawl_scrape` can gather evidence synchronously.

NameTypeReqDescription
promptstringyes
schemaobject
urlsarray

No output schema declared.

No examples provided.

firecrawl_agent_status ~120

Retrieve progress or final results for a `firecrawl_agent` job ID. A `processing` response is non-terminal and does not contain the final research result. Check again after 15–30 seconds until the status is `completed` or `failed`; complex jobs can take several minutes. If the job cannot finish within the task's available time, use `firecrawl_search` and `firecrawl_scrape` to complete the requested output. Returns job status, progress information, and result data when completed.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

firecrawl_check_crawl_status ~52

Retrieve the current status, progress, and available results for an existing crawl ID. This only reads Firecrawl job state and does not start or modify the crawl.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

firecrawl_crawl ~245

Start a multi-page crawl at a website URL, poll it to a terminal state, and return the final status and collected data. Scope can be bounded with include/exclude paths, depth, page limit, subdomain/external-link controls, sitemap handling, delay, and scrape options. Crawl results can be large; use conservative limits when full-site coverage is unnecessary. Webhooks and interactive scrape actions are unavailable in safe mode. Returns the crawl ID, status, and page data.

NameTypeReqDescription
allowExternalLinksboolean
allowSubdomainsboolean
crawlEntireDomainboolean
deduplicateSimilarURLsboolean
delaynumber
excludePathsarray
ignoreQueryParametersboolean
includePathsarray
limitnumber
maxConcurrencynumber
maxDiscoveryDepthnumber
promptstring
scrapeOptionsobject
sitemapstring
urlstringyes
webhookstring
webhookHeadersobject

No output schema declared.

No examples provided.

firecrawl_developer_search ~167

For a developer question — code behaviour, a library or framework, an API contract, an error message, or a known bug — search an index built for coding agents. The index covers GitHub issues, merged pull requests, repository READMEs, and curated documentation sites. Set skills to "only" to limit the search to agent-skill files. Returns ranked results with an ID, source type, URL, title, and the matched passages in markdown.

NameTypeReqDescription
kintegerNumber of ranked results to return (default 10).
querystringyesNatural-language developer question or search phrase, including the library, error message, or API involved when relevant.
skillsstringSet to "only" to search only agent-skill files.

No output schema declared.

No examples provided.

firecrawl_extract ~104

Deprecated compatibility entry point. Use firecrawl_scrape once per known URL with formats: ["json"] and jsonOptions containing the prompt and schema. Use firecrawl_search or firecrawl_agent before Scrape when URLs are not known.

NameTypeReqDescription
allowExternalLinksboolean
enableWebSearchboolean
includeSubdomainsboolean
promptstring
schemaobject
urlsarrayyes

No output schema declared.

No examples provided.

firecrawl_interact ~160

Open or reuse a live browser session to navigate a page, click controls, fill fields, or run browser code. Provide either `url` or `scrapeId`, and either a natural-language `prompt` or executable `code`; code can run as Bash, Python, or Node with a bounded timeout. This acts on the live site, so actions such as form submission can create persistent external side effects. Returns execution output, stdout/stderr, exit status, and session viewing URLs.

NameTypeReqDescription
codestring
languagestring
promptstring
scrapeIdstring
scrapeOptionsobject
timeoutnumber
urlstring

No output schema declared.

No examples provided.

firecrawl_interact_stop ~43

Stop the live interact session associated with a `scrapeId` and release its resources. Returns a success confirmation.

NameTypeReqDescription
scrapeIdstringyes

No output schema declared.

No examples provided.

firecrawl_map ~161

Enumerate URLs indexed under one website through Firecrawl without fetching each page's content. Use this when the request asks for a site's URL inventory, when several relevant pages must be located, or when the desired page URL is unknown. An optional `search` term narrows the URL list, while sitemap, subdomain, query-parameter, and result-limit options control coverage. Returns matching URLs rather than page bodies. Retrieve one page with `firecrawl_scrape`; collect content across multiple pages with `firecrawl_crawl`.

NameTypeReqDescription
ignoreQueryParametersboolean
includeSubdomainsboolean
limitnumber
searchstring
sitemapstring
urlstringyes

No output schema declared.

No examples provided.

firecrawl_monitor_check ~136

Retrieve one monitor check and its page-level results, optionally filtered by page status. Pages report `same`, `new`, `changed`, `removed`, or `error`; configured goal judging can add a meaningful-change decision. Markdown tracking returns a unified text diff, JSON tracking returns field paths with previous/current values and a current snapshot, and mixed tracking returns both. Returns one page of results plus a `next` URL when more pages exist.

NameTypeReqDescription
checkIdstringyes
idstringyes
limitinteger
pageStatusstring
skipinteger

No output schema declared.

No examples provided.

firecrawl_monitor_checks ~67

List historical checks for a monitor, optionally filtered by status and bounded by a result limit. Returns one page of check summaries and pagination metadata.

NameTypeReqDescription
idstringyes
limitinteger
offsetinteger
statusstring

No output schema declared.

No examples provided.

firecrawl_monitor_create ~257

Create a recurring scrape, crawl, or search monitor that compares each check with its retained predecessor. The simple form accepts `page`/`pages` or `queries` plus a plain-language `goal`; the advanced `body` form controls targets, schedule, change-tracking formats, judging, retention, webhook, and notifications. In the simple form, a `goal` is required. If `queries` contains one or more non-empty values and is supplied with `page`/`pages`, `queries` create the search target and page targets are ignored. A monitor schedules future network checks and can send configured email or webhook notifications. Returns the created monitor.

NameTypeReqDescription
bodyobject
emailstring
excludeDomainsarray
goalstring
includeDiffsboolean
includeDomainsarray
maxResultsinteger
namestring
pagestring
pagesarray
queriesarray
scheduleTextstring
searchWindowstring
timezonestring
webhookUrlstring

No output schema declared.

No examples provided.

firecrawl_monitor_delete ~42

Permanently delete a monitor by ID and stop its future schedule. This operation cannot be undone and returns deletion status.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

firecrawl_monitor_get ~40

Retrieve one monitor by ID, including its configuration and current state. This does not run or modify the monitor.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

firecrawl_monitor_list ~46

List monitors for the authenticated account with optional pagination controls. Returns one page of monitor records and pagination metadata.

NameTypeReqDescription
limitinteger
offsetinteger

No output schema declared.

No examples provided.

firecrawl_monitor_run ~46

Queue an immediate check for a monitor outside its normal schedule. This starts network work for the monitor's configured targets and returns the queued check.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

firecrawl_monitor_update ~71

Patch an existing monitor by ID. The body can change its name, active/paused status, schedule, targets, goal, judging, webhook, notifications, or retention; these changes affect future scheduled checks. Returns the updated monitor.

NameTypeReqDescription
bodyobjectyes
idstringyes

No output schema declared.

No examples provided.

firecrawl_parse ~392

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.

NameTypeReqDescription
contentTypestringOptional MIME type override. If omitted, the server infers the file kind from the extension.
excludeTagsarray
filePathstringyesAbsolute or relative path to a local file to parse. Supported: .html, .htm, .pdf, .docx, .doc, .odt, .rtf, .xlsx, .xls
formatsarray
includeTagsarray
jsonOptionsobject
maxAgenumberIgnored: parse never reuses or stores indexed content.
onlyMainContentboolean
parsersarray
pdfOptionsobject
proxystring
queryOptionsobject
redactPIIboolean
removeBase64Imagesboolean
skipTlsVerificationboolean
storeInCacheboolean
zeroDataRetentionboolean

No output schema declared.

No examples provided.

firecrawl_research_inspect_paper ~118

Retrieve canonical metadata for one paper ID, such as an arXiv, PMC, PMID, or DOI identifier. Returns the title, abstract, authors, categories, source IDs, and dates as markdown.

NameTypeReqDescription
paperIdstringyesCanonical paperId or primaryId such as `arxiv:1706.03762`, `pmcid:PMC12530322`, `pmid:40953549`, or `doi:10.1016/j.neunet.2025.108095`.

No output schema declared.

No examples provided.

firecrawl_research_read_paper ~144

Retrieve in-body passages from one paper that are relevant to a specific question. Full text is available only for indexed papers; `k` controls the number of passages. Returns matching passages or a notice when full text is unavailable.

NameTypeReqDescription
kintegerNumber of passages to return (default 4).
paperIdstringyesCanonical paperId or primaryId such as `arxiv:1706.03762`, `pmcid:PMC12530322`, `pmid:40953549`, or `doi:10.1016/j.neunet.2025.108095`.
questionstringyes

No output schema declared.

No examples provided.

firecrawl_research_related_papers ~137

Find citation-graph candidates from one to ten `seed_ids`; the first ID is the primary seed and later IDs are anchors. `mode` defaults to `similar` (co-citation/bibliographic coupling); `citers` returns papers citing a seed and `references` papers cited by a seed. `intent` ranks candidates. Returns ranked candidates and the evaluated pool size.

NameTypeReqDescription
intentstringyes
kinteger
modestring
rerankbooleanApply an additional rerank over the fused candidates.
seed_idsarrayyes

No output schema declared.

No examples provided.

firecrawl_research_search_github ~59

Search indexed public GitHub issue, pull-request, and README content. Returns ranked matches with repository, URL, snippet, and full matched markdown when available.

NameTypeReqDescription
kinteger
querystringyes

No output schema declared.

No examples provided.

firecrawl_research_search_papers ~235

Search paper metadata and abstracts with a natural-language query across the indexed corpus, which spans biomedical, life-science, and clinical literature (PubMed, bioRxiv, medRxiv) alongside arXiv and other scientific sources. Optional author, category, and date filters constrain results. Several distinct framings of the same question surface different papers than a single query does. Returns ranked papers with canonical IDs, titles, authors, and abstracts.

NameTypeReqDescription
authorsarrayAuthor substring filter(s); ALL must match (case-insensitive).
categoriesarrayPaper category filter(s) (e.g. `cs.LG`); ALL provided values must match.
fromstringInclusive lower bound on created/updated date (`YYYY-MM-DD`).
kintegerNumber of ranked papers to return (default 40).
querystringyesNatural-language research topic or question, including methods, systems, conditions, populations, interventions, or outcomes when relevant.
tostringInclusive upper bound on created/updated date (`YYYY-MM-DD`).

No output schema declared.

No examples provided.

firecrawl_scrape ~419

Retrieve and extract content from one supplied URL through Firecrawl. Use this when the request identifies a page and needs its content or defined fields. It can return markdown, HTML, links, screenshots, branding data, a targeted answer, or JSON matching a supplied schema; JSON is useful when the requested result has defined fields, while markdown preserves readable page content. This tool operates on a known page. For a set of pages use `firecrawl_crawl`, and to discover page URLs use `firecrawl_map` or `firecrawl_search`. Options include JavaScript render delay, cache age, main-content filtering, PII redaction, and lockdown cache-only retrieval. Browser actions may change the live page when interactive actions are enabled. Firecrawl may reuse recently indexed content instead of refetching the page, and the reuse window varies by domain. Set `maxAge: 0` to force a live fetch, or a smaller `maxAge` to bound how stale reused content may be. A successful response does not by itself confirm that the state it describes is still current. Returns the selected content formats and page metadata.

NameTypeReqDescription
actionsarray
excludeTagsarray
formatsarray
includeTagsarray
jsonOptionsobject
locationobject
lockdownboolean
maxAgenumber
mobileboolean
onlyMainContentboolean
parsersarray
pdfOptionsobject
profileobject
proxystring
queryOptionsobject
redactPIIboolean
removeBase64Imagesboolean
screenshotOptionsobject
skipTlsVerificationboolean
storeInCacheboolean
urlstringyes
waitFornumber
zeroDataRetentionboolean

No output schema declared.

No examples provided.

firecrawl_search ~531

Search web, news, or image sources and return ranked results. Operators include quoted phrases, `-term`, `site:host`, `inurl:term`, `intitle:term`, and `related:host`; the set is non-exhaustive. `includeDomains` and `excludeDomains` are mutually exclusive hostname filters; categories limit results to GitHub, research, PDF, or developer sources. For a programming question, add `categories: ["developer"]`. It searches an index of GitHub issues, merged pull requests, repository READMEs, and curated documentation sites, and returns the hits in `data.developer` beside the web results. `categories: ["research"]` restricts these web results to research-affiliated websites and returns page snippets. The `firecrawl_research_*` tools are a separate surface that searches paper abstracts and full text across biomedical (PubMed, bioRxiv, medRxiv) and arXiv literature. `scrapeOptions` can attach extracted page content; pages fetched this way use a fixed reuse window and ignore `maxAge`, so use `firecrawl_scrape` when a live fetch is required. Returns source-type result groups and usage metadata. Authenticated responses can include an `id` for optional search feedback.

NameTypeReqDescription
categoriesarrayLimit results to specific source types. `github` searches GitHub repositories, code, issues, and docs; `research` restricts ordinary web results to research-affiliated websites and returns page snipp…
enterprisearray
excludeDomainsarray
filterstring
highlightsbooleanReturn query-relevant highlights for each search result. Set to false to keep the original search snippets.
includeDomainsarray
limitnumber
locationstring
querystringyes
scrapeOptionsobject
sourcesarray
tbsstring

No output schema declared.

No examples provided.

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. MCP server for Firecrawl, web search, scraping, and biomedical/arXiv paper search. This page covers its npm package (firecrawl-mcp).

Is the Firecrawl MCP Server server safe to use?

Firecrawl MCP Server scores 71 out of 100 on VerifyMCP. We recorded 10 known advisories against it as of 20 September 2026. It declares no install or post-install scripts. 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 25 tools: firecrawl_scrape, firecrawl_map, firecrawl_search, firecrawl_crawl, firecrawl_check_crawl_status, and 20 more. Their descriptions and schemas cost roughly 3,946 tokens of context every time the server is loaded.

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 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Firecrawl MCP Server server under?

Firecrawl MCP Server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.