Exa MCP server
Last verified: 2026-09
Neural web search aimed at agents.
Community Browser & search Needs a secret Claude Desktop, Cursor, Windsurf, Claude Code
What it does
Exa's search index as MCP. Default tools search the web and fetch a URL as markdown. Optional tools (enable via a tools flag) run Exa Agent for multi-step research.
It sits in Browser & search: Three different jobs get mixed up here.
Good for
- Search the web and get clean content, not ten blue links.
- Fetch a handful of URLs as markdown in one tool call.
- Turn on agent_run only when you want multi-step research and extra credits.
- Replace 'the model hallucinated a library' with a current web pass.
Tools
- web_search_exa — Search; returns clean content.
- web_fetch_exa — Read one or more URLs as markdown.
- web_search_advanced_exa / agent_run — Optional: deeper search or a multi-step agent.
Config (Claude Desktop / Cursor / Windsurf)
Paste the JSON below. Same mcpServers shape. Replace placeholder paths and secrets.
Windows paths look like C:\\Users\\you\\project, not /path/to.
Host-side steps →
Claude Desktop
| OS | Config file |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json
(usually C:\Users\<you>\AppData\Roaming\Claude\) |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Cursor
| Scope | macOS / Linux | Windows |
|---|---|---|
| This project | .cursor/mcp.json in the repo root | |
| This user | ~/.cursor/mcp.json |
%USERPROFILE%\.cursor\mcp.json |
Windsurf
| OS | Config file |
|---|---|
| macOS / Linux | ~/.codeium/windsurf/mcp_config.json |
| Windows | %USERPROFILE%\.codeium\windsurf\mcp_config.json |
{
"mcpServers": {
"exa": {
"command": "npx",
"args": [
"-y",
"exa-mcp-server"
],
"env": {
"EXA_API_KEY": "..."
}
}
}
}
Windsurf remote MCP: use serverUrl instead of url if the block below is HTTP.
One-liner: npx -y exa-mcp-server
Secrets it wants: EXA_API_KEY
How to get started
- Create an Exa API key. Put it in EXA_API_KEY.
- Start with the two default tools. Turn on agent_run only if you want it spending extra credits.
- Ask it to search a topic you can verify.
Access risk
Every call bills Exa. The model sees whatever the index returns, including pages you would not open yourself.
When to skip it
Skip it if Brave Search or Tavily already covers the query, or if you only need one known URL (Fetch).
Instead: Tavily, Brave Search, Fetch.
Vs alternatives
| Server | Official? | Needs a secret? | Best for |
|---|---|---|---|
| Exa | No | Yes | Neural web search aimed at agents. |
| Tavily | No | Yes | Search API built for LLM retrieval. |
| Brave Search | Yes | Yes | Web search via the Brave Search API. |
| Fetch | Yes | Yes | Fetch a URL and turn the page into readable text. |
More in Browser & search
FAQ
Exa or Tavily or Brave?
Pick one search API. Exa is neural/agent-oriented; Brave is cheaper keyword search; Tavily is built as LLM retrieval. Two at once is wasted spend.
What does a key cost?
Every web_search_exa / web_fetch_exa / agent_run bills Exa. Start with the two default tools.
Does it replace Fetch?
For one known URL, Fetch is free. Exa fetch is for when you already searched in Exa.
Do I need agent_run?
No. Enable it via the tools flag when you actually want an Exa Agent.