Skip to main content
Glama
oki602960

brave-search-mcp-server

by oki602960

Brave Search MCP Server

An MCP server implementation that integrates the Brave Search API, providing comprehensive search capabilities including web search, local business search, place search, image search, video search, news search, LLM context, and AI-powered summarization. This project supports both STDIO and HTTP transports, with STDIO as the default mode.

Ask DeepWiki

Migration

1.x to 2.x

Default transport now STDIO

To follow established MCP conventions, the server now defaults to STDIO. If you would like to continue using HTTP, you will need to set the BRAVE_MCP_TRANSPORT environment variable to http, or provide the runtime argument --transport http when launching the server.

Response structure of brave_image_search

Version 1.x of the MCP server would return base64-encoded image data along with image URLs. This dramatically slowed down the response, as well as consumed unnecessarily context in the session. Version 2.x removes the base64-encoded data, and returns a response object that more closely reflects the original Brave Search API response. The updated output schema is defined in src/tools/images/schemas/output.ts.

Related MCP server: Brave Search MCP Server

Tools

Performs comprehensive web searches with rich result types and advanced filtering options.

Parameters:

  • query (string, required): Search terms (max 400 chars, 50 words)

  • country (string, optional): Country code (default: "US")

  • search_lang (string, optional): Search language (default: "en")

  • ui_lang (string, optional): UI language (default: "en-US")

  • count (number, optional): Results per page (1-20, default: 10)

  • offset (number, optional): Pagination offset (max 9, default: 0)

  • safesearch (string, optional): Content filtering ("off", "moderate", "strict", default: "moderate")

  • freshness (string, optional): Time filter ("pd", "pw", "pm", "py", or date range)

  • text_decorations (boolean, optional): Include highlighting markers (default: true)

  • spellcheck (boolean, optional): Enable spell checking (default: true)

  • result_filter (array, optional): Filter result types (default: ["web", "query"])

  • goggles (array, optional): Custom re-ranking definitions

  • units (string, optional): Measurement units ("metric" or "imperial")

  • extra_snippets (boolean, optional): Get additional excerpts (Pro plans only)

  • summary (boolean, optional): Enable summary key generation for AI summarization

Searches for local businesses and places with detailed information including ratings, hours, and AI-generated descriptions.

Parameters:

  • Same as brave_web_search with automatic location filtering

  • Automatically includes "web" and "locations" in result_filter

Note: Requires Pro plan for full local search capabilities. Falls back to web search otherwise.

Searches for videos with comprehensive metadata and thumbnail information.

Parameters:

  • query (string, required): Search terms (max 400 chars, 50 words)

  • country (string, optional): Country code (default: "US")

  • search_lang (string, optional): Search language (default: "en")

  • ui_lang (string, optional): UI language (default: "en-US")

  • count (number, optional): Results per page (1-50, default: 20)

  • offset (number, optional): Pagination offset (max 9, default: 0)

  • spellcheck (boolean, optional): Enable spell checking (default: true)

  • safesearch (string, optional): Content filtering ("off", "moderate", "strict", default: "moderate")

  • freshness (string, optional): Time filter ("pd", "pw", "pm", "py", or date range)

Searches for images with metadata including URLs, dimensions, and confidence scores.

Parameters:

  • query (string, required): Search terms (max 400 chars, 50 words)

  • country (string, optional): Country code (default: "US")

  • search_lang (string, optional): Search language (default: "en")

  • count (number, optional): Results per page (1-200, default: 50)

  • safesearch (string, optional): Content filtering ("off", "strict", default: "strict")

  • spellcheck (boolean, optional): Enable spell checking (default: true)

Searches for current news articles with freshness controls and breaking news indicators.

Parameters:

  • query (string, required): Search terms (max 400 chars, 50 words)

  • country (string, optional): Country code (default: "US")

  • search_lang (string, optional): Search language (default: "en")

  • ui_lang (string, optional): UI language (default: "en-US")

  • count (number, optional): Results per page (1-50, default: 20)

  • offset (number, optional): Pagination offset (max 9, default: 0)

  • spellcheck (boolean, optional): Enable spell checking (default: true)

  • safesearch (string, optional): Content filtering ("off", "moderate", "strict", default: "moderate")

  • freshness (string, optional): Time filter (default: "pd" for last 24 hours)

  • extra_snippets (boolean, optional): Get additional excerpts (Pro plans only)

  • goggles (array, optional): Custom re-ranking definitions

