Skip to main content
Glama
thevgergroup

apollo-io-mcp

by thevgergroup

Apollo.io MCP Server and CLI

Apollo.io MCP Server

An Apollo.io MCP server and CLI for Claude Desktop, MCP clients, and terminal workflows. Use Apollo sales intelligence data for B2B prospecting, account research, contact enrichment, company enrichment, job-posting research, and company news discovery.

The friendliest path is the Claude Desktop extension bundle (.mcpb). The terminal install is here when you need it.

If this project helps your Apollo.io or MCP workflow, please star it on GitHub.

Contents

Related MCP server: @louis030195/apollo-io-mcp

Best Install: Claude Desktop Extension

  1. Create an Apollo API key in Apollo under Settings > Integrations > API.

  2. Download the newest apollo-io-mcp-v*.mcpb from GitHub Releases.

  3. Open the .mcpb file with Claude Desktop.

  4. Paste your Apollo API key when Claude asks for it.

  5. Restart Claude Desktop if prompted.

Try prompts like:

  • "Find VP Sales leaders in California at SaaS companies."

  • "Search for cybersecurity companies in Austin with 51-200 employees."

  • "Enrich the company profile for apollo.io."

  • "Find recent funding news for fintech companies."

People search is best for building prospect lists. If you are looking for one known person, use enrichment with an email, LinkedIn URL, or name plus company.

Terminal Install

Use this if you are comfortable running one command and want the installer to update Claude Desktop's config for you.

npx @thevgergroup/apollo-io-mcp@latest setup

Useful follow-up commands:

# Check Claude Desktop config, runtime versions, and update status
npx @thevgergroup/apollo-io-mcp@latest doctor

# Remove the server from Claude Desktop config
npx @thevgergroup/apollo-io-mcp@latest remove

# Print install and tool-selection guidance for agents
npx @thevgergroup/apollo-io-mcp@latest skills

The setup command preserves your other MCP servers and writes an apollo entry that runs the latest npm package through npx.

Claude Desktop Examples

Claude can use the Apollo tools together: search companies, find executives, enrich companies, check news, and shape the results into a useful working file.

Claude Desktop using Apollo.io MCP tools to search companies, enrich executives, and prepare an export

Good prompts to try:

  • "Find 20 EdTech companies in the DC metro area with $5-20M revenue. Track down their technologies, recent news, and CEO, CTO, CIO, or CFO contacts. Build an export file."

  • "Search for software companies in California with 50-200 employees, then summarize the strongest account-fit signals."

  • "Find C-level executives in healthcare companies in Boston. Prioritize operations, technology, and revenue leaders."

  • "Find VP Sales leaders in California at SaaS companies using Salesforce."

  • "Enrich the company data for google.com."

  • "Find recent funding news for fintech companies and list the companies worth researching next."

For one-off known contacts, ask for enrichment instead of search:

  • "Enrich the person profile for tim@apollo.io."

  • "Enrich John Doe at Example Company using the company name and person name."

What It Can Do

This server exposes Apollo.io as MCP tools:

  • apollo_search_people: prospect lists by title, seniority, department, company, location, industry, and technology.

  • apollo_search_companies: account lists by location, headcount, industry keywords, technology, revenue, funding, and job postings.

  • apollo_enrich_person: one known person by email, LinkedIn URL, or name plus company.

  • apollo_enrich_company: company details by domain or name.

  • apollo_bulk_enrich_people: multiple known people in one request.

  • apollo_bulk_enrich_organizations: multiple known company domains in one request.

  • apollo_get_organization_job_postings: job postings for a known Apollo organization ID.

  • apollo_get_complete_organization_info: complete details for a known Apollo organization ID.

  • apollo_search_news_articles: company news such as funding or acquisition events.

Apollo plan limits, API permissions, credits, and rate limits can affect which tools return data.

CLI Quick Start

Install globally:

npm install -g @thevgergroup/apollo-io-mcp
export APOLLO_API_KEY="your-actual-api-key-here"

Run a few searches:

apollo-io-cli search-people \
  --person_titles "VP Sales,Head of Sales" \
  --person_locations "California" \
  --per_page 10

