An MCP (Model Context Protocol) server that enables AI assistants to interact with Apollo.io's API for people search, organization search, and data enrichment for sales outreach.
- People Search: Find contacts with advanced filters (title, company, location, seniority, etc.)
- Organization Search: Search companies by various criteria (industry, size, revenue, technologies)
- People Enrichment: Get detailed information about a person using email or LinkedIn URL
- Organization Enrichment: Get comprehensive company data using domain or company name
- Job Postings: Retrieve current job openings for any organization
- Node.js 18 or higher
- Apollo.io API key (get it from Apollo.io settings)
- MCP-compatible AI assistant (like Claude)
npm install -g apollo-io-mcp-server
git clone https://github.com/mayanksingh09/apollo-io-mcp-server.git
cd apollo-io-mcp-server
npm install
npm run build
- Copy
.env.example
to.env
:
cp .env.example .env
- Add your Apollo.io API key:
APOLLO_API_KEY=your_apollo_api_key_here
# If installed globally
apollo-io-mcp-server
# If running from source
npm start
# For development
npm run dev
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json
on macOS):
{
"mcpServers": {
"apollo": {
"command": "apollo-io-mcp-server",
"env": {
"APOLLO_API_KEY": "your_apollo_api_key_here"
}
}
}
}
If running from source:
{
"mcpServers": {
"apollo": {
"command": "node",
"args": ["/path/to/apollo-io-mcp-server/dist/index.js"],
"env": {
"APOLLO_API_KEY": "your_apollo_api_key_here"
}
}
}
}
Search for people in Apollo's database.
Parameters:
q_keywords
(optional): Keywords to search forname
(optional): Person's full nameemail
(optional): Email addresstitle
(optional): Job titlecompany
(optional): Company namelocation
(optional): Location (city, state, or country)person_seniorities
(optional): Array of seniority levels (e.g., ["senior", "manager", "director"])person_functions
(optional): Array of job functions (e.g., ["sales", "engineering", "marketing"])page
(optional): Page number (default: 1, max: 500)per_page
(optional): Results per page (default: 25, max: 100)
Example:
Find senior sales people at companies in San Francisco
Search for companies in Apollo's database.
Parameters:
q_keywords
(optional): Keywords to search forname
(optional): Company namedomains
(optional): Array of company domainsindustries
(optional): Array of industriesemployee_count_min
(optional): Minimum number of employeesemployee_count_max
(optional): Maximum number of employeesrevenue_min
(optional): Minimum revenue in USDrevenue_max
(optional): Maximum revenue in USDtechnologies
(optional): Array of technologies usedpage
(optional): Page number (default: 1, max: 500)per_page
(optional): Results per page (default: 25, max: 100)
Example:
Find SaaS companies with 50-200 employees using React
Get detailed information about a person.
Parameters (at least one required):
email
(optional): Email addresslinkedin_url
(optional): LinkedIn profile URLname
(optional): Full name (requires organization_name or domain)organization_name
(optional): Company namedomain
(optional): Company domain
Example:
Get details for [email protected]
Get comprehensive company information.
Parameters (at least one required):
domain
(optional): Company domain (e.g., "example.com")name
(optional): Company name
Example:
Get information about the company with domain example.com
Get current job openings for a specific company.
Parameters:
organization_id
(required): Apollo organization IDpage
(optional): Page number (default: 1)per_page
(optional): Results per page (default: 25, max: 100)
Example:
Get job postings for organization ID 5f5e2b3d1c9d440001234567
Find VPs of Sales at Series B SaaS companies in the Bay Area with 100-500 employees
Get details for [email protected] including her title, phone, and LinkedIn
Find all companies in the healthcare industry in New York with revenue over $10M
Search for fintech companies that use AWS and have raised over $5M in funding
- Apollo.io uses a credit-based system
- Different API calls consume different amounts of credits
- The server handles rate limiting automatically
- Monitor your credit usage in the Apollo.io dashboard
The server includes comprehensive error handling for:
- Invalid API credentials
- Rate limit exceeded
- Network errors
- Invalid parameters
- Resource not found
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
# Run tests (see test/README.md for details)
npm run test:client # Interactive MCP test
npm run test:manual # Direct API test
# Lint code
npm run lint
# Format code
npm run format
- Verify your API key is correct
- Check that your Apollo.io account has API access
- Ensure the API key has proper permissions
- Wait for the rate limit to reset (check retry-after header)
- Upgrade your Apollo.io plan for higher limits
- Implement caching for frequently accessed data
- Check your search filters aren't too restrictive
- Verify the data exists in Apollo.io
- Try broader search criteria
- API keys are stored securely in environment variables
- Never commit
.env
files to version control - Use environment-specific configurations for production
- Regularly rotate your API keys
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Create an issue on GitHub
- Check Apollo.io API documentation at docs.apollo.io
- MCP documentation at modelcontextprotocol.io
- Built on the Model Context Protocol SDK
- Powered by Apollo.io API