mcpField
M

mcp-enrichment

Local
github.com/IntelagentStudiosBusiness & Marketing0Updated 6d ago

About mcp-enrichment

An MCP server for enriching company and contact records, discovering email addresses, and validating email and phone details. It uses Clearbit, Hunter.io, and Twilio, with mock data available when provider keys are absent.

Key features

  1. 01Company and contact enrichment
  2. 02Email discovery and verification
  3. 03Phone validation and lookup
  4. 04Automatic mock mode
  5. 05Cached enrichment results

Use cases

  1. 01Enrich a company record from its name or domain
  2. 02Find a person's business email
  3. 03Check email deliverability before outreach
  4. 04Validate a phone number and identify its line type

MCP support

Exposes enrichment, email and phone tools to MCP clients, plus a provider-status resource. Missing provider keys trigger mock responses globally or for the affected tools.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"intelagentstudios-mcp-enrichment": {
"command": "npx",
"args": [
"-y",
"@intelagent/mcp-enrichment"
],
"env": {
"CLEARBIT_API_KEY": "<CLEARBIT_API_KEY>",
"HUNTER_API_KEY": "<HUNTER_API_KEY>",
"APOLLO_API_KEY": "<APOLLO_API_KEY>",
"TWILIO_ACCOUNT_SID": "<TWILIO_ACCOUNT_SID>",
"TWILIO_AUTH_TOKEN": "<TWILIO_AUTH_TOKEN>",
"ENRICHMENT_CACHE_TTL": "<ENRICHMENT_CACHE_TTL>"
}
}
}
}
Run commandnpx -y @intelagent/mcp-enrichment
Environment variables to set
CLEARBIT_API_KEYSecretClearbit API key for company and contact enrichment
HUNTER_API_KEYSecretHunter.io API key for email discovery and verification
APOLLO_API_KEYSecretApollo.io API key for contact and company data
TWILIO_ACCOUNT_SIDSecretTwilio Account SID for phone validation
TWILIO_AUTH_TOKENSecretTwilio Auth Token for phone validation
ENRICHMENT_CACHE_TTLCache TTL in seconds for enrichment results (default: 86400)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@intelagent/mcp-enrichment0.1.1

Tools

6

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
domainstringNoCompany website domain (e.g. "stripe.com")
companyNamestringNoCompany name (used if domain not provided)

Details

From the project README

@opafex/mcp-enrichment

MCP server for multi-source entity enrichment — company data, contact lookup, email verification, phone validation, and email discovery.

Uses Clearbit, Hunter.io, and Twilio APIs. Works in mock mode with no API keys configured.

Installation

# Clone and build from source
git clone https://github.com/opafex/opafex-mcps.git
cd opafex-mcps
npm install && npm run build

Requires Node.js 20+.

Quick Start

Add to Claude Code / Claude Desktop

Create or edit .mcp.json in your project root:

{
  "mcpServers": {
    "enrichment": {
      "command": "node",
      "args": ["/path/to/opafex-mcps/packages/enrichment/dist/index.js"],
      "env": {
        "CLEARBIT_API_KEY": "sk-...",
        "HUNTER_API_KEY": "...",
        "TWILIO_ACCOUNT_SID": "...",
        "TWILIO_AUTH_TOKEN": "..."
      }
    }
  }
}

Omit the env block to run in mock mode.

Tools

enrich_company

Enrich company data from a domain name or company name. Returns industry, employee count, funding, tech stack, social profiles, and more.

ParameterTypeRequiredDescription
domainstringOne of domain or companyNameCompany website domain (e.g. "stripe.com")
companyNamestringOne of domain or companyNameCompany name

Provider: Clearbit

Example response
{
  "success": true,
  "company": {
    "name": "Company for stripe.com",
    "domain": "stripe.com",
    "description": "A leading technology company specializing in innovative solutions.",
    "industry": "Technology",
    "sector": "Software",
    "employees": 150,
    "employeesRange": "101-250",
    "founded": 2015,
    "location": { "city": "London", "country": "United Kingdom" },
    "socialProfiles": { "linkedin": "https://linkedin.com/company/example" },
    "techStack": ["React", "Node.js", "PostgreSQL", "AWS"],
    "type": "private"
  },
  "provider": "mock",
  "cached": false,
  "timestamp": "2026-03-15T00:00:00.000Z"
}
enrich_contact