apollo-io-cli search-companies \
  --q "cybersecurity" \
  --organization_locations "Austin" \
  --organization_num_employees_ranges "51,200"

apollo-io-cli enrich-company --domain "apollo.io"

One-off usage also works:

APOLLO_API_KEY="your-actual-api-key-here" \
  npx -p @thevgergroup/apollo-io-mcp apollo-io-cli search-companies --q "fintech"

See CLI.md for the full command reference.

Updates

For terminal and npx installs:

npx @thevgergroup/apollo-io-mcp@latest doctor

doctor checks your Claude Desktop config, Node.js and npm versions, the installed package version, the latest npm version, and whether an Apollo API key is configured.

For .mcpb installs, download the newest apollo-io-mcp-v*.mcpb from GitHub Releases and open it with Claude Desktop. Each release uses the same version for npm, GitHub tag, and MCPB bundle.

Local Release Check

Before cutting a release, you can validate the package, tests, release metadata, and MCPB bundle locally:

npm test
npm run build:mcpb
npm run check:release
npm audit --omit=dev --audit-level=moderate

npm run build:mcpb writes release/apollo-io-mcp-v<version>.mcpb and validates it with @anthropic-ai/mcpb.

Troubleshooting

  • APOLLO_API_KEY errors: re-run setup or check your Claude Desktop MCP config.

  • Empty people results: use titles and location filters first, then add company, industry, or technology filters.

  • Trying to find one known person: use apollo_enrich_person, not people search.

  • API access denied: check Apollo API key permissions and plan access.

  • Rate limits or credit issues: check Apollo API usage and credit limits.

  • Claude does not see the tools: restart Claude Desktop, then run npx @thevgergroup/apollo-io-mcp@latest doctor.

For Developers

Detailed source setup, MCP Inspector usage, tool schemas, filter references, testing, and release notes now live in docs/development/developer-guide.md.

Other useful files:

About The VGER Group

AI, Data, and Software Engineering.

The VGER Group designs and builds AI systems, data platforms, production software, and cloud architecture for teams that need working systems, not just strategy decks. This Apollo.io MCP server is part of our open source work: practical tools we needed, built well, and released publicly.

Website: https://thevgergroup.com/

Project: https://github.com/thevgergroup/apollo-io-mcp

License

MIT. See LICENSE.

Available Tools

9 tools
apollo_bulk_enrich_organizationsBulk Enrich OrganizationsB

Bulk enrich multiple organizations using Apollo match. Provide an array of organizations with domain or name.

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationsYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It mentions 'using Apollo match' but does not disclose rate limits, authentication, return format, potential errors, or what 'enrich' entails behaviorally.

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 a single sentence with no wasted words. It is front-loaded with the action. Could be slightly more structured but is efficient.

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

Completeness2/5

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

Given the complexity of a bulk operation with nested objects and no output schema, the description is incomplete. It does not explain return values, error handling, or limitations. Agents need more context for correct invocation.

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 0%, so description must compensate. It adds meaning by specifying that organizations can be identified by 'domain or name', which clarifies the parameter structure. However, it does not detail optionality or constraints beyond that.

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 'Bulk enrich multiple organizations using Apollo match' with specific verb and resource. It distinguishes from siblings like apollo_enrich_company (singular) and apollo_bulk_enrich_people (person focus).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No mention of prerequisites or when not to use it. The description only states what it does, not the context of use.

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

apollo_bulk_enrich_peopleBulk Enrich PeopleB

Bulk enrich multiple people using Apollo match. Provide an array of people with email, linkedin_url, name, or company.

ParametersJSON Schema
NameRequiredDescriptionDefault
peopleYes
reveal_phone_numberNoReveal phone numbers (default: false)
reveal_personal_emailsNoReveal personal emails (default: false)

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and mostly fails it. It says enrichment happens "using Apollo match" and what inputs to supply, but discloses nothing about credit consumption, whether reveal_phone_number/reveal_personal_emails incur extra cost, match-rate limitations, partial-match handling, or mutation side effects.

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 short sentences, front-loaded with the action and scope followed by the input requirement. No filler, no repetition of the title, nothing that fails to earn its place.

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

