Skip to main content
Glama
borgels

mcp-server-apollo

by borgels

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_search endpoint deliberately obfuscates last names and omits emails/phones. Feed the returned person id into apollo_person_enrich to get contact data (that is what costs credits).

  • Phone reveals are asynchronous. reveal_phone_number=true requires a public HTTPS webhookUrl; Apollo POSTs the numbers there minutes later. The synchronous response carries a request_id — poll apollo_webhook_result with it if the callback is missed (results kept 30 days).

  • Master API key. apollo_people_search and apollo_credit_usage require a master Apollo API key (Apollo returns 403 API_INACCESSIBLE otherwise).

  • 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).

Related MCP server: Apollo.io MCP Server

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-key header 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 limits bulk_match hard (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

Available Tools

8 tools
apollo_credit_usageGet API Usage / Rate Limits (Apollo)A
Read-onlyIdempotent

Report per-endpoint Apollo API usage against the minute/hour/day rate limits, plus the most recent rate-limit headers observed. Use before large batches to check headroom, and to answer "how much have we used?". Requires a master API key; consumes no credits. Note: Apollo exposes no API for the remaining credit balance — that is only visible in the Apollo UI (Settings > Billing and credits).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint false. Description adds that it 'consumes no credits' and requires a master API key, and clarifies what it cannot do (credit balance). No contradictions; adds valuable context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero waste. Purpose is front-loaded. Each sentence adds distinct value: purpose, usage guidance, and limitation/alternative. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description covers key information: what it reports, when to use, prerequisites, and what it cannot do. Annotations provide additional safety signals. Slightly more detail on the output format (e.g., what fields are in the headers) could be added, but overall complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters, so baseline is 4. Description adds meaning by explaining what the tool returns (rate limit headers, per-endpoint usage). While no parameter details are needed, the description provides context about the output, which is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Report per-endpoint Apollo API usage against the minute/hour/day rate limits, plus the most recent rate-limit headers observed.' This specifies a specific verb ('Report') and resource ('API usage / rate limits'). It distinguishes from sibling tools which are all search/enrich operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'Use before large batches to check headroom, and to answer "how much have we used?"' Also provides exclusion: 'Note: Apollo exposes no API for the remaining credit balance — that is only visible in the Apollo UI.' Prerequisites are given: 'Requires a master API key; consumes no credits.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apollo_org_enrichEnrich Organization (Apollo)A
Read-onlyIdempotent

Fetch full firmographics for one company via Apollo: industry, keywords, employee count, revenue, funding events, technology stack (current_technologies / technology_names), department headcounts, and headcount growth rates. Provide at least one of domain, name, website, or linkedinUrl. Consumes 1 credit when a record is enriched. For Danish companies prefer the Lassox MCP (authoritative CVR registry data); use this for non-DK companies or Apollo-specific fields like technology stack.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
domainNoBare domain without www. or @, e.g. "apollo.io".
fieldsNoOptional dot-path field projection to shrink the response — only these fields are returned per record. Descends nested objects and maps over arrays, e.g. ["id","name","primary_domain","primary_phone.number"]. Pass ["*"] for the full record.
websiteNo
linkedinUrlNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds credit consumption cost ('Consumes 1 credit when a record is enriched') beyond annotations. Annotations already indicate read-only, idempotent, non-destructive behavior. No contradictions present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences with no waste: first sentence lists output fields, second gives input requirements, third covers cost, fourth provides alternative. Purpose is front-loaded and structure is clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key aspects: purpose, input requirements, credit cost, and alternative guidance. Could be improved by describing return format or error behavior, but given the annotations and listed fields, it is fairly complete for an enrichment tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Description adds the constraint that at least one of domain, name, website, or linkedinUrl is required, which is not enforced in the schema (0 required params). It also mentions the 'fields' parameter for projection. With 40% schema coverage, this compensates well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool fetches full firmographics for one company via Apollo and lists specific fields (industry, keywords, employee count, etc.). It distinguishes from siblings by referencing the Lassox MCP for Danish companies, indicating use for non-DK or Apollo-specific needs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides when to use this tool vs. the Lassox MCP for Danish companies, and states required identifiers ('Provide at least one of domain, name, website, or linkedinUrl'), giving clear context and an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apollo_people_bulk_enrichBulk Enrich People (Apollo)A
Read-onlyIdempotent

Enrich up to 100 people via Apollo in one call. Chunks into bulk_match calls of 10, fans out with bounded concurrency, retries HTTP 429, and isolates per-item failures. Returns { total, succeeded, failed, creditsConsumed, requestIds, results[] } with results in input order. CONSUMES CREDITS per enriched record and reveal flags apply to EVERY person — confirm total credit cost with the user first. Apollo rate-limits bulk_match hard (documented 20/min). revealPhoneNumber requires webhookUrl. Emits MCP progress notifications when the client sends a progressToken.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional dot-path field projection to shrink the response — only these fields are returned per record. Descends nested objects and maps over arrays, e.g. ["id","name","primary_domain","primary_phone.number"]. Pass ["*"] for the full record.
detailsYesPeople to enrich. Each item needs at least one identifier.
webhookUrlNoPublic HTTPS endpoint Apollo POSTs phone numbers to. Required when revealPhoneNumber=true.
concurrencyNoParallel bulk_match calls, 1-4. Defaults to 2.
revealPhoneNumberNo
revealPersonalEmailsNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond the annotations: it consumes credits, applies reveal flags to every person, requires webhookUrl for phone reveal, respects Apollo's hard rate limit (20/min), and emits MCP progress notifications. Annotations (readOnlyHint, idempotentHint, destructiveHint) are consistent and the description enriches them with operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderate in length (few sentences) and front-loads the main action. Each sentence adds necessary detail (chunking, concurrency, retry, credit consumption, rate limits, progress notifications). Some redundancy exists (e.g., 'bounded concurrency' and explicit concurrency parameter), but overall efficient for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description fully specifies the return format: { total, succeeded, failed, creditsConsumed, requestIds, results[] } with input order. It covers all behavioral aspects (rate limits, credit cost, per-item isolation, progress notifications). For a tool with 6 parameters, concurrency, and multiple constraints, this is exceptionally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all 6 parameters have descriptions), so baseline is 3. The description adds value by: clarifying credit consumption tied to reveal flags, explaining that results preserve input order, and noting that revealPhoneNumber requires webhookUrl (already in schema but reinforced). It also mentions progress notifications related to progressToken, which is not in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Enrich up to 100 people via Apollo in one call,' specifying the verb (enrich), resource (people), and scope (up to 100). It distinguishes itself from siblings like apollo_person_enrich (single person) and apollo_people_search (search) implicitly through the batch nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: churns into bulk_match calls, fans out with bounded concurrency, retries HTTP 429, isolates per-item failures, and warns about credit consumption and rate limits. It advises confirming total credit cost with the user. However, it does not explicitly state when not to use this tool or compare directly to alternatives, but the context is clear enough for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apollo_person_enrichEnrich Person (Apollo)A
Read-onlyIdempotent

Match one person via Apollo and return their full profile (employment history, employer, departments, seniority). CONSUMES CREDITS when a record is enriched; setting revealPersonalEmails or revealPhoneNumber costs extra per your Apollo plan (typically ~1 credit per email, ~8 per mobile) — confirm with the user first. Phone numbers are NOT in the synchronous response: Apollo delivers them asynchronously to webhookUrl (required for phone reveals); poll apollo_webhook_result with the returned request_id if the callback is missed. Personal emails are not revealed for people in GDPR regions; you are the data controller for retrieved personal data.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoApollo person id, e.g. from apollo_people_search.
nameNo
emailNo
domainNoEmployer domain without www. or @.
fieldsNoOptional dot-path field projection to shrink the response — only these fields are returned per record. Descends nested objects and maps over arrays, e.g. ["id","name","primary_domain","primary_phone.number"]. Pass ["*"] for the full record.
lastNameNo
firstNameNo
webhookUrlNoPublic HTTPS endpoint Apollo POSTs phone numbers to. Required when revealPhoneNumber=true.
hashedEmailNoMD5 or SHA-256 hashed email.
linkedinUrlNo
organizationNameNo
revealPhoneNumberNo
revealPersonalEmailsNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, idempotentHint), the description discloses critical behaviors: credit consumption per enrichment, extra cost per email/phone reveal, async phone delivery via webhookUrl, GDPR restrictions on personal emails, and the user's responsibility as data controller. This adds substantial value beyond the annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is a single, dense paragraph that front-loads the purpose, then efficiently covers key behaviors in separate sentences. No redundant information; every sentence adds value. The structure uses capitalization and punctuation effectively to highlight important warnings.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters and no output schema, the description comprehensively addresses credit usage, async phone retrieval, and GDPR concerns. It lacks specifics on the return format (e.g., what fields the profile contains) but the tool's purpose of returning 'full profile' is clear. The description is thorough enough for an AI agent to handle common scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (38%), and while the description explains revealPhoneNumber, webhookUrl, and their credit implications, it does not detail most parameters (name, email, domain, etc.). The meaning of these is inferable from context but not explicitly stated, leaving a gap in parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's core action: 'Match one person via Apollo and return their full profile (employment history, employer, departments, seniority).' The verb 'match' and 'return' paired with the resource 'person profile' precisely defines the purpose, distinguishing it from search tools (apollo_people_search) that list many results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes credit consumption and extra costs for reveal options, implicitly guiding when to use (when a full profile is needed) and cautioning about cost. It does not explicitly list alternatives or when not to use, but the context of credit consumption and async phone delivery provides practical guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apollo_search_capabilitiesSearch Apollo CapabilitiesA
Read-onlyIdempotent

