mcp-exa
# MCP Exa
> A Python MCP server that exposes Exa search capabilities (no API key required)
[](https://pypi.org/project/mcp-exa/)
[](https://pypi.org/project/mcp-exa/)
[](https://codecov.io/gh/daedalus/mcp-exa)
[](https://github.com/astral-sh/ruff)
mcp-name: io.github.daedalus/mcp-exa
## Install
```bash
pip install mcp-exa
```
## Usage
No API key required. The server uses Exa's public MCP endpoint.
Run the MCP server:
```bash
mcp-exa
```
Or use as a module:
```bash
python -m mcp_exa
```
## Configuration
### Available Tools
The server exposes the following MCP tools:
| Tool | Description |
| ---- | ----------- |
| `web_search_exa` | Search the web for any topic |
| `get_code_context_exa` | Find code examples from GitHub, Stack Overflow |
| `crawling_exa` | Get full content from a specific URL |
| `web_search_advanced_exa` | Advanced search with filters |
## MCP Client Configuration
### Claude Desktop
Add to your config file:
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"exa": {
"command": "mcp-exa"
}
}
}
```
### OpenCode
Add to your `opencode.json`:
```json
{
"mcp": {
"exa": {
"type": "stdio",
"command": "mcp-exa",
"enabled": true
}
}
}
```
## Development
```bash
git clone https://github.com/daedalus/mcp-exa.git
cd mcp-exa
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/
```
TDQS
Scored across 9 tools
Most tools have clear boundaries (search, get_contents, find_similar, research_*), but answer and stream_answer are nearly identical except for streaming behavior, which could cause misselection. find_similar and search are related but distinct enough with descriptions.
The research_* tools follow a consistent prefix pattern, but the rest mix bare verbs (search, answer), verb_noun (find_similar, get_contents, stream_answer), and a long descriptive phrase (research_poll_until_finished), creating an inconsistent feel.
9 tools is a reasonable size for a search and research server, covering immediate searches, content retrieval, and async research workflows. Slightly more than strictly necessary due to answer/stream_answer duplication, but not excessive.
The core search, similar, content, answer, and research lifecycle (create, get, poll, list) are covered. A notable gap is the lack of a cancel/delete research operation, but most main workflows are complete.