Loomal

Exa MCP server in Claude Code real web search in the terminal.

Exa is a remote MCP server, so connecting Claude Code is one CLI command — no local process, no npm install, just a URL with your API key.

Exa gives Claude Code something it doesn't have natively: a search engine built for AI consumption — fast web search, crawling, and a code-context tool that retrieves real usage examples from across the public web. The open-source server (github.com/exa-labs/exa-mcp-server, 4.6k stars) is also offered as a hosted remote endpoint, which is the cleanest way to connect.

Because it's remote, there's nothing to run locally. You register a URL, Claude Code speaks streamable HTTP to it, and you're done. You'll need an Exa API key from their dashboard first.

What Exa adds to a coding session

Claude Code is strongest when it can verify instead of recall. With Exa connected, it can search the live web for an error message, crawl a changelog, or pull code-context examples showing how other projects call the API you're integrating. As of mid-2026 the hosted server exposes web search, crawling, and code-context tools — the repo and your /mcp view show the live list.

For agentic refactors and dependency upgrades, the code-context tool is the standout: real-world usage beats documentation when the docs are thin.

Add it with one command

Grab an API key from Exa's dashboard, then register the remote endpoint. By default this lands in your local scope (just you, just this project); add --scope user to make it available everywhere.

Terminal
claude mcp add --transport http exa \
  "https://mcp.exa.ai/mcp?exaApiKey=YOUR_EXA_API_KEY"

Or commit it to the repo with .mcp.json

For team projects, a .mcp.json at the repo root gives every collaborator the server on checkout — though each person should supply their own key rather than committing one. Claude Code will ask for approval before using project-scoped servers.

.mcp.json
{
  "mcpServers": {
    "exa": {
      "type": "http",
      "url": "https://mcp.exa.ai/mcp?exaApiKey=YOUR_EXA_API_KEY"
    }
  }
}

Troubleshooting in Claude Code

Run /mcp inside a session to see server status, or claude mcp list from the shell. A failed connection here is almost always the key: a missing or invalid exaApiKey in the URL returns auth errors rather than a clear "wrong key" message. Re-check the query parameter before anything else.

If you added the server mid-session, start a new session — registration applies to new conversations. Scope confusion is the other recurring issue: claude mcp list tells you which scope each server came from, and claude mcp remove takes a --scope flag when a duplicate entry shadows the one you're editing. Exa's live listing on the Loomal marketplace at https://loomal.ai/marketplace/exa shows the expected tool list for comparison.

FAQ

How do I add Exa to Claude Code?

Run claude mcp add --transport http exa "https://mcp.exa.ai/mcp?exaApiKey=YOUR_KEY" with a key from Exa's dashboard. For a team setup, declare the same server in a .mcp.json at the project root instead.

Do I need to run anything locally?

No. Exa's MCP server is hosted — Claude Code connects over streamable HTTP. The open-source repo exists if you'd rather self-host, but the remote endpoint is the zero-maintenance path.

Is Exa free to use?

The MCP server code is open source, but searches run against Exa's API, which is metered under their own pricing — new accounts typically get trial credits. Check Exa's pricing page for current terms.

Exa connects but tool calls fail. What's wrong?

Usually an exhausted or invalid API key — verify it in Exa's dashboard and confirm the exaApiKey query parameter survived your shell quoting. Then run /mcp in a fresh session to confirm the server shows as connected.

More MCP servers for Claude Code.

Browse the live index — tool lists probed, not promised.

Browse the marketplace