exa-acp-mcp
v0.1.0
Published
A fork of exa-mcp-server that routes requests through ACP (Agent Credential Proxy) for secure credential management. Provides Exa AI web search and code context tools via MCP.
Maintainers
Readme
exa-acp-mcp
A fork of exa-mcp-server that routes all Exa API requests through ACP (Agent Credential Proxy) for secure credential management.
What is ACP?
ACP is a credential injection proxy that sits between AI agents and APIs. Instead of giving agents direct access to API keys, ACP:
- Stores credentials securely outside the agent's context
- Injects credentials at the network layer when requests pass through the proxy
- Provides audit logging of all API access
- Allows credential rotation without updating agent configurations
Prerequisites
- ACP installed and running - See ACP setup instructions
- Exa plugin configured in ACP - With your Exa API credentials stored
- ACP token - Created via
acp token create
Installation
npm install -g exa-acp-mcpConfiguration
Environment Variables
Create a .env file in your working directory or set environment variables:
# Required: ACP token for proxy authentication
ACP_TOKEN=acp_xxxxxxxxxxxx
# Optional: ACP proxy URL (defaults to http://localhost:9443)
ACP_PROXY_URL=http://localhost:9443The server automatically loads .env from the current working directory.
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"exa": {
"command": "npx",
"args": ["-y", "exa-acp-mcp"],
"env": {
"ACP_TOKEN": "acp_xxxxxxxxxxxx"
}
}
}
}Claude Code
claude mcp add exa -e ACP_TOKEN=acp_xxxxxxxxxxxx -- npx -y exa-acp-mcpOr with a .env file in your project:
claude mcp add exa -- npx -y exa-acp-mcpAvailable Tools
By default, two tools are enabled:
- web_search_exa - Real-time web search with content extraction
- get_code_context_exa - Code snippets, documentation, and examples from GitHub repos and docs
Additional Tools
Enable more tools using the tools parameter:
{
"mcpServers": {
"exa": {
"command": "npx",
"args": [
"-y",
"exa-acp-mcp",
"tools=web_search_exa,get_code_context_exa,deep_search_exa,crawling_exa"
],
"env": {
"ACP_TOKEN": "acp_xxxxxxxxxxxx"
}
}
}
}All available tools:
web_search_exa- Web search (enabled by default)get_code_context_exa- Code context search (enabled by default)deep_search_exa- Deep search with query expansioncrawling_exa- Extract content from specific URLscompany_research_exa- Company researchlinkedin_search_exa- LinkedIn searchdeep_researcher_start- Start async research taskdeep_researcher_check- Check research task status
How It Works
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Claude │────▶│ ACP │────▶│ Exa API │
│ Agent │ │ Proxy │ │ │
└─────────────┘ └─────────────┘ └─────────────┘
│
Injects Exa
API credentials- Agent makes request through this MCP server
- Request is routed through ACP proxy on localhost:9443
- ACP authenticates the request using the
ACP_TOKEN - ACP injects Exa API credentials into the request
- Request is forwarded to api.exa.ai
Differences from exa-mcp-server
| Feature | exa-mcp-server | exa-acp-mcp |
|---------|---------------|-------------|
| Credential handling | Direct EXA_API_KEY | Via ACP proxy |
| API key exposure | In env/config | Never exposed to agent |
| Audit logging | None | Via ACP |
| Setup complexity | Simple | Requires ACP |
Troubleshooting
"ACP_TOKEN is required"
Set the ACP_TOKEN environment variable or add it to your .env file.
"ACP CA certificate not found"
Ensure ACP is installed and initialized. The CA cert should be at ~/.config/acp/ca.crt.
Connection refused on port 9443
Start the ACP proxy server. Check status with acp status.
License
MIT
Credits
- Original exa-mcp-server by Exa Labs
- ACP by Anthropic
