<h1 align="center">
  
  
  Exa MCP Server
</h1>







## Installation

Connect to Exa's hosted MCP server:

```
https://mcp.exa.ai/mcp
```

Or use a plugin when your client supports one.

### Agent Plugin

This repository is an [Agent Plugin](https://agent-plugins.org). Install it with any [compatible client](https://agent-plugins.org/compatible-clients).

### Claude

Install from the [Claude Plugin Marketplace](https://claude.com/plugins/exa), or run:

```bash
claude plugin install exa@claude-plugins-official
```

### Codex / ChatGPT

Install via [Plugins in ChatGPT](https://chatgpt.com/plugins/exa), or run:

```bash
codex mcp add exa --url https://mcp.exa.ai/mcp
```

### Other MCP Clients

Most clients can be configured manually with the standard `mcpServers` shape:

```json
{
  "mcpServers": {
    "exa": {
      "type": "streamable-http",
      "url": "https://mcp.exa.ai/mcp",
    }
  }
}
```


**Client-specific configs**

Exa MCP works with most other clients, point them at `https://mcp.exa.ai/mcp`.

| Client | Where to add it |
| --- | --- |
| Kiro | Use the [Kiro power](https://github.com/exa-labs/kiro-power-exa), or add manually to `~/.kiro/settings/mcp.json` |
| LM Studio | [Add to LM Studio](https://lmstudio.ai/install-mcp?name=exa&config=eyJ1cmwiOiJodHRwczovL21jcC5leGEuYWkvbWNwIn0%3D), or add manually to `mcp.json` |
| Replit | [Add to Replit](https://replit.com/integrations?mcp=) |
| Grok Build | `/marketplace` → install **Exa**, then `/mcp` to sign in |
| Gemini CLI | Add manually to `~/.gemini/settings.json` |
| OpenCode | Add manually to `opencode.json` |
| Windsurf | Add manually to `~/.codeium/windsurf/mcp_config.json` |
| Google Antigravity | Add manually to `mcp_config.json` |
| Zed | Add manually to `settings.json` under `context_servers` |
| Warp | [Settings → Agents → MCP servers](warp://settings/mcp) |
| v0 by Vercel | [Settings → MCP connections](https://v0.app/settings/mcp-connections) |



## Available Tools

### Default Tools

| Tool | Description |
| --- | --- |
| `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 |

### Optional Tools (enable via the `tools` parameter)

| Tool | Description |
| --- | --- |
| `agent_run` | Run an [Exa Agent](https://docs.exa.ai/reference/agent-api-guide) for multi-step research, list-building, enrichment, and structured output |
| `web_search_advanced_exa` | Advanced search with filters, domains, dates, highlights, summaries, and subpage crawling |

Enable tools by appending them to the MCP URL (this will replace the defaults, so include all you want):

```
https://mcp.exa.ai/mcp?tools=web_search_advanced_exa
https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa,agent_run
```

Exa Agent requires authentication (OAuth or an [API key](https://dashboard.exa.ai/api-keys)).

## Agent Skills

Skills live in [`skills/`](./skills/) and load with Agent Plugin / Claude plugin installs.

| Skill | Path | Use when |
| --- | --- | --- |
| `search` | [`skills/search/`](./skills/search/SKILL.md) | Deep research, lead gen, competitive analysis, multi-step web investigation |
| `exa-agent` | [`skills/exa-agent/`](./skills/exa-agent/SKILL.md) | Exa Agent runs, enrichment, structured output, Connect providers |

Invoke from your client's skill UI (or `/skill-name` where supported). MCP-only setups still get the tools; skills add orchestration on top.

## Authentication

The hosted MCP server works anonymously with rate limits. For higher limits and access to Exa Agent, use either OAuth or an API key.

**OAuth** is preferred: most clients prompt you to sign in to Exa. To force the login flow (useful for shared connectors and plugins), use `https://mcp.exa.ai/mcp?login` or `https://mcp.exa.ai/mcp/oauth`.

If you prefer, you can get an API key from the [dashboard](https://dashboard.exa.ai/api-keys) and pass it on the URL as `?exaApiKey=…`. You can also send it as a `Authorization: Bearer …` header or an `x-api-key` header.

Built with ❤️ by Exa