Generates AI-powered summaries from web search results using Brave's summarization API.

Parameters:

  • key (string, required): Summary key from web search results (use summary: true in web search)

  • entity_info (boolean, optional): Include entity information (default: false)

  • inline_references (boolean, optional): Add source URL references (default: false)

Usage: First perform a web search with summary: true, then use the returned summary key with this tool.

Searches for points of interest (POIs) in a specified geographic area using Brave's Place Search API. Returns rich, structured place data including name, address, opening hours, contact info, ratings, photos, categories, and timezone.

Parameters:

  • query (string, optional): Query string used to refine the POI search (max 400 chars, 50 words). When omitted, returns general points of interest in the supplied area.

  • latitude (number, optional): Latitude of the search center (-90 to 90). Typically paired with longitude.

  • longitude (number, optional): Longitude of the search center (-180 to 180). Typically paired with latitude.

  • location (string, optional): Location string used as an alternative to latitude/longitude. For US locations prefer the form <city> <state> <country name> (e.g., san francisco ca united states); for non-US locations use <city> <country name> (e.g., tokyo japan).

  • radius (number, optional): Search radius around the supplied coordinates, in meters. If omitted, the search is performed globally.

  • count (number, optional): Number of results to return (1-50, default 20).

  • country (string, optional): Two-letter country code (default US).

  • search_lang (string, optional): Search language (default en).

  • ui_lang (string, optional): UI language (default en-US).

  • units (string, optional): Distance units (metric or imperial, default metric).

  • safesearch (string, optional): Safe search level (off, moderate, strict, default strict).

  • spellcheck (boolean, optional): Whether to spellcheck the query (default true).

  • geoloc (string, optional): Optional geolocation token used to refine results.

