MCP server

brave-search MCP

MCP server published on npm as @brave/brave-search-mcp-server. Transports: stdio. Maintained in brave/brave-search-mcp-server.

Checked 2026-10-31

Install

Claude Code
claude mcp add brave-search -- npx -y @brave/brave-search-mcp-server

Commands come from the project's own docs or registry entry. Check them against the source before you run them.

Loading poll...

Brave Search MCP is Brave's own MIT-licensed server that lets an AI agent search the web through the Brave Search API: web, news, images, videos, places, and a mode that returns page content ready for an LLM. It needs an API key. Install with npx -y @brave/brave-search-mcp-server and set BRAVE_API_KEY. We checked the README and Brave's API page on 31 October 2026.

Quick facts

Maintainer

Brave (brave/brave-search-mcp-server)

License

MIT

Latest release we saw

v2.1.4, 17 Sep 2026; last push 30 Oct 2026

Package

@brave/brave-search-mcp-server on npm; Docker image docker.io/mcp/brave-search

Requires

Node.js 22 or newer for local runs, per the README; a Brave Search API key

Transport

stdio by default (since 2.x); HTTP optional

Auth

BRAVE_API_KEY, or BRAVE_API_KEY_FILE for mounted secrets

Tools

8

Price of the server

Free; the API behind it is paid

Brave API plans (Brave's page)

Search $5 per 1,000 requests; Answers $4 per 1,000 requests plus $5 per million input and output tokens; Enterprise by contact

The old server and the new one

The Brave Search server in the MCP reference repo is gone from the active list. It sits in modelcontextprotocol/servers-archived, the home for reference servers that are no longer maintained. Brave took over with its own repo and publishes its own npm package, @brave/brave-search-mcp-server.

If you have an old config pointing at @modelcontextprotocol/server-brave-search, move it. The new server has more tools, and a different default behavior in version 2: the README's migration notes say 2.x defaults to stdio, as MCP convention expects. If you ran the 1.x server over HTTP, you now need BRAVE_MCP_TRANSPORT=http or --transport http. Image search also changed. Version 1.x returned base64 image data with the URLs, which the README says slowed responses and wasted context. Version 2.x drops the base64 data.

What it lets an agent do

Search is the one thing a model cannot do from its own memory. With this server an agent can:

  • Look up current facts, versions or news before answering.
  • Find the right documentation page, then read it with a fetch tool.
  • Search for local businesses or points of interest in an area.
  • Pull pre-extracted web content sized for a context window, for grounding and retrieval work.
  • Get a short AI summary of a search, using Brave's own summarizer.

Brave's page makes a point about its index: every result comes from Brave's own crawler and ranking, with no fallback to Google or Bing. That is a vendor claim, but it is a real difference from search APIs that resell another engine.

The tools it exposes

Tool

What it does

Notes from the README

brave_web_search

Web search with filters

Query up to 400 characters and 50 words; count 1 to 20; freshness, goggles, safesearch and more

brave_local_search

Local businesses and places

Full capability needs a Pro plan; falls back to web search otherwise

brave_video_search

Videos with metadata

count up to 50

brave_image_search

Images with URLs and dimensions

count up to 200; default safe search is strict

brave_news_search

Current news

Freshness defaults to the last 24 hours

brave_summarizer

AI summary of a search

Run a web search with summary: true first, then pass the returned key

brave_place_search

Points of interest in an area

Takes coordinates or a location string, and a radius in meters

brave_llm_context

Pre-extracted page content for LLMs

Controls on tokens, URLs and snippets per result

Two details deserve a note. The summarizer is a two-step tool: the agent must first ask for a summary key from web search, then call the summarizer with it. Agents that skip step one get nothing. And extra_snippets works only on Pro plans, according to the README.

brave_llm_context is the interesting one. It returns text pulled from the pages, with limits you set: maximum URLs (1 to 50), maximum tokens (1,024 to 32,768), snippets and a per-URL token budget. If your goal is answering from the web with fewer fetch calls, it replaces a search followed by several page reads.

Get an API key and know the cost

  1. Sign up at the Brave Search API page.
  2. Pick a plan. The README names Search and Answers.
  3. Generate a key in the developer dashboard.

Brave's page, checked today, lists:

Plan

Price on the page

Search

$5 per 1,000 requests; includes $5 in free credits every month; 50 queries per second

Answers

$4 per 1,000 requests plus $5 per million input and output tokens; includes $5 in free credits monthly; 2 queries per second

Enterprise

Custom terms, capacity and endpoints; zero data retention; contact Brave

The page also uses prepaid credits instead of subscriptions, and its FAQ says it asks for a credit card to prevent abuse. The hero line on the same page says "up to $20 in free calls every month", which does not match the $5 per plan figures above..

For an agent, think in calls. Each search tool call is a request. A research task that makes thirty searches costs thirty requests. At the listed Search rate that is a small number, but a loop that never stops is not. Set a spending limit if the dashboard allows.

Install it in each agent

The vendor README shows Claude Desktop (Docker and npx) and VS Code (Docker and npx with a prompted key). Lines for the other agents are our adaptation.

The standard entry:

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

Note that the README's own npx example adds --transport http. For a plain stdio setup you can leave that off, since stdio is the default in 2.x. [VERIFY: whether the README's npx example with --transport http is intended for stdio clients, on the repo README].

