Skip to main content
Glama

Web search

brave_web_search
Read-only

Performs web searches using the Brave Search API and returns comprehensive search results with rich metadata. To chain into local-POI enrichment, pass result_filter=locations and feed the resulting locations.results[].id values into brave_local_search. To chain into the AI summarizer, pass summary=true and feed the returned summarizer.key into brave_summarizer.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qYesSearch query (max 400 characters and 50 words).
countNoNumber of results to return (max 20; default 20).
unitsNoMeasurement system used in result content.
offsetNoPagination offset (max 9, in units of `count`).
countryNo2-letter country code (ISO 3166-1 alpha-2). Defaults to US.
summaryNoSet to true to request a summarizer key in the response. Pair with `brave_summarizer` to fetch the AI-generated summary text. Pro AI tier required.
ui_langNoUser interface language for the response, in the form <lang>-<country> (e.g. en-US).
freshnessNoFilter results by recency. Use pd (past day), pw (past week), pm (past month), py (past year), or a YYYY-MM-DDtoYYYY-MM-DD range.
goggles_idNoGoggles ID for re-ranked results. See https://search.brave.com/help/goggles.
safesearchNoFilter level for adult content.
spellcheckNoWhether to spellcheck the query.
search_langNo2-letter language code for the search. Defaults to en.
result_filterNoComma-separated list of result types to include. Available values: discussions, faq, infobox, news, query, summarizer, videos, web, locations. Use `locations` to chain into `brave_local_pois`.
extra_snippetsNoReturn up to 5 extra alternate snippets per result. Premium plans only.
text_decorationsNoWhether to include decoration markers (e.g. highlighting) in result strings.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed40 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / count / default
      Removed value: -10
    • changedInput schema / properties / count / description
      Previous value: -"Number of results (1-20, default 10). Applies only to web search results (i.e., has no effect on locations, news, videos, etc.)"New value: +"Number of results to return (max 20; default 20)."
    • removedInput schema / properties / count / maximum
      Removed value: -20
    • removedInput schema / properties / count / minimum
      Removed value: -1
    • changedInput schema / properties / count / type
      Previous value: -"integer"New value: +"number"
    • removedInput schema / properties / country / default
      Removed value: -"US"
    • changedInput schema / properties / country / description
      Previous value: -"Search query country, where the results come from. The country string is limited to 2 character country codes of supported countries."New value: +"2-letter country code (ISO 3166-1 alpha-2). Defaults to US."
    • removedInput schema / properties / country / enum
      Removed value: -[
      -  "ALL",
      -  "AR",
      -  "AU",
      -  "AT",
      -  "BE",
      -  "BR",
      -  "CA",
      -  "CL",
      -  "DK",
      -  "FI",
      -  "FR",
      -  "DE",
      -  "HK",
      -  "IN",
      -  "ID",
      -  "IT",
      -  "JP",
      -  "KR",
      -  "MY",
      -  "MX",
      -  "NL",
      -  "NZ",
      -  "NO",
      -  "CN",
      -  "PL",
      -  "PT",
      -  "PH",
      -  "RU",
      -  "SA",
      -  "ZA",
      -  "ES",
      -  "SE",
      -  "CH",
      -  "TW",
      -  "TR",
      -  "GB",
      -  "US"
      -]
    • changedInput schema / properties / extra_snippets / description
      Previous value: -"A snippet is an excerpt from a page you get as a result of the query, and extra_snippets allow you to get up to 5 additional, alternative excerpts. Only available under Free AI, Base AI, Pro AI, Base Data, Pro Data and Custom plans."New value: +"Return up to 5 extra alternate snippets per result. Premium plans only."
    • changedInput schema / properties / freshness / description
      Previous value: -"Filters search results by when they were discovered. The following values are supported: 'pd' - Discovered within the last 24 hours. 'pw' - Discovered within the last 7 days. 'pm' - Discovered within the last 31 days. 'py' - Discovered within the last 365 days. 'YYYY-MM-DDtoYYYY-MM-DD' - Timeframe is also supported by specifying the date range e.g. 2022-04-01to2022-07-30."New value: +"Filter results by recency. Use pd (past day), pw (past week), pm (past month), py (past year), or a YYYY-MM-DDtoYYYY-MM-DD range."
    • removedInput schema / properties / freshness / enum
      Removed value: -[
      -  "pd",
      -  "pw",
      -  "pm",
      -  "py",
      -  "YYYY-MM-DDtoYYYY-MM-DD"
      -]
    • removedInput schema / properties / goggles
      Removed value: -{
      -  "description": "Goggles act as a custom re-ranking on top of Brave's search index. The parameter supports both a url where the Goggle is hosted or the definition of the Goggle. For more details, refer to the Goggles repository (i.e., https://github.com/brave/goggles-quickstart).",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedInput schema / properties / goggles_id
      Added value: +{
      +  "description": "Goggles ID for re-ranked results. See https://search.brave.com/help/goggles.",
      +  "type": "string"
      +}
    • removedInput schema / properties / offset / default
      Removed value: -0
    • changedInput schema / properties / offset / description
      Previous value: -"Pagination offset (max 9, default 0)"New value: +"Pagination offset (max 9, in units of `count`)."
    • removedInput schema / properties / offset / maximum
      Removed value: -9
    • removedInput schema / properties / offset / minimum
      Removed value: -0
    • changedInput schema / properties / offset / type
      Previous value: -"integer"New value: +"number"
    • addedInput schema / properties / q
      Added value: +{
      +  "description": "Search query (max 400 characters and 50 words).",
      +  "type": "string"
      +}
    • removedInput schema / properties / query
      Removed value: -{
      -  "description": "Search query (max 400 chars, 50 words)",
      -  "maxLength": 400,
      -  "type": "string"
      -}
    • removedInput schema / properties / result_filter / default
      Removed value: -[
      -  "web",
      -  "query"
      -]
    • changedInput schema / properties / result_filter / description
      Previous value: -"Result filter (default ['web', 'query'])"New value: +"Comma-separated list of result types to include. Available values: discussions, faq, infobox, news, query, summarizer, videos, web, locations. Use `locations` to chain into `brave_local_pois`."
    • removedInput schema / properties / result_filter / items
      Removed value: -{
      -  "enum": [
      -    "discussions",
      -    "faq",
      -    "infobox",
      -    "news",
      -    "query",
      -    "summarizer",
      -    "videos",
      -    "web",
      -    "locations",
      -    "rich"
      -  ],
      -  "type": "string"
      -}
    • changedInput schema / properties / result_filter / type
      Previous value: -"array"New value: +"string"
    • removedInput schema / properties / safesearch / default
      Removed value: -"moderate"
    • changedInput schema / properties / safesearch / description
      Previous value: -"Filters search results for adult content. The following values are supported: 'off' - No filtering. 'moderate' - Filters explicit content (e.g., images and videos), but allows adult domains in search results. 'strict' - Drops all adult content from search results. The default value is 'moderate'."New value: +"Filter level for adult content."
    • removedInput schema / properties / search_lang / default
      Removed value: -"en"
    • changedInput schema / properties / search_lang / description
      Previous value: -"Search language preference. The 2 or more character language code for which the search results are provided."New value: +"2-letter language code for the search. Defaults to en."
    • removedInput schema / properties / search_lang / enum
      Removed value: -[
      -  "ar",
      -  "eu",
      -  "bn",
      -  "bg",
      -  "ca",
      -  "zh-hans",
      -  "zh-hant",
      -  "hr",
      -  "cs",
      -  "da",
      -  "nl",
      -  "en",
      -  "en-gb",
      -  "et",
      -  "fi",
      -  "fr",
      -  "gl",
      -  "de",
      -  "gu",
      -  "he",
      -  "hi",
      -  "hu",
      -  "is",
      -  "it",
      -  "jp",
      -  "kn",
      -  "ko",
      -  "lv",
      -  "lt",
      -  "ms",
      -  "ml",
      -  "mr",
      -  "nb",
      -  "pl",
      -  "pt-br",
      -  "pt-pt",
      -  "pa",
      -  "ro",
      -  "ru",
      -  "sr",
      -  "sk",
      -  "sl",
      -  "es",
      -  "sv",
      -  "ta",
      -  "te",
      -  "th",
      -  "tr",
      -  "uk",
      -  "vi"
      -]
    • removedInput schema / properties / spellcheck / default
      Removed value: -true
    • changedInput schema / properties / spellcheck / description
      Previous value: -"Whether to spellcheck the provided query."New value: +"Whether to spellcheck the query."
    • changedInput schema / properties / summary / description
      Previous value: -"This parameter enables summary key generation in web search results. This is required for summarizer to be enabled."New value: +"Set to true to request a summarizer key in the response. Pair with `brave_summarizer` to fetch the AI-generated summary text. Pro AI tier required."
    • removedInput schema / properties / text_decorations / default
      Removed value: -true
    • changedInput schema / properties / text_decorations / description
      Previous value: -"Whether display strings (e.g. result snippets) should include decoration markers (e.g. highlighting characters)."New value: +"Whether to include decoration markers (e.g. highlighting) in result strings."
    • removedInput schema / properties / ui_lang / default
      Removed value: -"en-US"
    • changedInput schema / properties / ui_lang / description
      Previous value: -"The language of the UI. The 2 or more character language code for which the search results are provided."New value: +"User interface language for the response, in the form <lang>-<country> (e.g. en-US)."
    • removedInput schema / properties / ui_lang / enum
      Removed value: -[
      -  "es-AR",
      -  "en-AU",
      -  "de-AT",
      -  "nl-BE",
      -  "fr-BE",
      -  "pt-BR",
      -  "en-CA",
      -  "fr-CA",
      -  "es-CL",
      -  "da-DK",
      -  "fi-FI",
      -  "fr-FR",
      -  "de-DE",
      -  "zh-HK",
      -  "en-IN",
      -  "en-ID",
      -  "it-IT",
      -  "ja-JP",
      -  "ko-KR",
      -  "en-MY",
      -  "es-MX",
      -  "nl-NL",
      -  "en-NZ",
      -  "no-NO",
      -  "zh-CN",
      -  "pl-PL",
      -  "en-PH",
      -  "ru-RU",
      -  "en-ZA",
      -  "es-ES",
      -  "sv-SE",
      -  "fr-CH",
      -  "de-CH",
      -  "zh-TW",
      -  "tr-TR",
      -  "en-GB",
      -  "en-US",
      -  "es-US"
      -]
    • changedInput schema / properties / units / description
      Previous value: -"The measurement units. If not provided, units are derived from search country."New value: +"Measurement system used in result content."
    • changedInput schema / required
      Previous value: -[
      -  "query"
      -]New value: +[
      +  "q"
      +]
  2. Changed4 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / units / anyOf
      Removed value: -[
      -  {
      -    "const": "metric",
      -    "type": "string"
      -  },
      -  {
      -    "const": "imperial",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / units / enum
      Added value: +[
      +  "metric",
      +  "imperial"
      +]
    • addedInput schema / properties / units / type
      Added value: +"string"
  3. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the tool is known to be safe. The description adds behavioral context about returning 'comprehensive search results with rich metadata' and explains chaining behavior. It doesn't contradict annotations and provides useful extra context beyond the schema.

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

Conciseness5/5

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

The description is extremely concise at three sentences, with no wasted words. It front-loads the main purpose and then provides chaining instructions, making it easy to parse quickly. Every sentence earns its place.

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 tool with 15 parameters and no output schema, the description is fairly complete. It covers the core purpose and chaining use cases, but could briefly mention the response structure (e.g., web results, locations, summarizer fields). However, the chaining hints partially compensate for the missing output schema.

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

Parameters4/5

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

Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds value by explaining how to use `result_filter` and `summary` parameters for chaining, which goes beyond the schema descriptions. It enhances the semantic meaning of these key parameters.

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?

The description clearly states it performs web searches using the Brave Search API, which is a specific verb and resource. It also differentiates from sibling tools by mentioning chaining capabilities, making the purpose unambiguous.

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 provides explicit guidance on when to use the tool (general web searches) and gives two specific chaining scenarios with exact parameter usage. It tells the agent how to chain into local-POI enrichment or the AI summarizer, which effectively distinguishes usage from alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.