Skip to main content
Glama
Aleksey-Panf

b2b-enrichment-mcp

by Aleksey-Panf

B2B Enrichment MCP

Glama score

Unified MCP server combining Hunter.io email finding with Apollo company intelligence. One connection, two data sources, built for Claude and Cursor.

demo


Lead generation workflows need two things: email addresses and company context. Most MCP servers handle one or the other. This one handles both — Hunter.io for finding and verifying emails, Apollo.io for firmographic data like headcount, funding, and tech stack. One server, one config, Claude orchestrates across both.


Tools

Hunter.io — email intelligence

  • 🔍 hunter_find_emails_by_domain — get all emails at a company domain with names, titles, and confidence scores

  • 🎯 hunter_find_email — find the most likely email for a specific person by name + domain

  • hunter_verify_email — check whether an email is deliverable before sending

  • 📊 hunter_count_emails — count indexed emails for a domain (free, no credits)

  • 💳 hunter_check_account — view remaining Hunter credits (free)

Apollo.io — company & people intelligence

  • 🏢 enrich_company — full firmographic profile: headcount, revenue, funding, tech stack, socials

  • 👤 enrich_person_by_email — complete B2B profile from a single email address

  • 🧑‍🤝‍🧑 bulk_enrich_people — enrich up to 10 contacts in one API call

  • 🔎 enrich_person — profile lookup by name + domain, LinkedIn URL, or email

search_people and search_companies are also included but require an Apollo Basic plan ($49/mo).


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

Free tier friendly

You can run real enrichment workflows without paying anything upfront:

Service

Free allowance

Hunter.io

50 requests/month + 50 verifications

Apollo.io

Company enrichment — unlimited on free plan

No credit card required to start. Both services have free tiers that cover the most common use cases.


Installation

Requires Python 3.11+

git clone https://github.com/Aleksey-Panf/b2b-enrichment-mcp.git
cd b2b-enrichment-mcp

python -m venv .venv

# Windows
.venv\Scripts\Activate.ps1
# macOS / Linux
source .venv/bin/activate

pip install -e .

Copy the env template and add your keys:

cp .env.example .env
# .env
HUNTER_API_KEY=your_hunter_key_here
APOLLO_API_KEY=your_apollo_key_here

Get your API keys:


Claude Desktop

Edit claude_desktop_config.json — on Windows at %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "b2b-enrichment": {
      "command": "C:\\path\\to\\b2b-enrichment-mcp\\.venv\\Scripts\\python.exe",
      "args": ["-m", "apollo_mcp.server"],
      "env": {
        "HUNTER_API_KEY": "your_hunter_key_here",
        "APOLLO_API_KEY": "your_apollo_key_here"
      }
    }
  }
}

Restart Claude Desktop. The tools will appear automatically.


Cursor

Add to .cursor/mcp.json in your project root, or to global Cursor MCP settings:

{
  "mcpServers": {
    "b2b-enrichment": {
      "command": "C:\\path\\to\\b2b-enrichment-mcp\\.venv\\Scripts\\python.exe",
      "args": ["-m", "apollo_mcp.server"],
      "env": {
        "HUNTER_API_KEY": "your_hunter_key_here",
        "APOLLO_API_KEY": "your_apollo_key_here"
      }
    }
  }
}

On macOS / Linux replace the command path with .venv/bin/python.


Example queries

Copy these into Claude or Cursor once the server is connected:

Find 10 emails of marketing directors at SaaS companies using Hunter.
Tell me everything about stripe.com — headcount, funding, tech stack —
and find 5 contacts there.
Verify whether john@acme.com is a valid email address.
Get the full company profile for openai.com.
I have a list of 8 people with names and company domains.
Enrich all of them for emails and job titles in one call.

Roadmap

  • LinkedIn URL enrichment via Apollo (resolve profile → full contact)

  • Bulk domain search — run Hunter domain search across a list of domains

  • Export results to CSV directly from Claude

  • Webhook support for async enrichment on large lists


Contributing

PRs are welcome. Open an issue first for anything beyond small fixes.

git checkout -b feature/your-feature
# make changes
git commit -m "feat: describe your change"
git push origin feature/your-feature

License

MIT


Built by @Aleksey-Panf — available for custom MCP and AI automation work.
Contact: @Aleksey_Ai14