Claude Code

Our adaptation of claude mcp add:

claude mcp add --transport stdio --env BRAVE_API_KEY=YOUR_KEY brave-search -- npx -y @brave/brave-search-mcp-server

Put at least one other option between --env and the server name, as Claude Code's docs advise, which is why --transport stdio comes first.

Codex

[mcp_servers.brave-search]
command = "npx"
args = ["-y", "@brave/brave-search-mcp-server"]
env = { BRAVE_API_KEY = "YOUR_KEY" }

Our adaptation from the Codex docs. Prefer reading the key from your shell environment over writing it into the file.

Cursor

Put the standard entry in .cursor/mcp.json, or ~/.cursor/mcp.json for all projects. Our adaptation.

Gemini CLI and Antigravity

Add the standard entry to settings.json for Gemini CLI. Gemini CLI is now for Code Assist enterprise customers, and individuals moved to Antigravity CLI on 18 June 2026. For Antigravity, use ~/.gemini/config/mcp_config.json or <workspace>/.agents/mcp_config.json with command, args and env. Both are our adaptation.

VS Code

The README's VS Code example prompts for the key through an inputs block with "password": true, so the key never sits in the file:

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

That is the best secret handling of any agent here. We adapted the exact args slightly; check the README's block for the vendor form.

OpenCode

{
  "mcp": {
    "brave-search": {
      "type": "local",
      "command": ["npx", "-y", "@brave/brave-search-mcp-server"],
      "environment": { "BRAVE_API_KEY": "YOUR_KEY" }
    }
  }
}

Our adaptation. See MCP clients for how each agent names these fields.

Configuration worth knowing

Variable

Purpose

BRAVE_API_KEY / BRAVE_API_KEY_FILE

The key, or a file that holds it; the file wins if both are set

BRAVE_MCP_TRANSPORT

stdio (default) or http

BRAVE_MCP_PORT, BRAVE_MCP_HOST

HTTP port (8080) and host (127.0.0.1)

BRAVE_MCP_ALLOWED_ORIGINS, BRAVE_MCP_ALLOWED_HOSTS

DNS rebinding protection for HTTP

BRAVE_MCP_ENABLED_TOOLS

Space-separated allow list of tools

BRAVE_MCP_DISABLED_TOOLS

Space-separated block list of tools

BRAVE_MCP_LOG_LEVEL

Logging level, default info

BRAVE_MCP_STATELESS

HTTP stateless mode, default true

The enabled and disabled tool lists are a quiet cost saver. Eight tools mean eight definitions in context. If you only ever want web search and LLM context, enable those two.

Security and permissions

The server is read-only against the open web, so the risk profile is better than a database server. It still has points to watch.

  • Your key is the asset. Anyone with it spends your credits. Use BRAVE_API_KEY_FILE or the VS Code prompt, and keep it out of a committed .mcp.json.
  • HTTP mode is unauthenticated. The README says it binds to loopback by default. Setting BRAVE_MCP_HOST to 0.0.0.0 exposes it on all interfaces, which the README says to do only on a trusted network, because the endpoint has no authentication.
  • DNS rebinding. For HTTP, browser requests with a non-loopback Origin get a 403 unless you list the origin. Set BRAVE_MCP_ALLOWED_ORIGINS only for the clients you need.
  • Search results are untrusted text. A snippet can contain instructions aimed at the model. brave_llm_context returns whole passages from pages, which widens that surface.
  • Queries leave your machine. What the agent searches goes to Brave. Brave's page describes zero data retention for Enterprise and says queries are never shared or trained on. Read the terms for your plan before sending sensitive queries..
  • Safe search. Image search defaults to strict, web search to moderate. Change them deliberately.

Limits and known issues

  • Query length. 400 characters and 50 words per query.
  • Pagination. offset has a maximum of 9, so you cannot page deep. Refine the query instead.
  • Plan-gated features. Full local search and extra snippets need a Pro plan, per the README. Local search quietly falls back to web search without it, which can confuse an agent that expects business data.
  • Rate limits. The page lists 50 queries per second for Search and 2 for Answers.
  • Open issues. The repo showed 47 open issues when we checked. We did not read them..

Alternatives

Option

Choose it when

Exa MCP

You want neural search built for agents

Tavily MCP

You want search tuned for retrieval and extraction

Firecrawl MCP

You also need crawling and rendering

Fetch MCP

You already have URLs and only need to read them

Built-in web search in your agent

Claude Code, Codex and others may include their own

Pair it with Fetch MCP for the common loop: search, then read the best hit. The MCP servers hub lists more.

