Exa MCP Server

Lets an assistant search the web, read pages as markdown and run Exa research agents.

Official · Exa Labs TypeScript Remote (hosted) · Streamable HTTPLocal · stdio Web searchBrowser automationAI and ML

101 popularity score ★ 5.2k ↓ 67k/wk

Connect your client

Remote (hosted)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add --transport http exa https://mcp.exa.ai/mcp
Claude (desktop and web)Settings → Connectors → Add custom connector
https://mcp.exa.ai/mcp
ChatGPTSettings → Apps → Advanced → Developer mode, then Create app
https://mcp.exa.ai/mcp
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "exa": {
      "url": "https://mcp.exa.ai/mcp"
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "exa": {
      "type": "http",
      "url": "https://mcp.exa.ai/mcp"
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.exa]
url = "https://mcp.exa.ai/mcp"
Gemini CLITerminal
gemini mcp add --scope user --transport http exa https://mcp.exa.ai/mcp
Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs EXA_API_KEY. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add exa -e EXA_API_KEY=<EXA_API_KEY> -- npx -y exa-mcp-server
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "exa": {
      "command": "npx",
      "args": [
        "-y",
        "exa-mcp-server"
      ],
      "env": {
        "EXA_API_KEY": "<EXA_API_KEY>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "exa": {
      "command": "npx",
      "args": [
        "-y",
        "exa-mcp-server"
      ],
      "env": {
        "EXA_API_KEY": "<EXA_API_KEY>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "exa": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "exa-mcp-server"
      ],
      "env": {
        "EXA_API_KEY": "<EXA_API_KEY>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.exa]
command = "npx"
args = ["-y", "exa-mcp-server"]

[mcp_servers.exa.env]
EXA_API_KEY = "<EXA_API_KEY>"
Gemini CLITerminal
gemini mcp add --scope user -e EXA_API_KEY=<EXA_API_KEY> exa npx -- -y exa-mcp-server

Settings 1

EXA_API_KEY Required: Exa API key from dashboard.exa.ai, used by the local npm package.

What it does

Exa MCP Server connects an assistant to Exa, a web search engine and API. By default it gives two tools: web search that returns clean, ready-to-use page content, and a fetch tool that reads one or more URLs and returns their full text as markdown. Two more tools can be switched on through the tools parameter on the server URL: an advanced search with filters for domains, dates, highlights, summaries and subpage crawling, and agent_run, which starts an Exa Agent for multi-step research, list-building, enrichment and structured output.

Exa runs a hosted server at https://mcp.exa.ai/mcp over streamable HTTP. It works without sign-in at rate-limited levels; for higher limits and for Exa Agent you sign in to Exa with OAuth or pass an Exa API key as a header or URL parameter. The same server is also published as the npm package exa-mcp-server, which runs locally over stdio with an EXA_API_KEY.

The repository also ships Agent Skills and plugins for Claude, Codex and ChatGPT that load the same tools.

What it needs

To run it yourselfNode.js

Tools 4

web_search_exa
Search the web for any topic and get clean, ready-to-use content.
web_fetch_exa
Read a webpage's full content as clean markdown from one or more URLs.
agent_run
Run an Exa Agent for multi-step research, list-building, enrichment and structured output (optional, needs sign-in or API key).
web_search_advanced_exa
Advanced search with filters, domains, dates, highlights, summaries and subpage crawling (optional).

Similar servers