mcp-server-apollo
MCP server for Apollo.io B2B data discovery and enrichment, enabling company search, people search, contact enrichment, and organization firmographics through Apollo's REST API.
README
mcp-server-apollo
MCP (Model Context Protocol) server for the Apollo.io B2B discovery and enrichment API: company search, people search, contact enrichment (emails/phones), organization firmographics, and API usage stats.
The server wraps Apollo's REST API with one account-level API key kept server-side. It is read-only by design: no sequences, no emailer, no CRM writes, no account management.
Tools
| Tool | Risk | Apollo endpoint |
|---|---|---|
apollo_search_capabilities |
read | — (local discovery) |
apollo_companies_search |
read + 1 credit/page | POST /mixed_companies/search |
apollo_people_search |
read (free, master key) | POST /mixed_people/api_search |
apollo_person_enrich |
read + credits | POST /people/match |
apollo_people_bulk_enrich |
read + credits | POST /people/bulk_match (chunked ×10) |
apollo_org_enrich |
read + 1 credit | GET /organizations/enrich |
apollo_webhook_result |
read (free) | GET /webhook_result/{request_id} |
apollo_credit_usage |
read (free, master key) | POST /usage_stats/api_usage_stats |
Notes that save you a support ticket:
- People search returns no contact data. Apollo's current
mixed_people/api_searchendpoint deliberately obfuscates last names and omits emails/phones. Feed the returned personidintoapollo_person_enrichto get contact data (that is what costs credits). - Phone reveals are asynchronous.
reveal_phone_number=truerequires a public HTTPSwebhookUrl; Apollo POSTs the numbers there minutes later. The synchronous response carries arequest_id— pollapollo_webhook_resultwith it if the callback is missed (results kept 30 days). - Master API key.
apollo_people_searchandapollo_credit_usagerequire a master Apollo API key (Apollo returns 403API_INACCESSIBLEotherwise). - No credit-balance API. Apollo only exposes per-endpoint rate-limit usage; the remaining credit balance lives in the Apollo UI (Settings → Billing).
- Field projection. Every data tool accepts
fields[]dot-paths to shrink responses; company search applies a slim default projection (pass["*"]for full records).
Usage
npm install
npm run build
# stdio transport (Claude Desktop, local MCP clients)
APOLLO_API_KEY=... node dist/transports/stdio.js
# streamable HTTP transport on :3000/mcp
APOLLO_API_KEY=... MCP_HTTP_TOKEN=... node dist/transports/http.js
Configuration (see .env.example): APOLLO_API_KEY (required),
APOLLO_TIMEOUT_MS, APOLLO_AUDIT_LOG (JSONL audit trail; hashed targets,
never raw arguments or secrets), and for HTTP: MCP_HTTP_HOST, PORT,
MCP_HTTP_TOKEN (static bearer), MCP_ALLOWED_ORIGINS, MCP_MAX_BODY_BYTES.
There is also an embeddable gateway export (mcp-server-apollo/gateway) that
exposes the same tools as plain functions with JSON-schema definitions.
Security
- The API key is read only from the server environment, sent only in the
x-api-keyheader over HTTPS, and redacted from error messages and logs. - Tool calls pass a policy allowlist; anything unlisted is denied.
- All tools are annotated read-only/non-destructive; credit-consuming tools state their cost in the description so agents confirm spend with the user.
- HTTP transport binds to loopback by default, validates
Origin, caps body size, and supports a static bearer token for upstream auth proxies. - Rate limits: HTTP 429 is retried with jittered backoff honouring
retry-after; bulk enrichment runs at low bounded concurrency because Apollo limitsbulk_matchhard (documented 20/min).
Development
npm run typecheck
npm test
npm run smoke:live # needs a real APOLLO_API_KEY; uses ~1 credit
License
Apache-2.0
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.