Waterfall lead enrichment — cascades Apollo, Clearbit, and Hunter for max coverage
Waterfall lead enrichment for AI agents. Cascades through Apollo, Clearbit, and Hunter to build the most complete lead profile in a single call.
One-click install: Install on MCPize |
pip install leadenrich-mcp
LeadEnrich MCP exposes lead and company enrichment through the Model Context Protocol (MCP), so tools like Claude and Cursor can run enrichment workflows directly. Give it an email, domain, or name and it returns a merged profile with field attribution showing which provider contributed each data point.
pip install leadenrich-mcp
leadenrich-mcp
The server starts on http://localhost:8300/mcp by default.
Add to claude_desktop_config.json:
{
"mcpServers": {
"leadenrich": {
"url": "http://localhost:8300/mcp"
}
}
}
claude mcp add leadenrich --transport http http://localhost:8300/mcp
| Tool | Description |
|---|---|
enrich_lead | Full waterfall enrichment for a single lead (email, domain, or name+domain) |
find_email | Discover an email from first name + last name + company domain |
enrich_company | Company firmographic data by domain (industry, size, revenue, etc.) |
enrich_batch | Batch enrich up to 25 leads concurrently |
check_usage | Quota, cost tracking, and remaining lookups |
health_check | Server status, configured providers, and cache stats |
LeadEnrich uses a waterfall strategy: each provider fills gaps left by the previous one. When email is known, all providers run concurrently for speed. When only name+domain is provided, Apollo discovers the email first, then Clearbit and Hunter run in parallel.
Input (email / domain / name+domain)
|
v
+-----------+ +-----------+ +----------+
| Apollo | --> | Clearbit | --> | Hunter |
+-----------+ +-----------+ +----------+
| Contact | | Company | | Email |
| Company | | Person | | Verify |
| LinkedIn | | Firmo | | Domain |
+-----------+ +-----------+ +----------+
| | |
v v v
+------------------------------------------+
| Merged Profile |
| 16+ fields with per-field attribution |
| Confidence score + lookup cost |
+------------------------------------------+
Each field in the result includes attribution so you know exactly which provider it came from. No duplicate API calls thanks to built-in caching.
| Tier | Cost | Details |
|---|---|---|
| Free | $0.00 | 50 lookups/month |
| 1 provider hit | $0.05/lookup | Single provider returned data |
| 2 providers hit | $0.10/lookup | Two providers contributed fields |
| 3 providers hit | $0.15/lookup | Full waterfall, maximum coverage |
pipgit clone https://github.com/carsonlabs/leadenrich-mcp.git
cd leadenrich-mcp
pip install -r requirements.txt
python main.py
MCP endpoint:
http://localhost:8300/mcp| Variable | Description | Required |
|---|---|---|
APOLLO_API_KEY | Apollo.io API key | No |
CLEARBIT_API_KEY | Clearbit API key | No |
HUNTER_API_KEY | Hunter.io API key | No |
LEADENRICH_API_KEY | Client auth key for usage metering | No |
LEADENRICH_FREE_TIER_LIMIT | Free tier limit (default: 50) | No |
PORT | Server port (default: 8300) | No |
All provider keys are optional. The server uses whichever providers are configured and skips the rest.
Example:
export APOLLO_API_KEY="your-apollo-key"
export CLEARBIT_API_KEY="your-clearbit-key"
export HUNTER_API_KEY="your-hunter-key"
python main.py
Run directly:
python main.py
Run via FastMCP CLI:
fastmcp run main.py --transport streamable-http --port 8300
enrich_leadInputs:
email (optional): Contact email address (best identifier)domain (optional): Company domain (e.g. "stripe.com")first_name / last_name (optional): Contact name (combine with domain)providers (optional): Limit which providers to useapi_key (optional): Your LeadEnrich API keyReturns merged lead profile with field attribution, confidence score, and lookup cost.
find_emailInputs:
first_name (required): Contact's first namelast_name (required): Contact's last namedomain (required): Company domainReturns discovered email with confidence score and verification status.
enrich_companyInput:
domain (required): Company domainReturns company-level firmographic data: industry, size, revenue, description, location.
enrich_batchInputs:
leads (required): List of lead objects (max 25), each with optional email/domain/nameproviders (optional): Limit which providers to useapi_key (optional): Your LeadEnrich API keyReturns list of enriched profiles with batch summary.
check_usageInput:
api_key (optional): Your LeadEnrich API keyReturns usage stats: lookup count, cost, tier, remaining quota, and cache stats.
health_checkNo input. Returns server status, configured providers, cache stats, and version info.
fastmcp list-tools main.py
fastmcp call-tool main.py health_check '{}'
fastmcp call-tool main.py enrich_lead '{"email":"jane@stripe.com"}'
fastmcp call-tool main.py find_email '{"first_name":"Jane","last_name":"Smith","domain":"stripe.com"}'
fastmcp call-tool main.py enrich_company '{"domain":"stripe.com"}'
This repo includes smithery.yaml for Smithery deployment.
A Dockerfile is included for Railway, Fly.io, and other container hosts.
# Railway
railway up
# Fly.io
fly launch
fly deploy
Set your provider API keys in your host environment.
Agent (Claude, Cursor, etc.)
-> MCP
LeadEnrich MCP Server (this repo)
-> Apollo API (contact + company data)
-> Clearbit API (person + firmographic data)
-> Hunter API (email finding + verification)
This server is a translation layer between MCP tool calls and multiple enrichment provider APIs, with built-in caching, usage metering, and waterfall merge logic.
| Tool | Free | Pro ($29/mo) |
|---|---|---|
enrich_lead | Yes (Hunter only) | Yes (full waterfall: Apollo + Clearbit + Hunter) |
check_usage | Yes | Yes |
health_check | Yes | Yes |
find_email | - | Yes |
enrich_company | - | Yes |
enrich_batch | - | Yes |
Free tier gives you single-provider lookups via Hunter. Pro unlocks the full 3-provider waterfall, email finder, company enrichment, and batch operations.
Upgrade to Pro on MCPize — $29/mo or $290/yr.
Built by Freedom Engineers
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx leadenrich-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-carsonroell-debug-leadenrich-mcp": {
"command": "uvx",
"args": [
"leadenrich-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceleadenrich-mcppypiio.github.carsonroell-debug/leadenrich-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.