Ask Claude about something that happened last week and you hit the wall. The model was trained months ago, so it either guesses, hedges, or tells you it cannot browse. You end up doing the search yourself in another tab, copying the good bits back into the chat, and asking your question again with the fresh context pasted in. You are the courier again, this time carrying the whole live web to the model by hand.
Exa MCP closes that loop. Instead of you searching and pasting, the AI searches the web itself, reads the pages, and answers from what it just found. You ask “what changed in the OpenAI pricing this month?” and Claude runs a live search, pulls the current pages, and tells you, without you leaving the chat.
Exa is an AI search engine built for exactly this. Its MCP server, hosted at mcp.exa.ai, hands your assistant live web search, full-page reading, and a research agent that can chain the two together. This guide covers what it does, the two ways to run it, the setup for each client, the one tool most people never switch on, and the risk that comes free with any server that reads the open web.
- What it is: Exa’s official MCP server at mcp.exa.ai. It gives Claude, Cursor, and other clients live web search, full-page reading, and a research agent, all in plain language.
- Setup: add
https://mcp.exa.ai/mcpas an HTTP server and you are done, or run the localexa-mcp-servernpm package with anEXA_API_KEY. - It faces outward, not inward. Most MCP servers connect the agent to your own data. Exa connects it to everything you do not own, the live public web.
- The tool most people skip: Exa Agent runs a whole research task on its own, not just one search. It is off by default. Turn it on for the real unlock.
- Pair it with a bookmarks MCP. Exa finds new pages across the whole web. It has no idea what you already saved and decided was good. ContextBolt brings your own curated slice into the same prompt.
What Exa MCP actually does
The Model Context Protocol is an open standard Anthropic released in late 2024. It defines how an AI client talks to an outside tool. A server exposes a set of tools, the client calls them mid-conversation, and the results flow straight back into the model’s reasoning. No copy-paste, no switching tabs, no leaving the chat.
Exa is a search engine, but not the kind you scrape. Regular search returns a page of blue links you then have to fetch and clean. Exa was built for AI, so it does neural search over meaning rather than keywords, and it returns clean, ready-to-read content instead of a SERP. That difference matters here, because the agent gets usable text back in one call rather than a list of URLs it has to go open one by one.
The MCP server wires that engine to your AI client. Once connected, the assistant can run a live web search, read a specific page as clean markdown, run an advanced search with date and domain filters, and hand a whole research task to Exa Agent. The full reference lives in the official Exa MCP docs and the exa-mcp-server repo.
Here is the thing that makes Exa MCP different from most of the servers you will connect. HubSpot MCP, Notion MCP, and a database server all connect the agent to something you own. Exa points the other way. It connects the agent to everything you do not own, the live public web, which is exactly the gap a trained model has. Every other server tells Claude about your world. This one tells Claude about the rest of it.
Two ways to run Exa MCP
Search “exa mcp” and you meet two setups with the same name. Knowing which one you want saves the usual half hour of following the wrong guide.
The hosted remote server: Exa runs it at mcp.exa.ai/mcp. You add that one URL as an HTTP connector and you are done. Nothing to install, no package, no config file for the common clients. You can even pick which tools load by adding them to the URL, like ?tools=web_search_exa, so a client only sees the tools you want. This is the right choice for almost everyone.
The local npm server: The same code runs on your machine with npx -y exa-mcp-server, and you pass your key through an EXA_API_KEY environment variable. It is open source, it runs locally, and it is the pick when you want the process on your own hardware, want to script it into your own tooling, or want to pin a version. It is more moving parts for no benefit unless you have that specific reason.
The confusion is worth clearing up because the two paths feel different at setup even though they hit the same engine. If you just want Claude to search the web, use the hosted URL and skip the token dance. Reach for the local server only when you have a concrete reason to self-host. Either way you will want a key from the Exa dashboard for anything past the free rate limits.
How to connect Exa MCP to your AI client
The hosted server is one endpoint, mcp.exa.ai/mcp. What changes per client is how you add it.
| Client | How to add | Auth |
|---|---|---|
| Claude Code | claude mcp add —transport http exa https://mcp.exa.ai/mcp | OAuth via /mcp, or key |
| Claude Desktop / Claude.ai | Install the Exa connector from the plugin marketplace, or add the URL as a custom connector | OAuth consent screen |
| Cursor | One-click install from the Cursor marketplace, or add the URL to .cursor/mcp.json | OAuth, or key |
| Local server (self-host) | npx -y exa-mcp-server with EXA_API_KEY set | API key |
The fast path for Claude Code: In your project, run claude mcp add --transport http exa https://mcp.exa.ai/mcp. Start Claude Code with claude, type /mcp, and finish the sign-in. Ask “search the web for the latest on X and summarize it” to confirm the tools loaded.
The fast path for Claude Desktop: Open Settings, then Connectors or the Plugins tab, search “Exa,” and install the connector. If you would rather add it by hand, use Add custom connector and paste the URL. Then fully quit and reopen Claude Desktop. A window reload does not pick up a new connector, and that one missed step is behind most “my server is not working” complaints.
Cursor: The quickest route is the one-click install from the Cursor marketplace. Or add the server to .cursor/mcp.json with the same URL and authorize when prompted.
The local server: Get a key from the Exa dashboard, set it as EXA_API_KEY, and run npx -y exa-mcp-server, or point your client’s config at that command. For a client that only speaks to remote URLs, you can wrap the hosted server with mcp-remote in the config instead.
What you can actually do with it once connected
Live web search sounds obvious until you have used it inside a real workflow for a week. Here is the short list people actually reach for.
Answer questions past the model’s cutoff: “What did Anthropic ship this month, and what does it mean for anyone building agents?” The agent runs a live search, reads the current pages, and answers from today’s web instead of last year’s training data. The stale-model wall from the intro is gone.
Read a specific page without leaving the chat: Paste a URL and ask “pull this page and give me the three claims that matter.” The web_fetch_exa tool reads the full page as clean markdown, so the agent works from the real content, not a guess about what the link probably says.
Do filtered research: “Find posts from the last 30 days, only from official docs and engineering blogs, about MCP security.” Advanced search takes date ranges, domains, and categories, so you get a tight set instead of the whole noisy web.
Hand off a whole research task: This is the one most people never switch on. Exa Agent takes a goal, not a query. “Build me a list of every YC company in the last two batches working on developer tools, with a one-line description of each.” It chains searches, reads pages, and returns a structured result you did not have to babysit.
“Research the current state of open-source MCP registries, read the top sources, and give me a short brief with links.”
That single prompt replaces a half hour of searching, opening tabs, and skimming. That is the shape of the win with Exa MCP. Not a faster search box, but the whole find-read-summarize loop collapsed into one line.
Where Exa MCP still needs a human
A server that reads the open web brings a different risk profile than one that touches your own data. It cannot delete your files or change a record. What it can do is pour untrusted text straight into your model, so the honest limits are worth reading before you lean on it.
Web content is untrusted input: When the agent fetches a page, whatever that page says lands in the model’s context. A page can carry hidden instructions aimed at your assistant, the classic prompt-injection problem that gets worse the moment the same agent can also act. Simon Willison’s lethal trifecta writeup lays out why search plus private data plus the ability to act is the combination to watch. If Exa MCP shares a session with a server that can write, keep tool approval on.
Agent runs cost money: Web search is cheap and there is a free tier. Exa Agent is a different beast, billed per run because it is doing real work under the hood. That is fine when you mean to spend it, and a surprise when the agent reaches for it on a question a single search would have answered. Know which tool it is calling.
It searches the public web, not your world: Exa is fantastic at finding pages anyone can reach. It has no view into your private docs, your saved threads, or the decision you made last quarter. For that you connect a different server. Exa is the outward half of the agent’s knowledge, never the whole of it.
It answers, it does not watch: MCP is request-and-response. Exa MCP will not sit in the background and ping you when a competitor changes a page. That is a monitoring job. If you want an agent that watches pages over time and flags real changes, that is a different pattern, closer to competitor monitoring with MCP.
The mistakes that break Exa MCP setups
The same handful of issues come up over and over.
Reloading instead of restarting: Claude Desktop reads its connector list at full startup only. Reload Window does nothing. Quit fully, reopen, then check for the tools.
Expecting Exa Agent by default: The heavy research tool is off until you enable it. People ask for a full research task, get a single search back, and think the server is broken. Turn on the agent tool, or scope the hosted URL to include it.
Ignoring the free-tier rate limits: The free plan is enough to try the thing, then you hit the ceiling mid-task and the calls start failing. If you are using it for real, add a key from the dashboard so the limit is not a surprise.
Pasting a token when OAuth would do: For the hosted server, the sign-in flow handles auth. Copying an API key into a config file is the local-server path. Mixing the two is a common source of “it will not authenticate.”
Running too many servers at once: Each MCP server is a subprocess with startup and memory cost. Past ten, you feel it. Three to six is the sweet spot, and a live-search slot is one of the highest-value picks you can spend it on. For more, see the best MCP servers for knowledge workers.
Why your saved research belongs next to web search
Here is the gap nobody setting up Exa MCP talks about. Live search finds you new pages. It has no idea which pages you already found and decided were worth keeping.
Those are two different jobs. Exa is discovery. It goes out and finds things you have never seen. But half of what you actually rely on is recall, the stuff you already read, judged, and saved because it was good. The X thread with the exact prompt-injection example. The Reddit comment with the workaround that finally worked. The LinkedIn post from the person who solved the thing you are solving now. Exa cannot surface any of that, because none of it is a fresh search result. It is your curated slice, and it lives in bookmark tabs across three platforms.
Exa MCP gives Claude the open web. It does not give Claude the small, vetted corner of it that you built by hand over months. So you get an assistant that can find a hundred new sources but cannot remember the one you already trusted.
This is where a bookmarks MCP earns its slot next to Exa. ContextBolt is a Chrome extension that captures what you save on X, Reddit, and LinkedIn, tags each save by topic automatically, and exposes the whole collection through a personal MCP endpoint. The free Basic tier covers 150 bookmarks. Pro at $6 a month adds unlimited saves, encrypted cloud sync, and the MCP endpoint any client can call.
Wire it in the same way you wired Exa. Add the connector, paste your endpoint, restart. Now Claude runs both jobs in one prompt. “Search the web for the current best practices on this, and pull anything I already saved about it” returns fresh sources from Exa and the three threads you bookmarked months ago, side by side. Exa tells the agent what is out there. Your bookmarks tell it what you already decided was worth keeping. For the bigger picture of feeding an agent your own context, see the personal AI context stack.
The one opinion worth holding
Most people set up Exa MCP for the search box, ask it a few questions, and move on. That is the smaller half. The bigger half is Exa Agent, the tool that takes a goal instead of a query and does the whole research loop for you. It is off by default, so it is the part almost everyone skips, and it is the part that turns a search connector into a research assistant. If you only ever fire single searches, you are using a fraction of what you connected.
The other thing worth saying plainly. Web search fixes the outward gap in what your agent knows. It does nothing for the inward one. Exa can read the entire public web and still not know the one link you saved last week because it mattered to you. So connect both halves. Give the agent live search for discovery, give it your bookmarks for recall, and it finally knows both what is out there and what you already decided was worth keeping. That is the whole setup. Everything else is detail.