Completeness2/5

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

For a batch operation with no annotations and no output schema, key information is absent: response shape per record, behavior on unmatched entries, credit costs, batch size limits, and rate limits. An agent can construct the call but cannot predict its cost or outcome.

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 67%, and the description fills the most important gap: the people array and its accepted identifier fields (email, linkedin_url, name, company) are undocumented in the schema but spelled out here. The two reveal_* booleans are already described in the schema, so the description neither adds nor repeats value for them.

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

Purpose4/5

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

The description states a specific verb+resource ("Bulk enrich multiple people") and names the mechanism ("Apollo match"), which lets an agent distinguish it from the single-record sibling apollo_enrich_person by the word "bulk" / "multiple". It stops short of explicitly naming the sibling it replaces, so it is clear but not fully self-differentiating.

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

Usage Guidelines3/5

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

Bulk framing implies the usage context (multiple records at once vs. the single-person enrich tool), but there is no explicit when/when-not statement, no mention of alternatives, and no prerequisites or credit-cost warnings. Usage must be inferred from the word "bulk".

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

apollo_enrich_companyEnrich CompanyC

Enrich a company/organization by domain or name using Apollo match.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
domainNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose if enrichment is a read or write operation, any side effects, or rate limits. Only mentions the mechanism, not behavioral traits.

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?

Single concise sentence that front-loads the purpose. Could include more detail without losing conciseness, but currently no fluff.

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?

For a simple tool with two optional parameters and no output schema, the description is minimally complete. However, it lacks explanation of what enrichment means or the expected outcome, leaving room for 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?

With 0% schema description coverage, the description only mentions parameters implicitly ('by domain or name') but adds no format details, constraints, or usage notes. Minimal additional value.

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

Purpose4/5

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

Description clearly states it enriches a company by domain or name using Apollo match, distinguishing from search tools but not fully from other enrich tools. The verb 'enrich' is slightly vague but acceptable.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus siblings like search_companies, get_complete_organization_info, or bulk_enrich. Missing context on prerequisites or alternatives.

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

apollo_enrich_personEnrich PersonC

Enrich a person by email, linkedin_url, or name+company using Apollo match.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
emailNo
companyNo
linkedin_urlNo
reveal_phone_numberNoReveal phone numbers (default: false)
reveal_personal_emailsNoReveal personal emails (default: false)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden. It discloses nothing about cost/credit consumption for enrichment, whether reveal_phone_number or reveal_personal_emails incur extra charges, rate limits, or result-empty behavior. For a paid enrichment endpoint this is a substantial gap.

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?

One tight sentence with the resource and matching modes front-loaded. No filler, though it is arguably too terse for a six-parameter tool.

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

Completeness2/5

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

A six-parameter, zero-required-parameter mutation-adjacent tool with no output schema and no annotations needs more: which identifier combinations are valid, what happens on a miss, and whether phone/personal-email reveals are billable are all absent.

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 33%, but the description does add meaning by grouping the three matching keys (email, linkedin_url, name+company) as alternative identifiers. It omits that at least one identifier must be supplied despite zero required parameters, and says nothing about the two reveal_* flags beyond what the schema already documents.

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

Purpose4/5

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

States a specific verb (enrich) and resource (a person) and names the accepted matching keys. It implicitly differentiates from siblings like apollo_bulk_enrich_people and apollo_enrich_company, though it never names them. Clear enough for an agent to identify the tool.

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

Usage Guidelines2/5

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

The description lists valid input keys but gives no when-to-use guidance: no distinction from apollo_search_people (lookup vs enrichment), no mention that this is the single-record counterpart to the bulk variant. Usage must be inferred entirely.

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

apollo_get_complete_organization_infoGet Complete Organization InfoB

Get complete information for a specific organization by organization ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
organization_idYesThe Apollo organization ID

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It only states that the tool 'gets' information, implying a read operation, but fails to mention any side effects, data freshness, authentication requirements, or error conditions. Minimal behavioral context is added beyond the tool's name.

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 description is a single concise sentence of 9 words that directly states the action and input. It is front-loaded with the key verb and resource, with zero wasted words.

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?

