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 has a generous free plan. To overcome free plan rate limits and enable production use, add your own API key:

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

Exa Agent is now available within Exa MCP. Use it for multi-step research, list-building, enrichment, and structured output when a task 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 whole agent loop in one call: it creates the run, streams its lifecycle to completion, and returns the final output.
  1. Run the agent with agent_run, passing a natural-language query. Include an outputSchema whenever 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 accepts a natural-language query (or a runId to resume waiting on a retained run, or a previousRunId to continue completed work) plus optional 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 power of Exa Search as an MCP tool. Where web_search_exa is tuned for simple, fast lookups, the advanced tool gives the model precise control over how results are found and what content comes back — category and domain filters, date ranges, text constraints, geo-targeting, query expansion, summaries, highlights, freshness control, and subpage crawling. Use it when a task needs targeted retrieval — e.g. “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, web_search_exa remains the better default. 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 July 25, 2026