Skip to main content
Glama
Firecrawl MCP Server

Firecrawl MCP Server

Firecrawl web search

firecrawl_search
Read-only

Search web, news, and image sources for ranked results with query-relevant highlights, enabling current information lookup and discovery of businesses, people, products, jobs, or events.

Instructions

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

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

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

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

Input Schema

NameRequiredDescriptionDefault
tbsNo
limitNo
queryYesQuery 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.
filterNo
sourcesNoSearch sources; authenticated sessions default to web + alexandria, keyless sessions to web only. Authenticated searches always add alexandria to the sources, so sources: ["web"] also returns providers; domainTools: false turns off website-matched tools only. enterprise zdr or anon searches do not add it. Use ["alexandria"] alone for provider discovery without web results.
locationNo
categoriesNoLimit 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`.
enterpriseNo
highlightsNoReturn 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.
toolDetailNoCompact by default. Compact returns only provider, capability and description; full includes contracts. Inspect selected compact tools with firecrawl_find_tools providers and capabilities.
domainToolsNoInclude 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.
scrapeOptionsNoFetches the full page of every web result in the same call, and each fetched result is billed as a scrape. Leave it unset unless the task needs the full text of a few results: highlights usually answer, and firecrawl_scrape can fetch only the URLs you need. These fetches ignore maxAge, so use firecrawl_scrape for a live fetch. scrapeOptions fetches web pages, never Alexandria provider tools.
excludeDomainsNoHostnames to leave out of results. Mutually exclusive with includeDomains.
includeDomainsNoHostnames to restrict results to. Mutually exclusive with excludeDomains.

Output Schema

NameRequiredDescriptionDefault
idNoSearch identifier, for optional `firecrawl_search_feedback`.
dataNoRanked results grouped by source, such as `web`, `news`, `images`, and `alexandria`. Each result carries its `source` and a 1-indexed `position` within that group; pass those pairs to `firecrawl_search_feedback`.
errorNoError message or error object when the call did not succeed.
toolsNoDomain-matched Alexandria tools for the results.
successNoWhether the API call succeeded.
warningNoNon-fatal warning about the result.
nextToolNoA follow-up tool call that continues this search.
creditsUsedNoCredits this search consumed.
feedbackToolNoPointer to the feedback tool for this search.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.36.1
    • changedInput schema / properties / scrapeOptions / properties / jsonOptions / properties / schema / additionalProperties
      Previous value: -{}New value: +true
  2. Changed23 schema fields changedv1.0.2
    • changedInput schema / $schema
      Previous value: -"https://json-schema.org/draft/2020-12/schema"New value: +"http://json-schema.org/draft-07/schema#"
    • changedInput schema / properties / categories / description
      Previous value: -"Limit results to specific source types. `github` searches GitHub repositories, code, issues, and docs; `research` searches academic and research sources; `pdf` searches PDF results."New value: +"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`."
    • changedInput schema / properties / categories / items / enum
      Previous value: -[
      -  "github",
      -  "research",
      -  "pdf"
      -]New value: +[
      +  "research",
      +  "pdf",
      +  "developer",
      +  "gov"
      +]
    • addedInput schema / properties / domainTools
      Added value: +{
      +  "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.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / excludeDomains / description
      Added value: +"Hostnames to leave out of results. Mutually exclusive with includeDomains."
    • addedInput schema / properties / highlights
      Added value: +{
      +  "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.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / includeDomains / description
      Added value: +"Hostnames to restrict results to. Mutually exclusive with excludeDomains."
    • addedInput schema / properties / limit / maximum
      Added value: +100
    • addedInput schema / properties / limit / minimum
      Added value: +1
    • changedInput schema / properties / limit / type
      Previous value: -"number"New value: +"integer"
    • addedInput schema / properties / query / description
      Added value: +"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."
    • addedInput schema / properties / scrapeOptions / description
      Added value: +"Fetches the full page of every web result in the same call, and each fetched result is billed as a scrape. Leave it unset unless the task needs the full text of a few results: highlights usually answer, and firecrawl_scrape can fetch only the URLs you need. These fetches ignore maxAge, so use firecrawl_scrape for a live fetch. scrapeOptions fetches web pages, never Alexandria provider tools."
    • removedInput schema / properties / scrapeOptions / properties / actions / items / additionalProperties
      Removed value: -false
    • changedInput schema / properties / scrapeOptions / properties / formats / items / enum
      Previous value: -[
      -  "markdown",
      -  "html",
      -  "rawHtml",
      -  "screenshot",
      -  "links",
      -  "summary",
      -  "changeTracking",
      -  "branding",
      -  "json",
      -  "query",
      -  "audio"
      -]New value: +[
      +  "markdown",
      +  "html",
      +  "rawHtml",
      +  "screenshot",
      +  "links",
      +  "images",
      +  "summary",
      +  "changeTracking",
      +  "branding",
      +  "json",
      +  "query",
      +  "audio"
      +]
    • changedInput schema / properties / scrapeOptions / properties / queryOptions / required
      Previous value: -[
      -  "prompt",
      -  "mode"
      -]New value: +[
      +  "prompt"
      +]
    • addedInput schema / properties / sources / description
      Added value: +"Search sources; authenticated sessions default to web + alexandria, keyless sessions to web only. Authenticated searches always add alexandria to the sources, so sources: [\"web\"] also returns providers; domainTools: false turns off website-matched tools only. enterprise zdr or anon searches do not add it. Use [\"alexandria\"] alone for provider discovery without web results."
    • removedInput schema / properties / sources / items / additionalProperties
      Removed value: -false
    • addedInput schema / properties / sources / items / anyOf
      Added value: +[
      +  {
      +    "enum": [
      +      "web",
      +      "images",
      +      "news",
      +      "alexandria",
      +      "exchange"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "type": {
      +        "enum": [
      +          "web",
      +          "images",
      +          "news",
      +          "alexandria",
      +          "exchange"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / sources / items / properties
      Removed value: -{
      -  "type": {
      -    "enum": [
      -      "web",
      -      "images",
      -      "news"
      -    ],
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / sources / items / required
      Removed value: -[
      -  "type"
      -]
    • removedInput schema / properties / sources / items / type
      Removed value: -"object"
    • addedInput schema / properties / toolDetail
      Added value: +{
      +  "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.",
      +  "enum": [
      +    "compact",
      +    "summary",
      +    "full"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "description": "Ranked search results grouped by source.",
      +  "properties": {
      +    "creditsUsed": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Credits this search consumed."
      +    },
      +    "data": {
      +      "description": "Ranked results grouped by source, such as `web`, `news`, `images`, and `alexandria`. Each result carries its `source` and a 1-indexed `position` within that group; pass those pairs to `firecrawl_search_feedback`."
      +    },
      +    "error": {
      +      "description": "Error message or error object when the call did not succeed."
      +    },
      +    "feedbackTool": {
      +      "description": "Pointer to the feedback tool for this search."
      +    },
      +    "id": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Search identifier, for optional `firecrawl_search_feedback`."
      +    },
      +    "nextTool": {
      +      "description": "A follow-up tool call that continues this search."
      +    },
      +    "success": {
      +      "anyOf": [
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Whether the API call succeeded."
      +    },
      +    "tools": {
      +      "description": "Domain-matched Alexandria tools for the results."
      +    },
      +    "warning": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Non-fatal warning about the result."
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observedv1.0.1

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only and open-world, and the description adds real behavior beyond them: keyless sessions get no Alexandria matches, authenticated searches always inject the alexandria source, domainTools:false disables only website-matched tools, and gov hits may include historical bills that need issuer/status verification. It also warns that scrapeOptions bills each fetched result as a scrape, which is a cost consequence not visible in annotations. Some of this duplicates parameter descriptions in the schema rather than adding fresh context, keeping it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The lead sentence is well front-loaded and the paragraphs are thematically grouped, but at eight paragraphs for a search tool it is bloated and several statements repeat schema text verbatim. Sentences such as the sources/alexandria clause are dense and contain near-duplicate phrasing ('Authenticated searches always add alexandria... domainTools: false turns off website-matched tools only' appears twice across description and schema).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter tool with nested objects, the description covers the genuinely confusing parts: auth-dependent defaults, the alexandria/web interaction, category exclusivity, and the follow-up path through firecrawl_find_tools and firecrawl_scrape. An output schema exists and the description still briefly flags the response grouping ('source-type result groups and usage metadata', optional search id), so nothing critical is missing, though undocumented params like location and tbs leave minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 64%, and the description's parameter content largely restates what the schema already documents (sources, categories, toolDetail, domainTools, highlights). It does add relational meaning the schema lacks — that sources:['web'] still returns providers, that developer/gov hits land in data.web with a category field, and that developer hits are indexed over issues/PRs/READMEs — but parameters like tbs, filter, limit, and location get no treatment anywhere, so the coverage gap is only partially closed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

First sentence states a specific verb and resource ('Search web, news, or image sources') and the return shape ('ranked results with query-relevant highlights'). It also names the concrete use cases (current information, listing businesses/people/products) and distinguishes itself from firecrawl_scrape early, so an agent can pick it out of a crowded sibling list without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description repeatedly routes between alternatives with explicit conditions: use firecrawl_scrape when the excerpt is not enough, prefer an Alexandria provider when the task needs the same fields across entities or exact figures, add categories:['developer'] for programming questions, use firecrawl_gov_search for legal work on authenticated sessions, and treat firecrawl_research_* as a separate surface. It even states exclusions ('gov' cannot be combined with other categories, non-US questions should use general search).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.