apollo-io-mcp
This server provides MCP tools to access Apollo.io sales intelligence data for B2B prospecting, enrichment, and research.
Search People: Find prospects by job title, location, seniority, industry, department, technologies used, company, education, and years of experience.
Search Companies: Discover accounts by location, size, industry keywords, revenue, funding, technologies, job titles, and employee count.
Enrich Person: Get detailed person data using email, LinkedIn URL, or name + company.
Enrich Company: Retrieve company details by domain or name.
Bulk Enrich People: Enrich multiple people in one request.
Bulk Enrich Organizations: Enrich multiple companies by domain or name in one request.
Get Organization Job Postings: Fetch current job postings for a known Apollo organization ID.
Get Complete Organization Info: Obtain comprehensive organization data for a given Apollo ID.
Search News Articles: Find company news such as funding or acquisition events.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@apollo-io-mcpfind sales directors at tech companies in Austin"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Apollo.io MCP Server and CLI

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
Create an Apollo API key in Apollo under Settings > Integrations > API.
Download the newest
apollo-io-mcp-v*.mcpbfrom GitHub Releases.Open the
.mcpbfile with Claude Desktop.Paste your Apollo API key when Claude asks for it.
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 setupUseful 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 skillsThe 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.

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 doctordoctor 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=moderatenpm run build:mcpb writes release/apollo-io-mcp-v<version>.mcpb and validates it with @anthropic-ai/mcpb.
Troubleshooting
APOLLO_API_KEYerrors: 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 toolsapollo_bulk_enrich_organizationsBulk Enrich OrganizationsB
Bulk enrich multiple organizations using Apollo match. Provide an array of organizations with domain or name.
| Name | Required | Description | Default |
|---|---|---|---|
| organizations | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| people | Yes | ||
| reveal_phone_number | No | Reveal phone numbers (default: false) | |
| reveal_personal_emails | No | Reveal personal emails (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. 'Enrich' is vague; no mention of what data is added/overwritten, whether operation is idempotent, impact on existing data, or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy. Front-loads the core action and input requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no mention of return values or success criteria. For a bulk operation, should specify what enrichment results look like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 67% of parameters with descriptions. Description adds that people array should contain objects with specified fields, but does not elaborate on format or validation beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'bulk enrich multiple people' and specifies input fields (email, linkedin_url, name, or company). Distinguishes from sibling tools like apollo_enrich_person (single) and apollo_bulk_enrich_organizations (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for bulk enrichment of people, but does not explicitly state when to use vs alternatives like single-person enrichment or when not to use. No exclusion criteria.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| domain | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| No | |||
| company | No | ||
| linkedin_url | No | ||
| reveal_phone_number | No | Reveal phone numbers (default: false) | |
| reveal_personal_emails | No | Reveal personal emails (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only says 'enrich' without explaining side effects, data sources, credit costs, idempotency, or what the response contains. This is insufficient for safe and correct invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence. It is concise but omits critical details. It earns a 4 for brevity without verbosity, but the lack of structure (e.g., separate sections for usage and behavior) limits its utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description is far from complete. An agent lacks information on input requirements, return format, and important behavioral constraints. The description leaves too many gaps for reliable tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (2 of 6 parameters have descriptions). The tool description adds no parameter details beyond listing identification keys. It does not clarify input combinations (e.g., name+company must be used together) or the meaning of boolean options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (enrich) and resource (a person), and lists the identification keys (email, linkedin_url, name+company). It implies a single-person focus, distinguishing it from bulk counterparts. However, it doesn't specify what 'enrich' adds, which slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 siblings like apollo_search_people, apollo_bulk_enrich_people, or apollo_enrich_company. The description fails to indicate prerequisites or conditions for using different identification methods.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes | The Apollo organization ID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes | The Apollo organization ID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| query | No | Search query for company names, industries, or keywords | |
| filters | No | Advanced filtering options. Start with location + keywords for best results. | |
| per_page | No | Results per page (1-200, default: 25) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| query | No | ||
| filters | No | ||
| per_page | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| query | No | Search query for names, titles, or keywords | |
| filters | No | Advanced filtering options for targeting specific people | |
| per_page | No | Results per page (1-200, default: 25) |
TDQS
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.
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.
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.
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.
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.
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.
9 tool updates
v2.2.1- First observed
apollo_bulk_enrich_organizations - First observed
apollo_bulk_enrich_people - First observed
apollo_enrich_company - First observed
apollo_enrich_person - First observed
apollo_get_complete_organization_info - First observed
apollo_get_organization_job_postings - First observed
apollo_search_companies - First observed
apollo_search_news_articles - First observed
apollo_search_people
TDQS
Scored across 9 tools
All tools have clearly distinct purposes: enrichment (single and bulk) for organizations and people, search for companies, people, and news, and specific organization detail retrieval. No overlap in functionality.
All tools follow the pattern 'apollo_verb_noun' with snake_case, e.g., apollo_enrich_company, apollo_search_companies. Consistent and predictable.
9 tools is well-scoped for an enrichment and search server. Each tool earns its place covering core operations without being excessive.
The tool set covers enrichment (single/bulk), search, and organization details. Missing a tool to get a person by ID, but overall it's comprehensive for the domain.
Maintenance
Related MCP Connectors
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.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- FlicenseBqualityCmaintenanceA 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.505-
- AlicenseAqualityDmaintenanceMCP server for Apollo.io B2B sales intelligence API. Enables searching and enriching people and organizations via natural language.7114MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for the Apollo.io API that lets LLMs search and enrich people and company data.66MIT
- AlicenseAqualityCmaintenanceMCP server for Apollo.io B2B data discovery and enrichment, enabling company search, people search, contact enrichment, and organization firmographics through Apollo's REST API.8Apache 2.0