This guide provides detailed setup instructions for the Apollo.io MCP server.
- Python 3.8 or higher
- Apollo.io account with API access
- MCP-compatible client (Claude Desktop, Cursor, etc.)
git clone <repository-url>
cd apollo-mcpLinux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | shWindows:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"Alternative: Using pip
pip install uvuv sync- Log in to Apollo.io
- Navigate to Settings → Integrations → API
- Copy your existing API key or generate a new one
Option A: Environment Variable (Recommended)
Linux/macOS:
export APOLLO_API_KEY="your_actual_apollo_api_key_here"
# To make it permanent, add to your shell profile:
echo 'export APOLLO_API_KEY="your_actual_apollo_api_key_here"' >> ~/.bashrc
# or ~/.zshrc for zsh usersWindows:
set APOLLO_API_KEY=your_actual_apollo_api_key_here
# To make it permanent:
setx APOLLO_API_KEY "your_actual_apollo_api_key_here"Option B: .env File
echo "APOLLO_API_KEY=your_actual_apollo_api_key_here" > .env-
Locate your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/claude/claude_desktop_config.json
- macOS:
-
Update the configuration:
{ "mcpServers": { "apollo": { "command": "uv", "args": ["run", "python", "src/apollo_mcp_server.py"], "cwd": "/absolute/path/to/your/apollo-mcp", "env": { "APOLLO_API_KEY": "your_apollo_api_key_here" } } } } -
Replace
/absolute/path/to/your/apollo-mcpwith your actual project path:pwd # Run this in your apollo-mcp directory to get the full path
-
Update
.cursor/mcp_servers.json:{ "mcpServers": { "apollo": { "command": "uv", "args": ["run", "python", "src/apollo_mcp_server.py"], "cwd": "/absolute/path/to/your/apollo-mcp", "env": { "APOLLO_API_KEY": "your_apollo_api_key_here" }, "description": "Apollo.io MCP Server for account, people, and organization data" } } } -
Replace the
cwdpath with your actual project directory path.
Use the configuration above as a template and adapt for your specific client's requirements.
uv run python verify_setup.py# Test server startup
uv run python src/apollo_mcp_server.py
# Test with debug logging
./debug_mcp_server.shThe server should start without errors and you should see a message indicating successful connection to Apollo.io.
Standard production script:
./run_mcp_server.sh- Sets up environment
- Validates API key
- Starts the server
Debug version with detailed logging:
./debug_mcp_server.sh- Logs debug information to
cursor_debug.log - Helpful for troubleshooting
- Shows environment setup details
Automated setup and management:
# Initial setup
./deploy.sh
# Run the server
./deploy.sh run
# Run tests
./deploy.sh test
# Format code
./deploy.sh format
# Type checking
./deploy.sh check1. UV not found:
# Check if UV is in PATH
which uv
# Add to PATH if needed (Linux/macOS)
export PATH="$HOME/.local/bin:$PATH"
export PATH="$HOME/.cargo/bin:$PATH"2. API Key not set:
# Check if environment variable is set
echo $APOLLO_API_KEY
# Set it if missing
export APOLLO_API_KEY="your_api_key_here"3. Permission denied on scripts:
# Make scripts executable
chmod +x run_mcp_server.sh debug_mcp_server.sh deploy.sh4. Python/UV version issues:
# Check versions
python --version
uv --version
# Update if needed
uv self updateFor detailed troubleshooting, check the debug log:
./debug_mcp_server.sh
tail -f cursor_debug.logRate Limiting:
- Apollo.io has different rate limits for different endpoints
- Bulk operations have lower limits
- Check your account's usage dashboard
Credit Usage:
- Email reveals: 1 credit per verified email
- Phone reveals: Additional charges
- Monitor usage to avoid unexpected costs
Path Problems:
- Always use absolute paths in MCP configurations
- Use
pwdcommand to get the correct path - Avoid spaces or special characters in paths
Environment Variables:
- Some clients don't inherit shell environment
- Set API key directly in the configuration file
- Restart the client after configuration changes
# Use specific Python version
uv python pin 3.11
# Create virtual environment manually
uv venv --python 3.11
source .venv/bin/activate # Linux/macOS
# or .venv\Scripts\activate # Windows# For different environments
export APOLLO_API_KEY_PROD="prod_key_here"
export APOLLO_API_KEY_DEV="dev_key_here"- Use bulk endpoints for multiple operations
- Implement request batching in your applications
- Monitor API usage and optimize accordingly
- Check the logs:
cursor_debug.logfor detailed error information - Verify setup: Run
uv run python verify_setup.py - API documentation: Apollo.io API Docs
- MCP specification: Model Context Protocol
After successful setup:
- Review the API examples in
usage_examples.md - Start with simple queries to test functionality
- Explore the available tools and endpoints
- Integrate with your AI assistant workflows