When to pick Exa MCP
- Pick Exa MCP when your coding assistant needs to search a topic and read the pages it finds.
web_search_exareturns ranked results with page text, whileweb_fetch_exaretrieves clean markdown from one or more URLs. - Choose it when research needs domain or date filters, highlights, summaries or subpage crawling. Enable
web_search_advanced_exafor these controls instead of relying only on the default search tool. - Use it when a task extends into list-building, enrichment or research with structured output. The optional
agent_runtool runs an Exa Agent for multi-step work and requires OAuth or an API key. - Choose the plugin installation when you also want packaged research instructions. Exa includes
searchandexa-agentskills with Agent Plugin and Claude plugin installs; an MCP-only connection exposes the tools without those skills.
When to pick Tavily MCP
- Pick Tavily MCP when you need to discover a site's URL structure before deciding which pages to read.
tavily-maplists that structure, giving the assistant a separate discovery step before content extraction. - Choose it when collecting material requires following links across a website.
tavily-crawlexplores the site, whiletavily-extractpulls text from selected pages. These are separate operations alongsidetavily-search. - Use it when repeated searches should share settings such as search depth or image inclusion. The local server accepts search defaults through
DEFAULT_PARAMETERS; the remote server accepts a header with the same name containing JSON defaults. - Choose it when your integration needs per-user analytics. Set the optional
TAVILY_HUMAN_IDto forward an identifier on API calls. Tavily documents hashing it before storage and recommends opaque identifiers rather than email addresses.
Main differences
- Exa organizes its default workflow around search and URL fetching, with advanced search and an agent available separately. Tavily exposes search, extraction, mapping and crawling as distinct tools, which fits workflows that explicitly separate site discovery from page collection.
- Exa's advanced search includes subpage crawling, so crawling is not exclusive to Tavily. Tavily's distinction is its dedicated
tavily-crawlandtavily-maptools; Exa's listed tools include an agent for broader research tasks. - Both offer a local Node process and a hosted connection. Exa documents Streamable HTTP for its hosted endpoint; Tavily documents remote HTTP and local stdio. Local installation still connects to the provider's service: Exa wraps its search API, and Tavily executes web operations on its servers without starting a local browser.
- Both document OAuth and API-key authentication. Exa's README specifically allows anonymous hosted access with rate limits, while requiring authentication for Exa Agent. Tavily's documented connection paths use OAuth or an API key. Both accept URL keys or bearer headers; Exa also accepts
x-api-key. - Exa's
toolsURL parameter changes which tools are exposed and replaces the default selection, so include every tool you want to retain. Tavily'sDEFAULT_PARAMETERSconfigures request defaults, such as search depth, rather than selecting tools.
Setup
For Exa, use the documented npm command npx -y exa-mcp-server for a local launch, or configure a hosted Streamable HTTP connection to https://mcp.exa.ai/mcp. For the Claude plugin route, run claude plugin install exa@claude-plugins-official. Authenticate with OAuth or an API key when using Exa Agent.
For Tavily, launch locally with npx -y tavily-mcp@latest and set TAVILY_API_KEY in the client's server environment. For a hosted Claude Code connection, run claude mcp add --transport http tavily https://mcp.tavily.com/mcp, then open /mcp in Claude Code, select Tavily and complete OAuth.
· github.com/exa-labs/exa-mcp-server, github.com/tavily-ai/tavily-mcp