For a simple retrieval tool with one parameter, the description is adequate but lacks detail on what 'complete information' includes, especially compared to sibling enrichment tools. It does not clarify scope or limitations, so completeness is moderate.

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?

The schema has 100% coverage with a description for the only parameter (organization_id). The tool description adds no additional semantic detail; it merely restates the parameter purpose. Baseline 3 is appropriate as the schema already documents the parameter adequately.

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 uses the specific verb 'Get' and resource 'complete information for a specific organization', and explicitly mentions the input (organization ID). It clearly distinguishes from sibling tools like apollo_enrich_company which are for enrichment, not full info retrieval.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as apollo_enrich_company or apollo_search_companies. There is no mention of use cases or exclusions, leaving the agent to infer usage from the tool name alone.

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

apollo_get_organization_job_postingsGet Organization Job PostingsB

Get job postings for a specific organization by organization ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
organization_idYesThe Apollo organization ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It only states the basic action without disclosing return format, pagination, or any side effects. Minimal transparency.

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?

Single sentence with no redundancy, directly communicates the purpose. Excellent conciseness.

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

Completeness2/5

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

No output schema provided, and the description lacks details on the structure of job postings, pagination, or typical usage. Incomplete for a tool with no other context.

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 100% for the single parameter. Description adds no extra meaning beyond schema, which is adequate but not exceptional.

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 verb 'Get', the resource 'job postings', and the qualifier 'for a specific organization by organization ID'. It distinguishes itself from siblings like apollo_get_complete_organization_info which focuses on broader org info.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as apollo_get_complete_organization_info or search tools. The usage context is only implied.

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

apollo_search_companiesSearch CompaniesA

Search for companies/organizations in Apollo with comprehensive filtering options. Use filters to target specific company types, locations, sizes, and industries.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
queryNoSearch query for company names, industries, or keywords
filtersNoAdvanced filtering options. Start with location + keywords for best results.
per_pageNoResults per page (1-200, default: 25)

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, and the description lacks disclosure of behavior beyond input schema, such as rate limits, authentication, or side effects like credit consumption.

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 description is two sentences, front-loaded with purpose, and contains no unnecessary words. It is appropriately sized for the tool's complexity.

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?

While the description covers the basic purpose, it lacks details on return format, error handling, or query limits, which are missing given the absence of an output schema.

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%, and the description adds value with usage tips like 'Start with location + keywords for best results' and warnings about restrictive filters, enhancing understanding beyond the schema alone.

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 'Search for companies/organizations in Apollo' using a specific verb and resource, and distinguishes it from sibling tools like apollo_search_people or enrichment tools.

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

Usage Guidelines3/5

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

The description advises 'Use filters to target specific company types, locations, sizes, and industries' but does not explicitly compare with alternatives or provide when-not-to-use guidance.

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

apollo_search_news_articlesSearch News ArticlesC

Search for news articles related to companies in Apollo. Supports 'query', 'filters', pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
queryNo
filtersNo
per_pageNo

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description should reveal behavioral traits. It only mentions support for query, filters, and pagination, omitting details like authentication, rate limits, or data freshness.

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

Conciseness3/5

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

The description is concise with two sentences, but it lacks front-loading and could be more structured to highlight key aspects like required parameters.

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

Completeness1/5

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

Given no annotations, no output schema, and 4 parameters with zero descriptions, this description is severely incomplete—missing information on result format, filter usage, and parameter constraints.

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?

With 0% schema description coverage, the description must add meaning. It lists three parameter categories but does not explain the structure of 'filters' or the valid ranges for pagination parameters.

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

Purpose4/5

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

The description clearly states it searches for news articles related to companies, distinguishing it from other Apollo search tools that target companies or people.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like apollo_search_companies, nor are any prerequisites or limitations mentioned.

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

apollo_search_peopleSearch PeopleA