Available Tools

11 tools
bulk_enrich_peopleA

[Apollo] Enrich up to 10 people in a single API call.

Best for: enriching a batch of contacts at once — faster than looping over enrich_person and uses the same total credits (1 per matched person). Works on free Apollo plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
peopleYesList of people to enrich — maximum 10 per call. Each person needs: first_name + last_name + domain (or organization_name), OR just an email address.
reveal_personal_emailsNoIf True, attempt to return personal email addresses for all people. Requires a paid Apollo plan.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description is the sole source. Mentions batch limit and credit cost, but lacks disclosure on what enrichment entails or what happens on failure. Adequate but not rich.

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?

Extremely concise: two sentences plus a bullet point. Front-loaded with primary action and value. No wasted words.

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

Completeness4/5

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

For a simple batch enrichment tool with good schema, the description is sufficient. Lacks output description but no output schema exists, so not required. Slightly above baseline for 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% and schema descriptions are detailed. The description adds minimal extra value (e.g., credit info). Baseline 3 for full coverage.

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 'enrich' and the resource 'up to 10 people', and distinguishes itself from sibling tool 'enrich_person' by highlighting batching and same credit cost.

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

Usage Guidelines5/5

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

Explicitly states 'Best for: enriching a batch of contacts at once' and contrasts with 'enrich_person', also notes 'Works on free Apollo plan'.

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

enrich_companyA

[Apollo] Enrich a company's full firmographic profile by domain.

Best for: company intelligence that Hunter doesn't provide — headcount, revenue range, funding stage, investors, tech stack, industry, and social links. Use this alongside Hunter email tools for a complete company + contacts picture. Costs 1 Apollo credit. Works on free Apollo plan. Returns: legal name, employee count, revenue range, industry, founding year, funding stage and total raised, tech stack, LinkedIn, Twitter, website. Examples: stripe.com, openai.com, notion.so, figma.com

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesCompany website domain, e.g. 'stripe.com' or 'openai.com'. Do not include 'https://' or 'www.'.

TDQS

A4.6/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses cost ('Costs 1 Apollo credit'), works on free plan, and lists return fields. Does not cover rate limits or authentication, but is sufficient for an enrichment tool.

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?

Description is well-structured with a clear opening, 'Best for', details, returns, and examples. Slightly verbose in returns list but still efficient.

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

Completeness5/5

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

No output schema, but description fully enumerates return values. Also covers cost, plan compatibility, and usage alongside other tools, making it complete for a simple enrichment tool.

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

Parameters4/5

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

Schema has one parameter with description; description adds list of returned fields, usage context, and examples, enhancing meaning 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 starts with a specific verb 'Enrich' and resource 'company's full firmographic profile' by domain, clearly distinguishing it from sibling tools like enrich_person or Hunter email tools.

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

Usage Guidelines5/5

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

Explicitly states it is 'Best for: company intelligence that Hunter doesn't provide' and recommends 'Use this alongside Hunter email tools', providing clear guidance on when to use this tool versus alternatives.

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

enrich_personA

[Apollo] Enrich a person's B2B profile by name and at least one identifier.

Best for: enriching a contact when you have name + employer but no email yet (consider using hunter_find_email first — it may be cheaper). Costs 1 Apollo credit normally; 8 credits with reveal_phone_number=True. Provide at least one of: domain, organization_name, email, or linkedin_url.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoKnown email to assist matching. If you only have an email, use enrich_person_by_email instead.
domainNoEmployer domain, e.g. 'stripe.com'. Strongly recommended — significantly improves match accuracy.
last_nameYesPerson's last name, e.g. 'Smith'.
first_nameYesPerson's first name, e.g. 'Jane'.
linkedin_urlNoLinkedIn profile URL, e.g. 'https://linkedin.com/in/janesmith'. Can be used as the sole identifier.
organization_nameNoEmployer company name, e.g. 'Stripe'. Use domain instead when possible.
reveal_phone_numberNoIf True, attempt to return a direct phone number. Costs 8 credits instead of 1. Requires a paid Apollo plan.
reveal_personal_emailsNoIf True, attempt to return personal (non-work) email addresses. Requires a paid Apollo plan.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses credit costs (1 normal, 8 with phone), required identifiers, and that some options require a paid plan. However, it does not explicitly state whether the tool modifies data or is read-only, nor describe rate limits or error behavior. Still, it is fairly transparent about key 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.

