Search, scrape, and interact with the web for AI agents. Turn any URL into clean Markdown or stru...
100K+
Search, scrape, and interact with the web for AI agents. Turn any URL into clean Markdown or structured JSON, search the live web and specialized indexes, parse documents, crawl and map sites, and watch pages for changes.
| Attribute | Details |
|---|---|
| Docker Image | mcp/firecrawl |
| Author | firecrawl |
| Repository | https://github.com/firecrawl/firecrawl-mcp-server |
| Attribute | Details |
|---|---|
| Dockerfile | https://github.com/firecrawl/firecrawl-mcp-server/blob/6c6aed6039a9e27502ea3f240aa75bb1d68c716f/Dockerfile |
| Commit | 6c6aed6039a9e27502ea3f240aa75bb1d68c716f |
| Docker Image built by | Docker Inc. |
| Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/firecrawl --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
| Licence | MIT License |
| Tools provided by this Server | Short Description |
|---|---|
firecrawl_agent | Firecrawl agent |
firecrawl_agent_status | Firecrawl agent status |
firecrawl_check_crawl_status | Firecrawl crawl status |
firecrawl_crawl | Firecrawl site crawl |
firecrawl_credit_usage | Firecrawl credit usage |
firecrawl_developer_search | Firecrawl developer search |
firecrawl_feedback | Firecrawl feedback |
firecrawl_find_tools | Find Tools |
firecrawl_gov_search | Firecrawl Government Index search |
firecrawl_interact | Firecrawl interact |
firecrawl_interact_stop | Stop Firecrawl interact session |
firecrawl_map | Firecrawl website map |
firecrawl_monitor_check | Get Firecrawl monitor check |
firecrawl_monitor_checks | List Firecrawl monitor checks |
firecrawl_monitor_create | Create Firecrawl monitor |
firecrawl_monitor_delete | Delete Firecrawl monitor |
firecrawl_monitor_get | Get Firecrawl monitor |
firecrawl_monitor_list | List Firecrawl monitors |
firecrawl_monitor_run | Run Firecrawl monitor now |
firecrawl_monitor_update | Update Firecrawl monitor |
firecrawl_parse | Firecrawl file parsing |
firecrawl_research_inspect_paper | Firecrawl inspect research paper |
firecrawl_research_read_paper | Firecrawl read research paper |
firecrawl_research_related_papers | Firecrawl related research papers |
firecrawl_research_search_papers | Firecrawl research paper search |
firecrawl_scrape | Firecrawl scrape |
firecrawl_search | Firecrawl web search |
firecrawl_search_feedback | Firecrawl search feedback |
firecrawl_agentRun 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.
| Parameters | Type | Description |
|---|---|---|
prompt | string | |
effort | string optional | Reasoning budget for the agent task. |
exchange | object optional | Alexandria provider settings for this turn, forwarded as the request's exchange object. |
maxCredits | integer optional | Spending limit in credits for this run. Defaults to 2500 on the API. |
mode | string optional | "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.requireApproval. Omitted on a follow-up keeps the previous turn's mode. |
schema | object optional | |
strictConstrainToURLs | boolean optional | If true, agent will only visit URLs provided in the urls array. |
threadId | string optional | Continue this thread: the threadId from an earlier firecrawl_agent or firecrawl_agent_status result. Omit to start a new thread. |
urls | array optional |
This tool interacts with external entities.
firecrawl_agent_statusRetrieve 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.
| Parameters | Type | Description |
|---|---|---|
id | string |
This tool is read-only. It does not modify its environment.
firecrawl_check_crawl_statusRetrieve 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.
| Parameters | Type | Description |
|---|---|---|
id | string |
This tool is read-only. It does not modify its environment.
firecrawl_crawlStart 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.
| Parameters | Type | Description |
|---|---|---|
url | string | |
allowExternalLinks | boolean optional | |
allowSubdomains | boolean optional | |
crawlEntireDomain | boolean optional | |
deduplicateSimilarURLs | boolean optional | |
delay | number optional | |
excludePaths | array optional | |
ignoreQueryParameters | boolean optional | |
includePaths | array optional | |
limit | number optional | |
maxConcurrency | number optional | |
maxDiscoveryDepth | number optional | |
prompt | string optional | |
scrapeOptions | object optional | |
sitemap | string optional | |
webhook | string optional | |
webhookHeaders | object optional |
This tool interacts with external entities.
firecrawl_credit_usageGet 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.
| Parameters | Type | Description |
|---|---|---|
bin | string optional | 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". |
byApiKey | boolean optional | Break historical usage down by API key. When view is omitted, true selects the historical view; it cannot be combined with view "current". |
byEndpoint | boolean optional | 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. |
view | string optional | Select current balance or historical usage. Defaults to current. |
This tool is read-only. It does not modify its environment.
firecrawl_developer_searchSearch 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.
| Parameters | Type | Description |
|---|---|---|
query | string | Natural-language developer question or search phrase, including the library, error message, or API involved when relevant. |
k | integer optional | Number of ranked results to return (default 10). |
skills | string optional | Set to "only" to search only agent-skill files. |
This tool is read-only. It does not modify its environment.
This tool interacts with external entities.
firecrawl_feedbackSubmit concise quality feedback for a completed search, scrape, parse, or map job. Provide the endpoint, job ID, rating, and relevant issue codes or small contextual fields; omit large page contents and raw outputs.
For an Alexandria session, set endpoint to alexandria, omit jobId, and provide requestedWebsite (url and requestedFunctionality), objective, rationale, and rating. objective is the underlying goal behind the session: what you or your user were ultimately trying to accomplish (for example, "shortlist federal IT contracts to bid on this quarter"), not only what was needed from this website. Optional providerFeedback and capabilityFeedback describe gaps or errors. Capability issues: new_capability_request (requires requestedFunctionality), missing_capability, insufficient_functionality, incorrect_result, execution_error, other. Alexandria feedback must arrive within 20 minutes of the team's latest Alexandria search, discovery, or execution; later feedback is rejected. Eligible feedback can refund 1 credit; refunds are subject to daily caps per website and per team.
Returns submission status, feedback ID, and accounting fields.
| Parameters | Type | Description |
|---|---|---|
endpoint | string | |
rating | string | |
capabilityFeedback | array optional | |
issues | array optional | |
jobId | string optional | |
metadata | object optional | |
missingContent | array optional | |
note | string optional | |
objective | string optional | |
pageNumbers | array optional | |
providerFeedback | array optional | |
querySuggestions | string optional | |
rationale | string optional | |
requestedWebsite | object optional | |
tags | array optional | |
url | string optional | |
valuableSources | array optional |
This tool interacts with external entities.
firecrawl_find_toolsBrowse 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.
| Parameters | Type | Description |
|---|---|---|
capabilities | array optional | 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 its complete contract by default. |
categories | array optional | Category IDs returned by an empty call. Lists providers by default. |
expand | array optional | Use ["options", "response"] for inputs and output shape without example payloads; [] keeps results compact. Omit for full contracts on selected capabilities. |
groups | array optional | Optional group IDs for explicit group browsing. |
includeCosts | boolean optional | Include per-capability credit prices (creditsCost, perRecord) in tool results. |
level | string optional | 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 category or url scope instead of tools. query, or a non-empty expand with any other argument, returns tools. |
limit | integer optional | |
offset | integer optional | |
providers | array optional | Values from each listed tool's provider field (e.g. "apps-apple-com"). Alone, lists that provider's compact tools; with capabilities, scopes them. |
query | string optional | Semantic lookup of tools for the data you need. Selectors constrain the search. |
urls | array optional |
This tool is read-only. It does not modify its environment.
firecrawl_gov_searchSearch 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.
| Parameters | Type | Description |
|---|---|---|
query | string | Natural-language legal or regulatory question or search phrase, including the jurisdiction, agency, or citation when relevant. |
cites | string optional | 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". |
court | string optional | Keep only pages labeled for one court, by CourtListener court id, such as "scotus", "ca9" or "nysd". |
courtType | string optional | 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, state-attorney-general. |
domain | string optional | Keep only pages from one site, such as "irs.gov". |
jurisdiction | string optional | 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". |
k | integer optional | Number of ranked results to return (default 10). |
This tool is read-only. It does not modify its environment.
This tool interacts with external entities.
firecrawl_interactOpen 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.
| Parameters | Type | Description |
|---|---|---|
code | string optional | |
language | string optional | |
prompt | string optional | |
scrapeId | string optional | |
scrapeOptions | object optional | |
timeout | number optional | |
url | string optional |
This tool interacts with external entities.
firecrawl_interact_stopStop the live interact session associated with a scrapeId and release its resources. Returns a success confirmation.
| Parameters | Type | Description |
|---|---|---|
scrapeId | string |
This tool may perform destructive updates.
This tool is idempotent. Repeated calls with same args have no additional effect.
firecrawl_mapEnumerate 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.
| Parameters | Type | Description |
|---|---|---|
url | string | |
ignoreQueryParameters | boolean optional | |
includeSubdomains | boolean optional | |
limit | number optional | |
search | string optional | |
sitemap | string optional |
This tool is read-only. It does not modify its environment.
This tool interacts with external entities.
firecrawl_monitor_checkRetrieve 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.
| Parameters | Type | Description |
|---|---|---|
checkId | string | |
id | string | |
limit | integer optional | |
pageStatus | string optional | |
skip | integer optional |
This tool is read-only. It does not modify its environment.
firecrawl_monitor_checksList historical checks for a monitor, optionally filtered by status and bounded by a result limit. Returns one page of check summaries and pagination metadata.
| Parameters | Type | Description |
|---|---|---|
id | string | |
limit | integer optional | |
offset | integer optional | |
status | string optional |
This tool is read-only. It does not modify its environment.
firecrawl_monitor_createCreate 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.
| Parameters | Type | Description |
|---|---|---|
body | object optional | |
email | string optional | |
excludeDomains | array optional | |
goal | string optional | |
includeDiffs | boolean optional | |
includeDomains | array optional | |
maxResults | integer optional | |
name | string optional | |
page | string optional | |
pages | array optional | |
queries | array optional | |
scheduleText | string optional | |
searchWindow | string optional | |
timezone | string optional | |
webhookUrl | string optional |
This tool interacts with external entities.
firecrawl_monitor_deletePermanently delete a monitor by ID and stop its future schedule. This operation cannot be undone and returns deletion status.
| Parameters | Type | Description |
|---|---|---|
id | string |
This tool may perform destructive updates.
This tool is idempotent. Repeated calls with same args have no additional effect.
This tool interacts with external entities.
firecrawl_monitor_getRetrieve one monitor by ID, including its configuration and current state. This does not run or modify the monitor.
| Parameters | Type | Description |
|---|---|---|
id | string |
This tool is read-only. It does not modify its environment.
firecrawl_monitor_listList monitors for the authenticated account with optional pagination controls. Returns one page of monitor records and pagination metadata.
| Parameters | Type | Description |
|---|---|---|
limit | integer optional | |
offset | integer optional |
This tool is read-only. It does not modify its environment.
firecrawl_monitor_runQueue 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.
| Parameters | Type | Description |
|---|---|---|
id | string |
This tool interacts with external entities.
firecrawl_monitor_updatePatch 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.
| Parameters | Type | Description |
|---|---|---|
body | object | |
id | string |
This tool may perform destructive updates.
This tool is idempotent. Repeated calls with same args have no additional effect.
This tool interacts with external entities.
firecrawl_parseParse 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.
| Parameters | Type | Description |
|---|---|---|
filePath | string | Absolute or relative path to a local file to parse. Supported: .html, .htm, .pdf, .docx, .doc, .odt, .rtf, .xlsx, .xls |
| `c |
[...]
Content type
Image
Digest
sha256:3b22a74af…
Size
67.1 MB
Last updated
about 7 hours ago
docker pull mcp/firecrawlPulls:
2,965
Oct 19 to Oct 25