Skip to main content
Glama

Apollo.io B2B Person Enrichment & Verified Email Finder (x402)

Server Details

Apollo.io B2B Person Enrichment & Verified Work Email Finder via x402 on Base ($0.03, free on miss).

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
98.8% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL
Repository
Nrorvem/agent-distribution-gateway
GitHub Stars
0
ChatGPT
–
Claude
–

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation4/5

The set splits cleanly along two axes: search vs. enrich, and single vs. bulk (search_people/search_organizations, enrich_person/enrich_organization, bulk_enrich_people/bulk_enrich_organizations), with get_enrichment_quote clearly framed as a free pre-flight. The only real overlap risk is bulk_enrich_people vs. enrich_person, which return the same payload and differ only in batch size/cost, though the descriptions do flag this.

Naming Consistency4/5

Nearly all names follow a predictable snake_case verb_noun pattern (search_*, enrich_*, bulk_enrich_*, get_enrichment_quote). The lone minor deviation is get_enrichment_quote, where the noun doesn't mirror the resource-oriented naming of the others, but the convention remains readable and consistent.

Tool Count5/5

Seven tools is well-scoped for a search-plus-enrichment server: two searches, two single enrichment calls, two bulk variants, and one free quote/discovery tool. Each tool maps to a distinct step in the workflow with no filler.

Completeness4/5

The surface covers the full discovery-to-resolution lifecycle: find accounts/people, then resolve firmographics or verified emails, with bulk paths and a pre-flight pricing check. Minor gaps exist, such as no standalone email verification or reverse-email lookup separate from enrich_person, and no dedicated pagination/cursor utility.

Available Tools

7 tools
bulk_enrich_organizationsBInspect

PAID ($0.015 USDC / record via x402 on Base — Free-on-Miss: Priced per domain submitted ($0.015 each); settled only if at least one organization is found; $0.00 if none.): Batch company enrichment for high-throughput agents (1 to 10 domains per call). Free-on-Miss: settled only if at least one organization is found; $0.00 if zero organizations resolved.

NameRequiredDescriptionDefault
domainsYesArray of 1 to 10 company domains (e.g. ['apollo.io', 'stripe.com']).
_x402_paymentNoOptional x402 signed payment payload (if not passed via HTTP X-PAYMENT header)

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose useful behavior: cost ($0.015 USDC/record via x402 on Base), settlement only if at least one organization resolves, and $0.00 on total miss. However it is inconsistent about the billing unit ("per record" vs "priced per domain submitted"), which matters for cost prediction, and says nothing about partial failures, per-domain error handling, or rate limits.

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?

Purpose is front-loaded, which is good, but the Free-on-Miss settlement rule is stated twice in near-identical wording and the price appears both as a headline and inline. Roughly a third of the text is redundant.

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 paid batch tool with no output schema and no annotations, the description covers payment mechanics well but leaves the agent guessing about the returned enrichment fields and what happens when some (not all) domains resolve. Enough to call it, not enough to fully predict the result.

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 description coverage is 100%, so both the domains array (1-10, with examples) and _x402_payment are already documented in the schema. The description adds only the billing fact that price scales with domains submitted, which is mild value on top of the schema baseline.

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?

"Batch company enrichment for high-throughput agents (1 to 10 domains per call)" states a specific verb (enrich), resource (company/organization), and scope (batch of 1-10). It implicitly distinguishes bulk from the singular enrich_organization and from bulk_enrich_people, but never names those siblings explicitly.

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 phrase "for high-throughput agents (1 to 10 domains per call)" implies this is the multi-domain path and that single lookups belong elsewhere, but no explicit when-to-use/when-not guidance or alternative tool is named. An agent must infer the routing rule from the sibling names.

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

bulk_enrich_peopleAInspect

