← ExploreSmithery
Brave Search
latestbrave
Search the web with Brave's independent index — web, news, images, and videos. Bring your own subscription token from the [Brave Search API dashboard](https://api-dashboard.search.brave.com).
Install
One line. Adds the dep to agents.yml and resolves it.
pakx add mcp braveRaw metadata
Source-specific install hints as returned by Smithery.
{
"qualifiedName": "brave",
"displayName": "Brave Search",
"description": "Search the web with Brave's independent index — web, news, images, and videos. Bring your own subscription token from the [Brave Search API dashboard](https://api-dashboard.search.brave.com).",
"iconUrl": "https://api.smithery.ai/servers/brave/icon",
"remote": true,
"deploymentUrl": "https://brave.run.tools",
"connections": [
{
"type": "http",
"deploymentUrl": "https://brave.run.tools",
"configSchema": {
"type": "object",
"required": [
"braveApiKey"
],
"properties": {
"braveApiKey": {
"type": "string",
"title": "Brave API Key",
"x-order": 0,
"description": "Your Brave Search subscription token. Get one at [api-dashboard.search.brave.com](https://api-dashboard.search.brave.com/app/keys)."
}
}
}
}
],
"security": null,
"tools": [
{
"name": "brave_web_search",
"description": "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`.",
"inputSchema": {
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 400,
"description": "Search query (max 400 characters and 50 words)."
},
"count": {
"type": "integer",
"default": 20,
"maximum": 20,
"minimum": 1,
"description": "Number of results to return (max 20; default 20)."
},
"units": {
"enum": [
"metric",
"imperial"
],
"type": "string",
"description": "Measurement system used in result content."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9,
"minimum": 0,
"description": "Pagination offset (max 9, in units of `count`)."
},
"country": {
"type": "string",
"default": "US",
"maxLength": 2,
"minLength": 2,
"description": "2-letter country code (ISO 3166-1 alpha-2). Defaults to US."
},
"summary": {
"type": "boolean",
"description": "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."
},
"ui_lang": {
"type": "string",
"default": "en-US",
"description": "User interface language for the response, in the form <lang>-<country> (e.g. en-US)."
},
"freshness": {
"type": "string",
"description": "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."
},
"goggles_id": {
"type": "string",
"description": "Goggles ID for re-ranked results. See https://search.brave.com/help/goggles."
},
"safesearch": {
"enum": [
"off",
"moderate",
"strict"
],
"type": "string",
"default": "moderate",
"description": "Filter level for adult content."
},
"spellcheck": {
"type": "boolean",
"default": true,
"description": "Whether to spellcheck the query."
},
"search_lang": {
"type": "string",
"default": "en",
"description": "2-letter language code for the search. Defaults to en."
},
"result_filter": {
"type": "string",
"description": "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`."
},
"extra_snippets": {
"type": "boolean",
"description": "Return up to 5 extra alternate snippets per result. Premium plans only."
},
"text_decorations": {
"type": "boolean",
"default": true,
"description": "Whether to include decoration markers (e.g. highlighting) in result strings."
}
}
},
"outputSchema": {
"type": "object"
}
},
{
"name": "brave_news_search",
"description": "Searches for news articles using Brave's News Search API. Use it when you need current news, breaking updates, or articles about specific topics.",
"inputSchema": {
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 400,
"description": "Search query (max 400 characters and 50 words)."
},
"count": {
"type": "integer",
"default": 20,
"maximum": 20,
"minimum": 1,
"description": "Number of results to return (max 20; default 20)."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9,
"minimum": 0,
"description": "Pagination offset (max 9, in units of `count`)."
},
"country": {
"type": "string",
"default": "US",
"maxLength": 2,
"minLength": 2,
"description": "2-letter country code (ISO 3166-1 alpha-2). Defaults to US."
},
"ui_lang": {
"type": "string",
"default": "en-US",
"description": "User interface language for the response, in the form <lang>-<country> (e.g. en-US)."
},
"freshness": {
"type": "string",
"description": "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."
},
"safesearch": {
"enum": [
"off",
"moderate",
"strict"
],
"type": "string",
"default": "moderate",
"description": "Filter level for adult content."
},
"spellcheck": {
"type": "boolean",
"default": true,
"description": "Whether to spellcheck the query."
},
"search_lang": {
"type": "string",
"default": "en",
"description": "2-letter language code for the search. Defaults to en."
},
"text_decorations": {
"type": "boolean",
"default": true,
"description": "Whether to include decoration markers (e.g. highlighting) in result strings."
}
}
},
"outputSchema": {
"type": "object"
}
},
{
"name": "brave_image_search",
"description": "Performs an image search using the Brave Search API. Helpful when you need pictures of people, places, things, graphic-design ideas, or art inspiration. Counts of up to 100 are supported.",
"inputSchema": {
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 400,
"description": "Search query (max 400 characters and 50 words)."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Number of results (max 100; default 50)."
},
"country": {
"type": "string",
"default": "US",
"maxLength": 2,
"minLength": 2,
"description": "2-letter country code (ISO 3166-1 alpha-2). Defaults to US."
},
"safesearch": {
"enum": [
"off",
"moderate",
"strict"
],
"type": "string",
"default": "moderate",
"description": "Filter level for adult content."
},
"spellcheck": {
"type": "boolean",
"default": true,
"description": "Whether to spellcheck the query."
},
"search_lang": {
"type": "string",
"default": "en",
"description": "2-letter language code for the search. Defaults to en."
}
}
},
"outputSchema": {
"type": "object"
}
},
{
"name": "brave_video_search",
"description": "Searches for videos using Brave's Video Search API. Returns structured video results with metadata.",
"inputSchema": {
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 400,
"description": "Search query (max 400 characters and 50 words)."
},
"count": {
"type": "integer",
"default": 20,
"maximum": 20,
"minimum": 1,
"description": "Number of results to return (max 20; default 20)."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9,
"minimum": 0,
"description": "Pagination offset (max 9, in units of `count`)."
},
"country": {
"type": "string",
"default": "US",
"maxLength": 2,
"minLength": 2,
"description": "2-letter country code (ISO 3166-1 alpha-2). Defaults to US."
},
"ui_lang": {
"type": "string",
"default": "en-US",
"description": "User interface language for the response, in the form <lang>-<country> (e.g. en-US)."
},
"freshness": {
"type": "string",
"description": "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."
},
"safesearch": {
"enum": [
"off",
"moderate",
"strict"
],
"type": "string",
"default": "moderate",
"description": "Filter level for adult content."
},
"spellcheck": {
"type": "boolean",
"default": true,
"description": "Whether to spellcheck the query."
},
"search_lang": {
"type": "string",
"default": "en",
"description": "2-letter language code for the search. Defaults to en."
}
}
},
"outputSchema": {
"type": "object"
}
},
{
"name": "brave_local_search",
"description": "Brave Local Search API returns enriched information (address, phone, hours, rating) for location-search results. Access requires the Brave Search API Pro plan; currently US-only. Two-step flow: first call `brave_web_search` with `result_filter=locations` to obtain `locations.results[].id`, then pass them here. NOTE: This tool takes location IDs from a prior web-search response; if you have a free-text query, call `brave_web_search` first.",
"inputSchema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"description": "One or more location IDs returned by a prior `brave_web_search` with `result_filter=locations`. Up to 20 IDs per call."
},
"units": {
"enum": [
"metric",
"imperial"
],
"type": "string",
"description": "Measurement system."
},
"ui_lang": {
"type": "string",
"default": "en-US",
"description": "User interface language for the response, in the form <lang>-<country> (e.g. en-US)."
},
"search_lang": {
"type": "string",
"default": "en",
"description": "2-letter language code for the search. Defaults to en."
}
}
},
"outputSchema": {
"type": "object"
}
},
{
"name": "brave_llm_context",
"description": "Retrieves pre-extracted, relevance-ranked web content using Brave's LLM Context API, optimized for AI agents, LLM grounding, and RAG pipelines. Unlike a traditional web search that returns links and short descriptions, this tool returns the actual substance of matching pages — text chunks, tables, code blocks, and structured data — so the model can reason over it directly. When relaying results in markdown-supporting environments, cite source URLs from the `sources` map.",
"inputSchema": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Maximum number of search results considered to select the LLM context data. Default 20, max 50."
},
"query": {
"type": "string",
"maxLength": 400,
"description": "The user's search query. Max 400 characters and 50 words."
},
"country": {
"type": "string",
"default": "US",
"maxLength": 2,
"minLength": 2,
"description": "2-letter country code (ISO 3166-1 alpha-2). Defaults to US."
},
"freshness": {
"type": "string",
"description": "Filter results by recency. Use pd, pw, pm, py, or YYYY-MM-DDtoYYYY-MM-DD."
},
"spellcheck": {
"type": "boolean",
"default": true,
"description": "Whether to spellcheck the query."
},
"search_lang": {
"type": "string",
"default": "en",
"description": "2-letter language code for the search. Defaults to en."
},
"enable_local": {
"type": "boolean",
"description": "Whether to enable local recall."
},
"context_threshold_mode": {
"enum": [
"disabled",
"strict",
"lenient",
"balanced"
],
"type": "string",
"default": "balanced",
"description": "Mode used to determine the inclusion threshold for content."
},
"enable_source_metadata": {
"type": "boolean",
"description": "Enable source metadata enrichment (site_name, favicon) in the sources attribute."
},
"maximum_number_of_urls": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Maximum number of different URLs to include in LLM context."
},
"maximum_number_of_tokens": {
"type": "integer",
"default": 8192,
"maximum": 32768,
"minimum": 1024,
"description": "Approximate maximum number of tokens to include in context. Default 8192, max 32768."
},
"maximum_number_of_snippets": {
"type": "integer",
"default": 50,
"maximum": 256,
"minimum": 1,
"description": "Maximum number of snippets (chunks of text) to include in LLM context. Default 50, max 256."
},
"maximum_number_of_tokens_per_url": {
"type": "integer",
"default": 4096,
"maximum": 8192,
"minimum": 512,
"description": "Maximum number of tokens to include per URL. Default 4096, max 8192."
},
"maximum_number_of_snippets_per_url": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of snippets to include per URL. Default 50, max 100."
}
}
},
"outputSchema": {
"type": "object"
}
},
{
"name": "brave_place_search",
"description": "Searches Brave's Place Search API. A single call may populate any combination of `results` (POIs), `cities`, `addresses`, `streets`, and `location` (the resolved search area), depending on the query shape. Use for POIs near coordinates or a named area, browsing general POIs (omit `query`, supply coords or `location`), disambiguating bare city names, resolving specific addresses, or looking up streets. Anchor via `latitude`+`longitude` or `location`; with neither, `query` is required.",
"inputSchema": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Number of results (max 50, default 20)."
},
"query": {
"type": "string",
"maxLength": 400,
"description": "Query string. Shape influences the response: POI-like queries return `results`; ambiguous city names return `cities`; address-/street-shaped queries with a geographic anchor return `addresses` and/or `streets`. Omit to browse general POIs in the supplied area. Required if neither `latitude`+`longitude` nor `location` is provided."
},
"units": {
"enum": [
"metric",
"imperial"
],
"type": "string",
"default": "metric",
"description": "Units of measurement for distance values."
},
"geoloc": {
"type": "string",
"description": "Optional geolocation token used to refine results."
},
"radius": {
"type": "number",
"minimum": 0,
"description": "Bias toward results closer to the supplied coordinates, in meters. NOT a hard cutoff."
},
"country": {
"type": "string",
"default": "US",
"maxLength": 2,
"minLength": 2,
"description": "2-letter country code (ISO 3166-1 alpha-2). Defaults to US."
},
"ui_lang": {
"type": "string",
"default": "en-US",
"description": "User interface language for the response, in the form <lang>-<country> (e.g. en-US)."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude of the geographical coordinates to search around (-90 to 90). Typically paired with `longitude`."
},
"location": {
"type": "string",
"description": "Location string used as an alternative to lat/long. US: '<city> <state> <country>' (e.g. 'san francisco ca united states'). Non-US: '<city> <country>' (e.g. 'tokyo japan'). Capitalization and commas don't matter."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude of the geographical coordinates to search around (-180 to 180). Typically paired with `latitude`."
},
"safesearch": {
"enum": [
"off",
"moderate",
"strict"
],
"type": "string",
"default": "moderate",
"description": "Filter level for adult content."
},
"spellcheck": {
"type": "boolean",
"default": true,
"description": "Whether to spellcheck the query."
},
"search_lang": {
"type": "string",
"default": "en",
"description": "2-letter language code for the search. Defaults to en."
}
}
},
"outputSchema": {
"type": "object"
}
},
{
"name": "brave_summarizer",
"description": "Retrieves AI-generated summaries of web search results. Two-step flow: first call `brave_web_search` with `summary=true` to obtain `summarizer.key`, then pass it here. Pro AI tier required.",
"inputSchema": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Summarizer key returned by a prior `brave_web_search` with `summary=true`."
},
"entity_info": {
"type": "boolean",
"description": "Whether to include extra entity-info fields with citation metadata."
}
}
},
"outputSchema": {
"type": "object"
}
}
],
"resources": null,
"prompts": null
}