Search the Apollo MCP server capabilities and examples. Use this first when deciding which Apollo tool to call.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. Description adds that it provides 'capabilities and examples', which is behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load purpose and usage. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so description should clarify return structure. It mentions 'capabilities and examples' but not format. For a simple search tool, it is adequate but leaves some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. Description does not explain the two parameters (query and limit) beyond their schema types. With no explanation, an agent may not know how to use them effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Search the Apollo MCP server capabilities and examples'. Differentiates from sibling tools by advising to use it first when deciding which tool to call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this first when deciding which Apollo tool to call', providing clear guidance on when to use. Does not explicitly exclude scenarios but context implies it is a discovery tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apollo_webhook_resultPoll Webhook Result (Apollo)A
Read-onlyIdempotent

Fetch the result of an asynchronous Apollo enrichment (phone-number reveal or waterfall) by request_id, in case the webhook callback was missed. Free (no credits); results are kept for 30 days. A 404 with retry_after_seconds means the result is not ready yet — wait before retrying.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestIdYesInteger request_id from apollo_person_enrich / apollo_people_bulk_enrich (may be negative).

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint, openWorldHint, idempotentHint true, and destructiveHint false. The description adds valuable behavioral info: free (no credits), 30-day retention, and specific retry-on-404 behavior. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, each essential. First sentence conveys purpose and condition; second adds cost and retry policy. No filler, efficiently front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given annotations and schema richness, the description adequately covers asynchronous nature, retry handling, and retention. Lacks detail on successful response structure, but rules state no output schema needed for return values; still, a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, providing a baseline of 3. The description adds context: requestId comes from apollo_person_enrich or apollo_people_bulk_enrich and may be negative, which aids correct parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches results of an asynchronous Apollo enrichment (phone-number reveal or waterfall) using a request_id, with the specific use case of recovering a missed webhook callback. This distinguishes it from sibling tools like apollo_person_enrich which initiate enrichment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this tool when a webhook callback was missed and provides retry guidance: a 404 with retry_after_seconds means not ready. It lacks explicit alternatives or when-not-to-use, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv0.1.0
    • First observedapollo_companies_search
    • First observedapollo_credit_usage
    • First observedapollo_org_enrich
    • First observedapollo_people_bulk_enrich
    • First observedapollo_people_search
    • First observedapollo_person_enrich
    • First observedapollo_search_capabilities
    • First observedapollo_webhook_result