PAID ($0.025 USDC / record via x402 on Base — Free-on-Miss: Priced per record submitted ($0.025 each); charged for all submitted records if ≥ 1 email is found; $0.00 if none. Submit has_email: true IDs from search_people's unlock hint.): Batch person enrichment for high-throughput agents (1 to 10 profiles per call). Free-on-Miss: settled only if at least one record returns a deliverable email; $0.00 if zero deliverable emails found. Charged for all submitted records if ≥ 1 email is found. Submit has_email: true IDs from search_people's unlock hint.

NameRequiredDescriptionDefault
detailsYesArray of 1 to 10 person identifier objects.
_x402_paymentNoOptional x402 signed payment payload (if not passed via HTTP X-PAYMENT header)
reveal_personal_emailsNo

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does disclose the most consequential behavior: the $0.025/record price, the free-on-miss settlement rule, and the fact that all submitted records are charged if any one email resolves. It does not disclose failure handling, rate limits, or whether reveal_personal_emails changes the price.

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

Conciseness2/5

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

Pricing is front-loaded, which is correct, but the Free-on-Miss rule is explained three times and the 'Submit has_email: true IDs from search_people's unlock hint' instruction appears verbatim twice. Roughly half the text is redundant repetition rather than new information.

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 paid, unannotated, no-output-schema tool, the description covers the cost model and input sourcing, which is the critical part. It omits the return shape (what an enriched profile contains, how misses are represented per record) and the purpose of the reveal_personal_emails flag, leaving an agent unable to predict results or control cost.

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 67%, and the description adds real meaning to the 'details' array by specifying which IDs to submit (has_email: true from search_people). However, reveal_personal_emails is entirely unaddressed in both description and schema, which is a meaningful gap for a field that plausibly affects output and possibly cost.

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 and resource ('Batch person enrichment') plus a clear scope ('1 to 10 profiles per call') and an audience qualifier ('high-throughput agents'). The 'batch' framing implicitly separates it from the single-record sibling enrich_person, though it never names that sibling directly.

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?

Gives a concrete precondition for input: 'Submit has_email: true IDs from search_people's unlock hint,' which points the agent at the right upstream tool and the right field. It does not explicitly say when to prefer enrich_person over this batch tool or what to do with records that lack an ID.

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

enrich_organizationAInspect

PAID ($0.02 USDC / call via x402 on Base — Free-on-Miss: Settled ($0.02) only if organization is resolved; $0.00 if not found.): Enriches full organization profile by company domain. Returns founded year, employee count, industry, funding history, annual revenue, tech stack, departmental headcount, and HQ phone line. Free-on-Miss: $0.00 charged if domain not found.

NameRequiredDescriptionDefault
domainNoCompany primary domain (e.g. 'instacart.com').
_x402_paymentNoOptional x402 signed payment payload (if not passed via HTTP X-PAYMENT header)
organization_nameNoCompany brand name (fallback).

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full disclosure burden and it does deliver the most decision-critical behavior: a $0.02 USDC charge via x402 on Base, settled only on successful resolution and $0.00 on a miss. That is exactly the kind of cost/side-effect context an agent needs before invoking a paid tool. It does not cover auth prerequisites beyond the payment header, rate limits, latency, or error behavior on ambiguous input.

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 price and Free-on-Miss rule are front-loaded, which is good, but the $0.02/$0.00 policy is stated three separate times across the text, making it noticeably repetitive. Every sentence is relevant, yet the same fact is re-sold rather than reinforced with new information.

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?

No output schema exists, so the description must describe return values — and it does, listing seven concrete returned fields plus the miss case. Payment mechanics are fully explained. Missing only input edge cases (both domain and name supplied, partial matches) and failure handling, which keeps it short of a 5.

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 description coverage is 100%, so the schema already documents domain, organization_name as a fallback, and the optional _x402_payment payload. The description restates the domain-first resolution path and adds nothing about input format, normalization, or how the anyOf requirement interacts with providing both fields. Baseline 3 applies.

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 and resource ('Enriches full organization profile by company domain') and enumerates exactly what comes back: founded year, employee count, industry, funding history, revenue, tech stack, departmental headcount, HQ phone. It is clearly a single-organization tool, so an agent can distinguish it from enrich_person and bulk_enrich_organizations by name, but the description never explicitly names or contrasts those siblings.

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?

Usage is only implied: call it when you have a company domain (or brand name as fallback) and need firmographics. There is no explicit guidance on when to prefer bulk_enrich_organizations for multiple domains, when to call get_enrichment_quote first, or what to do when the domain is ambiguous.

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

enrich_personAInspect

PAID ($0.03 USDC via x402 on Base — Free-on-Miss: $0.00 charged if no deliverable email is found): Verified B2B Person Enrichment, Work Email Finder & LinkedIn-to-Email Resolver powered by Apollo.io. Accepts partial identifiers—(1) first_name + last_name + company domain or organization_name, (2) LinkedIn profile URL (linkedin_url), or (3) email (reverse email lookup)—and returns a deterministic JSON profile with deliverable work email, verification status, job title, seniority (founder, C-suite, VP, director), company firmographics (headcount, industry, founded year), and full employment history. Zero signup or API key required.

NameRequiredDescriptionDefault
idNoOptional Apollo.io person ID for direct profile hydration.
nameNoTarget person's full name (e.g., 'Tim Zheng'). Automatically split into first_name and last_name if needed.
emailNoKnown work or personal email address for reverse-email enrichment into full LinkedIn, title, firmographics, and career history.
domainNoCompany website domain or URL (e.g., 'apollo.io', 'stripe.com'). Also accepts a company name (e.g., 'Meta', 'Google') and automatically resolves the canonical domain.
companyNoAlias for organization_name or domain (e.g., 'Meta', 'Stripe', 'instacart.com').
last_nameNoTarget person's last name (e.g., 'Zheng'). Optional if 'name', 'linkedin_url', 'email', or 'id' is provided.
first_nameNoTarget person's first name (e.g., 'Tim'). Optional if 'name', 'linkedin_url', 'email', or 'id' is provided.
linkedin_urlNoPublic LinkedIn profile URL (e.g., 'https://www.linkedin.com/in/tim-zheng') to resolve directly into a verified work email and company profile.
_x402_paymentNoOptional x402 signed payment payload (if not passed via HTTP X-PAYMENT header)
organization_nameNoCompany or organization name (e.g., 'Apollo.io', 'Meta', 'Google', 'Stripe') if exact domain is unknown.
reveal_personal_emailsNoWhether to include verified personal emails if a corporate work email is unavailable (default: false).

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does substantially well: it discloses the price ($0.03 USDC via x402 on Base), the free-on-miss billing rule, the no-signup/no-API-key auth model, and the deterministic JSON return. It omits rate limits, timeout behavior, and what happens on ambiguous multi-match, which keeps it out of the top band.

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 cost/miss rule is correctly front-loaded, which is the most important fact. The remainder is a dense marketing register ('Verified… Resolver powered by Apollo.io', em-dash lists) that partly duplicates the schema-level description, so several clauses could be trimmed without losing information.

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?

There is no output schema and no annotations, and the description compensates by enumerating the returned fields (work email, verification status, title, seniority, firmographics, employment history). It covers cost and inputs, but says nothing about failure modes for an 11-parameter tool, which is the remaining gap.

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 schema already documents every parameter and the baseline is 3. The description usefully groups the parameters into three input modes, but that grouping largely restates the anyOf structure rather than adding new semantics.

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?

Names a specific verb and resource ('Verified B2B Person Enrichment… LinkedIn-to-Email Resolver') and enumerates the three resolution modes, so the function is unmistakable. However, it never acknowledges the sibling get_enrichment_quote, so the boundary between quoting and actually enriching is left for the agent to infer.

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?

Usage context is implied well by enumerating acceptable input shapes (LinkedIn URL, email, name+company, person ID), which tells the agent when the tool is applicable. But there is no explicit guidance on when to prefer this over get_enrichment_quote, nor any exclusion for cases where enrichment should be skipped.

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

get_enrichment_quoteAInspect

FREE pre-flight discovery tool: Inspect live x402 pricing ($0.03 USDC on Base, Free-on-Miss), deterministic JSON input/output schema, SLA latency telemetry, and recent verifiable Base settlement txHashes for Apollo.io B2B Person Enrichment & Work Email Lookup.

NameRequiredDescriptionDefault
toolNoOptional tool name to inspect pricing and schema for a specific product.

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and does a fair amount: it discloses the cost model (free call, underlying x402 price of $0.03 USDC on Base, Free-on-Miss), that output includes SLA latency and verifiable settlement txHashes, and that inspection has no billable effect. It omits explicit read-only/no-side-effect confirmation, auth or rate-limit behavior, and is ambiguous about whether the quoted $0.03 applies to this call or the downstream enrichment.

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?

It is a single front-loaded sentence that leads with 'FREE pre-flight discovery tool', which is good prioritization. But it is a dense run-on enumeration with promotional phrasing ('recent verifiable', 'deterministic'), and it hardcodes a price ($0.03 USDC) that will go stale, spending words on detail the live call itself would return.

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 one-optional-parameter discovery tool with no output schema, the description should describe the response shape, and it only names the kinds of data returned without indicating structure, per-tool grouping, or caching/freshness. It is adequate to know roughly what comes back but not enough to consume the result confidently, especially since no output schema exists to fill the gap.

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 description coverage is 100% for the single optional 'tool' parameter, so the schema already explains that it scopes inspection to a specific product. The description adds no parameter-level meaning, such as what happens when it is omitted or which tool names are accepted. The baseline of 3 applies when the schema does the heavy lifting.

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 uses a specific verb ('Inspect') and enumerates concrete resources: live x402 pricing, deterministic JSON schema, SLA latency telemetry, and Base settlement txHashes. It also scopes the domain (Apollo.io B2B Person Enrichment). However, it never distinguishes itself from siblings such as enrich_person or search_people, and bundling four disparate outputs into one tool makes the core purpose (quote vs. metadata dump) slightly muddled.

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?

'FREE pre-flight discovery tool' implies usage before a paid enrichment call, and the 'FREE' emphasis signals why an agent would pick it over a paying sibling. Beyond that implication, there is no explicit when-to-use/when-not-to-use statement and no sibling is named, so the routing decision is left to inference.

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

search_organizationsAInspect

PAID ($0.02 USDC / page via x402 on Base — Free-on-Miss: Settled ($0.02) only if ≥ 1 company returned; $0.00 if zero results.): Discover target accounts by name, keywords, domain list, locations, and headcount. Returns firmographic summaries and primary domains with next_step links to company firmographics or people search.

NameRequiredDescriptionDefault
pageNo
domainsNoSpecific company domains.
keywordsNoKeywords or tags.
per_pageNo
_x402_paymentNoOptional x402 signed payment payload (if not passed via HTTP X-PAYMENT header)
employee_rangesNoHeadcount ranges (e.g. ['51,200']).
organization_nameNoCompany name search (e.g. 'Instacart').
organization_locationsNoHQ locations.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well on the highest-risk trait: it discloses the $0.02/page x402 cost on Base and the free-on-miss settlement rule (charged only if ≥1 company returns). It also discloses the return shape. It stops short of stating whether payment must be pre-authorized for the first call or how page/per_page interplay affects cost.

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, zero waste, and the cost model is front-loaded so an agent sees the billing implication before anything else. Nothing in the text is redundant with the name or with the schema's own description.

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 an 8-param, zero-required search with no output schema, the description covers purpose, filters, return contents, and cost behavior — enough to call it correctly. Residual gaps are pagination semantics (page capped at 5, per_page at 25) and whether results are deduplicated or ranked, which live only in the 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 75%, so the schema already documents most parameters; the description adds real meaning beyond it by attaching a per-page price to the 'page' parameter and framing the filters as prospecting dimensions. It does not clarify per_page cost interaction or the employee_ranges format beyond the schema example.

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?

States a specific verb and resource — 'Discover target accounts' — and enumerates the filters (name, keywords, domain list, locations, headcount) plus what comes back: firmographic summaries, primary domains, and next_step links. An agent can tell from this that it is a company-prospecting search, distinct from person search and from the enrich_* siblings.

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 prospecting framing ('discover target accounts') implies when to reach for it, and the mention of next_step links to firmographics or people search hints at the follow-on flow. However, it never explicitly says when to prefer this over enrich_organization or search_people, nor does it state prerequisites for calling a paid endpoint.

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

search_peopleAInspect

PAID ($0.01 USDC / page via x402 on Base — Free-on-Miss: Priced at $0.01 USDC per page; settled on-chain only if at least one result has has_email: true ($0.00 charged if zero reachable leads found).): Search professionals across 275M+ profiles. Returns partial identities with masked last names and no emails; use next_step (enrich_person) or unlock (bulk_enrich_people) with the returned Apollo IDs to resolve verified deliverable work emails. Free-on-Miss: settled only if at least one result has reachable email (has_email: true); $0.00 charged if zero reachable leads found.

NameRequiredDescriptionDefault
pageNo
keywordsNoKeyword search across bio and experience.
per_pageNo
_x402_paymentNoOptional x402 signed payment payload (if not passed via HTTP X-PAYMENT header)
person_titlesNoJob titles to filter by (e.g. ['CEO', 'VP Sales']).
employee_rangesNoHeadcount ranges (e.g. ['1,10', '51,200', '1001,5000']).
organization_idsNoApollo organization IDs from search_organizations.
person_locationsNoGeographic locations (e.g. ['San Francisco', 'United States']).
person_senioritiesNoSeniority levels.
organization_domainsNoCompany primary domains (e.g. ['apollo.io', 'stripe.com']).

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations at all, the description carries the full disclosure burden, and it does well on results (masked last names, no emails, has_email flag) and on billing (charged only if a result has has_email: true). It omits permission/auth requirements, rate limits, and the 5-page pagination ceiling, so behavioral coverage is good but incomplete for a 10-parameter tool with zero annotation support.

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

Conciseness2/5

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

The free-on-miss pricing rule is restated almost verbatim twice within a single description, and the cost parenthetical in the opening is nested and hard to parse. Useful content (masked identities, Apollo IDs, enrichment hand-off) is split by duplicated billing text rather than 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?

There is no output schema, and the description compensates by explaining what comes back: masked last names, no emails, a has_email flag, and Apollo IDs usable downstream. What remains unstated is result-count/pagination behavior and the fact that no parameter is required, which matters for a broad people-search tool.

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 description coverage is 80%, so the schema already documents nearly every parameter with examples (titles, employee_ranges, domains, locations, seniorities). The description adds no parameter-level meaning beyond the schema, so baseline 3 applies.

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 names a specific verb and resource ('Search professionals across 275M+ profiles') and explicitly characterizes the output ('partial identities with masked last names and no emails'), which distinguishes it from enrich_person. The core purpose is however buried inside a dense pricing preamble, so an agent must read past cost boilerplate to find it.

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 concrete next-step routing: use 'next_step (enrich_person)' or 'unlock (bulk_enrich_people)' with the returned Apollo IDs to resolve verified emails, which tells an agent exactly what follows this search. It does not cover when to prefer search_organizations first or note that all ten parameters are optional/empty-search behavior.

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. 6 tool updates
    • Addedbulk_enrich_organizations
    • Addedbulk_enrich_people
    • Addedenrich_organization
    • Changedget_enrichment_quote1 field changed
      • addedInput schema / properties / tool
        Added value: +{
        +  "description": "Optional tool name to inspect pricing and schema for a specific product.",
        +  "type": "string"
        +}
    • Addedsearch_organizations
    • Addedsearch_people
  2. 1 tool update
    • Changedenrich_person2 fields changed
      • addedInput schema / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "linkedin_url"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "email"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "id"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "first_name",
        +      "last_name"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "name"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "first_name",
        +      "domain"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "first_name",
        +      "organization_name"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "first_name",
        +      "company"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "last_name",
        +      "domain"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "last_name",
        +      "organization_name"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "last_name",
        +      "company"
        +    ]
        +  }
        +]
      • changedInput schema / description
        Previous value: -"B2B Person Enrichment & Verified Work Email Finder (Apollo.io): Accepts flexible partial person identifiers—such as (1) LinkedIn profile URL only ('linkedin_url' or 'linkedin'), (2) work or personal email only ('email' for reverse email lookup), (3) name ('name' or 'first_name' + 'last_name') with company domain OR fuzzy company name ('domain', 'organization_name', or 'company', e.g. 'Meta' or 'meta.com'), or (4) Apollo person ID ('id')—and resolves a deterministic B2B executive/prospect profile with verified work email, job title, seniority, department, location, company firmographics, and employment history."New value: +"B2B Person Enrichment & Verified Work Email Finder (Apollo.io): Accepts flexible partial person identifiers—such as (1) LinkedIn profile URL only ('linkedin_url' or 'linkedin'), (2) work or personal email only ('email' for reverse email lookup), (3) name ('name' or 'first_name' + 'last_name') with company domain OR fuzzy company name ('domain', 'organization_name', or 'company', e.g. 'Meta' or 'meta.com'), or (4) Apollo person ID ('id')—and resolves a deterministic B2B executive/prospect profile with verified work email, job title, seniority, department, location, company firmographics, and employment history. Free-on-Miss: only settles payment ($0.03 USDC) when a verified person and deliverable email are returned."
  3. 1 tool update
    • Changedenrich_person9 fields changed
      • addedInput schema / additionalProperties
        Added value: +true
      • changedInput schema / description
        Previous value: -"B2B Person Enrichment & Verified Work Email Finder (Apollo.io): Resolve partial person identifiers—such as (1) first_name + last_name + company domain/organization_name, (2) LinkedIn profile URL (linkedin_url to email), or (3) work email (reverse email lookup)—into a deterministic B2B executive/prospect profile with verified work email, job title, seniority (founder, C-suite, VP, director), department, location, company firmographics (headcount, industry, founded year), and full employment history."New value: +"B2B Person Enrichment & Verified Work Email Finder (Apollo.io): Accepts flexible partial person identifiers—such as (1) LinkedIn profile URL only ('linkedin_url' or 'linkedin'), (2) work or personal email only ('email' for reverse email lookup), (3) name ('name' or 'first_name' + 'last_name') with company domain OR fuzzy company name ('domain', 'organization_name', or 'company', e.g. 'Meta' or 'meta.com'), or (4) Apollo person ID ('id')—and resolves a deterministic B2B executive/prospect profile with verified work email, job title, seniority, department, location, company firmographics, and employment history."
      • addedInput schema / properties / company
        Added value: +{
        +  "description": "Alias for organization_name or domain (e.g., 'Meta', 'Stripe', 'instacart.com').",
        +  "type": "string"
        +}
      • changedInput schema / properties / domain / description
        Previous value: -"Company website domain without protocol (e.g., 'apollo.io', 'stripe.com'). Strongly improves match precision."New value: +"Company website domain or URL (e.g., 'apollo.io', 'stripe.com'). Also accepts a company name (e.g., 'Meta', 'Google') and automatically resolves the canonical domain."
      • changedInput schema / properties / first_name / description
        Previous value: -"Target person's first name (e.g., 'Tim'). Best combined with last_name and domain or organization_name."New value: +"Target person's first name (e.g., 'Tim'). Optional if 'name', 'linkedin_url', 'email', or 'id' is provided."
      • addedInput schema / properties / id
        Added value: +{
        +  "description": "Optional Apollo.io person ID for direct profile hydration.",
        +  "type": "string"
        +}
      • changedInput schema / properties / last_name / description
        Previous value: -"Target person's last name (e.g., 'Zheng'). Best combined with first_name and domain or organization_name."New value: +"Target person's last name (e.g., 'Zheng'). Optional if 'name', 'linkedin_url', 'email', or 'id' is provided."
      • changedInput schema / properties / name / description
        Previous value: -"Target person's full name (e.g., 'Tim Zheng') if first_name and last_name are not separated."New value: +"Target person's full name (e.g., 'Tim Zheng'). Automatically split into first_name and last_name if needed."
      • changedInput schema / properties / organization_name / description
        Previous value: -"Company or organization name (e.g., 'Apollo.io', 'Stripe') if exact domain is unknown."New value: +"Company or organization name (e.g., 'Apollo.io', 'Meta', 'Google', 'Stripe') if exact domain is unknown."
  4. 2 tool updates
    • First observedenrich_person
    • First observedget_enrichment_quote

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enriches person profiles from email addresses, returning full name, job title, company, social links, and location. Works as a drop-in replacement for Apollo person enrichment at lower cost.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Waterfall lead enrichment for AI agents. Cascades through Apollo, Clearbit, and Hunter to build the most complete lead profile in a single call.
    6
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables B2B contact enrichment and account signals through Apify Actors: finding new hires and their previous employers, detecting company email formats, discovering lookalike companies, listing decision makers, resolving emails from LinkedIn profiles, and searching a people database by title, seniority, and country. Supports per-call spend caps, free count/market modes, and returns status-annotated rows plus dataset links.
    6
    451 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.