Conciseness5/5

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

The description is concise (three sentences plus a list) yet packs purpose, use case, cost, and identifier requirements. It is front-loaded with the core action and progressively adds details. Every sentence adds value, and there is no redundancy.

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

Completeness3/5

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

While the description covers cost, required identifiers, and suggests alternatives, it lacks a description of the return value (what fields are returned upon enrichment). With no output schema, this omission hurts completeness for an 8-parameter tool. It also does not mention failure scenarios (e.g., no match).

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% and each parameter already has a detailed description (e.g., 'Strongly recommended — significantly improves match accuracy' for domain). The description adds context about requiring at least one identifier and cost implications, but the schema already handles meaning well. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool enriches a person's B2B profile by name and an identifier. It distinguishes itself from the sibling 'enrich_person_by_email' (for email-only) and suggests 'hunter_find_email' as a cheaper alternative. The verb 'enrich' plus resource 'person's B2B profile' is specific and actionable.

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

Usage Guidelines5/5

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

The description explicitly says 'Best for: enriching a contact when you have name + employer but no email yet' and suggests considering 'hunter_find_email first'. It also notes cost differences for reveal_phone_number. This provides clear guidance on when to use this tool and when to consider alternatives.

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

enrich_person_by_emailA

[Apollo] Enrich a person's full B2B profile using only their email address.

Best for: the most common lead-gen workflow — you have an email (e.g. from Hunter) and want the full profile: job title, seniority, LinkedIn, company, and phone. Fastest and most reliable Apollo enrichment path. Costs 1 Apollo credit. Works on free Apollo plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesWork or personal email address, e.g. 'jane@stripe.com'.
reveal_personal_emailsNoIf True, also attempt to return personal (non-work) email addresses. Requires a paid Apollo plan.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It discloses cost (1 credit), plan availability (free plan), and return data (job title, seniority, LinkedIn, company, phone). Does not mention failure modes or rate limits, but provides sufficient behavioral context for safe invocation.

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?

Extremely concise: two sentences plus a line for best-for context. No redundant words. Front-loaded with purpose. Every sentence adds value.

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

Completeness5/5

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

Despite no output schema, the description explains return values (job title, seniority, LinkedIn, company, phone). Covers cost, plan, workflow context. Distinguishes from siblings. Complete for a simple enrichment 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 coverage is 100% with clear parameter descriptions. The description adds workflow context (lead-gen) and plan requirements, but does not add new parameter-level details beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool enriches a person's full B2B profile using email. It specifies the resource (person), action (enrich), and scope (by email). It distinguishes from siblings like bulk_enrich_people and enrich_company by calling it the 'fastest and most reliable Apollo enrichment path'.

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?

Provides clear best-use scenario: having an email and wanting full profile. Implicitly recommends over alternatives by calling it 'fastest and most reliable'. Mentions cost and plan compatibility. Lacks explicit when-not-to-use or alternatives, but context is clear.

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

hunter_check_accountA

[Hunter] Return Hunter.io account info including remaining credits.

Best for: checking how many finder and verifier credits remain before running a large enrichment batch. FREE — does not consume any credits. Returns plan name, monthly quota, requests used, and credits remaining.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that the tool is free, does not consume credits, and returns specific fields (plan name, monthly quota, requests used, credits remaining). It does not explicitly state read-only behavior, but given the context, it's implied.

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 concise with two short paragraphs, front-loaded with the main purpose. Every sentence is informative, covering purpose, best use case, cost, and output fields with no fluff.

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

Completeness5/5

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

For a simple tool with no input schema and no output schema, the description is complete. It explains what the tool does, when to use it, its cost, and what the output contains, fully preparing an agent to invoke it correctly.

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?

There are no parameters, so the schema covers everything. The description adds value by explaining the output contents, which is appropriate for a parameterless tool.

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

Purpose5/5

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

The description clearly states the tool returns Hunter.io account info including remaining credits, using a specific verb ('Return') and resource ('account info'). It effectively distinguishes from sibling tools that focus on enrichment/verification.

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

Usage Guidelines4/5

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