Search for people in Apollo with advanced filtering options. Use filters to target specific roles, locations, seniority levels, and companies.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
queryNoSearch query for names, titles, or keywords
filtersNoAdvanced filtering options for targeting specific people
per_pageNoResults per page (1-200, default: 25)

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior. It only mentions 'advanced filtering options' but does not mention pagination, authentication, rate limits, or whether results are returned. This is a significant gap for a search tool.

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: first states purpose, second adds usage guidance. No wasted words. Front-loaded with the core action.

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?

Given the complexity (nested filters, 4 parameters, no output schema), the description is incomplete. It lacks details on pagination, result format, and prerequisites. An agent would need to infer behavior from the schema alone.

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 100%, so the description adds minimal value beyond summarizing filter types. It reiterates 'roles, locations, seniority levels, and companies' which are already 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 'Search for people in Apollo' with a specific verb and resource. It distinguishes from sibling tools like 'apollo_search_companies' and 'apollo_search_news_articles' by focusing on people.

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?

It gives guidance on using filters for roles, locations, seniority, and companies. However, it does not explicitly state when to use this tool versus alternatives like 'apollo_enrich_person'.

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.

  1. 2 tool updatesv3.0.0
    • Changedapollo_bulk_enrich_people1 field changed
      • changedInput schema / properties / people / items / properties / email / pattern
        Previous value: -"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"New value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    • Changedapollo_enrich_person1 field changed
      • changedInput schema / properties / email / pattern
        Previous value: -"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"New value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
  2. 9 tool updatesv2.2.1
    • First observedapollo_bulk_enrich_organizations
    • First observedapollo_bulk_enrich_people
    • First observedapollo_enrich_company
    • First observedapollo_enrich_person
    • First observedapollo_get_complete_organization_info
    • First observedapollo_get_organization_job_postings
    • First observedapollo_search_companies
    • First observedapollo_search_news_articles
    • First observedapollo_search_people

TDQS

B3.4/5.0

Scored across 9 tools

Disambiguation4/5

Most tools are clearly distinct by resource type (person vs. organization) and action (enrich vs. bulk enrich vs. search vs. get). Minor overlap exists between enrich_company and get_complete_organization_info, both retrieving organization details, but the descriptions and ID-vs-name/domain distinction clarify usage.

Naming Consistency5/5

All tool names use a consistent snake_case pattern with the apollo_ prefix, and verbs are predictably structured (enrich, bulk_enrich, get, search). The naming is highly predictable and readable.

Tool Count5/5

Nine tools are well-scoped for an Apollo data enrichment and search server, covering single and bulk operations without excessive duplication. Each tool has a clear purpose and the count is appropriate for the domain.

Completeness4/5

The surface covers enrichment, bulk enrichment, search, organization details, job postings, and news articles, which is strong coverage for Apollo's main use cases. Minor gaps exist, such as retrieving a person by ID directly or more granular job posting search, but agents can likely work around them via existing enrichment and search tools.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

  • Your agent needs B2B contacts and the pipeline objects around them — find the company, find the person, get the email, then write it back where your team works. **What you can ask for** • "Find heads of engineering at Series-B SaaS companies in the Nordics, with emails." • "Enrich these companies with headcount, industry and funding." • "What roles is this company hiring for right now?" • "Create an account and a contact, then log this opportunity." • "Search our sequences for messages sent to this domain." **How to use it** Point any MCP client at https://mcp.aisa.one/apollo/mcp and sign in with OAuth — there is no key to create or paste. 54 tools: people and organisation search and enrichment, job postings, accounts, contacts, opportunities and their stages, custom fields, labels, notes, users, email accounts, sequence messages and phone-call search — reads and writes. **Why this rather than the source** The full object model, not just a search endpoint, so an agent can finish the job rather than hand you a CSV. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Find the person here, then ask the same agent what their company's traffic looks like or what they rank for — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/sales/mcp adds Similarweb and creator discovery around it.

  • MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.

  • Official ZoomInfo MCP server. Search and enrich companies, contacts, and buyer intent signals.

  • Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.

Related MCP Servers

  • 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
    23 npm
    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.
    85 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    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.
    8
    Apache 2.0