MCP server for Apollo.io contact and company enrichment. Gives Claude direct access to Apollo's people and organization data — find emails, enrich LinkedIn profiles, and discover contacts at target companies.
| Tool | Description |
|---|---|
find_person |
Find a person's email by name and company. Optional job title improves match accuracy. |
enrich_by_linkedin |
Look up email and contact details from a LinkedIn profile URL. More accurate than name search when you already have the URL. |
| Tool | Description |
|---|---|
search_company |
Find people who work at a given company. Accepts company name or domain. Optional title filter (e.g. "CEO", "Head of Chemistry"). |
get_company |
Get firmographic details about a company: industry, employee count, description. Useful for qualifying leads. |
All tools accept a company name or domain — domain matching is more precise when available.
Prerequisites: Python 3.12+ and uv installed
# 1. Run setup — saves your API key to ~/.apollo-mcp/.env
uvx --from git+https://github.com/pauling-ai/apollo-io-mcp-server apollo-mcp --setupThat's it. The key is stored in ~/.apollo-mcp/.env and loaded automatically every time the server starts — no need to pass it in .mcp.json or set environment variables.
After running --setup, add to your .mcp.json:
{
"mcpServers": {
"apollo": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "git+https://github.com/pauling-ai/apollo-io-mcp-server", "apollo-mcp"],
"env": {}
}
}
}No API key in the config — it's read from ~/.apollo-mcp/.env automatically.
--setup— Save API key to~/.apollo-mcp/.envand verify it works--status— Verify API key is valid and exit--log-level {DEBUG,INFO,WARNING,ERROR}— Logging level (default: WARNING)--transport {stdio,streamable-http}— Transport mode (default: stdio)--version— Print version and exit
Apollo charges credits for enrichment calls. Key things to know:
find_personandenrich_by_linkedinconsume enrichment credits per callinclude_phone=Truecosts additional credits — only use when neededsearch_companyuses search credits (cheaper than enrichment)get_companyuses organization enrichment credits- Free tier is limited — check your plan at Apollo billing
API key not found: Run apollo-mcp --setup to save your key to ~/.apollo-mcp/.env.
API key rejected (401): Re-run apollo-mcp --setup with a fresh key from developer.apollo.io/#/keys.
Quota exhausted (429): You've hit Apollo's rate limit or used all credits on your plan. Check usage at Apollo billing.
Person not found: Apollo returns found: false when no match exists. Try enrich_by_linkedin with the LinkedIn URL instead of find_person — it's more accurate.
Company search returns no results: Try the company domain instead of name (e.g. acmepharma.com instead of Acme Pharma).
- Responses are filtered to return only fields useful to Claude — not raw Apollo API blobs
find_personwithout a title may match the wrong person when names are common — providetitlewhen available- Phone is excluded by default to avoid unnecessary credit usage — pass
include_phone=Truewhen needed
MIT — see LICENSE