/ Directory / Playground / Brave Search
● Official brave 🔑 Needs your key

Brave Search

by brave · modelcontextprotocol/servers

Privacy-respecting web, news, and image search — independent index, no Google. Free tier covers most personal use.

The reference Brave Search MCP. Wraps the Brave Search API: web, local, news, video, and image verticals. Brave runs an independent index (not Bing/Google reseller), with privacy guarantees and reasonable free quota.

Why use it

Key features

Live Demo

What it looks like in practice

brave-search.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-brave-search"
      ]
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-brave-search"
      ]
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-brave-search"
      ]
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-brave-search"
      ]
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "brave-search",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-brave-search"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "brave-search": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-brave-search"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add brave-search -- npx -y @modelcontextprotocol/server-brave-search

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use Brave Search

Fact-check a claim with multiple independent sources

👤 Writers, researchers, anyone wary of AI hallucination ⏱ ~5 min beginner

When to use: You have a claim ('X company has Y employees') and want 2-3 citations, not just whatever Claude remembers from training.

Prerequisites
  • Brave Search API key — api.search.brave.com — free tier 2k/month, no card required
Flow
  1. Search the claim
    Search Brave for 'Acme Robotics employee count site:linkedin.com OR site:crunchbase.com'. Top 5 results.✓ Copied
    → Mix of independent sources
  2. Reconcile the numbers
    Each source likely gives a slightly different number. List them with their dates. What's the most defensible number to cite?✓ Copied
    → Per-source numbers + a reasoned pick
  3. Format the citation
    Write the claim with an inline citation. Use the freshest, most authoritative source.✓ Copied
    → Sentence + (Source, date) inline

Outcome: A defensibly-cited claim with the work shown.

Pitfalls
  • Single SERP snippet isn't enough — claim might be misquoted — For load-bearing claims, fetch the actual page (fetch MCP) and verify the quote in context
Combine with: fetch

Get today's news on a specific topic

👤 Anyone wanting fresh news synthesis ⏱ ~5 min beginner

When to use: You want a news summary on a niche topic, fresher than Claude's training cutoff.

Flow
  1. News search
    Brave news search: 'EU AI Act enforcement' from the last 7 days, top 10.✓ Copied
    → Recent news items with dates
  2. Cluster + summarize
    Group these by angle. Summarize each cluster in 1 sentence. Note any claim that conflicts between sources.✓ Copied
    → 2-4 thematic clusters with conflict flags
  3. Pick what matters
    If I only have 5 minutes to read one of these, which one and why?✓ Copied
    → Single recommendation with reason

Outcome: A current-events brief that respects your time.

Pitfalls
  • Same wire story republished by 20 sites = false sense of consensus — Have Claude detect duplicates by lede similarity, not just URL

Find local businesses for a real-world task

👤 Anyone planning a trip or local errand ⏱ ~5 min beginner

When to use: You want 'best ramen near here' style answers without opening Maps.

Flow
  1. Local search
    Brave local search for 'ramen' near 'Mission District, San Francisco'. Top 10 with addresses, ratings if available.✓ Copied
    → Real businesses with addresses
  2. Filter to your taste
    I want hand-pulled noodles, no chain restaurants. Which of these fit?✓ Copied
    → Filtered list with rationale
  3. Pick a winner
    Pick one. Give me the address, hours if known, and one detail that makes it the right call.✓ Copied
    → Decisive recommendation

Outcome: A choice you can act on, no need to scroll Yelp.

Pitfalls
  • Local data freshness varies — closed businesses may still appear — For high-stakes (driving 30 minutes), confirm hours via the business's own site
Combine with: google-maps

Combinations

Pair with other MCPs for X10 leverage

brave-search + fetch

Search → fetch the most relevant URL → summarize

Brave search for 'OWASP LLM top 10 2026'. Fetch the top result's full content and summarize the 10 items.✓ Copied
brave-search + memory

Save search-derived facts as observations for later recall

Search for our top 5 competitors' headcount. Store each as an observation on the matching company entity in memory.✓ Copied
brave-search + google-maps

Brave finds candidates → Google Maps gets directions

Find ramen spots in the Mission via Brave local. For the top 3, get walking directions from Mission/16th BART via Google Maps.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
brave_web_search query: str, count?: int (1-20), offset?: int General web search 1 query against quota
brave_local_search query: str, count?: int Find businesses, POIs near a place 1 query

Cost & Limits

What this costs to run

API quota
Free tier: 2,000 queries/month, 1 q/s. Paid plans up from there.
Tokens per call
~500-2000 tokens per response depending on count
Monetary
Free for personal use; paid plans for higher quotas
Tip
Use count: 5 by default. The top 5 are usually all the signal you need — paying for 20 results rarely pays off.

Security

Permissions, secrets, blast radius

Credential storage: API key in env var BRAVE_API_KEY
Data egress: Queries hit api.search.brave.com; Brave's privacy policy applies

Troubleshooting

Common errors and fixes

401 Unauthorized

Set BRAVE_API_KEY in MCP client env. Get a key at api.search.brave.com.

429 Too Many Requests

Free tier is 1 q/s. Add throttling between searches in batched workflows.

Quota exceeded

Hit your monthly limit. Wait for reset or upgrade.

Local search returns empty

Local index has limited coverage outside major metros. Fall back to web search for niche locations.

Alternatives

Brave Search vs others

AlternativeWhen to use it insteadTradeoff
Exa Search MCPYou want neural/semantic search and full page contentsDifferent model; better for 'find me things like X'
Google's official Programmable Search (custom MCP)You need Google-specific signalSetup complexity; more expensive at volume
DuckDuckGo via fetchYou want zero-key search with the duckNo structured API; HTML parsing required

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills