mrkeyoor.com_
Tue 01 Sept 16:15 UTC
SearchMCP servermeasured 19 Aug 2026

Exa

Exa is a search MCP server from Exa Labs that gives an agent two things: a web search backed by Exa's neural index, and a fetch tool that pulls a single URL's contents back as text. It runs over stdio from npx, identifies itself as exa-search-server, and needs an Exa API key.

BootBOOTS ✓We started it and initialize came back in 13.0s.
Tools2tools/list payload 2,139 bytes
Context tax~534estimated tokens for the whole tools/list, chars/4 estimate
Resources / prompts1 / 1counts returned by resources/list and prompts/list
Measured19 Aug 2026one run of the harness, clean environment, no credentials · how we test

How we started it

npx -y exa-mcp-server
Verdict

Use it if you want your agent to search the live web and you're fine paying Exa for the index. Two tools, both obvious, and the whole tools/list came back at roughly 534 tokens (chars/4 estimate, measured 2026-08-19), which is about as cheap as a useful server gets. The reason against is the bill and the lock-in: the search quality you're buying is Exa's index, not a protocol feature, and a key that runs out turns both tools into error messages your model will keep retrying.

Use it if

You want a research agent that can find pages it wasn't told about, and you already have or will buy an Exa API key.
You need retrieval plus page contents from one server instead of wiring a search API to a separate scraper.
Your context budget is already crowded by heavier servers and you can only afford a search tool that costs a few hundred tokens.
You prefer neural/semantic search over keyword matching for questions phrased as sentences.

Skip it if

You can't send queries to a third-party index because the prompts themselves are confidential.
You only ever fetch known URLs, in which case the built-in fetch of most clients already does it for free.
You want per-query cost caps enforced inside the server; billing lives in your Exa account, not here.
You're building offline or air-gapped, where a hosted index is not an option at any price.
You need site-restricted crawling, pagination control, or a scraper that renders JavaScript.

The bill for your context window

ToolEst. tokensDescribed?Required params
web_search_exa~325yes (566 chars)1
web_fetch_exa~209yes (270 chars)1

This is the shape you want. The full tools/list payload was 2,139 bytes, about 534 tokens by the chars/4 estimate, and the split is sensible: web_search_exa carries roughly 325 of them and web_fetch_exa roughly 209, each with one required parameter. Nothing is spent on option catalogues or enum walls. Against the heaviest server in this batch, a two-tool search surface at this weight is close to free, and it stayed well under the median context tax we measured across the batch. You could run it alongside three other servers and still not notice it in the prompt.

Setup reality

npx -y exa-mcp-server, stdio transport, and an Exa API key in the environment. Our probe runs every server as an unprivileged user with a clean env and no secrets, and this one still completed initialize and answered tools/list, resources/list and prompts/list without a key, so the credential check happens at call time rather than at boot. That's convenient for testing and a small trap in production: a missing or expired key looks like a working server until the first search comes back empty. Version 3.4.1 spoke protocol 2025-06-18 to us. No env hints were scraped from stderr because nothing was written there.

Questions people ask

Does the Exa MCP server work without an API key?

It starts and lists its tools without one, which is how we measured it. The key is checked when a tool is actually called, so a keyless install boots cleanly and then fails at the first search.

How many tools does it add to my context?

Two: web_search_exa and web_fetch_exa. Together their definitions came to roughly 534 tokens by our chars/4 estimate when we booted it on 2026-08-19.

Is it slow to start?

Initialize took 12,959 ms on our box, and nearly all of that is npx resolving and downloading the package on first run. Pin it locally or cache the download if cold-start latency matters to you.

Does it replace a scraper?

Only for simple pages. web_fetch_exa returns one URL's contents and takes one required parameter; it isn't a crawler, and it won't drive a browser for JavaScript-rendered sites.

Other search servers we started

ServerVendorBootsContext tax
Brave Search (archived)Anthropic (archived)~0 tokens
DuckDuckGo Searchcommunity~0 tokens
TavilyTavily~1,924 tokens

How this page is made: the server is spawned as an unprivileged user with a clean environment and no credentials, then asked for its tools, resources and prompts over stdio. Token figures are estimates at four characters per token, not a tokenizer count. One run, one machine. Corrections: contact the desk.

← All measured MCP servers