Mcp Enrichment

io.github.IntelagentStudiosPublished by GitHub account IntelagentStudiosv0.1.1Updated Oct 24, 2026

Multi-source entity enrichment: company data, contacts, email verification, and phone validation

Overview

AI-generated overview

A local MCP server that enriches company, contact, email and phone data through Clearbit, Hunter.io and Twilio, with a mock mode when no keys are set.

What you can do
Enrich companies from a domain or company name with industry, size, funding, tech stack and social profiles, and enrich contacts from an email or LinkedIn URL (Clearbit). Verify email deliverability, disposable and role-based addresses, and find a person's email at a company (Hunter.io). Validate phone numbers with line type, carrier and location (Twilio). Report server metadata and provider status, including which APIs are active or in mock mode.
When to use it
Useful when an assistant needs to research companies or people, qualify leads, or clean up contact lists with real enrichment providers. Also handy for development against realistic mock data before any API accounts exist.
Requirements
Runs locally over stdio, typically via npx, and needs Node.js 20 or newer. Real data requires API keys set as environment variables: CLEARBIT_API_KEY, HUNTER_API_KEY, TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN; APOLLO_API_KEY is reserved for future use. Without keys it runs in mock mode. Network access to the providers is needed for real lookups.
Before you install
The server holds third-party API credentials in its environment, and those providers bill per lookup, so usage can cost money. Queries send company domains, email addresses, LinkedIn URLs and phone numbers to Clearbit, Hunter.io and Twilio. Results are cached in memory for 24 hours by default (ENRICHMENT_CACHE_TTL), so stale data may be returned. Mock mode returns fabricated data that should not be treated as real.

Installation

In SourceWeft

  1. Open Mcp Enrichment in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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

bash
# Clone and build from sourcegit clone https://github.com/opafex/opafex-mcps.gitcd opafex-mcpsnpm 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:

json
{  "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
json
{  "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
json
{  "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
json
{  "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

bash
npm run build    # Compile TypeScriptnpm run dev      # Run with tsx (no build needed)npm test         # Run testsnpm start        # Run compiled server

Library Usage

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

typescript
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:

typescript
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.

Source: packages/enrichment/README.md at commit 02c34ab

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts