Visitar URL original
GitHub - exa-labs/exa-mcp-server: Exa MCP for web search and web crawling! · GitHub
Skip to content

Latest commit

 

History

448 Commits

Folders and files

Repository files navigation

Exa
Exa MCP Server

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Install in Cursor Install in VS Code Install Claude Plugin Install Codex/ChatGPT Plugin

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).

Dynamic Highlights (beta)

Add dynamicHighlights=true to the MCP URL to make web_search_exa and web_search_advanced_exa return Dynamic Highlights. These are highlights chosen across all results under one shared budget, not a fixed budget per URL, so less text reaches your agent's context. When the server runs locally, set DYNAMIC_HIGHLIGHTS=true instead.

https://mcp.exa.ai/mcp?dynamicHighlights=true

Agent Skills

Skills live in skills/ and load with Agent Plugin installs. The Claude plugin in plugins/exa/ ships a copy of them; npm test fails when the copy drifts. Each package version bump on main publishes plugins/exa/ to the root of the claude-plugin branch, which Claude's plugin directory reads. To publish a plugin-only change between releases, run the Publish Claude plugin workflow manually.

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

Releases

Packages

Used by

Contributors

Languages