The description explicitly says 'Best for: checking how many finder and verifier credits remain before running a large enrichment batch,' providing clear guidance on when to use. It does not mention when not to use, but the context is clear given the sibling tools cover other purposes.

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

hunter_count_emailsA

[Hunter] Count how many email addresses Hunter has indexed for a domain.

Best for: quickly checking data availability before spending credits on a full domain search. Run this first when exploring a new target company. FREE — does not consume any credits or quota. Returns total email count broken down by department and seniority.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesCompany domain to count emails for, e.g. 'stripe.com'.

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, but description discloses it's free, returns count broken down by department and seniority, and implies no destructive action. Adequate transparency for a simple count 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?

Concise and front-loaded: first sentence states action and resource. Subsequent lines add usage guidance and return info without redundancy.

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

Completeness5/5

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

For a simple 1-param tool with no output schema or annotations, the description covers purpose, when to use, cost, and expected output. Fully complete.

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

Parameters4/5

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

Schema coverage is 100% with one parameter described. Description adds value by noting free usage and return structure, going beyond schema details.

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

Purpose5/5

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

Description uses specific verb 'Count' and resource 'email addresses indexed for a domain'. Clearly distinguishes from sibling tools like hunter_find_emails_by_domain which retrieve actual emails.

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

Usage Guidelines5/5

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

Explicitly states 'Best for: quickly checking data availability before spending credits on a full domain search' and 'FREE — does not consume any credits or quota', guiding when to use and that it's cost-free.

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

hunter_find_emailA

[Hunter] Find the most likely work email address for a specific person.

Best for: finding a contact email when you know the person's name and employer. Costs 1 Hunter finder credit. Returns the guessed email with a confidence score (0–100), sources, and verification status. A score above 70 is generally reliable for outreach.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesCompany domain where the person works, e.g. 'stripe.com'.
last_nameYesPerson's last name, e.g. 'Smith'.
first_nameYesPerson's first name, e.g. 'Jane'.

TDQS

A4.5/5.0
Behavior5/5

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

Without annotations, the description fully carries the burden of behavioral disclosure. It explains the cost (1 credit), the return format (guessed email with confidence score 0-100, sources, verification status), and provides a reliability threshold (score above 70). No contradictions.

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 four short, purposeful sentences with no wasted words. The purpose is front-loaded, and every sentence adds value.

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

Completeness5/5

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

Despite no output schema, the description explains the output structure, cost, and reliability guidance. The parameter set is simple and fully documented. The tool is complete for its intended use case.

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 each parameter is already well-documented. The description adds no new parameter details beyond mentioning 'name and employer', which is already captured in schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool finds the most likely work email for a specific person, with a specific verb and resource. It distinguishes from siblings like 'hunter_find_emails_by_domain' which finds multiple emails for a domain.

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

Usage Guidelines4/5

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

The description says 'Best for: finding a contact email when you know the person's name and employer,' providing clear context. It also mentions the cost (1 credit). However, it does not explicitly state when not to use it or name alternative tools.

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

hunter_find_emails_by_domainA

[Hunter] Find all email addresses associated with a company domain.

Best for: prospecting a whole company, building outreach lists, discovering team structure at a target account. Costs 1 Hunter request (monthly quota). Does NOT consume per-email credits. Returns emails with confidence scores, names, job titles, and LinkedIn URLs. Use hunter_count_emails first to gauge data availability for free.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax emails to return (1–100).
domainYesCompany domain to search, e.g. 'stripe.com'.
departmentNoFilter by department. Comma-separated values accepted. Options: executive, it, finance, management, sales, legal, support, hr, marketing, communication, education, design, health, operations.
email_typeNo'personal' returns first.last@ style addresses only. 'generic' returns info@, hello@ etc. Omit for all types.

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses cost (1 Hunter request), that it doesn't consume per-email credits, and describes return fields. However, it lacks details on rate limits or caching, but covers key behavioral aspects.

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?

Five well-structured sentences with no waste. The opening sentence states the core action and resource. Each subsequent sentence adds distinct value: use cases, cost, return fields, and a precursor action.

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

Completeness5/5

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

