Exa MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Exa MCP Serversearch for recent developments in quantum computing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Exa MCP Server 🔍
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Demo video https://www.loom.com/share/ac676f29664e4c6cb33a2f0a63772038?sid=0e72619f-5bfc-415d-a705-63d326373f60
What is MCP? 🤔
The Model Context Protocol (MCP) is a system that lets AI apps, like Claude Desktop, connect to external tools and data sources. It gives a clear and safe way for AI assistants to work with local services and APIs while keeping the user in control.
Related MCP server: Exa MCP Server
What does this server do? 🚀
The Exa MCP server:
Enables AI assistants to perform web searches using Exa's powerful search API
Provides structured search results including titles, URLs, and content snippets
Handles rate limiting and error cases gracefully
Prerequisites 📋
Before you begin, ensure you have:
Node.js (v18 or higher)
Claude Desktop installed
An Exa API key
Git installed
You can verify your Node.js installation by running:
node --version # Should show v18.0.0 or higherInstallation 🛠️
Clone the repository:
git clone https://github.com/exa-labs/exa-mcp-server.git
cd exa-mcp-serverInstall dependencies:
npm install --save axios dotenvBuild the project:
npm run buildCreate a global link (this makes the server executable from anywhere):
npm linkConfiguration ⚙️
1. Claude Desktop Configuration
Configure Claude Desktop to recognize the Exa MCP server:
You can also find claude_desktop_config.json inside the settings of Claude Desktop app
or
For macOS:
Open your Claude Desktop configuration:
code ~/Library/Application\ Support/Claude/claude_desktop_config.jsonFor Windows:
Open your Claude Desktop configuration:
code %APPDATA%\Claude\claude_desktop_config.jsonAdd the Exa server configuration:
{
"mcpServers": {
"exa": {
"command": "npx",
"args": ["/path/to/exa-mcp-server/build/index.js"],
"env": {
"EXA_API_KEY": "your-api-key-here"
}
}
}
}Replace your-api-key-here with your actual Exa API key from dashboard.exa.ai/api-keys.
2. Restart Claude Desktop
For the changes to take effect:
Completely quit Claude Desktop (not just close the window)
Start Claude Desktop again
Look for the 🔌 icon to verify the Exa server is connected
Usage 🎯
Once configured, you can ask Claude to perform web searches. Here are some example prompts:
Can you search for recent developments in quantum computing?Search for and summarize the latest news about artificial intelligence startups in new york.Find and analyze recent research papers about climate change solutions.The server will:
Process the search request
Query the Exa API
Return formatted results to Claude
Cache the search for future reference
Features ✨
Web Search Tool: Enables Claude to search the web using natural language queries
Error Handling: Gracefully handles API errors and rate limits
Type Safety: Full TypeScript implementation with proper type checking
Troubleshooting 🔧
Common Issues
Server Not Found
Verify the npm link is correctly set up
Check Claude Desktop configuration syntax
Ensure Node.js is properly installed
API Key Issues
Confirm your Exa API key is valid
Check the API key is correctly set in the Claude Desktop config
Verify no spaces or quotes around the API key
Connection Issues
Restart Claude Desktop completely
Check Claude Desktop logs:
# macOS tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
Getting Help
If you encounter issues review the MCP Documentation
Acknowledgments 🙏
Exa AI for their powerful search API
Model Context Protocol for the MCP specification
Anthropic for Claude Desktop
Available Tools
1 toolsearchB
Search the web using Exa AI
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| numResults | No | Number of results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral disclosure burden. It only states 'Search the web using Exa AI' and does not disclose what the tool returns (e.g., list of URLs, snippets), how results are ordered, rate limits, or authentication requirements. The mention of Exa AI is the only extra context, which is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that is front-loaded and free of fluff. It earns its place by stating the core purpose. However, it is arguably under-specified for a tool with a second parameter, so it does not fully maximize the conciseness dimension – it is concise but not richly informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 2-parameter tool with no output schema and no annotations, the description is not complete enough. It does not explain what a successful search returns, how numResults affects behavior, or any caller expectations (e.g., rate limits, errors). An agent would have limited ability to predict the tool's output or edge cases from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'query' and 'numResults' have descriptive text in the schema. The description itself adds no parameter-specific meaning beyond the schema, so the baseline score of 3 applies. It does not clarify query syntax or result behavior, but the schema handles parameter semantics adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search the web using Exa AI' clearly states a specific verb ('Search') and resource ('the web'), and names the underlying service ('Exa AI'). With no sibling tools, differentiation is not needed, so this fully satisfies the purpose clarity criterion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for web search but provides no explicit guidance on when to use this tool versus alternatives. Since there are no sibling tools, there is no exclusionary context, but the description also lacks any prerequisites or context like 'use this when you need current web information'. This is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
search
TDQS
Scored across 1 tool
With only one tool, there is no ambiguity or risk of misselection. The single 'search' tool is clearly distinct by default, and its description accurately conveys its purpose.
The tool name 'search' is a clear, simple verb that matches its function. With only one tool, there is no inconsistency or mixed conventions to evaluate.
A single tool is borderline for server scope. While it may be sufficient for a dedicated search API, the thin surface limits versatility and feels minimal compared to typical MCP servers.
The server provides the core search functionality without additional operations like filtering, pagination, or result retrieval by ID. These are minor gaps that agents can likely work around, but the surface is not fully comprehensive.
Related MCP Connectors
Enable AI assistants to perform web searches using Perplexity's Sonar Pro.
Provides AI assistants with access to Seltz's powerful Web Search capabilities.
Give AI assistants access to real-time data. Search the web, compare flights, find hotels, and more.
Real-time web search, reasoning, and research through Perplexity's API
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to perform real-time web searches, company research, content crawling, LinkedIn searches, and deep research using the Exa AI Search API. Provides comprehensive web information retrieval capabilities in a safe and controlled manner.279,339 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform web searches, research paper searches, and Twitter searches using the Exa AI Search API with real-time crawling and structured results.79,339 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform web searches, research papers, Twitter searches, company research, URL crawling, and LinkedIn searches using the Exa AI Search API for real-time web information.79,339 npm1MIT
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to Exa AI's search capabilities, enabling web search, company research, URL crawling, LinkedIn search, and specialized code search across GitHub repos, documentation, and Stack Overflow for finding relevant coding context and examples.79,339 npmMIT