MCP server for waterfall lead enrichment — cascades Apollo, Clearbit, and Hunter for maximum data coverage
Project description
LeadEnrich MCP Server
Waterfall lead enrichment for AI agents. Cascades through Apollo, Clearbit, and Hunter to build the most complete lead profile in a single call.
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.
Quick Connect
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"leadenrich": {
"url": "http://localhost:8300/mcp"
}
}
}
Claude Code
claude mcp add leadenrich --transport http http://localhost:8300/mcp
Tools
| 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 |
How It Works
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.
Pricing
| 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 |
Requirements
- Python 3.11+
pip
Quick Start
git clone https://github.com/carsonroell-debug/leadenrich-mcp.git
cd leadenrich-mcp
pip install -r requirements.txt
python main.py
MCP endpoint:
http://localhost:8300/mcp
Environment Variables
| 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
Running Options
Run directly:
python main.py
Run via FastMCP CLI:
fastmcp run main.py --transport streamable-http --port 8300
Tool Details
enrich_lead
Inputs:
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 key
Returns merged lead profile with field attribution, confidence score, and lookup cost.
find_email
Inputs:
first_name(required): Contact's first namelast_name(required): Contact's last namedomain(required): Company domain
Returns discovered email with confidence score and verification status.
enrich_company
Input:
domain(required): Company domain
Returns company-level firmographic data: industry, size, revenue, description, location.
enrich_batch
Inputs:
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 key
Returns list of enriched profiles with batch summary.
check_usage
Input:
api_key(optional): Your LeadEnrich API key
Returns usage stats: lookup count, cost, tier, remaining quota, and cache stats.
health_check
No input. Returns server status, configured providers, cache stats, and version info.
Try It
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"}'
Deployment
Smithery
This repo includes smithery.yaml for Smithery deployment.
- Push repository to GitHub
- Create/add server in Smithery
- Point Smithery to this repository
Docker / Hosting Platforms
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.
Architecture
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.
Built by Freedom Engineers
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file leadenrich_mcp-0.2.0.tar.gz.
File metadata
- Download URL: leadenrich_mcp-0.2.0.tar.gz
- Upload date:
- Size: 21.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0157e7c9479609f673b84975dda75860981949e26731d8d514fea383df9d24e
|
|
| MD5 |
6c1de50e980ae912cf224bf24ff31e6c
|
|
| BLAKE2b-256 |
3640b8474dc7bbbe1c257afdb60ddfedac979bc5b6f13127f3a9514f41870306
|
File details
Details for the file leadenrich_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: leadenrich_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ebdd4a60fb0929dac1c7ef08588121183b62092c941beb49dba8a2190f25f15
|
|
| MD5 |
2cbdeebaf873dad8c9b17461702f6116
|
|
| BLAKE2b-256 |
f324f13b590a4fbf8c2a432fe27e920cf2476aa70b41f780bf2a2b83d7550011
|