Exa Search is search built for LLMs, not humans. The query is a sentence (“recent posts from indie founders about pricing experiments”), not a keyword string. Results come back with content highlights pre-extracted and similarity scores, so the agent doesn’t need a second roundtrip to figure out which page actually answered the question.
What it produces: semantic search results with title, url, score, and highlights (the relevant excerpts already extracted). Optional find_similar for “show me more pages like this one,” and get_contents for full-text fetch when you’ve narrowed down.
Best for: research tasks where Google’s keyword-match returns junk. “Find blog posts where founders share their first $100K MRR breakdown” — Google gives SEO content; Exa gives actual posts. Also great for content-similarity (“articles similar to ours” for cluster mapping).
Skip if: you only need to look up known sources or doc pages — Context7 for libs, Fetch MCP for known URLs, Brave Search for cheaper general web. Exa is paid; use it where the neural ranking actually matters.
Setup gotchas: API key required (free tier exists, paid scales by query count + content fetched). Set EXA_API_KEY. The model needs prompting to use Exa for semantic queries vs. fetching for known URLs — otherwise it’ll Exa-search for “anthropic.com pricing page” and waste a query.
Real-world workflow: content research. Before writing a new article, I run “exa search: founder posts about [topic] with concrete numbers, last 12 months.” It returns 10 actual posts with highlights — I pick 3 to cite, skip the SEO listicles.
Compatible alternatives: Brave Search for cheaper general web, Perplexity for synthesized answers, Firecrawl MCP for site-specific deep crawl.
Worth the $20/month if you do real research weekly.