Connect to Firecrawl to upgrade Claude's search with fresher, more relevant web results - plus a specialized index of research papers and code repositories. Search millions of research papers semantically, follow citations to related work, and verify claims against full text. Claude can also search issues, pull requests, and READMEs from top research repos, connecting papers to the code that implements them.
Protocol
MCP 2025-11-25
Server version
3.30.1
Supports
Tools
Logging
Completions
Overall score
A
Overall quality score: 86 out of 10086/100
Server metadata
4 of 8 fields50/1005 / 10 pts
Identity, discovery, and usage metadata advertised during the MCP handshake.
Authenticated search combines web results, semantic tool summaries and domain matches. Use sources: ["alexandria"] for semantic tools only. A search with sources: ["web"] omits semantic provider discovery; domainTools: true can still return website-matched tools. Web-only results use domainTools: false. Tool matches describe available structured-data capabilities, not executed data. toolDetail: "compact" (default) returns only provider, capability and description; "summary" adds metadata; "full" includes their input and output contracts. firecrawl_scrape with an alexandria body executes a selected capability; firecrawl_find_tools provides catalogue browsing and full contracts. Firecrawl provides web, developer, government, and research search, and executes catalogued Alexandria data providers. Use firecrawl_search to find relevant results across the web and specialized indexes; authenticated searches also return matching Alexandria providers in data.tools. firecrawl_find_tools provides catalogue browsing and provider contracts; firecrawl_scrape with an alexandria body executes a selected capability; firecrawl_scrape with a url retrieves one supplied page. For a programming question, firecrawl_developer_search searches indexed public repositories, GitHub issues, merged pull requests, READMEs, and code documentation and returns the matched passages, and skills: "only" narrows it to agent-skill files; firecrawl_search with categories: ["developer"] reaches the same index beside ordinary web results, returning the hits in the web group rather than as passages and offering no skills filter. For a legal or regulatory question, firecrawl_gov_search searches primary law and regulatory material from US federal, state, and local government sources: statutes, regulations, codes, court opinions, and other government publications; firecrawl_search with categories: ["gov"] reaches the same sources in the web group and cannot be combined with other categories. For a biomedical, li
Protocol
Pass100/10020 / 20 pts
Connection, authentication, and protocol compatibility.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
query
Natural-language research topic or question, including methods, systems, conditions, populations, interventions, or outcomes when relevant.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
k
Number of ranked papers to return (default 40).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
authors
Author substring filter(s); ALL must match (case-insensitive).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
categories
Paper category filter(s) (e.g. `cs.LG`); ALL provided values must match.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
from
Inclusive lower bound on created/updated date (`YYYY-MM-DD`).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
to
Inclusive upper bound on created/updated date (`YYYY-MM-DD`).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"title": "Firecrawl research paper search",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
Output schema72/100
The output schema explains the structured result.
View output schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ids": {
"description": "Source identifiers by namespace, such as `arxiv`, `doi`, or `pmid`."
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Paper title."
},
"authors": {
"description": "Authors, as a comma-joined string or as `{name, affiliation}` entries."
},
"paperId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Canonical paper identifier."
},
"abstract": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Paper abstract."
},
"primaryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Display identifier, ordered for citation and fetch use."
},
"categories": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "Paper categories, such as `cs.LG`."
},
"updateDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Date the paper was last updated."
},
"createdDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Date the paper was first indexed or published."
}
},
"additionalProperties": {}
},
"description": "Ranked papers, in the order the text block lists them."
},
"agent_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional response guidance from the Firecrawl API."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "firecrawl_research_search_papers",
"title": "Firecrawl research paper search",
"description": "\nSearch 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.\n\nSeveral distinct framings of the same question surface different papers than a single query does.\n\nReturns ranked papers with canonical IDs, titles, authors, and abstracts.\n",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"k": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Number of ranked papers to return (default 40)."
},
"to": {
"type": "string",
"description": "Inclusive upper bound on created/updated date (`YYYY-MM-DD`)."
},
"from": {
"type": "string",
"description": "Inclusive lower bound on created/updated date (`YYYY-MM-DD`)."
},
"query": {
"type": "string",
"minLength": 1,
"description": "Natural-language research topic or question, including methods, systems, conditions, populations, interventions, or outcomes when relevant."
},
"authors": {
"type": "array",
"items": {
"type": "string"
},
"description": "Author substring filter(s); ALL must match (case-insensitive)."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Paper category filter(s) (e.g. `cs.LG`); ALL provided values must match."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ids": {
"description": "Source identifiers by namespace, such as `arxiv`, `doi`, or `pmid`."
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Paper title."
},
"authors": {
"description": "Authors, as a comma-joined string or as `{name, affiliation}` entries."
},
"paperId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Canonical paper identifier."
},
"abstract": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Paper abstract."
},
"primaryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Display identifier, ordered for citation and fetch use."
},
"categories": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "Paper categories, such as `cs.LG`."
},
"updateDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Date the paper was last updated."
},
"createdDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Date the paper was first indexed or published."
}
},
"additionalProperties": {}
},
"description": "Ranked papers, in the order the text block lists them."
},
"agent_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional response guidance from the Firecrawl API."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Firecrawl research paper search",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
paperId
Canonical paperId or primaryId such as `arxiv:1706.03762`, `pmcid:PMC12530322`, `pmid:40953549`, or `doi:10.1016/j.neunet.2025.108095`.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs15/100
1 of 5 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
seed_ids
Not provided
Missing description. Explain what this value means and how to supply it.
intent
Not provided
Missing description. Explain what this value means and how to supply it.
mode
Not provided
Missing description. Explain what this value means and how to supply it.
k
Not provided
Missing description. Explain what this value means and how to supply it.
rerank
Apply an additional rerank over the fused candidates.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"title": "Firecrawl related research papers",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
Output schema82/100
The output schema explains the structured result.
View output schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"results",
"poolSize"
],
"properties": {
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Note about how the candidates were produced."
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ids": {
"description": "Source identifiers by namespace, such as `arxiv`, `doi`, or `pmid`."
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Paper title."
},
"authors": {
"description": "Authors, as a comma-joined string or as `{name, affiliation}` entries."
},
"paperId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Canonical paper identifier."
},
"abstract": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Paper abstract."
},
"primaryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Display identifier, ordered for citation and fetch use."
},
"categories": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "Paper categories, such as `cs.LG`."
},
"updateDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Date the paper was last updated."
},
"createdDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Date the paper was first indexed or published."
}
},
"additionalProperties": {}
},
"description": "Ranked citation-graph candidates."
},
"poolSize": {
"type": "number",
"description": "Number of candidates evaluated before ranking."
},
"agent_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional response guidance from the Firecrawl API."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "firecrawl_research_related_papers",
"title": "Firecrawl related research papers",
"description": "\nFind 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.\n\nReturns ranked candidates and the evaluated pool size.\n",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"seed_ids",
"intent"
],
"properties": {
"k": {
"type": "integer",
"maximum": 500,
"minimum": 1
},
"mode": {
"enum": [
"similar",
"citers",
"references"
],
"type": "string"
},
"intent": {
"type": "string",
"minLength": 1
},
"rerank": {
"type": "boolean",
"description": "Apply an additional rerank over the fused candidates."
},
"seed_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"results",
"poolSize"
],
"properties": {
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Note about how the candidates were produced."
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ids": {
"description": "Source identifiers by namespace, such as `arxiv`, `doi`, or `pmid`."
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Paper title."
},
"authors": {
"description": "Authors, as a comma-joined string or as `{name, affiliation}` entries."
},
"paperId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Canonical paper identifier."
},
"abstract": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Paper abstract."
},
"primaryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Display identifier, ordered for citation and fetch use."
},
"categories": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "Paper categories, such as `cs.LG`."
},
"updateDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Date the paper was last updated."
},
"createdDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Date the paper was first indexed or published."
}
},
"additionalProperties": {}
},
"description": "Ranked citation-graph candidates."
},
"poolSize": {
"type": "number",
"description": "Number of candidates evaluated before ranking."
},
"agent_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional response guidance from the Firecrawl API."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Firecrawl related research papers",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs58/100
2 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
paperId
Canonical paperId or primaryId such as `arxiv:1706.03762`, `pmcid:PMC12530322`, `pmid:40953549`, or `doi:10.1016/j.neunet.2025.108095`.
Clear enough to supply this argument.
question
Not provided
Missing description. Explain what this value means and how to supply it.
k
Number of passages to return (default 4).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description85/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs83/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
query
Natural-language developer question or search phrase, including the library, error message, or API involved when relevant.
Clear enough to supply this argument.
k
Number of ranked results to return (default 10).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
skills
Set to "only" to search only agent-skill files.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
Expand internal abbreviations and remove technical prefixes from the display title.
Description96/100
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.
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.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
query
Natural-language legal or regulatory question or search phrase, including the jurisdiction, agency, or citation when relevant.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
k
Number of ranked results to return (default 10).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"title": "Firecrawl Government Index search",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
Search web and specialized indexes, returning ranked results with query-relevant highlights. Each web result is a title, URL, and description. 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 result types to `research`, `pdf`, `developer`, or `gov`.
For a programming question, add `categories: ["developer"]`. It searches an index of public repositories, GitHub issues, merged pull requests, repository READMEs, and code documentation, and returns the results in `data.web` with `category: "developer"`.
For a legal or regulatory question, `categories: ["gov"]` returns results in `data.web` with `category: "gov"` and cannot be combined with other categories; `firecrawl_gov_search` is the dedicated tool. Verify gov results' issuer, jurisdiction, status, and version before citing current law.
Authenticated search combines web results, semantic tool summaries and domain matches. Use sources: ["alexandria"] for semantic tools only. A search with sources: ["web"] omits semantic provider discovery; domainTools: true can still return website-matched tools. Web-only results use domainTools: false. Tool matches describe available structured-data capabilities, not executed data. toolDetail: "compact" (default) returns only provider, capability and description; "summary" adds metadata; "full" includes their input and output contracts. firecrawl_scrape with an alexandria body executes a selected capability; firecrawl_find_tools provides catalogue browsing and full contracts.
Returns result groups in `data` and an operation `id`.
The description explains the capability, when to use it, and what to expect.
Inputs46/100
8 of 14 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
toolDetail
Compact by default. Compact returns only provider, capability and description; full includes contracts. Inspect selected compact tools with firecrawl_find_tools providers and capabilities.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
query
Query for web and semantic tool discovery. Operators include quoted phrases, `-term`, `site:host`, `inurl:term`, `intitle:term`, and `related:host`; the set is non-exhaustive. Catalogue browsing is available through firecrawl_find_tools.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
domainTools
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.
Clear enough to supply this argument.
highlights
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 false to keep the original search snippets.
Clear enough to supply this argument.
limit
Not provided
Missing description. Explain what this value means and how to supply it.
tbs
Not provided
Missing description. Explain what this value means and how to supply it.
filter
Not provided
Missing description. Explain what this value means and how to supply it.
location
Not provided
Missing description. Explain what this value means and how to supply it.
includeDomains
Hostnames to restrict results to. Mutually exclusive with excludeDomains.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
excludeDomains
Hostnames to leave out of results. Mutually exclusive with includeDomains.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
sources › items › anyOf › 1 › type
Not provided
Missing description. Explain what this value means and how to supply it.
categories
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 that search paper abstracts and full text across biomedical (PubMed, bioRxiv, medRxiv) and arXiv literature; `pdf` searches PDF results; `developer` searches an index built for coding agents over public repositories, GitHub issues, merged pull requests, repository READMEs, and code documentation; `gov` searches the Government Index of US federal, state, and local legal and regulatory sources, the index behind firecrawl_gov_search, and cannot be combined with other categories; gov hits can include historical versions, bill text, agency guidance, and third-party reproductions, so verify the issuer, jurisdiction, enacted/effective status, and version before citing current governing law, clarify a missing jurisdiction or ambiguous as-of date, and use general search for non-US questions or missing coverage (no hits does not establish that no applicable law exists). `developer` and `gov` return hits in `data.web` with `category` set to their name; the other categories also filter `data.web`.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
enterprise
Not provided
Missing description. Explain what this value means and how to supply it.
objective
The user's underlying goal for this call, in one sentence: what they are ultimately trying to accomplish, not a restatement of the URL or query. Reuse it across related calls. Avoid sensitive information.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
Declare the result fields and their types in the output schema.
View output schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Search identifier, for optional `firecrawl_search_feedback`."
},
"data": {
"description": "Ranked results grouped by source, such as `web`, `news`, `images`, and `alexandria`."
},
"error": {
"description": "Error message or error object when the call did not succeed."
},
"tools": {
"description": "Domain-matched Alexandria tools for the results."
},
"success": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the API call succeeded."
},
"warning": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Non-fatal warning about the result."
},
"nextTool": {
"description": "A follow-up tool call that continues this search."
},
"agent_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional response guidance from the Firecrawl API."
},
"creditsUsed": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Credits this search consumed."
},
"feedbackTool": {
"description": "Pointer to the feedback tool for this search."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "firecrawl_search",
"title": "Firecrawl web search",
"description": "\nSearch web and specialized indexes, returning ranked results with query-relevant highlights. Each web result is a title, URL, and description. 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 result types to `research`, `pdf`, `developer`, or `gov`.\n\nFor a programming question, add `categories: [\"developer\"]`. It searches an index of public repositories, GitHub issues, merged pull requests, repository READMEs, and code documentation, and returns the results in `data.web` with `category: \"developer\"`.\n\nFor a legal or regulatory question, `categories: [\"gov\"]` returns results in `data.web` with `category: \"gov\"` and cannot be combined with other categories; `firecrawl_gov_search` is the dedicated tool. Verify gov results' issuer, jurisdiction, status, and version before citing current law.\n\nAuthenticated search combines web results, semantic tool summaries and domain matches. Use sources: [\"alexandria\"] for semantic tools only. A search with sources: [\"web\"] omits semantic provider discovery; domainTools: true can still return website-matched tools. Web-only results use domainTools: false. Tool matches describe available structured-data capabilities, not executed data. toolDetail: \"compact\" (default) returns only provider, capability and description; \"summary\" adds metadata; \"full\" includes their input and output contracts. firecrawl_scrape with an alexandria body executes a selected capability; firecrawl_find_tools provides catalogue browsing and full contracts.\n\nReturns result groups in `data` and an operation `id`.\n",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"tbs": {
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"minLength": 1,
"description": "Query for web and semantic tool discovery. Operators include quoted phrases, `-term`, `site:host`, `inurl:term`, `intitle:term`, and `related:host`; the set is non-exhaustive. Catalogue browsing is available through firecrawl_find_tools."
},
"filter": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"anyOf": [
{
"enum": [
"web",
"images",
"news",
"alexandria",
"exchange"
],
"type": "string"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"web",
"images",
"news",
"alexandria",
"exchange"
],
"type": "string"
}
},
"additionalProperties": false
}
]
},
"description": "Search sources; authenticated sessions default to web + alexandria, keyless sessions to web only. A search with sources: [\"web\"] omits semantic provider discovery; domainTools: true can still return website-matched tools. Web-only results use domainTools: false. Use [\"alexandria\"] alone for provider discovery without web results."
},
"location": {
"type": "string"
},
"objective": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "The user's underlying goal for this call, in one sentence: what they are ultimately trying to accomplish, not a restatement of the URL or query. Reuse it across related calls. Avoid sensitive information."
},
"categories": {
"type": "array",
"items": {
"enum": [
"research",
"pdf",
"developer",
"gov"
],
"type": "string"
},
"description": "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 that search paper abstracts and full text across biomedical (PubMed, bioRxiv, medRxiv) and arXiv literature; `pdf` searches PDF results; `developer` searches an index built for coding agents over public repositories, GitHub issues, merged pull requests, repository READMEs, and code documentation; `gov` searches the Government Index of US federal, state, and local legal and regulatory sources, the index behind firecrawl_gov_search, and cannot be combined with other categories; gov hits can include historical versions, bill text, agency guidance, and third-party reproductions, so verify the issuer, jurisdiction, enacted/effective status, and version before citing current governing law, clarify a missing jurisdiction or ambiguous as-of date, and use general search for non-US questions or missing coverage (no hits does not establish that no applicable law exists). `developer` and `gov` return hits in `data.web` with `category` set to their name; the other categories also filter `data.web`."
},
"enterprise": {
"type": "array",
"items": {
"enum": [
"default",
"anon",
"zdr"
],
"type": "string"
}
},
"highlights": {
"type": "boolean",
"description": "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 false to keep the original search snippets."
},
"toolDetail": {
"enum": [
"compact",
"summary",
"full"
],
"type": "string",
"description": "Compact by default. Compact returns only provider, capability and description; full includes contracts. Inspect selected compact tools with firecrawl_find_tools providers and capabilities."
},
"domainTools": {
"type": "boolean",
"description": "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."
},
"excludeDomains": {
"type": "array",
"items": {
"type": "string",
"pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$",
"maxLength": 253,
"minLength": 1
},
"description": "Hostnames to leave out of results. Mutually exclusive with includeDomains."
},
"includeDomains": {
"type": "array",
"items": {
"type": "string",
"pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$",
"maxLength": 253,
"minLength": 1
},
"description": "Hostnames to restrict results to. Mutually exclusive with excludeDomains."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Search identifier, for optional `firecrawl_search_feedback`."
},
"data": {
"description": "Ranked results grouped by source, such as `web`, `news`, `images`, and `alexandria`."
},
"error": {
"description": "Error message or error object when the call did not succeed."
},
"tools": {
"description": "Domain-matched Alexandria tools for the results."
},
"success": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the API call succeeded."
},
"warning": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Non-fatal warning about the result."
},
"nextTool": {
"description": "A follow-up tool call that continues this search."
},
"agent_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional response guidance from the Firecrawl API."
},
"creditsUsed": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Credits this search consumed."
},
"feedbackTool": {
"description": "Pointer to the feedback tool for this search."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Firecrawl web search",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
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.
The description explains the capability, when to use it, and what to expect.
Inputs63/100
8 of 12 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
query
Semantic lookup of tools for the data you need. Selectors constrain the search.
Clear enough to supply this argument.
urls
Not provided
Missing description. Explain what this value means and how to supply it.
providers
Provider IDs returned by category browsing. Lists compact tools by default.
Clear enough to supply this argument.
categories
Category IDs returned by an empty call. Lists providers by default.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
groups
Optional group IDs for explicit group browsing.
Clear enough to supply this argument.
capabilities
Exact capability IDs. A selected capability expands its complete contract by default.
Clear enough to supply this argument.
level
Not provided
Missing description. Explain what this value means and how to supply it.
expand
Use ["options", "response"] for inputs and output shape without example payloads; [] keeps results compact. Omit for full contracts on selected capabilities.
Clear enough to supply this argument.
limit
Not provided
Missing description. Explain what this value means and how to supply it.
offset
Not provided
Missing description. Explain what this value means and how to supply it.
includeCosts
Include per-capability credit prices (creditsCost, perRecord) in tool results.
Clear enough to supply this argument.
objective
The user's underlying goal for this call, in one sentence: what they are ultimately trying to accomplish, not a restatement of the URL or query. Reuse it across related calls. Avoid sensitive information.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"data": {
"description": "Discovery page in `data.alexandria[0].data`, with `level`, `items`, `total`, and an optional `nextTool`."
},
"error": {
"description": "Error message or error object when the call did not succeed."
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Guidance that accompanies the result."
},
"receipt": {
"description": "Billing receipt for the execution."
},
"success": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the API call succeeded."
},
"delivery": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "`retained` when the full result stayed server-side instead of being inlined."
},
"nextTool": {
"description": "A follow-up tool call (`{name, arguments}`) that continues or inspects this result."
},
"requestId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Identifier of this Alexandria execution."
},
"scrape_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Identifier of the underlying scrape."
},
"agent_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional response guidance from the Firecrawl API."
},
"creditsCost": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Credits this call consumed."
},
"workspaceId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Workspace holding a retained result, for inspection through virtual Bash."
},
"feedbackTool": {
"description": "Pointer to the feedback tool for reporting how this result served the task."
},
"responseBytes": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Size of the full result in bytes."
},
"idleTtlSeconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Seconds a retained workspace stays available while idle."
},
"estimatedTokens": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Estimated token cost of the full result."
},
"inlineTokenBudget": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Token budget above which a result is retained rather than inlined."
},
"tokenEstimateMethod": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "How `estimatedTokens` was derived."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "firecrawl_find_tools",
"title": "Find Tools",
"description": "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.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"urls": {
"type": "array",
"items": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"maxItems": 100,
"minItems": 1
},
"level": {
"enum": [
"categories",
"providers",
"groups",
"tools"
],
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "Semantic lookup of tools for the data you need. Selectors constrain the search."
},
"expand": {
"type": "array",
"items": {
"enum": [
"options",
"response",
"examples"
],
"type": "string"
},
"description": "Use [\"options\", \"response\"] for inputs and output shape without example payloads; [] keeps results compact. Omit for full contracts on selected capabilities."
},
"groups": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"minItems": 1,
"description": "Optional group IDs for explicit group browsing."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"objective": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "The user's underlying goal for this call, in one sentence: what they are ultimately trying to accomplish, not a restatement of the URL or query. Reuse it across related calls. Avoid sensitive information."
},
"providers": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"minItems": 1,
"description": "Provider IDs returned by category browsing. Lists compact tools by default."
},
"categories": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"minItems": 1,
"description": "Category IDs returned by an empty call. Lists providers by default."
},
"capabilities": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"minItems": 1,
"description": "Exact capability IDs. A selected capability expands its complete contract by default."
},
"includeCosts": {
"type": "boolean",
"description": "Include per-capability credit prices (creditsCost, perRecord) in tool results."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"data": {
"description": "Discovery page in `data.alexandria[0].data`, with `level`, `items`, `total`, and an optional `nextTool`."
},
"error": {
"description": "Error message or error object when the call did not succeed."
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Guidance that accompanies the result."
},
"receipt": {
"description": "Billing receipt for the execution."
},
"success": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the API call succeeded."
},
"delivery": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "`retained` when the full result stayed server-side instead of being inlined."
},
"nextTool": {
"description": "A follow-up tool call (`{name, arguments}`) that continues or inspects this result."
},
"requestId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Identifier of this Alexandria execution."
},
"scrape_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Identifier of the underlying scrape."
},
"agent_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional response guidance from the Firecrawl API."
},
"creditsCost": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Credits this call consumed."
},
"workspaceId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Workspace holding a retained result, for inspection through virtual Bash."
},
"feedbackTool": {
"description": "Pointer to the feedback tool for reporting how this result served the task."
},
"responseBytes": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Size of the full result in bytes."
},
"idleTtlSeconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Seconds a retained workspace stays available while idle."
},
"estimatedTokens": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Estimated token cost of the full result."
},
"inlineTokenBudget": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Token budget above which a result is retained rather than inlined."
},
"tokenEstimateMethod": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "How `estimatedTokens` was derived."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Find Tools",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
Scrape one URL and return its content, or execute catalogued Alexandria capabilities. URL mode returns markdown by default, or HTML, links, screenshots, branding data, a targeted answer, or JSON matching a supplied schema, plus page metadata. Firecrawl may serve recently indexed content; set `maxAge: 0` for a live fetch. A successful response does not by itself confirm the page is still current. A named browser profile loads saved session data without saving changes to it.
`firecrawl_search` with `sources` unset and `firecrawl_find_tools` can discover providers for the same fields across several pages; a matching Alexandria provider returns typed records in one call.
Alexandria mode: `alexandria` selects catalogued capability execution and is mutually exclusive with `url`. Alexandria execution is billed at the capability's listed price and needs a team with Alexandria enabled.
The description explains the capability, when to use it, and what to expect.
Inputs24/100
13 of 41 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
url
Not provided
Missing description. Explain what this value means and how to supply it.
formats
Not provided
Missing description. Explain what this value means and how to supply it.
jsonOptions › prompt
Not provided
Missing description. Explain what this value means and how to supply it.
jsonOptions › schema
Not provided
Missing description. Explain what this value means and how to supply it.
queryOptions › prompt
Not provided
Missing description. Explain what this value means and how to supply it.
queryOptions › mode
Not provided
Missing description. Explain what this value means and how to supply it.
screenshotOptions › fullPage
Not provided
Missing description. Explain what this value means and how to supply it.
screenshotOptions › quality
Not provided
Missing description. Explain what this value means and how to supply it.
screenshotOptions › viewport › width
Not provided
Missing description. Explain what this value means and how to supply it.
screenshotOptions › viewport › height
Not provided
Missing description. Explain what this value means and how to supply it.
parsers
Not provided
Missing description. Explain what this value means and how to supply it.
pdfOptions › maxPages
Not provided
Missing description. Explain what this value means and how to supply it.
onlyMainContent
Not provided
Missing description. Explain what this value means and how to supply it.
redactPII
Not provided
Missing description. Explain what this value means and how to supply it.
includeTags
Not provided
Missing description. Explain what this value means and how to supply it.
excludeTags
Not provided
Missing description. Explain what this value means and how to supply it.
waitFor
Not provided
Missing description. Explain what this value means and how to supply it.
mobile
Not provided
Missing description. Explain what this value means and how to supply it.
skipTlsVerification
Not provided
Missing description. Explain what this value means and how to supply it.
removeBase64Images
Not provided
Missing description. Explain what this value means and how to supply it.
location › country
Not provided
Missing description. Explain what this value means and how to supply it.
location › languages
Not provided
Missing description. Explain what this value means and how to supply it.
storeInCache
Not provided
Missing description. Explain what this value means and how to supply it.
zeroDataRetention
Not provided
Missing description. Explain what this value means and how to supply it.
maxAge
Not provided
Missing description. Explain what this value means and how to supply it.
lockdown
Not provided
Missing description. Explain what this value means and how to supply it.
proxy
Not provided
Missing description. Explain what this value means and how to supply it.
profile › name
Not provided
Missing description. Explain what this value means and how to supply it.
timeout
Execution timeout in milliseconds.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
requestId
Idempotency key bound to one Alexandria execution payload. Generated when omitted and returned with the result.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
alexandria › anyOf › 0 › provider
Provider slug, e.g. "fred".
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
alexandria › anyOf › 0 › capability
Capability address as returned by search or discover, e.g. "series/observations".
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
alexandria › anyOf › 0 › version
Optional published workflow version. Omit to use the latest version.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
alexandria › anyOf › 0 › options
Capability options as declared by its contract.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
alexandria › anyOf › 1 › items › provider
Provider slug, e.g. "fred".
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
alexandria › anyOf › 1 › items › capability
Capability address as returned by search or discover, e.g. "series/observations".
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
alexandria › anyOf › 1 › items › version
Optional published workflow version. Omit to use the latest version.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
alexandria › anyOf › 1 › items › options
Capability options as declared by its contract.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
toolDetail
URL mode only: domain discovery detail, summary by default; compact returns provider/capability/description, full includes contracts. Ignored with alexandria.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
domainTools
URL mode only: include domain-matched Alexandria tools for the page in tools on the returned document. Ignored with alexandria.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
objective
The user's underlying goal for this call, in one sentence: what they are ultimately trying to accomplish, not a restatement of the URL or query. Reuse it across related calls. Avoid sensitive information.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"data": {
"description": "Alexandria mode: per-capability results in `data.alexandria`, each with `data`, `records`, or an `error`."
},
"html": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Processed HTML of the page."
},
"json": {
"description": "Structured data matching the requested JSON schema or prompt."
},
"menu": {
"description": "Menu data extracted from the page."
},
"audio": {
"description": "Audio extracted from the page."
},
"error": {
"description": "Error message or error object when the call did not succeed."
},
"links": {
"description": "Links found on the page."
},
"pages": {
"description": "Physical PDF pages, when `parsers[].pages` is set."
},
"tools": {
"description": "Domain-matched Alexandria tools for the page, when `domainTools` is set."
},
"video": {
"description": "Video extracted from the page."
},
"answer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Targeted answer to the question that was asked of the page."
},
"blocks": {
"description": "Typed PDF layout blocks, when `parsers[].blocks` is set."
},
"images": {
"description": "Images found on the page."
},
"actions": {
"description": "Results of the browser actions that ran during the scrape."
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Guidance that accompanies the result."
},
"product": {
"description": "Product data extracted from the page."
},
"rawHtml": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Unprocessed HTML of the page."
},
"receipt": {
"description": "Billing receipt for the execution."
},
"success": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the API call succeeded."
},
"summary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Summary of the page content."
},
"warning": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Non-fatal warning about the result."
},
"branding": {
"description": "Branding data extracted from the page."
},
"delivery": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "`retained` when the full result stayed server-side instead of being inlined."
},
"markdown": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Page content as markdown."
},
"metadata": {
"description": "Page metadata; authenticated responses can include `metadata.scrapeId` for scrape feedback."
},
"nextTool": {
"description": "A follow-up tool call (`{name, arguments}`) that continues or inspects this result."
},
"requestId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Identifier of this Alexandria execution."
},
"scrape_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Identifier of the underlying scrape."
},
"attributes": {
"description": "Values collected by the requested attribute selectors."
},
"highlights": {
"description": "Highlighted passages from the page."
},
"screenshot": {
"description": "Screenshot of the page."
},
"agent_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional response guidance from the Firecrawl API."
},
"creditsCost": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Credits this call consumed."
},
"workspaceId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Workspace holding a retained result, for inspection through virtual Bash."
},
"feedbackTool": {
"description": "Pointer to the feedback tool for reporting how this result served the task."
},
"responseBytes": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Size of the full result in bytes."
},
"changeTracking": {
"description": "Change-tracking comparison against the previous scrape."
},
"idleTtlSeconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Seconds a retained workspace stays available while idle."
},
"estimatedTokens": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Estimated token cost of the full result."
},
"inlineTokenBudget": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Token budget above which a result is retained rather than inlined."
},
"tokenEstimateMethod": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "How `estimatedTokens` was derived."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "firecrawl_scrape",
"title": "Firecrawl scrape",
"description": "\nScrape one URL and return its content, or execute catalogued Alexandria capabilities. URL mode returns markdown by default, or HTML, links, screenshots, branding data, a targeted answer, or JSON matching a supplied schema, plus page metadata. Firecrawl may serve recently indexed content; set `maxAge: 0` for a live fetch. A successful response does not by itself confirm the page is still current. A named browser profile loads saved session data without saving changes to it.\n\n`firecrawl_search` with `sources` unset and `firecrawl_find_tools` can discover providers for the same fields across several pages; a matching Alexandria provider returns typed records in one call.\n\nAlexandria mode: `alexandria` selects catalogued capability execution and is mutually exclusive with `url`. Alexandria execution is billed at the capability's listed price and needs a team with Alexandria enabled.\n",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"proxy": {
"enum": [
"basic",
"stealth",
"enhanced",
"auto"
],
"type": "string"
},
"maxAge": {
"type": "number"
},
"mobile": {
"type": "boolean"
},
"formats": {
"type": "array",
"items": {
"enum": [
"markdown",
"html",
"rawHtml",
"screenshot",
"links",
"images",
"summary",
"changeTracking",
"branding",
"json",
"query",
"audio"
],
"type": "string"
}
},
"parsers": {
"type": "array",
"items": {
"enum": [
"pdf"
],
"type": "string"
}
},
"profile": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
},
"description": "Loads a saved browser profile without saving changes to it.",
"additionalProperties": false
},
"timeout": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Execution timeout in milliseconds.",
"exclusiveMinimum": 0
},
"waitFor": {
"type": "number"
},
"location": {
"type": "object",
"properties": {
"country": {
"type": "string"
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"lockdown": {
"type": "boolean"
},
"objective": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "The user's underlying goal for this call, in one sentence: what they are ultimately trying to accomplish, not a restatement of the URL or query. Reuse it across related calls. Avoid sensitive information."
},
"redactPII": {
"type": "boolean"
},
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9._:-]{1,128}$",
"description": "Idempotency key bound to one Alexandria execution payload. Generated when omitted and returned with the result."
},
"alexandria": {
"anyOf": [
{
"type": "object",
"required": [
"provider",
"capability"
],
"properties": {
"options": {
"type": "object",
"description": "Capability options as declared by its contract.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"version": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Optional published workflow version. Omit to use the latest version."
},
"provider": {
"type": "string",
"minLength": 1,
"description": "Provider slug, e.g. \"fred\"."
},
"capability": {
"type": "string",
"minLength": 1,
"description": "Capability address as returned by search or discover, e.g. \"series/observations\"."
}
}
},
{
"type": "array",
"items": {
"type": "object",
"required": [
"provider",
"capability"
],
"properties": {
"options": {
"type": "object",
"description": "Capability options as declared by its contract.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"version": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Optional published workflow version. Omit to use the latest version."
},
"provider": {
"type": "string",
"minLength": 1,
"description": "Provider slug, e.g. \"fred\"."
},
"capability": {
"type": "string",
"minLength": 1,
"description": "Capability address as returned by search or discover, e.g. \"series/observations\"."
}
}
},
"maxItems": 10,
"minItems": 1
}
],
"description": "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 firecrawl_find_tools. Each call may include version to pin a published workflow; omitting it uses latest. Only requestId and timeout are supported alongside alexandria. The selected contract marks required inputs and any requiresOneOf groups (at least one member per group); it may include example.request/example.response and response.key (which may differ from records). Where pagination is declared, its fields govern paging with the same filters; catalogue next is separate from provider pagination. Returns per-capability results in data.alexandria with data, records, or an error with a code; individual capabilities can fail even when the outer response succeeds. Requires an API key on a team with Alexandria enabled. Some providers require accepted terms; blocked requests return the applicable requirements."
},
"pdfOptions": {
"type": "object",
"properties": {
"maxPages": {
"type": "integer",
"maximum": 10000,
"minimum": 1
}
},
"additionalProperties": false
},
"toolDetail": {
"enum": [
"compact",
"summary",
"full"
],
"type": "string",
"description": "URL mode only: domain discovery detail, summary by default; compact returns provider/capability/description, full includes contracts. Ignored with alexandria."
},
"domainTools": {
"type": "boolean",
"description": "URL mode only: include domain-matched Alexandria tools for the page in tools on the returned document. Ignored with alexandria."
},
"excludeTags": {
"type": "array",
"items": {
"type": "string"
}
},
"includeTags": {
"type": "array",
"items": {
"type": "string"
}
},
"jsonOptions": {
"type": "object",
"properties": {
"prompt": {
"type": "string"
},
"schema": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"queryOptions": {
"type": "object",
"required": [
"prompt"
],
"properties": {
"mode": {
"enum": [
"directQuote",
"freeform"
],
"type": "string",
"default": "freeform"
},
"prompt": {
"type": "string",
"maxLength": 10000
}
},
"additionalProperties": false
},
"storeInCache": {
"type": "boolean"
},
"onlyMainContent": {
"type": "boolean"
},
"screenshotOptions": {
"type": "object",
"properties": {
"quality": {
"type": "number"
},
"fullPage": {
"type": "boolean"
},
"viewport": {
"type": "object",
"required": [
"width",
"height"
],
"properties": {
"width": {
"type": "number"
},
"height": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"zeroDataRetention": {
"type": "boolean"
},
"removeBase64Images": {
"type": "boolean"
},
"skipTlsVerification": {
"type": "boolean"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"data": {
"description": "Alexandria mode: per-capability results in `data.alexandria`, each with `data`, `records`, or an `error`."
},
"html": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Processed HTML of the page."
},
"json": {
"description": "Structured data matching the requested JSON schema or prompt."
},
"menu": {
"description": "Menu data extracted from the page."
},
"audio": {
"description": "Audio extracted from the page."
},
"error": {
"description": "Error message or error object when the call did not succeed."
},
"links": {
"description": "Links found on the page."
},
"pages": {
"description": "Physical PDF pages, when `parsers[].pages` is set."
},
"tools": {
"description": "Domain-matched Alexandria tools for the page, when `domainTools` is set."
},
"video": {
"description": "Video extracted from the page."
},
"answer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Targeted answer to the question that was asked of the page."
},
"blocks": {
"description": "Typed PDF layout blocks, when `parsers[].blocks` is set."
},
"images": {
"description": "Images found on the page."
},
"actions": {
"description": "Results of the browser actions that ran during the scrape."
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Guidance that accompanies the result."
},
"product": {
"description": "Product data extracted from the page."
},
"rawHtml": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Unprocessed HTML of the page."
},
"receipt": {
"description": "Billing receipt for the execution."
},
"success": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the API call succeeded."
},
"summary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Summary of the page content."
},
"warning": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Non-fatal warning about the result."
},
"branding": {
"description": "Branding data extracted from the page."
},
"delivery": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "`retained` when the full result stayed server-side instead of being inlined."
},
"markdown": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Page content as markdown."
},
"metadata": {
"description": "Page metadata; authenticated responses can include `metadata.scrapeId` for scrape feedback."
},
"nextTool": {
"description": "A follow-up tool call (`{name, arguments}`) that continues or inspects this result."
},
"requestId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Identifier of this Alexandria execution."
},
"scrape_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Identifier of the underlying scrape."
},
"attributes": {
"description": "Values collected by the requested attribute selectors."
},
"highlights": {
"description": "Highlighted passages from the page."
},
"screenshot": {
"description": "Screenshot of the page."
},
"agent_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional response guidance from the Firecrawl API."
},
"creditsCost": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Credits this call consumed."
},
"workspaceId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Workspace holding a retained result, for inspection through virtual Bash."
},
"feedbackTool": {
"description": "Pointer to the feedback tool for reporting how this result served the task."
},
"responseBytes": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Size of the full result in bytes."
},
"changeTracking": {
"description": "Change-tracking comparison against the previous scrape."
},
"idleTtlSeconds": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Seconds a retained workspace stays available while idle."
},
"estimatedTokens": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Estimated token cost of the full result."
},
"inlineTokenBudget": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Token budget above which a result is retained rather than inlined."
},
"tokenEstimateMethod": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "How `estimatedTokens` was derived."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Firecrawl scrape",
"readOnlyHint": true,
"openWorldHint": true,
"destructiveHint": false
}
}
Loading score analytics…
Put your MCP to the test
A few tasks worth trying with this server, chosen from its reviewed tools. These have not been run.
01Firecrawl research paper searchSearch paper metadata and abstracts with a natural-language query across the indexed corpus, which spans biomedical, life-science, and clinical literature (P…
02Firecrawl Government Index searchSearch US federal, state, and local statutes, regulations, codes, court opinions, and other government publications for legal or regulatory questions that ne…
03Firecrawl inspect research paperRetrieve canonical metadata for one paper ID, such as an arXiv, PMC, PMID, or DOI identifier.
04Firecrawl developer searchSearch an index of public repositories, GitHub issues, merged pull requests, repository READMEs, and code documentation for programming questions that need e…
05Firecrawl web searchSearch web and specialized indexes, returning ranked results with query-relevant highlights.
Want to run these tasks against your MCP server with us?
firecrawl-fastmcp setup, tools, quality score, publishing readiness, and alternatives.
How do I add firecrawl-fastmcp to Claude, ChatGPT, or Cursor?
Add firecrawl-fastmcp to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://mcp.firecrawl.dev/v2/mcp-search. This server requires OAuth, so complete the login prompt after you connect.
Is firecrawl-fastmcp MCP ready for ChatGPT and Claude?
As of October 15, 2026, firecrawl-fastmcp scores 96/100 on Manufact's MCP publishing checklist. The scan meets ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is firecrawl-fastmcp's MCP tool documentation?
As of October 15, 2026, firecrawl-fastmcp scores 81/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 9 of 9 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What tools does the firecrawl-fastmcp MCP server provide?
firecrawl-fastmcp provides these MCP tools: firecrawl_research_inspect_paper, firecrawl_research_read_paper, firecrawl_research_related_papers, firecrawl_research_search_github, firecrawl_research_search_papers, and firecrawl_search.
What are the best alternatives to firecrawl-fastmcp?
As of October 20, 2026, alternatives to firecrawl-fastmcp in search-research on the Manufact MCP leaderboard include Agentic Atlas: Agent Design Patterns, common-practice, GDELT Cloud, BookDNA, and Lyon.
Does firecrawl-fastmcp MCP require authentication?
firecrawl-fastmcp requires authentication. Connect it in Claude, ChatGPT, or Cursor and complete the OAuth login prompt.
How can firecrawl-fastmcp improve its MCP documentation?
firecrawl_research_related_papers is the lowest-scoring reviewed tool at 69/100. 1 of 5 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values. Open its review for feedback and a copyable fix prompt, then rerun the documentation review after updating your tool metadata.
Who develops firecrawl-fastmcp?
firecrawl-fastmcp is developed by Firecrawl. It is listed as partner on the Claude connector directory.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.