TDQS

A4.4/5.0
Disambiguation5/5

Each tool targets a distinct domain action (company search/Enrich, people search/enrich, credit usage, webhook results) with no overlapping purposes. Clear separation between sync and async operations, and between company and people workflows.

Naming Consistency5/5

All tool names follow the consistent pattern 'apollo_<action>_<target>', using snake_case throughout. Examples: apollo_companies_search, apollo_org_enrich, apollo_people_search.

Tool Count5/5

8 tools is an ideal scope for an Apollo API wrapper, covering search, enrichment, usage monitoring, and async handling without being overwhelming or sparse.

Completeness4/5

The set covers core CRUD-like operations (search, enrich, bulk enrich, usage check, async retrieval) but lacks direct update/delete endpoints, which are likely not exposed by Apollo's API. A minor gap but functional for typical use cases.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Apollo.io B2B database enabling people and company search, enrichment, and insights through conversational interfaces.
    9
    507
    19
    MIT
  • F
    license
    B
    quality
    C
    maintenance
    A Model Context Protocol (MCP) server for the Apollo.io API, giving AI coding assistants direct access to Apollo.io's sales intelligence platform for prospecting, enrichment, CRM operations, and outreach.
    50
    5
    -
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Apollo.io B2B sales intelligence API. Enables searching and enriching people and organizations via natural language.
    7
    27
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for the Apollo.io API that lets LLMs search and enrich people and company data.
    66
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/borgels/mcp-server-apollo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server