{
  "markdown": "# mcp-apollo\n\nAn open-source, self-hosted **MCP server for Apollo.io** — gives your AI agents direct access to Apollo's B2B sales intelligence database.\n\nDeploy it to **your own Cloudflare account** in under 5 minutes. You own the infrastructure, you control the costs. No shared hosting, no vendor lock-in.\n\nBuilt and maintained by [AgenTeam](https://agenteamai.com). MIT licensed.\n\n---\n\n## How it works\n\n```\nYour Cloudflare Workers account\n  └── mcp-apollo Worker  (your deploy, your infra)\n        └── MCP client sends requests with your Apollo API key\n              └── Worker proxies to Apollo.io API\n                    └── Returns enriched data to your agent\n```\n\n- **You** deploy the Worker to your own Cloudflare account (free tier handles most use cases)\n- **You** pass your own Apollo.io API key on every request — the Worker never stores it\n- **No shared infrastructure** — every user runs their own isolated instance\n\n---\n\n## Quick deploy (5 minutes)\n\n### Prerequisites\n- [Node.js](https://nodejs.org) 18+\n- A [Cloudflare account](https://cloudflare.com) (free tier is sufficient)\n- An [Apollo.io API key](https://app.apollo.io/#/settings/integrations/api)\n\n### Steps\n\n```bash\n# 1. Clone the repo\ngit clone https://github.com/AgenTeam-AI-2026/mcp-apollo\ncd mcp-apollo\n\n# 2. Install dependencies\nnpm install\n\n# 3. Log in to your Cloudflare account\nnpx wrangler login\n\n# 4. Deploy\nnpx wrangler deploy\n```\n\nYour server is now live at:\n```\nhttps://mcp-apollo.<your-subdomain>.workers.dev\n```\n\nThat's your personal MCP server URL. Use it in the connection configs below.\n\n---\n\n## Connect your MCP client\n\nReplace `YOUR_WORKER_URL` with your deployed URL and `YOUR_APOLLO_KEY` with your Apollo.io API key.\n\n### Claude Desktop\n\nEdit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"apollo\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-remote\", \"https://YOUR_WORKER_URL/mcp\"],\n      \"env\": {\n        \"APOLLO_API_KEY\": \"YOUR_APOLLO_KEY\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop after saving.\n\n### Claude Code\n\n```bash\nclaude mcp add apollo \\\n  --transport http \\\n  --url https://YOUR_WORKER_URL/mcp \\\n  --header \"Authorization: Bearer YOUR_APOLLO_KEY\"\n```\n\n### Cursor\n\nIn `.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"apollo\": {\n      \"url\": \"https://YOUR_WORKER_URL/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_APOLLO_KEY\"\n      }\n    }\n  }\n}\n```\n\n### Windsurf\n\nIn `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"apollo\": {\n      \"serverUrl\": \"https://YOUR_WORKER_URL/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_APOLLO_KEY\"\n      }\n    }\n  }\n}\n```\n\n---\n\n## Get an Apollo.io API key\n\n1. Log in to [apollo.io](https://app.apollo.io)\n2. Go to **Settings → Integrations → API**\n3. Click **Create API Key**\n4. Copy the key — paste it into your MCP client config above\n\n---\n\n## Tools\n\n### `apollo_search_people`\nSearch Apollo's database for people matching filters.\n\n| Parameter | Type | Description |\n|---|---|---|\n| `person_titles` | `string[]` | Job titles, e.g. `[\"VP Engineering\", \"CTO\"]` |\n| `person_seniorities` | `string[]` | `\"vp\"`, `\"c_suite\"`, `\"director\"`, `\"manager\"`, `\"senior\"` |\n| `organization_domains` | `string[]` | Company domains, e.g. `[\"stripe.com\"]` |\n| `person_locations` | `string[]` | Locations, e.g. `[\"New York\", \"San Francisco\"]` |\n| `organization_num_employees_ranges` | `string[]` | Size ranges, e.g. `[\"51,200\", \"201,500\"]` |\n| `page` | `number` | Page number (default: 1) |\n| `per_page` | `number` | Results per page, max 25 (default: 10) |\n\n---\n\n### `apollo_enrich_person`\nGet a full enriched profile for a specific person.\n\n| Parameter | Type | Description |\n|---|---|---|\n| `email` | `string` | Most reliable identifier |\n| `linkedin_url` | `string` | LinkedIn profile URL |\n| `first_name` + `last_name` + `organization_name` | `string` | Name + company combo |\n\nAt least one identifier is required.\n\n---\n\n### `apollo_search_companies`\nSearch for companies matching criteria.\n\n| Parameter | Type | Description |\n|---|---|---|\n| `q_organization_keyword_tags` | `string[]` | Keywords/industries, e.g. `[\"SaaS\", \"fintech\"]` |\n| `organization_locations` | `string[]` | HQ locations |\n| `organization_num_employees_ranges` | `string[]` | Size ranges |\n| `organization_funding_stages` | `string[]` | `\"Seed\"`, `\"Series A\"`, `\"Series B\"` etc. |\n| `page` | `number` | Page (default: 1) |\n| `per_page` | `number` | Max 25 (default: 10) |\n\n---\n\n### `apollo_enrich_company`\nGet a full company profile by domain or name.\n\n| Parameter | Type | Description |\n|---|---|---|\n| `domain` | `string` | e.g. `\"stripe.com\"` — preferred |\n| `name` | `string` | Company name — fallback |\n\nReturns: description, headcount, founding year, total funding, funding stage, tech stack, keywords.\n\n---\n\n### `apollo_get_job_postings`\nGet active job postings for a company — a strong buying/hiring signal.\n\n| Parameter | Type | Description |\n|---|---|---|\n| `organization_id` | `string` | Apollo org ID from `apollo_enrich_company` |\n| `job_titles` | `string[]` | Optional filter, e.g. `[\"engineer\", \"sales\"]` |\n\n---\n\n### `apollo_find_email`\nRetrieve a person's verified email by their Apollo person ID.\n\n| Parameter | Type | Description |\n|---|---|---|\n| `person_id` | `string` | Apollo person ID from `apollo_search_people` |\n\n---\n\n## Apollo.io rate limits\n\n| Plan | Requests / hour |\n|---|---|\n| Free | 50 |\n| Basic | 200 |\n| Professional | 1,000 |\n| Organization | Custom |\n\nThe server returns rate limit metadata with every response (`rate_limits.remaining`, `rate_limits.resetAt`). On 429 errors it returns an informative message — it never silently fails.\n\n---\n\n## Cloudflare Workers free tier\n\n| Metric | Free limit |\n|---|---|\n| Requests | 100,000 / day |\n| CPU time | 10ms / request |\n\n100k requests/day is enough for most individual or small-team deployments. If you exceed it, upgrade to the [Workers Paid plan](https://developers.cloudflare.com/workers/platform/pricing/) ($5/month for 10M requests).\n\n---\n\n## Local development\n\n```bash\nnpm install\nnpm run dev\n# Server runs at http://localhost:8787\n```\n\n---\n\n## Run tests\n\n```bash\nnpm test                                        # unit + RALPH-loop tests\nAPOLLO_API_KEY=your_key npx vitest run test/e2e # E2E against live Apollo API\n```\n\n---\n\n## CI/CD on your fork\n\nThe repo includes GitHub Actions workflows:\n\n- **`ci.yml`** — runs typecheck, build check, and tests on every push\n- **`deploy.yml`** — deploys to Cloudflare Workers on merge to `main`\n- **`e2e.yml`** — nightly E2E tests against the live Apollo API\n\nTo enable auto-deploy, add these secrets in your fork under **GitHub → Settings → Secrets → Actions**:\n\n| Secret | Where to get it |\n|---|---|\n| `CLOUDFLARE_API_TOKEN` | Cloudflare Dashboard → My Profile → API Tokens → Create Token (use \"Edit Cloudflare Workers\" template) |\n| `CLOUDFLARE_ACCOUNT_ID` | Cloudflare Dashboard → Workers & Pages → right sidebar |\n\nTo enable nightly E2E tests, also add `APOLLO_API_KEY` as a secret and set the repo variable `APOLLO_E2E_ENABLED` to `true`.\n\n---\n\n## Security\n\n- Your Apollo API key is passed as a `Bearer` token in the `Authorization` header on each request\n- The Worker **never stores, logs, or persists** your API key\n- Each request is stateless — the key is used only for that request's Apollo API call\n- You control the entire deployment — no data touches third-party infrastructure\n\n---\n\n## Built by AgenTeam\n\n[AgenTeam](https://agenteamai.com) builds AI agent teams for B2B sales and GTM operations. `mcp-apollo` is one of several open-source MCP servers we publish to give agents direct access to the tools modern sales teams rely on.\n\n---\n\n## License\n\nMIT © AgenTeam-AI-2026\n",
  "bytes": 7815,
  "sha": "339a317efe4846bec90380d0dff8960052e9a926a2a4b111b40f9f3455c0a008",
  "repo_slug": "agenteam-ai-2026/mcp-apollo",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_agenteam_ai_2026_mcp_apollo_f6b34c3f/readme"
}