Given 4 parameters, no output schema, and 0 annotations, the description sufficiently covers return values, cost, and best practices. It suggests using hunter_count_emails first, providing actionable context for an agent.

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% with clear descriptions. The description adds value by noting that department accepts comma-separated values and lists options. It also contextualizes email_type by explaining the returned address styles, exceeding schema detail.

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 explicitly states the verb and resource: 'Find all email addresses associated with a company domain.' It lists return fields (confidence scores, names, job titles, LinkedIn URLs) and distinguishes from siblings like hunter_find_email (individual) and hunter_count_emails (gauge availability).

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

Usage Guidelines4/5

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

The description opens with 'Best for: prospecting a whole company, building outreach lists, discovering team structure at a target account.' It also advises using hunter_count_emails first. While it doesn't state when not to use, it implies alternatives exist.

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

hunter_verify_emailA

[Hunter] Verify the deliverability of an email address.

Best for: cleaning a lead list before sending outreach, validating emails found by other tools, reducing bounce rates. Costs 1 Hunter verification credit. Returns status: 'valid' | 'invalid' | 'accept_all' | 'webmail' | 'unknown', plus SMTP and MX record check details. Only send to 'valid' addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address to verify, e.g. 'jane@stripe.com'.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool costs 1 Hunter verification credit, returns a status with values like 'valid' and 'invalid', and includes SMTP and MX record check details. This is transparent about the tool's behavior and output.

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 extremely concise with no wasted words. It front-loads the purpose, uses bullet points for clarity, and every sentence adds value.

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

Completeness4/5

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

Given the tool's simplicity (1 parameter, no output schema, no annotations), the description covers the essential aspects: purpose, usage, cost, and return values. It is complete enough for an AI agent to understand when and how to use it.

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?

There is only one parameter fully described in the schema (email with example). The description adds no additional semantics beyond what the schema provides, but since schema coverage is 100%, baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Verify the deliverability of an email address.' It includes specific verb (verify) and resource (email address), and differentiates from sibling tools like hunter_find_email by focusing on deliverability status.

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

Usage Guidelines4/5

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

The description provides explicit usage scenarios: 'Best for: cleaning a lead list before sending outreach, validating emails found by other tools, reducing bounce rates.' It also advises to only send to 'valid' addresses, giving clear context for when to use the tool.

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

search_companiesA

[Apollo] Search Apollo's company database by keyword, location, or headcount.

REQUIRES Apollo Basic plan ($49/mo) or higher — returns HTTP 403 on the free tier. Does NOT consume credits. Does NOT return email addresses. To get contacts from results, use hunter_find_emails_by_domain (Hunter) or enrich_company (Apollo) for firmographic details (1 credit each).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResult page number (1-based).
keywordsNoIndustry / keyword tags to filter by, e.g. ['SaaS', 'artificial intelligence'].
locationsNoHQ locations to filter by, e.g. ['San Francisco, CA', 'Europe'].
employee_rangesNoEmployee count ranges, e.g. ['1,10', '11,50', '51,200']. Use '10001,' for 10 001+ employees.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses key behaviors: requires Apollo Basic plan (returns 403 on free tier), does not consume credits, and does not return email addresses. This is sufficient for an AI agent to understand side effects and constraints, though it could mention pagination 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.

Conciseness4/5

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

The description is concise with two paragraph-like sections: purpose then prerequisites/caveats. It front-loads the main action and uses line breaks for readability. Every sentence adds information, though the plan requirement could be integrated more seamlessly.

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 no output schema, the description does not explain the structure of results (e.g., company objects, pagination meta). It covers prerequisites, non-consumption of credits, and what not to expect, but lacks details on return format or how to navigate results. This is a notable gap for an AI agent deciding whether to use this 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 coverage is 100%, so baseline is 3. The description summarizes parameters as 'keyword, location, or headcount' but does not add deeper semantics beyond what the schema provides. The schema already describes each parameter with examples and ranges, so the description adds minimal value here.

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

Purpose5/5

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

The description clearly states the tool searches Apollo's company database by keyword, location, or headcount. It uses specific verbs and resources, and distinguishes itself from sibling tools like enrich_company and hunter_find_emails_by_domain by noting what it does not do (return emails) and what alternatives exist.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool vs alternatives: 'Does NOT return email addresses. To get contacts from results, use hunter_find_emails_by_domain (Hunter) or enrich_company (Apollo) for firmographic details.' Also notes the prerequisite of an Apollo Basic plan, which helps the agent avoid 403 errors.

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

