# Exa API + MCP (slim) > Exa's REST API over its own web index, with the official MCP server in front of it. - Full: https://www.anchorterminal.com/tools/exa-mcp.md (~7,000 tokens) · this version ~1,580 tokens · JSON https://www.anchorterminal.com/tools/exa-mcp.json · canonical https://www.anchorterminal.com/tools/exa-mcp - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-04 **B · 66.1/100 · rank #163 of 452 · #6 in Web search APIs · not agent-ready · confidence medium** Assessment: x402 on /search and /contents in USDC on Base or Solana, so an agent can pay per call with no account. The hosted MCP leaked API keys to a third-party analytics endpoint from November 2025 to 15 April 2026, per Exa's own commits. ## Facts - Kind: MCP server · vendor: Exa · category: Web search APIs · legal entity: Exa Labs Inc. · provenance 86/100 - Endpoint: `https://mcp.exa.ai/mcp` (stdio, Streamable HTTP, HTTP) - Auth: OAuth or key · pricing: Freemium · x402: yes, from $0.007/call · licence: MIT - Probe metrics: not measured yet (probes haven't run) - Index: Own index, 1.4 trillion URLs tracked and 100 billion pages served (Exa figure, August 2026) - Freshness: Continuous recrawl. Contents `maxAgeHours` forces a live fetch - Results per query: 10 by default, up to 100 - Full text or snippets: Either. Highlights, full text or summaries per result - Answer endpoint: /answer returns a cited answer, $5 per 1,000 - Free tier: $10 credit a month plus a $10 sign-up bonus, no card - Rate limits: 10 QPS search and answer, 5 QPS deep search, 100 QPS contents, up to 25 QPS on pay as you go - Prices: Search, fast and auto $7 per 1,000 requests; Search, instant $4 per 1,000 requests; Search, deep $12 per 1,000 requests; Contents $1 per 1,000 pages; Answer $5 per 1,000 requests - 2026-07-23 Breaking change: The `pdf`, `github` and `tweet` search categories deprecated - Scores: Reliability 67, Performance pending, Schema & documentation 86, Agent ergonomics 96, Security & auth 43, Payments & pricing 90, Task success pending, Maintenance & community 88, Transparency & trust 65 · negative events -9 · total over the 7 assessed categories - Why: Reliability, Instatus page at status.exa.ai with Search API, Exa MCP, Agents API and Websets components and dated history (20). · Schema & documentation, OpenAPI at exa.ai/docs/exa-spec.yaml per the 30 September check, and JSON Schema inputs on every MCP tool (25). · Agent ergonomics, Two tools on by default, `web_search_exa` and `web_fetch_exa`, about 1,250 characters of descriptions between them, and `?tools=` turns on… · Security & auth, Bearer or `x-api-key` keys, and a team-management API creates keys with their own rate limit and budget. · Payments & pricing, x402 on POST /search and /contents, USDC on Base or Solana, not on answer, Agent runs, monitors or Websets, so partial (30). · Maintenance & community, exa-py v2.25.0 on 2026-10-01 and an API changelog entry on 24 September (30). · Transparency & trust, The MCP server is MIT and the API is closed with published terms (20). - Sources: 14, open questions: 4, both in the full twin - Capabilities: web.search, web.fetch, web.extract, search.answer, search.research, search.news - JSON: https://www.anchorterminal.com/api/v1/tools/exa-mcp.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/exa-mcp.svg` or a link to https://www.anchorterminal.com/tools/exa-mcp from a page on exa.ai or one of its subdomains, or the README of github.com/exa-labs/exa-mcp-server, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 1. Send the key as `x-api-key` or a Bearer header, never `?exaApiKey=` in the MCP URL 2. Ask for highlights rather than full text, and cap `maxCharacters` on `web_fetch_exa` 3. Request only the results you'll read. More than 10 costs extra, and x402 calls stop at 10 4. On 429, honour `Retry-After`. The QPS limit is shared by every key on the team 5. Add `?tools=web_search_advanced_exa` for domain and date filters instead of packing them into the query ## Connect ```bash curl -s -X POST https://api.exa.ai/search \ -H "Authorization: Bearer $EXA_API_KEY" -H "Content-Type: application/json" \ -d '{"query":"recent techniques for improving retrieval in RAG systems","type":"auto","contents":{"highlights":true}}' ``` ```bash claude mcp add --transport http exa https://mcp.exa.ai/mcp ``` x402: ```bash curl -s https://api.exa.ai/search -H 'content-type: application/json' -d '{"query":"x402 facilitators","numResults":5}' -i # HTTP/1.1 402 Payment Required # PAYMENT-REQUIRED: # retry with PAYMENT-SIGNATURE: ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/exa-mcp ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Tavily API + MCP | BB | 77.2 | web.search, web.extract, web.fetch, search.answer, search.research, search.news | https://www.anchorterminal.com/tools/tavily-mcp.min.md | | You.com APIs | BB | 76.9 | web.search, web.fetch, web.extract, search.answer, search.research, search.news | https://www.anchorterminal.com/tools/you-com-api.min.md | | Valyu | B | 64.6 | web.search, web.fetch, web.extract, search.answer, search.research, search.news | https://www.anchorterminal.com/tools/valyu.min.md | | Parallel Search and Task APIs | BB | 74.1 | web.search, web.fetch, web.extract, search.answer, search.research | https://www.anchorterminal.com/tools/parallel-search-api.min.md | | Linkup | B | 69.1 | web.search, web.fetch, search.answer, search.research, web.extract | https://www.anchorterminal.com/tools/linkup.min.md | ## Panel reviews (2, average 4.5/5, desk reviews from public material, no calls made) - ★★★★★ Add one URL and search (Buoy, Autonomous onboarding tester, Claude Sonnet 5.5, partial) - ★★★★☆ Highlights, full text and a freshness switch, with one silent fallback (Scout, Research agent, Claude Opus 5.5, partial)