Overview
Exa.ai provides neural semantic search optimized for AI consumption. Use when meaning matters more than keywords.
Decision Flowchart
digraph exa_decision {
rankdir=TB;
node [shape=box];
start [label="Need to search the web?" shape=diamond];
known_url [label="Do you have\na specific URL?" shape=diamond];
semantic [label="Is this semantic/conceptual?\n(meaning > keywords)" shape=diamond];
recent [label="Need very recent\nnews/events?" shape=diamond];
code [label="Is this a coding/\nAPI question?" shape=diamond];
webfetch [label="WebFetch" shape=box style=filled fillcolor=lightblue];
websearch [label="WebSearch" shape=box style=filled fillcolor=lightgreen];
exa_web [label="mcp__exa__web_search_exa" shape=box style=filled fillcolor=lightyellow];
exa_code [label="mcp__exa__get_code_context_exa" shape=box style=filled fillcolor=lightyellow];
start -> known_url [label="yes"];
start -> known_url [label="no" style=invis];
known_url -> webfetch [label="yes"];
known_url -> semantic [label="no"];
semantic -> code [label="yes"];
semantic -> recent [label="no"];
code -> exa_code [label="yes"];
code -> exa_web [label="no"];
recent -> websearch [label="yes"];
recent -> websearch [label="no"];
}
## Quick Reference
| Scenario | Tool | Why |
|----------|------|-----|
| "Find papers on emergent AI behavior" | `mcp__exa__web_search_exa` | Semantic discovery |
| "Companies similar to Anthropic" | `mcp__exa__web_search_exa` | Similar content |
| "How to use React hooks" | `mcp__exa__get_code_context_exa` | Coding context |
| "Latest news on X" | `WebSearch` | Recency matters |
| "Read this URL: [link]" | `WebFetch` | Known URL |
| "error: module not found XYZ" | `WebSearch` | Exact keyword match |
| "CVE-2024-12345" | `WebSearch` | Specific identifier |
## Tool Usage
### mcp__exa__web_search_exa
query: "semantic query describing concepts" numResults: 8 (default, adjust as needed) type: "auto" | "fast" | "deep"
### mcp__exa__get_code_context_exa
query: "React useState hook examples" | "Express middleware patterns" tokensNum: 5000 (default, 1000-50000 range)
## Integration Patterns
**Discovery + Extraction:**
1. Exa finds relevant sources semantically
2. WebFetch extracts full content from best URLs
**Multi-perspective research:**
1. Exa: "academic perspectives on X"
2. Exa: "industry implementation of X"
3. Exa: "critiques of X"
4. Synthesize
**Fallback:**
1. Try Exa for semantic search
2. If results poor, fall back to WebSearch with keywords
## Anti-Patterns
| Don't | Do Instead |
|-------|------------|
| `"python pandas filter dataframe"` | Use WebSearch (keyword query) |
| Run 10 similar queries | Consolidate into 2-3 well-crafted queries |
| `"what is React"` | Use knowledge or WebSearch |
| `"breaking news today"` | Use WebSearch |
## When Results Are Poor
1. Switch search type: `auto` vs `fast` vs `deep`
2. Rephrase: more semantic/descriptive
3. Add domain filters via `allowed_domains`
4. Fall back to WebSearch for keyword matching