search_peopleA

[Apollo] Search Apollo's people database by title, location, or seniority.

REQUIRES Apollo Basic plan ($49/mo) or higher — returns HTTP 403 on the free tier. Does NOT consume credits. Does NOT return email addresses. To get emails for results, use hunter_find_email or enrich_person (1 credit each).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResult page number (1-based).
person_titlesNoJob titles to filter by, e.g. ['CEO', 'Head of Marketing']. Omit to search all titles.
employee_rangesNoFilter by the person's company headcount, e.g. ['1,10', '11,50', '51,200']. Use '10001,' for 10 001+ employees.
person_locationsNoLocations to filter by, e.g. ['New York, NY', 'United States']. Omit to search all locations.
person_senioritiesNoSeniority levels to filter by, e.g. ['senior', 'manager', 'director', 'vp', 'c_suite']. Omit to include all levels.
organization_keywordsNoKeyword tags for the person's organisation, e.g. ['SaaS', 'fintech']. Omit to search across all companies.

TDQS

A4.5/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. It discloses subscription requirements, credit usage (none), and that emails are not returned. This is good but lacks details on pagination behavior or response structure. Still, it sufficiently informs the agent of key behaviors and limitations.

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 tight sentences followed by a short paragraph of essential notes. Every sentence adds value (purpose, requirements, limitations, alternatives). No fluff or redundancy.

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

Completeness5/5

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

Given the tool has 6 parameters (all documented in schema), no output schema, and no annotations, the description covers prerequisites, credit consumption, email availability, and alternative tools. This is sufficient for an agent to understand when and how to use the 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?

The input schema has 100% coverage with good descriptions for all 6 parameters. The description only adds a high-level mention of filters ('by title, location, or seniority'), which doesn't significantly enhance understanding beyond the schema. Hence a baseline score of 3 is appropriate.

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 'search' and the resource 'Apollo's people database' and mentions key filters (title, location, seniority). It distinguishes from sibling tools like search_companies and enrich_person by specifying it searches for people, not companies, and by not returning emails, which is a differentiator.

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

Usage Guidelines5/5

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

The description explicitly states the required plan (Apollo Basic or higher) to avoid 403 errors, clarifies that it does not consume credits, and notes that it does not return emails. It provides clear alternatives (hunter_find_email, enrich_person) for obtaining emails, giving the agent explicit guidance on when to use this tool and when to switch.

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

Tool Schema Changelog

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

  1. 11 tool updatesv0.1.0
    • First observedbulk_enrich_people
    • First observedenrich_company
    • First observedenrich_person
    • First observedenrich_person_by_email
    • First observedhunter_check_account
    • First observedhunter_count_emails
    • First observedhunter_find_email
    • First observedhunter_find_emails_by_domain
    • First observedhunter_verify_email
    • First observedsearch_companies
    • First observedsearch_people

TDQS

A4.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: Apollo tools handle company/person enrichment in different ways, Hunter tools cover email finding, verification, and account info, and search tools are for prospecting. Even similar tools like enrich_person and enrich_person_by_email are differentiated by required inputs.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with underscores, e.g., enrich_company, hunter_find_email, search_people. This makes the API predictable and easy to navigate.

Tool Count5/5

11 tools is a well-scoped number for a B2B enrichment server. It covers essential operations from both Apollo and Hunter without being excessive or leaving gaps.

Completeness5/5

The tool set provides full coverage for B2B enrichment workflows: company and person enrichment, email finding and verification, batch operations, and search. No obvious missing operations like update/delete are needed for this domain.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Apollo.io B2B database enabling people and company search, enrichment, and insights through conversational interfaces.
    9
    507
    19
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Apollo.io B2B sales intelligence API. Enables searching and enriching people and organizations via natural language.
    7
    27
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for the Apollo.io API that lets LLMs search and enrich people and company data.
    66
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Lead generation MCP server for AI agents. Find emails, verify contacts, enrich profiles, and search prospects using Hunter.io, Apollo.io, and Abstract API.
    8
    19
    MIT

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Aleksey-Panf/b2b-enrichment-mcp'

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