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.
Install the Exa plugin, which includes the hosted MCP server plus Exa’s search and exa-agent skills. See Exa for ChatGPT and Codex for the full setup and workflow guide.To add just the MCP server in Codex:

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 19, 2026