This is an enhanced fork of the original Exa MCP server that provides neural search capabilities using the Exa API. The server enables Large Language Models (LLMs) to search and analyze both academic research papers and news articles with improved semantic understanding.
- Always Comprehensive: Returns both research papers and news articles for every query
- Enhanced Result Format: Includes source domains, relevance scores, and content highlights
- Improved Error Handling: Better error messages and type safety
- Rich Console Output: Colorized logging for better debugging
- Type Safety: Fully typed TypeScript implementation
- Node.js (v16 or higher)
- NPM
- An Exa API key (get one from Exa's website)
- Fork and clone the repository:
# Fork using GitHub's interface, then:
git clone https://github.com/YOUR_USERNAME/exa-mcp-server.git
cd exa-mcp-server
# Add original repo as upstream
git remote add upstream https://github.com/exa-labs/exa-mcp-server.git
- Install dependencies:
npm install
- Set up your API key:
echo "EXA_API_KEY=your-api-key-here" > .env
- Build the server:
npm run build
- Create or edit your Claude Desktop config:
# On macOS:
mkdir -p ~/Library/Application\ Support/Claude/
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
# On Windows:
code %APPDATA%\Claude\claude_desktop_config.json
- Add the server configuration:
{
"mcpServers": {
"exa": {
"command": "node",
"args": ["/absolute/path/to/exa-mcp-server/build/index.js"]
}
}
}
- Restart Claude Desktop
- Neural search with semantic understanding
- Dual category search (research papers + news)
- Content highlights and summaries
- Source attribution and relevance scoring
- Query caching and history
Every search returns results in this format:
{
"research_papers": {
"results": [
{
"title": "Example Research Paper",
"url": "https://example.edu/paper",
"source": "example.edu",
"relevance_score": 0.95,
"highlights": ["relevant excerpt 1", "relevant excerpt 2"],
"summary": "Brief summary of the paper..."
}
],
"total_found": 100
},
"news_articles": {
"results": [...],
"total_found": 50
},
"query_info": {
"query": "original search query",
"timestamp": "2024-12-16T00:00:00.000Z",
"results_per_category": 10
}
}
exa-mcp-server/
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript
├── package.json
├── tsconfig.json
└── .env
To get updates from the original repo:
git fetch upstream
git checkout main
git merge upstream/main
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit:
git add .
git commit -m "Description of your changes"
- Push to your fork:
git push origin feature/your-feature-name
- Update your fork with the latest upstream changes
- Make your improvements in a new branch
- Push to your fork
- Create a Pull Request to the original repository
- Describe your changes and why they're valuable
-
Build Errors
- Make sure TypeScript is installed:
npm install -D typescript
- Check your Node.js version:
node --version
- Make sure TypeScript is installed:
-
Connection Issues
- Verify your API key in .env
- Check Claude Desktop config path
- Ensure absolute paths are used
-
Type Errors
- Run
npm install
to get latest types - Check TypeScript version matches requirements
- Run
This project is a fork of the Exa MCP Server created by Exa Labs. The original work laid the foundation for this enhanced version.
This project is licensed under the MIT License - see the LICENSE file for details.