Which agents it suits

  • Agents without built-in search gain the most.
  • Claude Code and Codex may already search the web. Add this for Brave's index, its news and place tools, or one consistent search across agents.
  • VS Code has the safest key handling of the set.
  • Server and container setups can use BRAVE_API_KEY_FILE and HTTP mode, which the README says it supports for Docker secrets and Amazon Bedrock AgentCore.

Our take

We did not run searches through this server for the page. This is from the README, npm and Brave's pricing page.

It is a well-kept vendor server. Brave maintains it, the tool list is broad, the configuration is thoughtful, and the HTTP mode takes DNS rebinding seriously. That level of care is not a given.

Two things to decide. First, whether you want to pay per call at all, when your agent may already search. Second, which tools to expose. Turning the list down to the ones you use saves context and avoids plan-gated tools that fall back silently.

The pricing page disagrees with itself about the free credit, so check the dashboard before you plan a budget around it. If you have a high-volume job, calculate with the $5 per 1,000 figure and treat any free credit as a bonus.

A short setup checklist

  1. Get a Brave Search API key and set a spend limit if offered.
  2. Check Node 22 or newer, or use Docker.
  3. Add the server with the line for your agent.
  4. Restrict tools with BRAVE_MCP_ENABLED_TOOLS to what you need.
  5. Restart and list tools.
  6. Run one brave_web_search and check the dashboard counted one request.
  7. Keep HTTP mode on loopback.

Frequently asked questions

Is the Brave Search MCP server free?

The server is free and MIT licensed. The Brave Search API behind it is paid, at $5 per 1,000 requests for Search on Brave's page, with free monthly credits.

What happened to the old Brave Search server in the reference repo?

It was archived with other reference servers. Brave now maintains its own.

Does it run over stdio or HTTP?

Both. Stdio is the default in version 2.

Which tools does it have?

Web, local, video, image, news, summarizer, place search and LLM context.

Do I need a credit card?

Brave's FAQ says it asks for one to prevent abuse. Billing is prepaid credits.

Works with

Tried it with one of these? Vote below: works for me, or not.

Questions

Is the Brave Search MCP server free?

The server is free and MIT licensed, but it calls Brave's paid Search API and needs a key. Brave's page lists Search at $5 per 1,000 requests with $5 in free credits each month.

What happened to the old Brave Search server in the reference repo?

It was archived with other reference servers. Brave now maintains its own server at brave/brave-search-mcp-server.

Does it run over stdio or HTTP?

Both. Version 2 made stdio the default. Set BRAVE_MCP_TRANSPORT to http to serve over HTTP.

Which tools does it have?

Web, local, video, image, news, summarizer, place search and LLM context. You can turn individual tools on or off with environment variables.

Do I need a credit card?

Brave's FAQ says it asks for one to prevent abuse. It uses prepaid credits, not subscriptions.

Loading poll...

Reviews

Loading reviews…

Write a review

Your rating

Up to 1000 characters. Stars alone are enough.

Sources

  1. github.com/brave/brave-search-mcp-server
  2. raw.githubusercontent.com/brave/brave-search-mcp-server/main/README.md
  3. brave.com/search/api/
  4. npmjs.com/package/@brave/brave-search-mcp-server
  5. code.claude.com/docs/en/mcp
  6. developers.openai.com/codex/mcp
  7. antigravity.google/docs/mcp
  8. opencode.ai/docs/mcp-servers/

Similar

  • browser-use MCP

    Browser Use is an open-source Python library for AI browser agents, and our entry covers its MCP route.

    • MCP server
    • Official

    browser-use · 119,597 stars

  • Scrapling MCP Server

    Scrapling is a Python web scraping framework from D4Vinci, described on GitHub as handling everything from a single request to a full-scale crawl, and this entry is its MCP server.

    • MCP server

    D4Vinci · 90,477 stars

  • Netdata MCP

    Netdata is an observability platform, and this entry is its hosted MCP endpoint at app.netdata.cloud, reached over streamable HTTP.

    • MCP server

    netdata · 81,227 stars

  • claude-flow MCP

    Claude Flow is published on npm as claude-flow, and its repository now sits at ruvnet/ruflo, which the GitHub description calls the original agent harness for deploying multi-agent swarms and coordinating autonomous workflows.

    • MCP server

    ruvnet · 80,298 stars

  • Context7 MCP

    Context7 is an MCP server from Upstash that serves up-to-date library documentation to coding agents, so the model reads current docs instead of guessing from training data.

    • MCP server

    upstash · 63,974 stars

  • Chrome DevTools MCP

    MCP server published on npm as chrome-devtools-mcp. Transports: stdio. Maintained in ChromeDevTools/chrome-devtools-mcp.

    • MCP server

    ChromeDevTools · 54,503 stars

Part of the Wbcom Designs family

The all-in-one WordPress community stack

Also ours: wbcomdesigns.comvapvarun.combrndle.com