Skip to main content
Exa MCP connects AI assistants to Exa’s search capabilities, including web search, code search, Exa Agent, and Exa Connect. It is open-source and available on GitHub.

Installation

Exa’s Search MCP can be installed in any MCP client with the server URL: https://mcp.exa.ai/mcp

Install in Cursor

Exa MCP is available on Cursor.

Install in VS Code

Exa MCP is available on VSCode.
Run in terminal:

API Key

Get your Exa API key

Exa MCP’s free plan covers casual use. Add your own API key to lift the rate limits and use it in production:

Available Tools

Enabled by default: Additional tools (enable via the tools parameter): Enable specific tools by only appending them to the MCP URL:

Exa Agent

You can also run Exa Agent through Exa MCP for multi-step research, list building, enrichment, and structured outputs. Use it for anything that needs more than a single search call. Agent runs are usage-based, so the Agent tool requires authentication — connect with OAuth or pass your own Exa API key. Enable the Agent tool:
Or alongside the default search tools:
agent_run runs the entire agent loop in one call: it creates the run, streams updates until completion, and returns the final output.
  1. Run the agent with agent_run, passing a natural-language query. Add an outputSchema when you need repeatable, structured results.
  2. Read the output. When the run finishes, the response has outputReady: true with output.text, output.structured (when a schema was provided), and output.grounding citations, plus usage and cost.
  3. Long runs. If a run outlives the call window (~750s), agent_run returns status: "running" with the run’s id instead of an error — the run keeps executing server-side. Call agent_run again with runId set to that id to keep waiting until it finishes.
  4. Continue. Pass previousRunId (a completed run’s id) to agent_run to refine or extend earlier work; use input.exclusion to avoid resurfacing prior results.
agent_run takes a natural-language query. Pass runId to wait for a retained run that is still executing. Pass previousRunId to continue from a completed run. Optional fields include outputSchema, systemPrompt, input (data to enrich, exclusion to avoid), dataSources (Exa Connect providers, up to 5), and effort (minimal, low, medium, high, xhigh, or auto; defaults to low). See the Exa Agent guide for schema patterns, effort modes, Exa Connect data sources, and pricing.

Advanced Search

web_search_advanced_exa exposes the full Exa Search API as an MCP tool. Use web_search_exa for simple, fast lookups; use the advanced tool when you need precise control over results, including category and domain filters, date ranges, text constraints, geo-targeting, query expansion, summaries, highlights, freshness control, and subpage crawling. Use it for targeted retrieval, like “research papers about X on arxiv.org from the last year”, “news about Y excluding site Z”, or “crawl the docs subpages of this company’s site”. For everyday searches, stick with web_search_exa. Enable it via the tools parameter:
Or alongside the default search tools:
The tool’s parameters mirror the Search API — see that reference for what each filter and content option does.

Resources

  • GitHub - View Exa MCP source code
  • npm - Install Exa MCP npm package
Web Search
Code Search
Read a Page
Rate limit error (429)You’ve hit the free plan rate limit. Add your own API key to continue:
Get your API keyTools not appearingRestart your MCP client after updating the config file. Some clients require a full restart to detect new MCP servers.Claude Desktop not connectingUse the built-in Connector: click + (or Add connectors) → Connectors tab → search for Exa → click +.Config file not foundCommon config locations:
  • Cursor: ~/.cursor/mcp.json
  • VS Code: .vscode/mcp.json (in project root)
  • Claude Desktop (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
  • Claude Desktop (Windows): %APPDATA%\Claude\claude_desktop_config.json
Last modified on August 11, 2026