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 · 2 COMPONENTS

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

+1 this week 83 Trust /100

Last scanned (7 hours ago)

Scores higher than 76% of npm servers

Category Web Scraping

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 Security91
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 3.25.76, reached via firecrawl > zod. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 5 of 36 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency71
  • Repository check failed: the declared repository URL redirects; it must resolve directly. See how to fix → View diagnostics → Fail
  • Cryptographically verified build provenance (signed, bound to firecrawl/firecrawl-mcp-server). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability59
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 7067 tokens (~271/item across 26 items; 26 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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage81
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 32% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
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 27 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
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.

  • 5 Nov 26 +1
    • Stability: fail → pass ▲ security
  • 4 Nov 26 +15
    • Tool safety: pass → unverified ▼ security
    • Stability: fail → unverified ▼ security
    • Malware scan: unverified → pass ▲ security
    • Tool coverage: 100 → unverified ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • Schema quality: excellent → good functional
    • Package version: 3.36.1 → 3.37.0 functional
  • 3 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 3.36.0 → 3.36.1 functional
  • 28 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 27 Oct 26 0
    • Malware scan: unverified → pass ▲ security
    • Package version: 3.35.0 → 3.36.0 functional
  • 26 Oct 26 −14
    • Malware scan: pass → unverified ▼ security
    • Dependency health: 0.85 → 0.96 ▲ functional
    • Package version: 3.34.1 → 3.35.0 functional
  • 24 Oct 26 −3
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → fail ▼ security
  • 23 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
    • Package version: 3.29.1 → 3.34.1 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 5 Nov 2026 · Analysed npm/firecrawl-mcp@3.37.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo firecrawl/firecrawl-mcp-server
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/firecrawl/firecrawl-mcp-server/.github/workflows/publish.yml@refs/heads/main
Rekor log index 3690968232
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:d5256d9feb099d82a6aa2f02d1698b3a08959fb5335ca419c269e8203190af9fc55b6d9e23db4737d79664b71ce9802d054c5cb3b886af1a9b1dc9822

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 36 packages
Packages resolved 36
Stale 5
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 26 exposed · ~6,739 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 ~637

Run web research that returns structured data when the URLs are not known or the answer spans several sites. Describe the fields you need in `prompt`, optionally pass a JSON `schema` and seed `urls`, and the research agent searches, navigates, reads pages, and returns JSON assembled across sources. Use it to research an entity plus its fields (founders, pricing, contact details), to build lists and datasets (companies, people, products, jobs, papers), and for pages that need navigation or interaction to reach the data. Optional `effort` sets the reasoning budget, `maxCredits` caps spend, and `strictConstrainToURLs` keeps the agent to the supplied `urls`. This call returns only a job ID, not the research result. Read the job with `firecrawl_agent_status` until it reaches `completed` or `failed`; a typical research run takes one to three minutes. For one known URL use `firecrawl_scrape` (with formats: ["json"] for structured output); for a plain lookup that a results page answers, use `firecrawl_search`. The job also returns a `threadId`. To continue that thread, pass it with a follow-up `prompt`; omitted `mode`, `urls`, `schema` and exchange settings carry over from the previous turn. The agent only calls Alexandria providers whose terms the team has accepted. `exchange.skippedProviders` lists gated providers. With `exchange.onTermsRequired` "ask", a terms `pendingApproval` and `exchange.requiresAction` carry the `approvalId` and provider requirements. Read terms/show through `firecrawl_scrape`. An organization admin must accept terms in the Firecrawl dashboard at the provider URL or https://www.firecrawl.dev/app/settings?tab=data-sources. Ignore any terms/accept call in the API response. Only after the admin confirms acceptance, resume with the same `threadId` and `exchange.approve: {approvalId}`; this does not accept terms. To decline, use `exchange.decline: {approvalId}`. Never infer acceptance from a data request.

NameTypeReqDescription
effortstring–Reasoning budget for the agent task.
exchangeobject–Alexandria provider settings for this turn, forwarded as the request's exchange object.
maxCreditsinteger–Spending limit in credits for this run. Defaults to 2500 on the API.
modestring–"extract" (default) returns the complete structured result every turn. "chat" lets a follow-up that asks no new data get a short reply in message instead of a re-run; required for exchange.requireApp…
promptstringyes–
schemaobject––
strictConstrainToURLsboolean–If true, agent will only visit URLs provided in the urls array.
threadIdstring–Continue this thread: the threadId from an earlier firecrawl_agent or firecrawl_agent_status result. Omit to start a new thread.
urlsarray––
NameTypeReqDescription
error––Error message or error object when the call did not succeed.
idstring|null–Agent job identifier, for `firecrawl_agent_status`.
statusstring|null–Job state at submission time.
successboolean|null–Whether the API call succeeded.
threadIdstring|null–Research thread this job belongs to.
threadTurnnumber|null–Turn number of this job within its thread.

No examples provided.

firecrawl_agent_status ~129

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`; a typical research run takes one to three minutes and complex jobs can take longer. 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–
NameTypeReqDescription
creditsUsednumber|null–Credits the job consumed.
data––Research result, present once the job has completed.
error––Error message or error object when the call did not succeed.
exchange––What the job did with Alexandria providers: onTermsRequired, paidCalls, creditsUsed, skippedProviders (gated providers that would have helped), and requiresAction (approvalId and provider requirement…
expiresAtstring|null–When the job result expires and can no longer be read.
idstring|null–Agent job identifier.
message––The agent's reply; in chat mode, the short answer to a follow-up.
modestring|null–Agent mode the job ran in.
modelstring|null–Agent model that ran the job.
noticestring|null–Set when the run stopped at its credit limit: what that means and how to continue.
partial––Incomplete best-effort result of a `failed` run; never a completed answer.
partialSchemaValidboolean|null–Whether `partial` matches the requested schema, when one was supplied.
pendingApproval––Set when the job ended waiting on the caller. Answer it by calling firecrawl_agent with this threadId and exchange.approve or exchange.decline carrying its id. kind "terms" lists providers whose data…
progress––Progress information for a running job.
sources––Sources the agent read.
statusstring|null–Job state: `processing` is non-terminal; `completed` and `failed` are terminal.
stopReasonstring|null–Why a `failed` run stopped early; `credit_limit_reached` means it hit maxCredits.
successboolean|null–Whether the API call succeeded.
suggestions––Follow-ups the agent offers; send one as the prompt of the next turn with this threadId.
threadIdstring|null–Research thread this job belongs to.
threadTurnnumber|null–Turn number of this job within its thread.

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–
NameTypeReqDescription
completednumber|null–Pages crawled so far.
creditsUsednumber|null–Credits the crawl consumed.
data––Scraped documents collected by the crawl.
error––Error message or error object when the call did not succeed.
expiresAtstring|null–When the crawl results expire.
idstring|null–Crawl identifier, for `firecrawl_check_crawl_status`.
nextstring|null–URL of the next page of results, when the data is paginated.
statusstring|null–Crawl state, such as `scraping`, `completed`, or `failed`.
successboolean|null–Whether the API call succeeded.
totalnumber|null–Pages the crawl expects to visit.
urlstring|null–The URL the crawl started from.
warningstring|null–Non-fatal warning about the result.

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––
NameTypeReqDescription
completednumber|null–Pages crawled so far.
creditsUsednumber|null–Credits the crawl consumed.
data––Scraped documents collected by the crawl.
error––Error message or error object when the call did not succeed.
expiresAtstring|null–When the crawl results expire.
idstring|null–Crawl identifier, for `firecrawl_check_crawl_status`.
nextstring|null–URL of the next page of results, when the data is paginated.
statusstring|null–Crawl state, such as `scraping`, `completed`, or `failed`.
successboolean|null–Whether the API call succeeded.
totalnumber|null–Pages the crawl expects to visit.
urlstring|null–The URL the crawl started from.
warningstring|null–Non-fatal warning about the result.

No examples provided.

firecrawl_credit_usage ~470

Get the authenticated Firecrawl team's current credit balance or its credit usage over the last 90 days. Use the current view to answer how many credits remain or to check billing-period boundaries. Use the historical view to answer what credits were spent on and when. The current view returns `remainingCredits`, `planCredits`, `billingPeriodStart`, and `billingPeriodEnd`. Extra purchased or granted credits can make `remainingCredits` greater than `planCredits`. Billing-period dates may be null when the upstream billing provider has no period metadata. The historical view returns periods sorted by start date with `startDate`, `endDate`, and `creditsUsed`, one per calendar month, or one per UTC day with `bin: "day"`. Set `byEndpoint` to split each period by the endpoint that used the credits (`endpoint`: scrape, search, crawl, map, agent, ...), or `byApiKey` to split it by API key (`apiKey`). The endpoint split also counts search usage, which the unsplit and per-key figures leave out, so its rows can add up to more. The newest period's `endDate` can be null. A `notice` means the requested split or daily periods are not available yet and the periods are monthly figures. This tool cannot attribute credits to individual jobs, URLs, or MCP clients. Each tool's own result reports what that call used (`creditsUsed`, or `metadata.creditsUsed` on scrapes), and the Usage and Logs pages of the Firecrawl dashboard list usage per job.

NameTypeReqDescription
binstring–Length of each historical period: calendar month (default) or UTC day. When view is omitted, it selects the historical view; it cannot be combined with view "current".
byApiKeyboolean–Break historical usage down by API key. When view is omitted, true selects the historical view; it cannot be combined with view "current".
byEndpointboolean–Break historical usage down by endpoint (scrape, search, crawl, map, agent, ...). When view is omitted, true selects the historical view; it cannot be combined with view "current" or byApiKey.
viewstring–Select current balance or historical usage. Defaults to current.
NameTypeReqDescription
billingPeriodEndstring|null–End of the current billing period; null when the billing provider reports no period.
billingPeriodStartstring|null–Start of the current billing period; null when the billing provider reports no period.
binstring|null–Period length the API applied, `month` or `day`; present when the API applied a requested endpoint split or daily periods.
error––Error message or error object when the call did not succeed.
noticestring|null–Present when the requested split or daily periods are not available yet; the periods are then calendar-month figures.
periods––Historical periods sorted by start date, each with `startDate`, `endDate`, `creditsUsed`, and `endpoint` or `apiKey` when split.
planCreditsnumber|null–Credits included in the plan for the period.
remainingCreditsnumber|null–Credits left in the current billing period; can exceed `planCredits` when extra credits were purchased or granted.
successboolean|null–Whether the API call succeeded.

No examples provided.

firecrawl_developer_search ~130

Search an index of public repositories, GitHub issues, merged pull requests, repository READMEs, and code documentation for programming questions that need external documentation or upstream evidence. Returns ranked results with an ID, source type, URL, title, and the matched passages in markdown.

NameTypeReqDescription
kinteger–Number of ranked results to return (default 10).
querystringyesNatural-language developer question or search phrase, including the library, error message, or API involved when relevant.
skillsstring–Set to "only" to search only agent-skill files.
NameTypeReqDescription
resultsarrayyesRanked results, in the order the text block lists them.

No examples provided.

firecrawl_find_tools ~495

Browse Alexandria data providers and workflows or read a selected contract. Alexandria covers 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: typed, sourced records through published contracts. Prefer normal firecrawl_search for a data task; it already returns matching providers. Use this tool when the contract you need was not returned in full, to browse a category when search found nothing, or before scraping the same fields from several pages. Discovery is free. Use query for semantic discovery or urls to find providers for a website. With no arguments, browse categories, then providers and tools. Contracts describe the inputs and outputs for execution through firecrawl_scrape. nextTool identifies further discovery or pagination. Discovery does not execute providers. Use firecrawl_search when you also need web results.

NameTypeReqDescription
capabilitiesarray–Values from each listed tool's `capability` field (e.g. "apps/app"). Put the provider in `providers`: {"providers": ["apps-apple-com"], "capabilities": ["apps/app"]}. A selected capability expands it…
categoriesarray–Category IDs returned by an empty call. Lists providers by default.
expandarray–Use ["options", "response"] for inputs and output shape without example payloads; [] keeps results compact. Omit for full contracts on selected capabilities.
groupsarray–Optional group IDs for explicit group browsing.
includeCostsboolean–Include per-capability credit prices (creditsCost, perRecord) in tool results.
levelstring–Usually omit: it follows the arguments (tools for query, urls, providers, capabilities or groups; providers for categories; categories with none). Set providers or groups to list those within a categ…
limitinteger––
offsetinteger––
providersarray–Values from each listed tool's `provider` field (e.g. "apps-apple-com"). Alone, lists that provider's compact tools; with capabilities, scopes them.
querystring–Semantic lookup of tools for the data you need. Selectors constrain the search.
urlsarray––
NameTypeReqDescription
creditsCostnumber|null–Credits this call consumed.
data––Discovery page in `data.alexandria[0].data`, with `level`, `items`, `total`, and an optional `nextTool`.
deliverystring|null–`retained` when the full result stayed server-side instead of being inlined.
error––Error message or error object when the call did not succeed.
estimatedTokensnumber|null–Estimated token cost of the full result.
feedbackTool––Pointer to the feedback tool for reporting how this result served the task.
idleTtlSecondsnumber|null–Seconds a retained workspace stays available while idle.
inlineTokenBudgetnumber|null–Token budget above which a result is retained rather than inlined.
messagestring|null–Guidance that accompanies the result.
nextTool––A follow-up tool call (`{name, arguments}`) that continues or inspects this result.
receipt––Billing receipt for the execution.
requestIdstring|null–Identifier of this Alexandria execution.
responseBytesnumber|null–Size of the full result in bytes.
scrape_idstring|null–Identifier of the underlying scrape.
successboolean|null–Whether the API call succeeded.
tokenEstimateMethodstring|null–How `estimatedTokens` was derived.
workspaceIdstring|null–Workspace holding a retained result, for inspection through virtual Bash.

No examples provided.

firecrawl_gov_search ~470

Search US federal, state, and local statutes, regulations, codes, court opinions, and other government publications for legal or regulatory questions that need primary text. Clarify a missing jurisdiction or ambiguous as-of date before identifying the governing rule. Optional filters narrow results by jurisdiction, court, court type, cited law or case, and site. Filters keep only pages the index has labeled, so a filtered search can leave out relevant pages, and no results does not mean none exist. Court labels are most complete for federal courts and case-law collections. Returns ranked results with a position, title, URL, and matched snippet. Results may include historical versions, bill text, agency guidance, and third-party reproductions. Verify the issuer, jurisdiction, enacted/effective status, and version before citing current governing law. Read a known URL or additional page context with firecrawl_scrape. Use general search for non-US questions or missing coverage; no hits does not establish that no applicable law exists.

NameTypeReqDescription
citesstring–Keep only pages that cite one law or case, as a printed citation such as "42 U.S.C. § 1983" or "5 U.S. 137", or a citation id such as "us:usc:42:1983".
courtstring–Keep only pages labeled for one court, by CourtListener court id, such as "scotus", "ca9" or "nysd".
courtTypestring–Keep only pages from one type of court: federal-supreme, federal-appellate, federal-district, federal-bankruptcy, federal-special, military, state-supreme, state-appellate, state-trial, state-special…
domainstring–Keep only pages from one site, such as "irs.gov".
jurisdictionstring–Keep only pages of one jurisdiction: "us" for federal, or "us-" plus a two-letter state or territory code, such as "us-ca" or "us-dc".
kinteger–Number of ranked results to return (default 10).
querystringyesNatural-language legal or regulatory question or search phrase, including the jurisdiction, agency, or citation when relevant.
NameTypeReqDescription
resultsarrayyesRanked results, in the order the text block lists them.

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––
NameTypeReqDescription
data––Payload returned by the interaction.
error––Why the interaction or the session could not run.
exitCodenumber|null–Exit status of the executed code.
liveUrlstring|null–URL for viewing the live session.
output––Execution output.
result––Interaction result, when it is not an object of its own.
scrapeIdstring|null–Session identifier; pass it to reuse the session or to `firecrawl_interact_stop`.
sessionUrlstring|null–URL for viewing the live session.
stderrstring|null–Standard error of the executed code.
stdoutstring|null–Standard output of the executed code.
successboolean|null–Whether the API call succeeded.
urlstring|null–The URL the session was opened from, when opening failed.

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–
NameTypeReqDescription
error––Error message or error object when the call did not succeed.
messagestring|null–Confirmation that the session was stopped.
scrapeIdstring|null–Session that was stopped.
successboolean|null–Whether the API call succeeded.

No examples provided.

firecrawl_map ~175

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`. Authenticated responses can include an `id` for optional map feedback.

NameTypeReqDescription
ignoreQueryParametersboolean––
includeSubdomainsboolean––
limitnumber––
searchstring––
sitemapstring––
urlstringyes–
NameTypeReqDescription
error––Error message or error object when the call did not succeed.
idstring|null–Identifier of the map run, for optional map feedback.
links––URLs discovered under the website.
successboolean|null–Whether the API call succeeded.
warningstring|null–Non-fatal warning about the result.

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––
NameTypeReqDescription
data––The check and its page-level results: each page reports `same`, `new`, `changed`, `removed`, or `error`, with diffs and any goal judgment.
error––Error message or error object when the call did not succeed.
nextstring|null–URL of the next page of results, when more exist.
pagination––Pagination metadata for the page results.
successboolean|null–Whether the API call succeeded.

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––
NameTypeReqDescription
data––One page of check summaries.
error––Error message or error object when the call did not succeed.
pagination––Pagination metadata for the listing.
successboolean|null–Whether the API call succeeded.

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––
NameTypeReqDescription
data––The monitor record: configuration, schedule, targets, and current state.
error––Error message or error object when the call did not succeed.
successboolean|null–Whether the API call succeeded.

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–
NameTypeReqDescription
data––Deletion details, when the API returns any.
error––Error message or error object when the call did not succeed.
successboolean|null–Whether the API call succeeded.

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–
NameTypeReqDescription
data––The monitor record: configuration, schedule, targets, and current state.
error––Error message or error object when the call did not succeed.
successboolean|null–Whether the API call succeeded.

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––
NameTypeReqDescription
data––One page of monitor records.
error––Error message or error object when the call did not succeed.
pagination––Pagination metadata for the listing.
successboolean|null–Whether the API call succeeded.

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–
NameTypeReqDescription
data––The queued check.
error––Error message or error object when the call did not succeed.
successboolean|null–Whether the API call succeeded.

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–
NameTypeReqDescription
data––The monitor record: configuration, schedule, targets, and current state.
error––Error message or error object when the call did not succeed.
successboolean|null–Whether the API call succeeded.

No examples provided.

firecrawl_parse ~411

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.

NameTypeReqDescription
contentTypestring–Optional 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––
maxAgenumber–Ignored: parse never reuses or stores indexed content.
onlyMainContentboolean––
parsersarray––
pdfOptionsobject––
proxystring––
queryOptionsobject––
redactPIIboolean––
removeBase64Imagesboolean––
skipTlsVerificationboolean––
storeInCacheboolean––
zeroDataRetentionboolean––
NameTypeReqDescription
data––Parsed document content; can include `data.metadata.scrapeId` for parse feedback.
error––Error message or error object when the call did not succeed.
messagestring|null–Guidance for the next call.
modestring|null–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.
rawstring|null–Response body when it was not JSON.
successboolean|null–Whether the API call succeeded.
uploadobject–Hosted phase one: how to upload the local file.
warningstring|null–Non-fatal warning about the result.

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`.
NameTypeReqDescription
paperobject–Canonical metadata for the requested paper, absent when it was not found.

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
kinteger–Number 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–
NameTypeReqDescription
passagesarrayyesIn-body passages relevant to the question; empty when no full text is indexed.

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––
rerankboolean–Apply an additional rerank over the fused candidates.
seed_idsarrayyes–
NameTypeReqDescription
notestring|null–Note about how the candidates were produced.
poolSizenumberyesNumber of candidates evaluated before ranking.
resultsarrayyesRanked citation-graph candidates.

No examples provided.

firecrawl_research_search_papers ~296

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, date, and sort options constrain or reorder 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
authorsarray–Author substring filter(s); ALL must match (case-insensitive).
categoriesarray–Paper category filter(s) (e.g. `cs.LG`); ALL provided values must match.
fromstring–Inclusive lower bound on created/updated date (`YYYY-MM-DD`).
kinteger–Number of ranked papers to return (default 40).
querystringyesNatural-language research topic or question, including methods, systems, conditions, populations, interventions, or outcomes when relevant.
sortstring–`relevance` (default) or `date_desc`, which returns the newest of the most relevant matches, newest first by created date. It does not list every paper in a date range; add `from` (and `to`) for that.
tostring–Inclusive upper bound on created/updated date (`YYYY-MM-DD`).
NameTypeReqDescription
resultsarrayyesRanked papers, in the order the text block lists them.

No examples provided.

firecrawl_scrape ~794

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. Browser actions can change the live page when interactive actions are enabled. 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.

NameTypeReqDescription
actionsarray––
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…
domainToolsboolean–URL mode only: include domain-matched Alexandria tools for the page in tools on the returned document. Ignored with alexandria.
excludeTagsarray––
formatsarray––
includeTagsarray––
jsonOptionsobject––
locationobject––
lockdownboolean––
maxAgenumber––
mobileboolean––
onlyMainContentboolean––
parsersarray––
pdfOptionsobject––
profileobject––
proxystring––
queryOptionsobject––
redactPIIboolean––
removeBase64Imagesboolean––
requestIdstring–Idempotency key bound to one Alexandria execution payload. Generated when omitted and returned with the result.
screenshotOptionsobject––
skipTlsVerificationboolean––
storeInCacheboolean––
timeoutinteger–Execution timeout in milliseconds.
toolDetailstring–URL mode only: domain discovery detail, summary by default; compact returns provider/capability/description, full includes contracts. Ignored with alexandria.
urlstring––
waitFornumber––
zeroDataRetentionboolean––
NameTypeReqDescription
actions––Results of the browser actions that ran during the scrape.
answerstring|null–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.
creditsCostnumber|null–Credits this call consumed.
data––Alexandria mode: per-capability results in `data.alexandria`, each with `data`, `records`, or an `error`.
deliverystring|null–`retained` when the full result stayed server-side instead of being inlined.
error––Error message or error object when the call did not succeed.
estimatedTokensnumber|null–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.
htmlstring|null–Processed HTML of the page.
idleTtlSecondsnumber|null–Seconds a retained workspace stays available while idle.
images––Images found on the page.
inlineTokenBudgetnumber|null–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.
markdownstring|null–Page content as markdown.
menu––Menu data extracted from the page.
messagestring|null–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.
rawHtmlstring|null–Unprocessed HTML of the page.
receipt––Billing receipt for the execution.
requestIdstring|null–Identifier of this Alexandria execution.
responseBytesnumber|null–Size of the full result in bytes.
scrape_idstring|null–Identifier of the underlying scrape.
screenshot––Screenshot of the page.
successboolean|null–Whether the API call succeeded.
summarystring|null–Summary of the page content.
tokenEstimateMethodstring|null–How `estimatedTokens` was derived.
tools––Domain-matched Alexandria tools for the page, when `domainTools` is set.
video––Video extracted from the page.
warningstring|null–Non-fatal warning about the result.
workspaceIdstring|null–Workspace holding a retained result, for inspection through virtual Bash.

No examples provided.

firecrawl_search ~1,128

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…

NameTypeReqDescription
categoriesarray–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…
domainToolsboolean–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.
enterprisearray––
excludeDomainsarray–Hostnames to leave out of results. Mutually exclusive with includeDomains.
filterstring––
highlightsboolean–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…
includeDomainsarray–Hostnames to restrict results to. Mutually exclusive with excludeDomains.
limitinteger––
locationstring––
querystringyesQuery 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…
scrapeOptionsobject–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…
sourcesarray–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…
tbsstring––
toolDetailstring–Compact by default. Compact returns only provider, capability and description; full includes contracts. Inspect selected compact tools with firecrawl_find_tools providers and capabilities.
NameTypeReqDescription
creditsUsednumber|null–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.
idstring|null–Search identifier, for optional `firecrawl_search_feedback`.
nextTool––A follow-up tool call that continues this search.
successboolean|null–Whether the API call succeeded.
tools––Domain-matched Alexandria tools for the results.
warningstring|null–Non-fatal warning about the result.

No examples provided.

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
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 npm package (firecrawl-mcp).

Is the Firecrawl MCP Server server safe to use?

Firecrawl MCP Server scores 83 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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 26 tools: firecrawl_scrape, firecrawl_map, firecrawl_search, firecrawl_find_tools, firecrawl_crawl, and 21 more. Their descriptions and schemas cost roughly 6,739 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 5 November 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.