mcp-enrichment について
mcp-enrichment は、企業や連絡先の情報を補完する MCP サーバーです。Clearbit、Hunter.io、Twilio を利用し、API キーがない場合はモックデータで動作します。
主な機能
- 01企業の業種、規模、技術情報の補完
- 02メールまたは LinkedIn URL による連絡先検索
- 03メールの到達可能性の確認
- 04電話番号と回線情報の検証
- 05氏名とドメインからメールを検索
- 06API キーなしでのモックデータ利用
活用シーン
- 01ドメインから企業情報を補完
- 02見込み連絡先のメールを検証
- 03電話番号の有効性と回線種別を確認
- 04プロバイダー認証情報なしでワークフローをテスト
MCP 対応
MCP サーバーとして、企業・連絡先の補完、メールと電話の検証、メール検索ツールを提供し、プロバイダー状態のリソースを公開します。対応する API キーがない場合、各ツールはモックデータを利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @opafex/mcp-enrichmentCLEARBIT_API_KEYシークレットClearbit API key for company and contact enrichmentHUNTER_API_KEYシークレットHunter.io API key for email discovery and verificationAPOLLO_API_KEYシークレットApollo.io API key for contact and company dataTWILIO_ACCOUNT_SIDシークレットTwilio Account SID for phone validationTWILIO_AUTH_TOKENシークレットTwilio Auth Token for phone validationENRICHMENT_CACHE_TTLCache TTL in seconds for enrichment results (default: 86400)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
6掲載時のツール一覧 · 6 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| domain | string | いいえ | 会社のウェブサイトのドメイン(例:"stripe.com") |
| companyName | string | いいえ | 会社名(ドメインが指定されていない場合に使用) |
詳細
@opafex/mcp-enrichment
複数のソースからエンティティ情報を拡充する MCP サーバー — 企業データ、連絡先検索、メールアドレスの検証、電話番号の検証、メールアドレスの検索に対応しています。
Clearbit、Hunter.io、Twilio の API を使用します。API キーを設定しなくても、モックモードで動作します。
インストール
# Clone and build from source
git clone https://github.com/opafex/opafex-mcps.git
cd opafex-mcps
npm install && npm run build
Node.js 20+ が必要です。
クイックスタート
Claude Code / Claude Desktop に追加する
プロジェクトのルートにある .mcp.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": "..."
}
}
}
}
モックモードで実行する場合は、env ブロックを省略します。
ツール
enrich_company
ドメイン名または会社名から企業データを拡充します。業種、従業員数、資金調達、技術スタック、ソーシャルプロフィールなどを返します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
domain | string | domain または companyName のいずれか | 企業のウェブサイトのドメイン(例:"stripe.com") |
companyName | string | domain または companyName のいずれか | 会社名 |
プロバイダー: Clearbit
レスポンスの例
{
"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
メールアドレスまたは LinkedIn の URL から、連絡先/人物のデータを拡充します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
email | string | email または linkedinUrl のいずれか | メールアドレス |
linkedinUrl | string | email または linkedinUrl のいずれか | LinkedIn プロフィールの URL |
firstName | string | いいえ | 名(任意のヒント) |
lastName | string | いいえ | 姓(任意のヒント) |
company | string | いいえ | 会社名(任意のヒント) |
domain | string | いいえ | 会社のドメイン(任意のヒント) |
プロバイダー: Clearbit
verify_email
メールアドレスの到達可能性を検証します。有効性、到達可能性スコア、使い捨てメール/無料プロバイダーの検出、役割ベースのアドレスの検出、SMTP 検証の結果を返します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
email | string | はい | 検証するメールアドレス |
プロバイダー: Hunter.io
レスポンスの例
{
"success": true,
"email": "[email protected]",
"valid": true,
"deliverable": true,
"disposable": false,
"freeProvider": false,
"role": false,
"score": 95,
"provider": "mock",
"cached": false
}
verify_phone
電話番号を検証し、情報を検索します。有効性、書式設定済みの番号、回線の種類(携帯/固定電話/VoIP)、通信事業者の情報、所在地を返します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
phone | string | はい | 電話番号(形式は問いません。E.164 が推奨されます) |
countryCode | string | いいえ | + を除いた国番号(例:米国の場合は "1"、英国の場合は "44")。デフォルトは "44"(英国)です。 |
プロバイダー: Twilio
find_email
企業に所属する特定の人物のメールアドレスを検索します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
firstName | string | はい | 人物の名 |
lastName | string | はい | 人物の姓 |
domain | string | はい | 会社のドメイン(例:"stripe.com") |
プロバイダー: Hunter.io
レスポンスの例
{
"success": true,
"email": "[email protected]",
"score": 85,
"sources": ["LinkedIn", "Company Website"],
"provider": "mock",
"cached": false
}
server_info(組み込み)
サーバーのメタデータ(名前、バージョン、登録済みのツールとリソース)を返します。@opafex/mcp-shared によって自動的に追加されます。
リソース
| リソース | 説明 |
|---|---|
enrichment://status | プロバイダーの設定状態(有効な API、モックモード) |
モックモード
API キーが設定されていない場合、すべてのツールは現実的なモックデータを返します。開発やテストに最適です。API アカウントがなくても、MCP を使った開発を進められます。
モックモードは自動的に有効になります。
- 全体で有効:
CLEARBIT_API_KEY、HUNTER_API_KEY、TWILIO_ACCOUNT_SIDのいずれも設定されていない場合 - ツールごとに有効: 対応するプロバイダーのキーがない場合(たとえば
CLEARBIT_API_KEYだけを設定すると、企業/連絡先ツールは実データを使用し、メール/電話ツールはモックに切り替わります)
どのプロバイダーが有効かは、enrichment://status リソースまたは server_info ツールで確認できます。
環境変数
| 変数 | 型 | デフォルト | 説明 |
|---|---|---|---|
CLEARBIT_API_KEY | string | — | enrich_company、enrich_contact 用のClearbit APIキー |
HUNTER_API_KEY | string | — | verify_email、find_email 用のHunter.io APIキー |
TWILIO_ACCOUNT_SID | string | — | verify_phone 用のTwilio Account SID |
TWILIO_AUTH_TOKEN | string | — | verify_phone 用のTwilio Auth Token |
APOLLO_API_KEY | string | — | Apollo.io APIキー(将来の使用に備えて予約済み) |
ENRICHMENT_CACHE_TTL | number (seconds) | 86400 (24h) | エンリッチメント結果をキャッシュする期間 |
開発
npm run build # Compile TypeScript
npm run dev # Run with tsx (no build needed)
npm test # Run tests
npm start # Run compiled server
ライブラリの使用方法
エンリッチメントサービスは、プログラムから使用できます(MCP サーバーとしてだけでなく)。
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' });
カスタムキャッシュプロバイダー
デフォルトのインメモリキャッシュはそのまま使用できます。Redis、SQLite、または任意のカスタムストアを使用する場合は、CacheProvider インターフェイスを実装してください。
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,
});
コントリビュート
バグを見つけた場合や機能のリクエストがある場合は、issue を作成してください。
プルリクエストも歓迎します。開発環境のセットアップについてはメインリポジトリをご覧ください。
ライセンス
MIT — LICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。