Brave Search
Audited · 2026.07An MCP server implementation that integrates the Brave Search API
This tool was added by our team so people can find it. If it is yours, you can claim the Brave name and take over the listing: create an account, then contact support with evidence that you own the project.
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.
AI security review
This server proxies eight Brave Search tools over stdio to a single backend, api.search.brave.com, which matches the declared egress allowlist. The API key is loaded from an environment variable, CLI flag, or a file path (supporting Docker secrets) and is only ever attached as an X-Subscription-Token header on requests to the Brave API host. Tool names and descriptions accurately reflect the underlying Brave Search endpoints they call. Other hostnames present in the repository appear only in documentation, package metadata, or GitHub Actions release automation, none of which run inside the published server or constitute runtime egress.
Tool surface
brave_web_search | Performs comprehensive web searches with rich result types and advanced filtering options. |
brave_local_search | Searches for local businesses and places with detailed information including ratings, hours, and AI-generated descriptions. |
brave_video_search | Searches for videos with comprehensive metadata and thumbnail information. |
brave_image_search | Searches for images with metadata including URLs, dimensions, and confidence scores. |
brave_news_search | Searches for current news articles with freshness controls and breaking news indicators. |
brave_summarizer | Generates AI-powered summaries from web search results using Brave's summarization API. |
brave_place_search | 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. |
brave_llm_context | Retrieves pre-extracted web content optimized for AI agents, LLM grounding, and RAG pipelines. |
Egress allowlist: api.search.brave.com
Pricing
Set by Brave, who runs this tool. MCP Commons does not host it and takes no payment for it. See their pricing ↗
Install and use
Configuration
Getting an API Key
- Sign up for a Brave Search API account
- 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.
- 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 unlessBRAVE_API_KEY_FILEis set)BRAVE_API_KEY_FILE: Path to a file containing your Brave Search API key. When set, this takes precedence overBRAVE_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 additionalOriginheader values permitted for the HTTP transport. Loopback origins are always allowed; browser requests carrying any otherOriginare 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 theHostheader 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) theHostheader is not validated, so reverse-proxy and custom-domain deployments are unaffected. When set, only loopback hosts and the listed hostnames are accepted; any otherHost(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 toolsBRAVE_MCP_DISABLED_TOOLS: When used, specifies a space-separated blacklist for supported toolsBRAVE_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:
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}"
}
}
}
}Link-out server: reviewed by MCP Commons, hosted by the creator. These instructions are provided by the creator. You supply any credentials it needs.
Ratings and reviews
No reviews yet.
Sign in to leave a review. Sign in
Version history
| Version | Source | Review |
|---|---|---|
| v2.1.0 · live | brave/brave-search-mcp-server@v2.1.0 | pass |