SearXNG MCP Server
Web search and page reading through a SearXNG metasearch instance you run or trust
Brave's own MCP server for querying its search API: web, news, images, video, places and summaries
Official · Brave Software TypeScript Remote (hosted) · Streamable HTTPLocal · stdio Web search
94 popularity score ★ 1.6k ↓ 61k/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs BRAVE_API_KEY. Replace each <NAME> with your value.
claude mcp add brave-search -e BRAVE_API_KEY=<BRAVE_API_KEY> -- npx -y @brave/brave-search-mcp-server --transport stdio{
"mcpServers": {
"brave-search": {
"command": "npx",
"args": [
"-y",
"@brave/brave-search-mcp-server",
"--transport",
"stdio"
],
"env": {
"BRAVE_API_KEY": "<BRAVE_API_KEY>"
}
}
}
}{
"mcpServers": {
"brave-search": {
"command": "npx",
"args": [
"-y",
"@brave/brave-search-mcp-server",
"--transport",
"stdio"
],
"env": {
"BRAVE_API_KEY": "<BRAVE_API_KEY>"
}
}
}
}{
"servers": {
"brave-search": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@brave/brave-search-mcp-server",
"--transport",
"stdio"
],
"env": {
"BRAVE_API_KEY": "<BRAVE_API_KEY>"
}
}
}
}[mcp_servers.brave-search]
command = "npx"
args = ["-y", "@brave/brave-search-mcp-server", "--transport", "stdio"]
[mcp_servers.brave-search.env]
BRAVE_API_KEY = "<BRAVE_API_KEY>"gemini mcp add --scope user -e BRAVE_API_KEY=<BRAVE_API_KEY> brave-search npx -- -y @brave/brave-search-mcp-server --transport stdioOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs BRAVE_API_KEY. Replace each <NAME> with your value.
claude mcp add brave-search -e BRAVE_API_KEY=<BRAVE_API_KEY> -- docker run -i --rm -e BRAVE_API_KEY mcp/brave-search{
"mcpServers": {
"brave-search": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BRAVE_API_KEY",
"mcp/brave-search"
],
"env": {
"BRAVE_API_KEY": "<BRAVE_API_KEY>"
}
}
}
}{
"mcpServers": {
"brave-search": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BRAVE_API_KEY",
"mcp/brave-search"
],
"env": {
"BRAVE_API_KEY": "<BRAVE_API_KEY>"
}
}
}
}{
"servers": {
"brave-search": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BRAVE_API_KEY",
"mcp/brave-search"
],
"env": {
"BRAVE_API_KEY": "<BRAVE_API_KEY>"
}
}
}
}[mcp_servers.brave-search]
command = "docker"
args = ["run", "-i", "--rm", "-e", "BRAVE_API_KEY", "mcp/brave-search"]
[mcp_servers.brave-search.env]
BRAVE_API_KEY = "<BRAVE_API_KEY>"gemini mcp add --scope user -e BRAVE_API_KEY=<BRAVE_API_KEY> brave-search docker -- run -i --rm -e BRAVE_API_KEY mcp/brave-searchBRAVE_API_KEY |
Required: Brave Search API key. Not needed if BRAVE_API_KEY_FILE is set. |
|---|---|
BRAVE_API_KEY_FILE |
Optional: Path to a file holding the API key; takes precedence over BRAVE_API_KEY (for Docker secrets). |
BRAVE_MCP_TRANSPORT |
Optional: stdio (default) or http. |
BRAVE_MCP_PORT |
Optional: Port for the HTTP transport, default 8080. |
BRAVE_MCP_HOST |
Optional: Bind address for HTTP, default 127.0.0.1; 0.0.0.0 exposes it on all interfaces. |
BRAVE_MCP_ALLOWED_ORIGINS |
Optional: Extra Origin values accepted by the HTTP transport. |
BRAVE_MCP_ALLOWED_HOSTS |
Optional: Host header values accepted by the HTTP transport; unset means not checked. |
BRAVE_MCP_ENABLED_TOOLS |
Optional: Space-separated list of the only tools to enable. |
BRAVE_MCP_DISABLED_TOOLS |
Optional: Space-separated list of tools to disable. |
BRAVE_MCP_LOG_LEVEL |
Optional: Logging level, default info. |
BRAVE_MCP_STATELESS |
Optional: Stateless HTTP mode, default true. |
In a container, a setting goes in with -e NAME=value after docker run.
This is Brave's server for its Brave Search API. It gives an assistant eight search tools that each call one part of that API: general web results, news, images, videos, local businesses, points of interest around a place or coordinates, a pre-extracted page-content endpoint meant for grounding model answers, and a summariser that turns an earlier web search into a written answer with optional source links.
The tools take most of the API's own options: country, language, safe-search level, time window (last day, week, month, year or a date range), result counts, paging and Goggles for custom re-ranking. The summariser works in two steps: a web search run with summary turned on returns a key, and that key is passed to brave_summarizer.
It runs on your own machine from npm or the mcp/brave-search Docker image and talks over stdio by default; an HTTP mode can be switched on with a flag or setting. Individual tools can be switched on or off with allow and deny lists. Version 2 changed the default transport from HTTP to stdio and stopped returning base64 image data from brave_image_search, so configurations written for 1.x may need updating. A hosted copy is also listed on Smithery.
| To run it yourself | Node.js 22+orDocker |
|---|
A Brave Search API account and API key from brave.com/search/api, on a Search or Answers plan. Node.js 22 or newer for the npm package (the README's development prerequisites), or Docker for the container image. Some features need a Pro plan.
Each query is capped at 400 characters and 50 words, and paging stops at offset 9. Full local business search needs a Pro plan and otherwise falls back to ordinary web results; extra snippets in web and news results are Pro-only too. brave_summarizer only works on a key returned by a web search run with summary enabled. Since 2.x, image search returns URLs and metadata rather than image data. The HTTP transport has no authentication of its own.
Suits anyone who already has, or is willing to get, a Brave Search API key and wants an assistant to look things up on the public web, in the news, in images and video, or around a place, from one vendor-maintained server. It only reads: nothing is posted or changed anywhere, so the main costs are API usage on your Brave plan and the queries Brave sees. Pick something else if you want search without signing up for a paid-tier API, or need to fetch and render arbitrary pages rather than search results; this server returns what Brave's index holds.
brave_web_searchbrave_local_searchbrave_video_searchbrave_image_searchbrave_news_searchbrave_summarizerbrave_place_searchbrave_llm_context