---
title: "Web research. Brave, Exa, and SearXNG side-by-side | Recipe — StudioMeyer Academy"
description: "Three MCP servers that cover 95% of research needs. Brave for fast keyword search, Exa for semantic / neural, SearXNG via mcp-searxng for unlimited free queries."
canonical: "https://studiomeyer.academy/en/recipes/2.3-web-research"
language: en
markdown_versions: ["https://studiomeyer.academy/en/recipes/2.3-web-research.md"]
publisher: "StudioMeyer Academy, https://studiomeyer.academy (llms.txt: https://studiomeyer.academy/llms.txt)"
---

[← Alle Recipes](https://studiomeyer.academy/recipes)

Phase 2 · Connectivity·5 steps

# Web research. Brave, Exa, and SearXNG side-by-side

Three MCP servers that cover 95% of research needs. Brave for fast keyword search, Exa for semantic / neural, SearXNG via mcp-searxng for unlimited free queries.

5 steps0%

Du liest ohne Account. Mit [Login](https://studiomeyer.academy/login?next=/recipes/2.3-web-research) speichern wir Step-Fortschritt + Notes.

# Web research

Claude Code's built-in WebSearch is fine for one-off queries but it's a Tier-1 tool with a quota. For real research you want multiple sources running in parallel, different indexes catch different things.

The right setup is **three** complementary MCP servers:

- **Brave**. Brave's own crawled index. Fast, no AI noise. As of April 2026 the unlimited free tier is gone, new accounts get ~$5 in monthly credits (~1k queries), paid plans start at $5 / 1k queries.
- **Exa**, semantic / neural search. Finds papers, code, and "things like X" rather than exact-keyword matches. ~$2.50 / 1k queries with a small free starting budget.
- **SearXNG** via mcp-searxng, meta-search across 70+ engines, self-hosted, no quota. The right pick if you do heavy daily research and want to avoid metered APIs.

You don't need all three to start. Brave alone is usually enough for the first week.

### Step 1: Brave (fast, recommended start)

Get an API key at https://api.search.brave.com/. New accounts include ~$5 in monthly credits (roughly 1k queries), enough for daily research. If you outgrow that, plans start at $5 / 1k queries pay-as-you-go. Brave killed the unlimited free tier in early 2026, so plan accordingly.

```bash
claude mcp add brave-search -s user \
  -e BRAVE_API_KEY=BSAxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
  -- npx -y @modelcontextprotocol/server-brave-search
```

Codex equivalent in `~/.codex/config.toml`:

```toml
[mcp_servers.brave-search]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-brave-search"]

[mcp_servers.brave-search.env]
BRAVE_API_KEY = "BSAxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```

That's enough for now. Move to Step 4 to verify if you only want one server. Steps 2 + 3 are optional add-ons.

### Step 2: Exa (semantic, optional)

Get a key at https://exa.ai/. Pricing is roughly $2.50 / 1k queries with a small starting credit. The killer use case is `web_search_exa` for "find me companies that do X" or `get_code_context_exa` for "how do other repos solve this".

```bash
claude mcp add exa -s user --transport http -- "https://mcp.exa.ai/mcp?exaApiKey=YOUR_KEY"
```

Exa is HTTP-only, the API key goes in the URL.

### Step 3: SearXNG / mcp-searxng (unlimited, optional)

If you want zero quota concerns, run a SearXNG instance (Docker is simplest) and point `mcp-searxng` at it. Skip this for now if you don't already have SearXNG. Brave alone is fine.

```bash
claude mcp add searxng -s user \
  -e SEARXNG_URL=https://your-searxng.example.com \
  -- npx -y mcp-searxng
```

`mcp-searxng` is the open-source maintained package (`npm view mcp-searxng`). It does the same job: takes your SEARXNG\_URL and exposes a `searxng_web_search` tool to Claude.

### Step 4: Verify

Run `academy_validate_step`. The validator checks for any of `brave|context7|tavily|exa|fetch` in `claude mcp list`. If you installed any of them in Step 1-3 you're green.

### Step 5: Make Claude use the right server

Without guidance, Claude will reach for whatever tool description matches first. Add a paragraph to your `~/.claude/CLAUDE.md`:

```markdown
## Research protocol

- Default: use brave-search for keyword queries.
- Use exa for "things like X" / "alternatives to X" / "papers on X".
- Use context7 for library + framework docs (React, Next.js, Prisma, etc).
- For long-form research with multiple sources, run brave + exa in parallel
  (one tool call each, then synthesize).
- Cite the URL when you make a factual claim.
```

This rule lives in your global memory so Claude picks the right tool automatically. Without the rule, you get inconsistent behavior, sometimes WebSearch, sometimes Brave, sometimes nothing.

After this recipe you have search that scales with you. The next recipe makes Claude understand your code as well as it understands the web.

Client check · run on your machine

claude mcp list 2>&1 | grep -iE "brave|context7|tavily|exa|fetch|searxng" | head -5

**Expect:** At least one web research MCP is listed.

**If stuck:** Add brave-search (\`claude mcp add brave-search -s user -e BRAVE\_API\_KEY=... -- npx -y @modelcontextprotocol/server-brave-search\`) or context7 (\`claude mcp add --transport http context7 https://mcp.context7.com/mcp\`).

[← Memory layer, give your AI per](https://studiomeyer.academy/recipes/2.2-memory-layer) [Code intelligence, codebase-me →](https://studiomeyer.academy/recipes/2.4-code-intelligence)

Phase 2

Your first MCP servers (Memory, Research, GitHub, Code Intel)

[Alle Phasen →](https://studiomeyer.academy/recipes)

## Sitemap

Public pages of this site as Markdown: [sitemap](https://studiomeyer.academy/sitemap.md). Curated entry point: [llms.txt](https://studiomeyer.academy/llms.txt), full text: [llms-full.txt](https://studiomeyer.academy/llms-full.txt).
