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:
Enable all search tools (see Exa Agent below to add the Agent tool):

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 with the agent_tools alias:
Or alongside the default search tools:

The Agent tool

How it works

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.

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