Enrich contact/person data from an email address or LinkedIn URL.

ParameterTypeRequiredDescription
emailstringOne of email or linkedinUrlEmail address
linkedinUrlstringOne of email or linkedinUrlLinkedIn profile URL
firstNamestringNoFirst name (optional hint)
lastNamestringNoLast name (optional hint)
companystringNoCompany name (optional hint)
domainstringNoCompany domain (optional hint)

Provider: Clearbit

verify_email

Verify an email address for deliverability. Returns validity, deliverability score, disposable/free provider detection, role-based detection, and SMTP validation.

ParameterTypeRequiredDescription
emailstringYesEmail address to verify

Provider: Hunter.io

Example response
{
  "success": true,
  "email": "[email protected]",
  "valid": true,
  "deliverable": true,
  "disposable": false,
  "freeProvider": false,
  "role": false,
  "score": 95,
  "provider": "mock",
  "cached": false
}
verify_phone

Validate and look up a phone number. Returns validity, formatted number, line type (mobile/landline/voip), carrier info, and location.

ParameterTypeRequiredDescription
phonestringYesPhone number (any format, E.164 preferred)
countryCodestringNoCountry dialing code without + (e.g. "1" for US, "44" for UK). Defaults to "44" (UK).

Provider: Twilio

find_email

Find the email address for a specific person at a company.

ParameterTypeRequiredDescription
firstNamestringYesPerson's first name
lastNamestringYesPerson's last name
domainstringYesCompany domain (e.g. "stripe.com")

Provider: Hunter.io

Example response
{
  "success": true,
  "email": "[email protected]",
  "score": 85,
  "sources": ["LinkedIn", "Company Website"],
  "provider": "mock",
  "cached": false
}
server_info (built-in)

Returns server metadata: name, version, registered tools, and resources. Added automatically by @opafex/mcp-shared.

Resources

ResourceDescription
enrichment://statusProvider configuration status (which APIs are active, mock mode)

Mock Mode

When no API keys are configured, all tools return realistic mock data. This is great for development and testing — you can build against the MCP without any API accounts.

Mock mode activates automatically:

  • Globally when none of CLEARBIT_API_KEY, HUNTER_API_KEY, or TWILIO_ACCOUNT_SID are set
  • Per-tool when the specific provider key is missing (e.g. if you only set CLEARBIT_API_KEY, company/contact tools use real data while email/phone tools fall back to mock)

Check enrichment://status resource or the server_info tool to see which providers are active.

Environment Variables

VariableTypeDefaultDescription
CLEARBIT_API_KEYstring—Clearbit API key for enrich_company, enrich_contact
HUNTER_API_KEYstring—Hunter.io API key for verify_email, find_email
TWILIO_ACCOUNT_SIDstring—Twilio Account SID for verify_phone
TWILIO_AUTH_TOKENstring—Twilio Auth Token for verify_phone
APOLLO_API_KEYstring—Apollo.io API key (reserved for future use)
ENRICHMENT_CACHE_TTLnumber (seconds)86400 (24h)How long to cache enrichment results

Development

npm run build    # Compile TypeScript
npm run dev      # Run with tsx (no build needed)
npm test         # Run tests
npm start        # Run compiled server

Library Usage

The enrichment service can be used programmatically (not just as an MCP server):

import { EnrichmentService } from '@opafex/mcp-enrichment/service';
import type { CacheProvider } from '@opafex/mcp-enrichment/service';

const service = new EnrichmentService({
  clearbitApiKey: 'sk-...',
  hunterApiKey: '...',
});

const result = await service.enrichCompany({ domain: 'stripe.com' });

Custom Cache Provider

The default in-memory cache works out of the box. For Redis, SQLite, or any custom store, implement the CacheProvider interface:

import { EnrichmentService } from '@opafex/mcp-enrichment/service';
import type { CacheProvider } from '@opafex/mcp-enrichment/service';

const redisCache: CacheProvider = {
  async get(key) { /* ... */ },
  async set(key, data, ttlMs) { /* ... */ },
  async delete(key) { /* ... */ },
  async clear() { /* ... */ },
};

const service = new EnrichmentService({
  clearbitApiKey: '...',
  cache: redisCache,
});

Contributing

Found a bug or have a feature request? Open an issue.

Pull requests welcome — see the main repo for development setup.

License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.