Optional request headers:

  • api-version (string, optional): Brave API version (YYYY-MM-DD)

  • accept (string, optional): Response media type (application/json or */*)

  • cache-control (string, optional): Use no-cache to request fresh content

  • user-agent (string, optional): User agent originating the request

LLM Context (brave_llm_context)

Retrieves pre-extracted web content optimized for AI agents, LLM grounding, and RAG pipelines.

Parameters:

  • query (string, required): Search query (max 400 chars, 50 words)

  • country (string, optional): Search country code

  • search_lang (string, optional): Search language code

  • count (number, optional): Maximum number of search results considered (1-50)

  • spellcheck (boolean, optional): Enable spell checking

  • maximum_number_of_urls (number, optional): Maximum number of URLs to include (1-50)

  • maximum_number_of_tokens (number, optional): Approximate maximum number of context tokens (1024-32768)

  • maximum_number_of_snippets (number, optional): Maximum number of snippets to include (1-256)

  • context_threshold_mode (string, optional): Threshold mode ("disabled", "strict", "lenient", "balanced")

  • maximum_number_of_tokens_per_url (number, optional): Maximum tokens per URL (512-8192)

  • maximum_number_of_snippets_per_url (number, optional): Maximum snippets per URL (1-100)

  • goggles (string or array, optional): Goggle URL or definition for custom re-ranking

  • freshness (string, optional): Time filter ("pd", "pw", "pm", "py", or date range)

  • enable_local (boolean, optional): Enable local recall

  • enable_source_metadata (boolean, optional): Include source metadata enrichment

Optional request headers:

  • x-loc-lat (number, optional): Client latitude (-90 to 90)

  • x-loc-long (number, optional): Client longitude (-180 to 180)

  • x-loc-city (string, optional): Client city name

  • x-loc-state (string, optional): Client state or region code

  • x-loc-state-name (string, optional): Client state or region name

  • x-loc-country (string, optional): Client country code

  • x-loc-postal-code (string, optional): Client postal code

  • api-version (string, optional): Brave API version (YYYY-MM-DD)

  • accept (string, optional): Response media type ("application/json" or "/")

  • cache-control (string, optional): Use no-cache to request fresh content

  • user-agent (string, optional): User agent originating the request

Configuration

Getting an API Key

  1. Sign up for a Brave Search API account

  2. Choose a plan:

    • Search: The real-time search data your chatbots & agents need to generate answers. Complete search results (URLs, text, news, images, and more), with additional LLM context optimized for AI.

    • Answers: Summarized, completed answers to any question. Answers grounded on a single search or multiple searches for better accuracy & reduced hallucinations.

  3. Generate your API key from the developer dashboard

Environment Variables

The server supports the following environment variables:

  • BRAVE_API_KEY: Your Brave Search API key (required unless BRAVE_API_KEY_FILE is set)

  • BRAVE_API_KEY_FILE: Path to a file containing your Brave Search API key. When set, this takes precedence over BRAVE_API_KEY. Useful for Docker secrets and similar mounted-secret setups.

  • BRAVE_MCP_TRANSPORT: Transport mode ("http" or "stdio", default: "stdio")

  • BRAVE_MCP_PORT: HTTP server port (default: 8080)

  • BRAVE_MCP_HOST: HTTP server host (default: "127.0.0.1"). Binds to loopback only by default; set to "0.0.0.0" to expose the server on all interfaces (required inside containers and on Amazon Bedrock AgentCore). Only do this on a trusted network, since the HTTP endpoint is unauthenticated.

  • BRAVE_MCP_ALLOWED_ORIGINS: Space- or comma-separated list of additional Origin header values permitted for the HTTP transport. Loopback origins are always allowed; browser requests carrying any other Origin are rejected with HTTP 403 to guard against DNS rebinding. Set this when a browser-based client on a real domain needs access.

  • BRAVE_MCP_ALLOWED_HOSTS: Space- or comma-separated list of hostnames permitted in the Host header of the HTTP transport. Matching is on the hostname only and is case-insensitive; a numeric port in an entry (e.g. mcp.example.com:8080) is accepted but ignored for matching. Optional, opt-in defense-in-depth: when unset (default) the Host header is not validated, so reverse-proxy and custom-domain deployments are unaffected. When set, only loopback hosts and the listed hostnames are accepted; any other Host (including malformed/non-numeric ports) is rejected with HTTP 403.

  • BRAVE_MCP_LOG_LEVEL: Desired logging level("debug", "info", "notice", "warning", "error", "critical", "alert", or "emergency", default: "info")

  • BRAVE_MCP_ENABLED_TOOLS: When used, specifies a space-separated whitelist for supported tools

  • BRAVE_MCP_DISABLED_TOOLS: When used, specifies a space-separated blacklist for supported tools

  • BRAVE_MCP_STATELESS: HTTP stateless mode (default: "true"). When running on Amazon Bedrock Agentcore, set to "true".

Command Line Options

node dist/index.js [options]

Options:
  --brave-api-key <string>        Brave API key
  --brave-api-key-file <string>   Path to file containing Brave API key
  --transport <stdio|http>    Transport type (default: stdio)
  --port <number>             HTTP server port (default: 8080)
  --host <string>             HTTP server host (default: 127.0.0.1)
  --allowed-origins <origins...>  Allowed Origin header values for HTTP transport (DNS rebinding protection)
  --allowed-hosts <hosts...>  Allowed Host header values for HTTP transport (opt-in DNS rebinding protection)
  --logging-level <string>    Desired logging level (one of _debug_, _info_, _notice_, _warning_, _error_, _critical_, _alert_, or _emergency_)
  --enabled-tools             Tools whitelist (only the specified tools will be enabled)
  --disabled-tools            Tools blacklist (included tools will be disabled)
  --stateless  <boolean>      HTTP Stateless flag

Installation

Usage with Claude Desktop

Add this to your claude_desktop_config.json:

Docker

{
  "mcpServers": {
    "brave-search": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "BRAVE_API_KEY", "docker.io/mcp/brave-search"],
      "env": {
        "BRAVE_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

NPX

{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@brave/brave-search-mcp-server", "--transport", "http"],
      "env": {
        "BRAVE_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Usage with VS Code

For quick installation, use the one-click installation buttons below:

Install with NPX in VS Code Install with NPX in VS Code Insiders
Install with Docker in VS Code Install with Docker in VS Code Insiders

For manual installation, add the following to your User Settings (JSON) or .vscode/mcp.json:

Docker

{
  "inputs": [
    {
      "password": true,
      "id": "brave-api-key",
      "type": "promptString",
      "description": "Brave Search API Key",
    }
  ],
  "servers": {
    "brave-search": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "BRAVE_API_KEY", "mcp/brave-search"],
      "env": {
        "BRAVE_API_KEY": "${input:brave-api-key}"
      }
    }
  }
}

NPX

{
  "inputs": [
    {
      "password": true,
      "id": "brave-api-key",
      "type": "promptString",
      "description": "Brave Search API Key",
    }
  ],
  "servers": {
    "brave-search-mcp-server": {
      "command": "npx",
      "args": ["-y", "@brave/brave-search-mcp-server", "--transport", "stdio"],
      "env": {
        "BRAVE_API_KEY": "${input:brave-api-key}"
      }
    }
  }
}

Build

Docker

docker build -t mcp/brave-search:latest .

Local Build

npm install
npm run build

Development

Prerequisites

  • Node.js 22.x or higher

  • npm

  • Brave Search API key

Setup

  1. Clone the repository:

git clone https://github.com/brave/brave-search-mcp-server.git
cd brave-search-mcp-server
  1. Install dependencies:

npm install
  1. Build the project:

npm run build

Testing via Claude Desktop

Add a reference to your local build in claude_desktop_config.json:

{
  "mcpServers": {
    "brave-search-dev": {
      "command": "node",
      "args": ["C:\\GitHub\\brave-search-mcp-server\\dist\\index.js"], // Verify your path
      "env": {
        "BRAVE_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Testing via MCP Inspector

  1. Build and start the server:

npm run build
node dist/index.js
  1. In another terminal, start the MCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

STDIO is the default mode. For HTTP mode testing, add --transport http to the arguments in the Inspector UI.

Available Scripts

  • npm run build: Build the TypeScript project

  • npm run watch: Watch for changes and rebuild

  • npm run format: Format code with Prettier

  • npm run format:check: Check code formatting

  • npm run prepare: Format and build (runs automatically on npm install)

  • npm run inspector: Launch an instance of MCP Inspector

  • npm run inspector:stdio: Launch a instance of MCP Inspector, configured for STDIO

Docker Compose

For local development with Docker:

docker-compose up --build

Set BRAVE_API_KEY (or BRAVE_API_KEY_FILE) in your shell or a .env file before starting the stack. The default docker-compose.yml also accepts BRAVE_API_KEY_FILE when the path is valid inside the container (for example, from a bind mount or Docker secret).

Docker Compose secrets (optional)

To avoid putting the API key in an environment variable, you can use Docker Compose secrets. The server reads the key from the path in BRAVE_API_KEY_FILE, which must exist inside the container.

  1. Copy the example secret file and add your key:

cp secrets/brave_api_key.txt.example secrets/brave_api_key.txt
  1. Start the stack with the optional secrets override:

docker compose -f docker-compose.yml -f docker-compose.secrets.example.yml up --build

The override mounts the secret at /run/secrets/brave_api_key and sets BRAVE_API_KEY_FILE accordingly. See docker-compose.secrets.example.yml for the full configuration.

License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

Available Tools

8 tools
brave_llm_contextbrave_llm_contextA

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 to use:
    - Grounding answers in fresh, relevant web content (RAG)
    - Giving an AI agent ready-to-use page content from a single search call
    - Question answering and fact-checking against current sources
    - Gathering source material for research without manually fetching pages
    - When you need the contents of pages, not just titles, descriptions, and URLs

When relaying results in markdown-supporting environments, cite the source URLs from the "sources" map.
ParametersJSON Schema
NameRequiredDescriptionDefault
countNoThe maximum number of search results considered to select the LLM context data. The default is 20 and the maximum is 50.
queryYesThe user's search query term. Query can not be empty. Maximum of 400 characters and 50 words in the query.
acceptNoThe default supported media type is application/json.
countryNoThe search query country, where the results come from. The country string is limited to 2 character country codes of supported countries.
gogglesNoGoggles 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. Multiple goggle URLs and/or definitions can be provided in an array. For more details, refer to the Goggles repository (i.e., https://github.com/brave/goggles-quickstart).
freshnessNoFilters 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.
x-loc-latNoThe latitude of the client's geographical location in degrees, to provide relevant local results. The latitude must be greater than or equal to -90.0 degrees and less than or equal to +90.0 degrees.
spellcheckNoWhether to enable spellcheck on the query.
user-agentNoThe user agent originating the request. Brave search can utilize the user agent to provide a different experience depending on the device as described by the string. The user agent should follow the commonly used browser agent strings on each platform. For more information on curating user agents, see RFC 9110.
x-loc-cityNoThe generic name of the client city
x-loc-longNoThe longitude of the client's geographical location in degrees, to provide relevant local results. The longitude must be greater than or equal to -180.0 and less than or equal to +180.0 degrees.
api-versionNoThe API version to use. This is denoted by the format YYYY-MM-DD. Default is the latest that is available. Read more about API versioning at https://api-dashboard.search.brave.com/documentation/guides/versioning.
search_langNoThe search language preference. The 2 or more character language code for which the search results are provided.
x-loc-stateNoA code which could be up to three characters, that represent the client's state/region. The region is the first-level subdivision (the broadest or least specific) of the ISO 3166-2 code.
enable_localNoWhether to enable local recall. Not setting this value means auto-detect and uses local recall if any of the localization headers are provided.
cache-controlNoBrave Search will return cached content by default. To prevent caching set the Cache-Control header to no-cache. This is currently done as best effort.
x-loc-countryNoThe two letter country code for the client’s country. For a list of country codes, see ISO 3166-1 alpha-2
x-loc-state-nameNoThe name of the client’s state/region. The region is the first-level subdivision (the broadest or least specific) of the ISO 3166-2 code.
x-loc-postal-codeNoThe client’s postal code
context_threshold_modeNoThe mode to use to determine the threshold for including content in context. Default is balanced.
enable_source_metadataNoEnable source metadata enrichment (site_name, favicon) in the sources attribute of the response.
maximum_number_of_urlsNoMaximum number of different URLs to include in LLM context.
maximum_number_of_tokensNoApproximate maximum number of tokens to include in context. The default is 8192 and maximum is 32768.
maximum_number_of_snippetsNoMaximum number of different snippets (or chunks of text) to include in LLM context. The default is 50 and maximum is 256.
maximum_number_of_tokens_per_urlNoMaximum number of tokens to include per URL. The default is 4096 and maximum is 8192.
maximum_number_of_snippets_per_urlNoMaximum number of snippets to include per URL. The default is 50 and maximum is 100.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourcesYesMetadata for each referenced URL, keyed by URL. Known fields include title, hostname, and age; site_name, favicon, and thumbnail are present when enable_source_metadata is true. Unknown fields are preserved as-is.
groundingYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations include openWorldHint: true. The description adds value by detailing the return types (text chunks, tables, code blocks, structured data) and mentioning citation of source URLs. No contradictions or missing behavioral traits are evident.

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

Conciseness4/5

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

The description is well-structured with bullet points for usage and a clear opening statement. It is moderately long but every sentence adds value. Slight trimming could enhance conciseness.

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?

Given the tool's complexity (26 parameters, output schema exists), the description provides a high-level overview and usage context. It does not need to detail return values due to output schema. It covers key aspects but could briefly mention output schema existence.

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 description coverage is 100%, so all parameters are documented. The tool description provides no additional parameter meaning beyond what is in the schema. Baseline 3 is appropriate.

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 the tool retrieves pre-extracted, relevance-ranked web content via Brave's LLM Context API, optimized for AI agents, LLM grounding, and RAG. It distinguishes itself from traditional search by returning actual page content rather than just links.

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

Usage Guidelines4/5

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

The description explicitly lists use cases: grounding answers, AI agent content, question answering, fact-checking, research, and when page contents are needed. It implicitly suggests not using when links suffice, but lacks explicit 'when not to use' statements.

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

brave_summarizerbrave_summarizerA

Retrieves AI-generated summaries of web search results using Brave's Summarizer API. This tool processes search results to create concise, coherent summaries of information gathered from multiple sources.

When to use:

- When you need a concise overview of complex topics from multiple sources
- For quick fact-checking or getting key points without reading full articles
- When providing users with summarized information that synthesizes various perspectives
- For research tasks requiring distilled information from web searches

Returns a text summary that consolidates information from the search results. Optional features include inline references to source URLs and additional entity information.

Requirements: Must first perform a web search using brave_web_search with summary=true parameter. Requires a Pro AI subscription to access the summarizer functionality.
ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesThe key is equal to value of field key as part of the Summarizer response model.
entity_infoNoReturns extra entities info with the summary response.
inline_referencesNoAdds inline references to the summary response.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only include openWorldHint: true. The description adds key behavioral context: it requires a Pro AI subscription, depends on prior brave_web_search, and returns a text summary with optional features. No contradictions with annotations.

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

Conciseness4/5

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

The description is well-structured with a clear first sentence stating purpose, followed by usage guidelines, return description, and requirements. It is slightly lengthy but every sentence adds value, so concise enough.

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

Completeness5/5

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

Given 3 parameters, no output schema, and minimal annotations, the description is thorough. It covers prerequisites, subscription requirements, return format, and optional features. Missing nothing essential for tool selection and invocation.

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 description coverage is 100%, so baseline is 3. The tool description repeats the optionality of entity_info and inline_references but does not add new meaning beyond the schema. Minor clarification but insufficient to raise score.

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 retrieves AI-generated summaries of web search results, specifying the verb (retrieves) and resource (summaries). It distinguishes from sibling search tools by emphasizing the summarization function and prerequisite dependency on brave_web_search.

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?

Explicit 'When to use:' bullet points list specific scenarios. It also states requirements: must first call brave_web_search with summary=true and need a Pro AI subscription, providing clear context and exclusions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv2.1.0
    • First observedbrave_image_search
    • First observedbrave_llm_context
    • First observedbrave_local_search
    • First observedbrave_news_search
    • First observedbrave_place_search
    • First observedbrave_summarizer
    • First observedbrave_video_search
    • First observedbrave_web_search

TDQS

A4.1/5.0
Disambiguation4/5

Most tools target distinct media types or functionalities (web, local, video, image, news, summarizer, place, LLM context). However, brave_local_search and brave_place_search both handle location-based queries, and brave_summarizer and brave_llm_context both provide post-search processing, creating minor potential for confusion.

Naming Consistency4/5

All tools share the 'brave_' prefix, and most follow a 'brave_<medium>_search' pattern (web, local, video, image, news, place). Two tools (brave_summarizer, brave_llm_context) use noun phrases instead of verbs, introducing slight inconsistency but still clearly related.

Tool Count5/5

Eight tools is an ideal size for a search API server, covering general web search, specialized verticals (local, video, image, news), and advanced AI features (summarization, LLM context). The count is well-scoped without unnecessary bloat.

Completeness5/5

The tool set covers all major search verticals (web, local, video, image, news) and includes advanced capabilities for summarization and content retrieval. There are no obvious gaps for the stated purpose of providing a comprehensive search interface.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP Server implementation that integrates the Brave Search API, providing, Web Search, Local Points of Interest Search, Image Search, Video Search, News Search and LLM Context Search capabilities
    5
    259
    125
    GPL 3.0
  • A
    license
    A
    quality
    A
    maintenance
    An MCP implementation that integrates the Brave Search API, providing comprehensive search capabilities including web, local business, image, video, news searches, and AI-powered summarization.
    8
    15,853
    1,409
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables web search capabilities through the Brave Search API, including web search, local POI lookups, and rich search results retrieval for MCP-compatible clients.
    4
    21
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oki602960/brave-search-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server