Stop Getting Stale Answers From Claude Code: Exa MCP Adds AI-Native Web Search That Returns Clean Page Content, No Key Needed

Exa MCP: AI-native web search for Claude Code

Last Verified: September 2026 — commands checked against exa-labs/exa-mcp-server and the official Claude Code MCP docs

Ask Claude Code about a library that shipped last month and one of two things happens: it answers from training data that’s already stale, or it searches and comes back with a list of links and snippets it then has to fetch one by one. Either way you spend the next few turns steering it toward the page that actually has the answer.

Exa MCP connects Claude Code to Exa, a search engine built for AI agents. Instead of ten blue links, web_search_exa returns clean page content ready to read, and web_fetch_exa turns any URL into Markdown. It’s a hosted server, so setup is one command, and it works without an API key to start.

Already using our Firecrawl MCP guide? They pair well: Exa is best at finding the right pages, Firecrawl at scraping JavaScript-heavy sites once you know where to look.

Quick Start

One command, no key needed:

claude mcp add --transport http --scope user exa https://mcp.exa.ai/mcp

Restart Claude Code and run claude mcp list. Total time: about 1 minute. Anonymous use is rate-limited; add an API key later if you hit the limit.

⚡ Copy This Prompt: Let Claude Code Install and Verify It For You

Skip the manual steps below and hand the whole job to the agent instead:

You have shell access and the `claude mcp` CLI on this machine. Connect the Exa MCP server to Claude Code and report back. Do not tell me it's done unless step 4 actually confirms it:

1. Run `claude mcp list`. If an exa entry already exists, show me its URL and stop instead of adding a second one.
2. Add Exa's hosted server for all projects (no key needed to start):
   `claude mcp add --transport http --scope user exa https://mcp.exa.ai/mcp`
3. Run `claude mcp list` and confirm exa shows Connected.
4. Use `web_search_exa` to find the latest release notes for Claude Code, then use `web_fetch_exa` on the top result and give me 3 bullet points from the page with its URL.

If I later want higher limits, tell me to create a key at https://dashboard.exa.ai/api-keys and re-add the server with an `x-api-key` header. Never ask me to paste the key into this chat, and never put it in the URL. If any step fails, give me the exact error and the command that produced it. Do not skip ahead.

The last step is a real search-then-read test, so you see Exa’s output before trusting it with actual work.

What You’ll Need

RequirementWhy You Need ItTime
Claude Code installedThe client that calls the Exa tools0 min
Nothing else to startThe hosted server works anonymously, with rate limits0 min
An Exa API key (optional)Higher limits and access to the Exa Agent research tool~2 min

Step-by-Step Setup

Prefer to do it by hand instead of delegating to the agent? Here’s the manual version.

Step 1 — Add the hosted server

~30 sec

--scope user makes Exa available in every project:

claude mcp add --transport http --scope user exa https://mcp.exa.ai/mcp

Prefer plugins? Exa is also in the official Claude plugin marketplace, which adds its search Skills on top of the same tools:

claude plugin install exa@claude-plugins-official

Step 2 — Add an API key (optional)

~2 min

Create a key at dashboard.exa.ai/api-keys, remove the anonymous entry with claude mcp remove exa --scope user, and re-add it with the key as a header:

claude mcp add --transport http --scope user exa https://mcp.exa.ai/mcp \
  --header "x-api-key: <your-exa-api-key>"

Exa also accepts the key as a URL parameter, but a header keeps it out of logs and shell history.

Step 3 — Turn on advanced search (optional)

~30 sec

By default you get web_search_exa and web_fetch_exa. Add web_search_advanced_exa for domain, date, and highlight filters. The tools parameter replaces the defaults, so list every tool you want:

claude mcp add --transport http --scope user exa \
  "https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa,web_search_advanced_exa"

What Each Piece Does

ToolWhat Claude Can Do With It
web_search_exa (default)Search the web and get clean, ready-to-use page content back instead of just links
web_fetch_exa (default)Read one or more URLs as clean Markdown
web_search_advanced_exa (optional)Search with filters for domains and dates, plus highlights, summaries, and subpage crawling
agent_run (optional)Run an Exa Agent for multi-step research, list building, and structured output. Needs OAuth or an API key
Hosted serverNothing runs on your machine. Claude Code talks to mcp.exa.ai over HTTP

Verify It’s Actually Working

claude mcp list
✔ exa    https://mcp.exa.ai/mcp (HTTP) – Connected
! exa    rate limit errors  → add an API key (Step 2)
✘ exa    Failed to connect  → check the URL ends in /mcp and quote it if it has ?tools=

Then give Claude a question its training data can’t answer:

Use Exa to find what changed in the latest release of the framework this repo uses, and tell me if any of it affects our code

If Claude calls web_search_exa, reads a result, and cites a URL from the last few weeks, it’s working.

Common Mistakes to Avoid

  • Adding only the advanced tool. ?tools=web_search_advanced_exa replaces the defaults, so basic search and fetch disappear. List every tool you want in one comma-separated value.
  • Leaving the URL unquoted. A ? or & in the URL can be eaten by your shell. Wrap the URL in quotes whenever it has parameters.
  • Putting the API key in the URL. It works, but the key ends up in your Claude Code config and shell history in plain sight. Use the x-api-key header.
  • Registering it twice. Installing the plugin and running claude mcp add gives Claude two copies of every Exa tool. Pick one.
  • Trusting search results blindly. Web pages can contain prompt-injection text. Ask Claude to cite its sources, and review anything it plans to run based on what it read.

Q&A

Is it free?

You can connect and search without a key, with rate limits. For heavier use or Exa Agent, create a key in the Exa dashboard and check Exa’s current pricing there.

Doesn’t Claude Code already have web search?

It does. Exa is an alternative that returns cleaned page content along with results and adds filters and a research agent. Many people keep both and tell Claude when to use Exa.

Exa or Firecrawl?

Exa for finding pages and reading them as text. Firecrawl for scraping sites that need JavaScript rendering or for crawling a whole site. They don’t conflict.

Can I sign in instead of using a key?

Yes. Exa supports OAuth. Adding ?login to the URL forces the sign-in flow, which you complete with /mcp in Claude Code.

How do I remove it?

claude mcp remove exa --scope user. If you created an API key, revoke it in the Exa dashboard.

Official Resources

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *