Home · Skills · Development · Agent
Exa MCP Server
Hosted web search and page fetching built for AI agents, no install needed.
How to install
- This server is hosted — nothing to install on your machine.
- Claude Code: run the line below. Claude (web or desktop): Customize → Connectors → Add → Add custom connector → paste the URL. Cursor: add the JSON to
~/.cursor/mcp.json. - Ask something that needs the tool. Sign in if the app asks you to.
claude mcp add --transport http exa https://mcp.exa.ai/mcphttps://mcp.exa.ai/mcp{
"mcpServers": {
"exa": {
"url": "https://mcp.exa.ai/mcp"
}
}
}Your AI app asks you to sign in to Exa the first time.
This one runs on your machine and can reach your files. Read the README below before you connect it.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Show the full text134 lines
Exa MCP Server
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Documentation · NPM Package · Get your API key
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. Install it with any compatible client.
Claude
Install from the Claude Plugin Marketplace, or run:
claude plugin install exa@claude-plugins-official
Codex / ChatGPT
Install via Plugins in ChatGPT, or run:
codex mcp add exa --url https://mcp.exa.ai/mcp
Other MCP Clients
Most clients can be configured manually with the standard mcpServers shape:
{
"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, or add manually to ~/.kiro/settings/mcp.json |
| LM Studio | Add to LM Studio, or add manually to mcp.json |
| Replit | Add to Replit |
| 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 |
| v0 by Vercel | 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 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).
Agent Skills
Skills live in skills/ and load with Agent Plugin / Claude plugin installs.
| Skill | Path | Use when |
|---|---|---|
search |
skills/search/ |
Deep research, lead gen, competitive analysis, multi-step web investigation |
exa-agent |
skills/exa-agent/ |
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 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
| 1 | <h1 align="center"> |
| 2 | <img src="assets/Exa.svg" alt="Exa" width="64" /> |
| 3 | <br> |
| 4 | Exa MCP Server |
| 5 | </h1> |
| 6 | |
| 7 | <p align="center">Connect AI agents to Exa for web search, content fetching, and multi-step research.</p> |
| 8 | |
| 9 | <p align="center"> |
| 10 | <a href="https://cursor.com/en/install-mcp?name=exa&config=eyJ1cmwiOiJodHRwczovL21jcC5leGEuYWkvbWNwIn0="><img src="https://custom-icon-badges.demolab.com/badge/Install_in_Cursor-000000?style=for-the-badge&logo=cursor-ai-white" alt="Install in Cursor" /></a> |
| 11 | <a href="https://vscode.dev/redirect/mcp/install?name=exa&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.exa.ai%2Fmcp%22%7D"><img src="https://custom-icon-badges.demolab.com/badge/Install_in_VS_Code-007ACC?style=for-the-badge&logo=vsc&logoColor=white" alt="Install in VS Code" /></a> |
| 12 | <a href="https://claude.com/plugins/exa"><img src="https://img.shields.io/badge/Claude_Plugin-C66140?style=for-the-badge&logo=claude&logoColor=white" alt="Install Claude Plugin" /></a> |
| 13 | <a href="https://chatgpt.com/plugins/exa?open_in_app"><img src="https://img.shields.io/badge/Codex%2FChatGPT_Plugin-4A5BFE?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0yMi4yODE5IDkuODIxMWE1Ljk4NDcgNS45ODQ3IDAgMCAwLS41MTU3LTQuOTEwOCA2LjA0NjIgNi4wNDYyIDAgMCAwLTYuNTA5OC0yLjlBNi4wNjUxIDYuMDY1MSAwIDAgMCA0Ljk4MDcgNC4xODE4YTUuOTg0NyA1Ljk4NDcgMCAwIDAtMy45OTc3IDIuOSA2LjA0NjIgNi4wNDYyIDAgMCAwIC43NDI3IDcuMDk2NiA1Ljk4IDUuOTggMCAwIDAgLjUxMSA0LjkxMDcgNi4wNTEgNi4wNTEgMCAwIDAgNi41MTQ2IDIuOTAwMUE1Ljk4NDcgNS45ODQ3IDAgMCAwIDEzLjI1OTkgMjRhNi4wNTU3IDYuMDU1NyAwIDAgMCA1Ljc3MTgtNC4yMDU4IDUuOTg5NCA1Ljk4OTQgMCAwIDAgMy45OTc3LTIuOTAwMSA2LjA1NTcgNi4wNTU3IDAgMCAwLS43NDc1LTcuMDcyOXptLTkuMDIyIDEyLjYwODFhNC40NzU1IDQuNDc1NSAwIDAgMS0yLjg3NjQtMS4wNDA4bC4xNDE5LS4wODA0IDQuNzc4My0yLjc1ODJhLjc5NDguNzk0OCAwIDAgMCAuMzkyNy0uNjgxM3YtNi43MzY5bDIuMDIgMS4xNjg2YS4wNzEuMDcxIDAgMCAxIC4wMzguMDUydjUuNTgyNmE0LjUwNCA0LjUwNCAwIDAgMS00LjQ5NDUgNC40OTQ0em0tOS42NjA3LTQuMTI1NGE0LjQ3MDggNC40NzA4IDAgMCAxLS41MzQ2LTMuMDEzN2wuMTQyLjA4NTIgNC43ODMgMi43NTgyYS43NzEyLjc3MTIgMCAwIDAgLjc4MDYgMGw1Ljg0MjgtMy4zNjg1djIuMzMyNGEuMDgwNC4wODA0IDAgMCAxLS4wMzMyLjA2MTVMOS43NCAxOS45NTAyYTQuNDk5MiA0LjQ5OTIgMCAwIDEtNi4xNDA4LTEuNjQ2NHpNMi4zNDA4IDcuODk1NmE0LjQ4NSA0LjQ4NSAwIDAgMSAyLjM2NTUtMS45NzI4VjExLjZhLjc2NjQuNzY2NCAwIDAgMCAuMzg3OS42NzY1bDUuODE0NCAzLjM1NDMtMi4wMjAxIDEuMTY4NWEuMDc1Ny4wNzU3IDAgMCAxLS4wNzEgMGwtNC44MzAzLTIuNzg2NUE0LjUwNCA0LjUwNCAwIDAgMSAyLjM0MDggNy44NzJ6bTE2LjU5NjMgMy44NTU4TDEzLjEwMzggOC4zNjQgMTUuMTE5MiA3LjJhLjA3NTcuMDc1NyAwIDAgMSAuMDcxIDBsNC44MzAzIDIuNzkxM2E0LjQ5NDQgNC40OTQ0IDAgMCAxLS42NzY1IDguMTA0MnYtNS42NzcyYS43OS43OSAwIDAgMC0uNDA3LS42Njd6bTIuMDEwNy0zLjAyMzFsLS4xNDItLjA4NTItNC43NzM1LTIuNzgxOGEuNzc1OS43NzU5IDAgMCAwLS43ODU0IDBMOS40MDkgOS4yMjk3VjYuODk3NGEuMDY2Mi4wNjYyIDAgMCAxIC4wMjg0LS4wNjE1bDQuODMwMy0yLjc4NjZhNC40OTkyIDQuNDk5MiAwIDAgMSA2LjY4MDIgNC42NnpNOC4zMDY1IDEyLjg2M2wtMi4wMi0xLjE2MzhhLjA4MDQuMDgwNCAwIDAgMS0uMDM4LS4wNTY3VjYuMDc0MmE0LjQ5OTIgNC40OTkyIDAgMCAxIDcuMzc1Ny0zLjQ1MzdsLS4xNDIuMDgwNUw4LjcwNCA1LjQ1OWEuNzk0OC43OTQ4IDAgMCAwLS4zOTI3LjY4MTN6bTEuMDk3Ni0yLjM2NTRsMi42MDItMS40OTk4IDIuNjA2OSAxLjQ5OTh2Mi45OTk0bC0yLjU5NzQgMS40OTk3LTIuNjA2Ny0xLjQ5OTdaIi8+PC9zdmc+" alt="Install Codex/ChatGPT Plugin" /></a> |
| 14 | </p> |
| 15 | |
| 16 | <p align="center"> |
| 17 | <a href="https://docs.exa.ai/reference/exa-mcp"><b>Documentation</b></a> |
| 18 | · |
| 19 | <a href="https://www.npmjs.com/package/exa-mcp-server"><b>NPM Package</b></a> |
| 20 | · |
| 21 | <a href="https://dashboard.exa.ai/api-keys"><b>Get your API key</b></a> |
| 22 | </p> |
| 23 | |
| 24 | ## Installation |
| 25 | |
| 26 | Connect to Exa's hosted MCP server: |
| 27 | |
| 28 | |
| 29 | https://mcp.exa.ai/mcp |
| 30 | |
| 31 | |
| 32 | Or use a plugin when your client supports one. |
| 33 | |
| 34 | ### Agent Plugin |
| 35 | |
| 36 | This repository is an [Agent Plugin]. Install it with any [compatible client]. |
| 37 | |
| 38 | ### Claude |
| 39 | |
| 40 | Install from the [Claude Plugin Marketplace], or run: |
| 41 | |
| 42 | |
| 43 | claude plugin install exa@claude-plugins-official |
| 44 | |
| 45 | |
| 46 | ### Codex / ChatGPT |
| 47 | |
| 48 | Install via [Plugins in ChatGPT], or run: |
| 49 | |
| 50 | |
| 51 | codex mcp add exa --url https://mcp.exa.ai/mcp |
| 52 | |
| 53 | |
| 54 | ### Other MCP Clients |
| 55 | |
| 56 | Most clients can be configured manually with the standard `mcpServers` shape: |
| 57 | |
| 58 | |
| 59 | { |
| 60 | "mcpServers": { |
| 61 | "exa": { |
| 62 | "type": "streamable-http", |
| 63 | "url": "https://mcp.exa.ai/mcp", |
| 64 | } |
| 65 | } |
| 66 | } |
| 67 | |
| 68 | |
| 69 | <details> |
| 70 | <summary><b>Client-specific configs</b></summary> |
| 71 | |
| 72 | Exa MCP works with most other clients, point them at `https://mcp.exa.ai/mcp`. |
| 73 | |
| 74 | | Client | Where to add it | |
| 75 | | --- | --- | |
| 76 | | Kiro | Use the [Kiro power], or add manually to `~/.kiro/settings/mcp.json` | |
| 77 | | LM Studio | [Add to LM Studio], or add manually to `mcp.json` | |
| 78 | | Replit | [Add to Replit] | |
| 79 | | Grok Build | `/marketplace` → install **Exa**, then `/mcp` to sign in | |
| 80 | | Gemini CLI | Add manually to `~/.gemini/settings.json` | |
| 81 | | OpenCode | Add manually to `opencode.json` | |
| 82 | | Windsurf | Add manually to `~/.codeium/windsurf/mcp_config.json` | |
| 83 | | Google Antigravity | Add manually to `mcp_config.json` | |
| 84 | | Zed | Add manually to `settings.json` under `context_servers` | |
| 85 | | Warp | [Settings → Agents → MCP servers] | |
| 86 | | v0 by Vercel | [Settings → MCP connections] | |
| 87 | |
| 88 | </details> |
| 89 | |
| 90 | ## Available Tools |
| 91 | |
| 92 | ### Default Tools |
| 93 | |
| 94 | | Tool | Description | |
| 95 | | --- | --- | |
| 96 | | `web_search_exa` | Search the web for any topic and get clean, ready-to-use content | |
| 97 | | `web_fetch_exa` | Read a webpage's full content as clean markdown from one or more URLs | |
| 98 | |
| 99 | ### Optional Tools (enable via the `tools` parameter) |
| 100 | |
| 101 | | Tool | Description | |
| 102 | | --- | --- | |
| 103 | | `agent_run` | Run an [Exa Agent] for multi-step research, list-building, enrichment, and structured output | |
| 104 | | `web_search_advanced_exa` | Advanced search with filters, domains, dates, highlights, summaries, and subpage crawling | |
| 105 | |
| 106 | Enable tools by appending them to the MCP URL (this will replace the defaults, so include all you want): |
| 107 | |
| 108 | |
| 109 | https://mcp.exa.ai/mcp?tools=web_search_advanced_exa |
| 110 | https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa,agent_run |
| 111 | |
| 112 | |
| 113 | Exa Agent requires authentication (OAuth or an [API key]). |
| 114 | |
| 115 | ## Agent Skills |
| 116 | |
| 117 | Skills live in [`skills/`] and load with Agent Plugin / Claude plugin installs. |
| 118 | |
| 119 | | Skill | Path | Use when | |
| 120 | | --- | --- | --- | |
| 121 | | `search` | [`skills/search/`] | Deep research, lead gen, competitive analysis, multi-step web investigation | |
| 122 | | `exa-agent` | [`skills/exa-agent/`] | Exa Agent runs, enrichment, structured output, Connect providers | |
| 123 | |
| 124 | Invoke from your client's skill UI (or `/skill-name` where supported). MCP-only setups still get the tools; skills add orchestration on top. |
| 125 | |
| 126 | ## Authentication |
| 127 | |
| 128 | The hosted MCP server works anonymously with rate limits. For higher limits and access to Exa Agent, use either OAuth or an API key. |
| 129 | |
| 130 | **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`. |
| 131 | |
| 132 | If you prefer, you can get an API key from the [dashboard] and pass it on the URL as `?exaApiKey=…`. You can also send it as a `Authorization: Bearer …` header or an `x-api-key` header. |
| 133 | |
| 134 | Built with ❤️ by Exa |