Forge Mcp について
Forge Mcpは、AIアシスタントからSalesforge、Primeforge、Leadsforge、Infraforge、Warmforge、Mailforgeを利用するためのリモートMCPサーバーです。営業アプローチ、見込み客調査、メールボックスやドメインの管理、メール検証に対応します。
主な機能
- 01連絡先、シーケンス、ワークスペースの管理
- 02見込み客の検索と情報補完
- 03ドメイン、メールボックス、DNSの管理
- 04ウォームアップと配置結果の確認
- 05メール検証と連絡先の登録
活用シーン
- 01営業アプローチ用シーケンスの作成と管理
- 02見込み客の検索と情報補完
- 03メールボックスのウォームアップと配置状況の確認
- 04ドメインの利用可否とDNSの確認
MCP 対応
リモートHTTP経由で、6つのSalesforge製品のツールをMCP対応クライアントに提供します。APIキーを設定した製品のツールのみ利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @salesforge/forge-mcpSALESFORGE_API_KEYシークレットAPI key for Salesforge (app.salesforge.ai > Settings > API)PRIMEFORGE_API_KEYシークレットAPI key for Primeforge (app.primeforge.ai > Settings > API)LEADSFORGE_API_KEYシークレットAPI key for Leadsforge (app.leadsforge.ai > Settings > API)INFRAFORGE_API_KEYシークレットAPI key for Infraforge (app.infraforge.ai > Settings > API)MAILFORGE_API_KEYシークレットAPI key for Mailforge (app.mailforge.ai > Settings > API)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Forge MCP サーバー
AI アシスタントをSalesforge、Primeforge、Leadsforge、Infraforge、Warmforge、Mailforgeの全製品スイートに接続するリモートMCPサーバーです。
Model Context Protocol上に構築されており、Claude Desktop、Claude Code、Cursor、Windsurf、およびMCP互換のあらゆるクライアントで動作します。
対応製品
Salesforge(78個のツール) - アカウントのクレジットとサブスクリプション、ワークスペース、連絡先、シーケンスとサブシーケンス、リードの進捗状況、メールボックス、LinkedInアカウント、送信者プロフィール、タグ、登録前チェックと確認、Webhook、メールアドレスの検証、連絡禁止リスト
Primeforge(23個のツール) - ワークスペース、ドメイン、メールボックス、DNS管理、事前ウォームアップ済みメールボックス、一括メールボックス検索
Leadsforge(41個のツール) - 連絡先の検索と件数確認、メールアドレス・電話番号・LinkedIn情報のエンリッチメント、企業のフォロワー、類似検索と無料プレビュー、地域のビジネス検索とオーナー情報のエンリッチメント、フィルター値の検索
Infraforge(24個のツール) - ワークスペース、ドメイン、メールボックス、DNS、ドメインの利用可否、クレジット
Warmforge(15個のツール) - ワークスペース、メールボックス、ウォームアップ統計、プレースメントテスト、メールボックスの最新プレースメント結果
Mailforge(23個のツール) - ワークスペース、ドメイン、メールボックス、DNS管理、ドメインの利用可否、自動更新、ドメインマスキング、転送
使用する製品のAPIキーのみを設定してください。設定されていない製品のツールは表示されません。
クイックスタート
Claude Desktop
claude_desktop_config.jsonに追加します。
{
"mcpServers": {
"salesforge": {
"url": "https://mcp.salesforge.ai/mcp",
"headers": {
"X-Salesforge-Key": "YOUR_SALESFORGE_API_KEY",
"X-Primeforge-Key": "YOUR_PRIMEFORGE_API_KEY",
"X-Leadsforge-Key": "YOUR_LEADSFORGE_API_KEY",
"X-Infraforge-Key": "YOUR_INFRAFORGE_API_KEY",
"X-Warmforge-Key": "YOUR_WARMFORGE_API_KEY",
"X-Mailforge-Key": "YOUR_MAILFORGE_API_KEY"
}
}
}
}
使用しない製品のヘッダー行は削除してください。保存後、Claude Desktopを再起動します。
Claude Code
claude mcp add salesforge \
--transport streamable-http \
--url https://mcp.salesforge.ai/mcp \
--header "X-Salesforge-Key: YOUR_SALESFORGE_API_KEY" \
--header "X-Primeforge-Key: YOUR_PRIMEFORGE_API_KEY" \
--header "X-Leadsforge-Key: YOUR_LEADSFORGE_API_KEY" \
--header "X-Infraforge-Key: YOUR_INFRAFORGE_API_KEY" \
--header "X-Warmforge-Key: YOUR_WARMFORGE_API_KEY" \
--header "X-Mailforge-Key: YOUR_MAILFORGE_API_KEY"
Cursor
「Settings」>「MCP」に移動して、新しいサーバーを追加します。
- 名前: salesforge
- タイプ: streamable-http
- URL: https://mcp.salesforge.ai/mcp
- ヘッダー: 上記と同じ
APIキーの取得
| 製品 | 取得先 |
|---|---|
| Salesforge | app.salesforge.ai > 設定 > API |
| Primeforge | app.primeforge.ai > 設定 > API |
| Leadsforge | app.leadsforge.ai > 設定 > API |
| Infraforge | app.infraforge.ai > 設定 > API |
| Warmforge | app.warmforge.ai > 設定 > API |
| Mailforge | app.mailforge.ai > 設定 > API |
認証ヘッダー
| 製品 | ヘッダー | 形式 |
|---|---|---|
| Salesforge | X-Salesforge-Key | YOUR_API_KEY |
| Primeforge | X-Primeforge-Key | YOUR_API_KEY |
| Leadsforge | X-Leadsforge-Key | YOUR_API_KEY |
| Infraforge | X-Infraforge-Key | YOUR_API_KEY |
| Warmforge | X-Warmforge-Key | YOUR_API_KEY |
| Mailforge | X-Mailforge-Key | YOUR_API_KEY |
複数アカウント
複数のアカウント(たとえば、異なるクライアントのアカウント)を管理している場合は、サーバーエントリーを個別に追加します。
{
"mcpServers": {
"salesforge-client-a": {
"url": "https://mcp.salesforge.ai/mcp",
"headers": {
"Authorization": "Bearer CLIENT_A_KEY"
}
},
"salesforge-client-b": {
"url": "https://mcp.salesforge.ai/mcp",
"headers": {
"Authorization": "Bearer CLIENT_B_KEY"
}
}
}
}
各エントリーには、それぞれ独自の名前とAPIキーを設定します。AI アシスタントには両方のツールが表示され、プロンプトでどのクライアントを対象とするか指定できます。
使用例
セットアップ後、AI アシスタントに次のように尋ねてみてください。
- 「Salesforgeのワークスペースを一覧表示して」
- 「ワークスペースXで『enterprise』タグが付いた連絡先を表示して」
- 「『Q2 Outreach』という名前の新しいシーケンスを作成して」
- 「シーケンス31086のリードを一覧表示して、リードに対して実行されたアクションと条件を表示して」
- 「サブシーケンス31086の親シーケンスと登録済み連絡先を表示して」
- 「これらの連絡先をシーケンスに登録して」
- 「Primeforgeのドメインを表示して」
- 「Leadsforgeで、ニューヨークのSaaS企業に勤めるCTOを検索して」
- 「SalesforgeのLinkedInページのフォロワーを取得して、メールアドレスを探して」
- 「クレジットを使う前に、salesforge.aiに似た企業を表示して」
- 「アムステルダムから10km以内の歯科医を探して、オーナー情報を取得して」
- 「Infraforgeのクレジット残高を確認して」
- 「メールボックスのウォームアップ統計を表示して」
- 「Warmforgeのメールボックスのうち、最新のプレースメント結果が100%のものを表示して」
- 「Mailforgeのドメインを一覧表示して」
- 「Mailforgeでexample.comが利用可能か確認して」
非同期メール検証
start_email_validation で検証を開始します。HTTP 201 を返す前に、Multichannel は候補のメンバーシップを解決して永続化します。selected と skipped.duplicate は正確であり、サポートされている件数です。選択項目が空でない場合は status: pending が返され、選択項目が空の場合は failureCode: validation_scope_empty を伴う status: failed が返されます。レガシーの strict オプションは省略され、非推奨です。返された validationJobID を保持し、約10秒間隔でバックオフしながら get_validation_results をポーリングします。ステータスが終端状態になるまで続けます。終端状態は completed、partially_completed、failed です。連絡先を登録する前にポーリングのレスポンスを確認してください。検証結果についてはこのレスポンスが正となり、終端時の件数が確定値となります。また、失敗した実行を自動的に再送信してはいけません。
登録するには、完了済みまたは部分完了の validationRunId を指定して preflight_enrollments を使用し、事前確認の結果を確認してから confirm_enrollment_preflight を使用します。候補を絞り込むには、空でない validationStatuses を指定します。ステータスを省略するか空にすると、ステータスによる制限はなくなり、未検証の連絡先を含むすべての実行候補が対象になります。永続的な非同期実行では、空でないステータスを、指定した実行の永続化済みの結果と照合します。一方、レガシーの完了済み実行では、現在の Salesforge のステータスと照合します。部分完了の実行で、成功した候補だけが自動的に選択されることはありません。
ローカルでの HTTP MCP テストでも、デプロイ済みの Multichannel API をプロキシします。
ロールアウトの依存関係
内部のロールアウト順序は必須です。Forge MCP をロールアウトする前に、Multichannel の非同期検証コントラクトをデプロイしてください。Forge MCP でロールアウトの回避策として strict: false を再導入してはいけません。
プロジェクト構成
src/
├── index.ts # stdio entry point
├── http.ts # HTTP/SSE transport entry point
├── server.ts # MCP server setup, tool registration
├── api-client.ts # HTTP client for upstream APIs
├── client.ts # legacy client
├── helpers.ts # shared utilities
└── tools/
├── identity.ts # API key validation
├── account.ts # account credit balances and subscription
├── workspaces.ts # workspace management
├── contacts.ts # contact CRUD
├── mailboxes.ts # mailbox and email operations
├── threads.ts # primebox threads, labels, and LinkedIn replies
├── sequences.ts # sequence lifecycle and lead progress
├── subsequences.ts # subsequence triggers, parents, and members
├── nodes.ts # sequence node management
├── branches.ts # sequence branches
├── enrollments.ts # contact enrollment
├── linkedin.ts # LinkedIn connection and session management
├── tags.ts # workspace tag discovery
├── sender-profiles.ts# sender profile management
├── validations.ts # email validation
├── webhooks.ts # webhook management
├── dnc.ts # do-not-contact lists
├── custom-vars.ts # custom variables
├── reference.ts # action/condition type lookups
├── primeforge/ # domain, mailbox, workspace tools
├── leadsforge/ # search, enrichment, lookalike, followers, local business tools
├── infraforge/ # domain, mailbox, credit tools
├── warmforge/ # workspace, mailbox, placement test tools
└── mailforge/ # workspace, domain, mailbox tools
セルフホスト
独自のインスタンスを実行する場合:
npm install
npm run build
npm run start:http
サーバーはデフォルトでポート 3000 をリッスンします。API キーは環境変数ではなく、リクエストごとにヘッダーとして渡します。
HTTP エンドポイントでは、ステートレスな MCP POST リクエストを使用します。単独の SSE ストリームは提供されません。GET /mcp(および HEAD)は、MCP サーバーを割り当てる前に 405 Method Not Allowed を返します。リクエストごとのサーバーとトランスポートは、処理後、失敗時、およびレスポンスの完了前にクライアントが切断した際に終了します。
診断ログ
ログはデフォルトで JSON Lines 形式で stderr に出力され、コンテナログの収集に適しています。MCP の標準入出力はプロトコルメッセージ用に確保されています。/health を含む HTTP リクエストには、リクエストと上流 API のログを関連付ける X-Request-Id レスポンスヘッダーが生成されます。
| 環境変数 | デフォルト値 | 用途 |
|---|---|---|
LOG_LEVEL | info | 最低ログレベルです。debug、info、warn、error のいずれかを指定します。デバッグを有効にすると、MCP のセットアップ時間と上流レスポンスヘッダーの時間が追加されます。 |
SLOW_REQUEST_MS | 3000 | HTTP または上流リクエストがこの時間だけ保留状態の場合、警告を 1 回出力します。リクエストをキャンセルしたり、タイムアウトを変更したりすることはありません。 |
RUNTIME_LOG_INTERVAL_MS | 10000 | HTTP プロセスのメトリクス(アクティブなリクエスト、イベントループの遅延/使用率、CPU、メモリ)の出力間隔です。 |
詳細を確認するには、LOG_LEVEL=debug npm run start:http を実行してください。無効な設定はデフォルト値に戻ります。タイムアウトを調査する際は、リクエストの開始とプロセスメトリクスを記録できるよう、info または debug を有効にしてください。
- 対応する
completedまたはabortedイベントのないhttp.request.startedは、リクエストが未完了か、完了ログが出力される前にプロセスが停止したことを示します。http.request.slowは、リクエストが保留中の間、本文の解析中も含めて出力されます。 upstream.request.slowは、保留中の製品 API 呼び出しを示します。所要時間にはレスポンスの読み取りと解析が含まれます。親のrequestIdで HTTP リクエストと関連付けられ、upstreamRequestIdで複数の API 呼び出しを区別できます。runtime.metricsを確認すると、タイムアウト前後にイベントループの遅延、CPU、メモリ、リクエスト数が増加したかどうかがわかります。イベントループがブロックされるとログ出力も遅延し、再開後にその停止が確認できるようになります。- タイムアウトしたヘルスチェックに対応するリクエスト開始イベントがない場合は、プロキシ/ロードバランサーのログとコンテナの再起動も確認してください。リクエストが Express に到達していないか、プロセスが処理を実行できなかった可能性があります。ログだけでは根本原因を特定できません。
構造化ログでは、API キーや顧客データを記録しないよう、ヘッダー、本文、クエリ文字列、上流パス、エラーメッセージ、スタックトレースを省略します。エラーには、取得可能な場合、種類、コード、HTTP ステータスが含まれます。Node/Express に組み込まれた既存の診断情報が別途表示される場合があります。/health と /mcp 以外の HTTP ルートは other として表示されます。
ライセンス
MIT
LinkedIn への返信
get_thread を使って会話を読み取ってから、workspaceId、threadId、スレッド内の LinkedIn メッセージに記載された送信元 LinkedIn の accountId、および message を指定して reply_to_linkedin_thread を呼び出します。LinkedIn のみのスレッドでは、メールボックス ID は不要です。このツールは既存の Salesforge 公開 API を呼び出し、作成された LinkedIn メッセージを返します。
省略可能な attachments では、filename、contentBase64、および省略可能な contentType を指定できます。添付ファイルのみで返信する場合は、空の message と 1 つ以上の添付ファイルを渡してください。API が対応ファイル形式とサイズ制限を検証します。
Salesforge のアカウントと連絡先の管理
これらのツールには、multichannel-api #1068 と salesforge-api #2795(SF-9461)で追加されたパブリック API が必要です。ツールを使用する前に、対応する API の変更をデプロイする必要があります。
| ツール | 動作 |
|---|---|
create_sender_profile、bulk_create_sender_profiles | 既存のメールボックス ID と LinkedIn アカウント ID を任意で指定して、プロファイルを作成します。一括作成では 1~100 件を受け付け、各結果を個別に報告します。 |
connect_linkedin_account | LinkedIn に接続します。skipSenderProfile: true を設定すると、送信者プロファイルの自動下書き作成をスキップします。 |
get_linkedin_account、submit_linkedin_account_otp | 接続状態を確認し、認証チャレンジに応答します。 |
delete_contact、bulk_delete_contacts | 連絡先を 1 件、または最大 1,000 件削除します。一括削除では、ワークスペース外の ID は無視されます。 |
list_tags | ページネーション、名前検索、大文字と小文字の区別を任意で指定して、タグ ID と名前を確認します。 |
単独の LinkedIn アカウントを関連付けるには、linkedinAccountId を指定して create_sender_profile を使用します。アカウントはワークスペースに属しており、他の送信者プロファイルにすでに関連付けられていない必要があります。
既存の delete_sender_profile ツールは、関連付けられた LinkedIn アカウントも削除します。
Salesforge のメールボックスと LinkedIn のライフサイクル
これらのツールには、上記の SF-9461 API 追加に加えて、salesforge-api #2836 と multichannel-api #1111(SF-10349)が必要です。ツールを使用する前に、対応する API の変更をデプロイする必要があります。
| ツール | 動作 |
|---|---|
disconnect_linkedin_account、reconnect_linkedin_account | アカウント ID、履歴、制限、送信者プロファイルとの関連付けを維持したまま、セッションを管理します。 |
delete_mailbox | プロバイダーのメールアカウントは削除せずに、Salesforge からメールボックスを削除します。 |
update_mailbox_connection_settings | 接続中でも SMTP/IMAP 設定を更新します。少なくとも 1 つのプロトコルについて、完全な host、port、username、password の設定を指定してください。省略したプロトコルの設定は変更されません。OAuth メールボックスはサポートされていません。 |
update_sender_profile | updates.linkedinAccountId を使用して、単独の LinkedIn アカウントを関連付けます。プロファイルに LinkedIn アカウントが関連付けられていないか、すでに同じアカウントが関連付けられている必要があります。別のアカウントへの置き換えは 409 を返します。linkedinAccountId を省略または null にした場合、関連付けは変更されません。mailboxIds を省略した場合、メールボックスは維持されます。 |
独立した LinkedIn 削除ツールやメール切断ツールはありません。既存の delete_sender_profile ツールは、関連付けられた LinkedIn アカウントも削除します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。