Search the web, images, videos, news, and local places through Brave's independent index — plus AI summarization and RAG-ready context extraction.
A Model Context Protocol (MCP) server that exposes the Brave Search API's search endpoints for web, local, video, image, news, and place search, along with AI summarization and LLM-context extraction.
Overview
The Brave Search MCP Server provides:
Comprehensive web search with rich metadata — results can include FAQ, Discussions, News, and Video items alongside standard web results
Local business and points-of-interest (POI) search with ratings, addresses, phone numbers, hours, and AI descriptions, with a graceful fallback to web results when enriched local data isn't available
Dedicated video, image, and news search endpoints
A structured place-search endpoint for POI data anchored to a location or lat/long coordinates
AI-generated summarization of web search results via Brave's Summarizer API
Pre-extracted, relevance-ranked web content via Brave's LLM Context API — actual page substance (text chunks, tables, code blocks) rather than just links and snippets
Perfect for:
AI agents that need general-purpose web search grounded in an independent search index
Local business lookup and "near me" style assistants
News monitoring and current-events tools
Media search integrations (images, videos)
RAG pipelines that need pre-extracted, relevance-ranked web content for grounding
Quickly summarizing a set of search results into an AI-generated answer
Tools
Performs web searches using the Brave Search API and returns comprehensive search results with rich metadata.
When to use:
General web searches for information, facts, or current topics
Location-based queries (restaurants, businesses, points of interest)
News searches for recent events or breaking stories
Finding videos, discussions, or FAQ content
Returns a JSON list of web results with title, description, and URL. When result_filter is empty, results may also contain FAQ, Discussions, News, and Video items.
Inputs:
- `query` (string, required) — Search query (max 400 chars, 50 words)- `country` (CountryCode, optional, default: "US") — Country for results- `search_lang` (SearchLang, optional, default: "en") — Search language- `ui_lang` (UiLang, optional, default: "en-US") — UI language- `count` (int, optional, default: 10) — Number of web results (1–20)- `offset` (int, optional, default: 0) — Pagination offset (0–9)- `safesearch` (SafeSearch, optional, default: "moderate") — Safe-search level- `freshness` (string, optional) — Time filter: pd (day) pw (week) pm (month) py (year) or YYYY-MM-DDtoYYYY-MM-DD- `text_decorations` (bool, optional, default: true) — Include decoration markers in snippets- `spellcheck` (bool, optional, default: true) — Spellcheck the query- `result_filter` (list of ResultFilter, optional) — Subset of result types to return (default ['web','query'])- `goggles` (list of string, optional) — Goggle HTTPS URLs for custom re-ranking- `units` (Units, optional) — Measurement units- `extra_snippets` (bool, optional) — Up to 5 extra excerpts per result (Pro plan)- `summary` (bool, optional) — Return a summarizer_key to pass to summarize_search_results
Searches for images via the Brave Search API. Returns direct image URLs, source pages, and dimensions. Images are returned as URLs — no base64 encoding.
Retrieves points of interest (POIs) with structured business data via Brave's dedicated place-search endpoint. Returns addresses, hours, ratings, categories, and contact info.
Geographic context is required — provide latitude/longitude or a location string (e.g. 'san francisco ca united states').
Access requires a Brave Search API Pro plan.
Inputs:
- `query` (string, required) — Search query — shapes result type, e.g. 'coffee shops' or 'Eiffel Tower'- `location` (string, optional) — Location context, e.g. 'san francisco ca united states' or 'tokyo japan'- `latitude` (float, optional) — Latitude (-90 to 90)- `longitude` (float, optional) — Longitude (-180 to 180)- `radius` (int, optional) — Proximity bias in metres (not a hard cutoff)- `count` (int, optional, default: 20) — Results to return (1–50)- `country` (CountryCode, optional, default: "US") — Country code- `search_lang` (SearchLang, optional, default: "en") — Search language- `ui_lang` (UiLang, optional, default: "en-US") — UI language- `units` (Units, optional) — Measurement units- `safesearch` (SafeSearch, optional, default: "moderate") — Safe-search level- `spellcheck` (bool, optional, default: true) — Spellcheck the query
Retrieves an AI-generated summary of web search results using Brave's Summarizer API.
Workflow: call search_web with summary=true first, then pass the returned summarizer_key to this tool.
Requires a Brave Search API Pro AI subscription.
Inputs:
- `key` (string, required) — Summarizer key from search_web called with summary=true- `entity_info` (bool, optional, default: false) — Include related entity information
output data schema:
{ text: string;}
Retrieves pre-extracted, relevance-ranked web content using Brave's LLM Context API, optimised for AI agents, LLM grounding, and RAG pipelines.
Unlike a web search (links + short descriptions), this tool returns the actual substance of matching pages — text chunks, tables, code blocks — so the model can reason over it directly.
When to use:
Grounding answers in fresh, relevant web content (RAG)
Question answering and fact-checking against current sources
Gathering source material without manually fetching pages
When relaying results in markdown environments, cite source URLs from the 'sources' map.
Inputs:
- `query` (string, required) — Search query (max 400 chars, 50 words)- `country` (CountryCode, optional, default: "US") — Country for results- `search_lang` (SearchLang, optional, default: "en") — Search language- `count` (int, optional, default: 20) — Number of results to consider (1–50)- `freshness` (string, optional) — Time filter: pd pw pm py or YYYY-MM-DDtoYYYY-MM-DD- `spellcheck` (bool, optional, default: true) — Spellcheck the query- `maximum_number_of_urls` (int, optional) — Max URLs to extract content from (1–50)- `maximum_number_of_tokens` (int, optional) — Total token budget (1024–32768)- `maximum_number_of_snippets` (int, optional) — Max snippets across all URLs (1–256)- `context_threshold_mode` (ContextThresholdMode, optional) — Relevance filtering mode- `maximum_number_of_tokens_per_url` (int, optional) — Per-URL token budget (512–8192)- `maximum_number_of_snippets_per_url` (int, optional) — Per-URL snippet cap (1–100)- `enable_local` (bool, optional) — Enable local recall- `enable_source_metadata` (bool, optional) — Enrich source metadata- `x_loc_lat` (float, optional) — User latitude (-90 to 90)- `x_loc_long` (float, optional) — User longitude (-180 to 180)- `x_loc_city` (string, optional) — User city- `x_loc_country` (string, optional) — User 2-letter country code
output data schema:
{ // This model declares no fixed fields of its own — the entire response // shape is the passthrough JSON from Brave's LLM Context API. The tool // description references a `sources` map for citing result URLs. [key: string]: unknown;}
API Parameters Reference
Every tool returns the same top-level envelope. Only data varies per tool.
All models accept additional, undocumented fields beyond what's listed above () — Brave may add fields to its API responses that aren't reflected in these schemas yet.
These appear, with the same meaning, across most of the search tools:
country (CountryCode) — "Country for results" (search_local and search_places phrase this as "Country code")
search_lang (SearchLang) — Search language
ui_lang (UiLang) — UI language
safesearch (SafeSearch: off | moderate | strict) — Safe-search level
spellcheck (bool) — Spellcheck the query
freshness (string) — Time filter: pd (day) / pw (week) / pm (month) / py (year), or a custom YYYY-MM-DDtoYYYY-MM-DD range
units (Units: metric | imperial) — Measurement units
CountryCode, SearchLang, and UiLang are each closed lists of ISO-style codes matching Brave's supported values — pass one of the enumerated codes for the given parameter.