gongio-mcp について
gongio-mcp は Gong.io のデータにアクセスする MCP サーバーで、Claude などの MCP クライアントから通話、トランスクリプト、ユーザー、キーワードトラッカーを照会できます。Gong に記録された営業通話を確認するチーム向けです。
主な機能
- 01日付とワークスペースによる通話一覧
- 02要点とアクションアイテムを含む AI 通話サマリー
- 03話者別トランスクリプトのページ単位取得
- 04参加者、顧客、トラッカー、通話時間による検索
- 05トランスクリプト文を対象にしたキーワード検索
- 06出力が大きい場合のコンパクトな表への切り替え
活用シーン
- 01特定の顧客に関連する通話の要約
- 02競合への言及を含む通話の検索
- 03トランスクリプトで発言の正確な引用を確認
MCP 対応
MCP サーバーとして、通話、トランスクリプト、ユーザー、ライブラリフォルダー、トラッカーのデータを読み取る 15 のツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Gong MCP Server
Gong.io のデータにアクセスできる MCP(Model Context Protocol)サーバーです。Claude や MCP 対応クライアントから、通話、文字起こし、ユーザー、キーワードトラッカーなどを直接検索できます。
ツール早見表
| ツール | 説明 |
|---|---|
list_calls | 日付やワークスペースで絞り込んで通話を一覧表示します |
get_call | 特定の通話のメタデータを取得します |
get_call_summary | AI による要約:要点、トピック、アクションアイテム |
get_call_transcript | 話者ごとに分けた全文の文字起こしを取得します(ページネーション対応) |
search_calls | 参加者、顧客、トラッカー、範囲、通話時間、タイトルなどで通話を詳細に検索します |
search_calls_by_account | メールのドメインから、特定のアカウント/企業が関係する通話を検索します |
search_calls_by_opportunity | 特定の CRM 商談に関連する通話を検索します |
search_transcripts | 文字起こしの文全体からキーワードをフリーテキスト検索します |
get_trackers | キーワードトラッカー(競合他社、トピックなど)を一覧表示します |
list_workspaces | ワークスペースを一覧表示し、ほかのツールで使う ID を取得します |
list_library_folders | 公開通話ライブラリのフォルダーを一覧表示します |
get_library_folder_calls | 特定のライブラリフォルダーに保存された通話を取得します |
get_user | 特定のユーザーのプロフィールを取得します |
search_users | ID または作成日でユーザーを検索/絞り込みします |
list_users | すべてのワークスペースユーザーを一覧表示します |
応答サイズとコンテキストの上限
search_calls は大量のデータを返すことがあります。内部では、次の処理を行います。
- クエリごとに最大 約5000件の通話(API の50ページ分)を自動でページネーションします
- ページネーションの後に、クライアント側でフィルター(参加者、顧客、トラッカー、通話時間など)を適用します
- デフォルトでは、通話ごとの詳細な形式(メタデータ+要約+トピック+参加者)を返します
組み込みの安全策:
- 形式化した出力が
MAX_MCP_OUTPUT_LENGTH(デフォルトは50000文字。環境変数で変更可能)を超える場合、警告とともに自動で簡易テーブルに切り替わります。すべての通話 ID とタイトルは取得できます。詳細を確認するには、対象の通話に対してget_call_summaryを実行してください。 include: ["outline"]は、通話1件あたり約80KBと負荷が大きいため、複数通話の検索では使用しないでください。- トラッカーデータは、
trackersフィルターに一致するトラッカーのみ(フィルターがない場合はゼロ以外のトラッカーのみ)に絞り込まれます。これにより、(0x)の情報が大量に表示されることはありません。
クエリが出力上限に達した場合は、検索範囲を絞り込んでください。
fromDateTime/toDateTimeをより限定しますscope: "External"またはscope: "Internal"を追加します- 短い不参加通話を除外するため、
minDuration: 600を追加します customerNameまたはtrackersフィルターを追加しますoutlineなど、サイズの大きいincludeオプションを外します
前提条件
- Node.js 18+ または Docker
- Gong API の認証情報(Access Key と Secret)
API 認証情報の取得
- 管理者として Gong にログインします
- Company Settings → Ecosystem → APIに移動します
- Create API Keyをクリックします
- Access Key と Secret の両方を保存します(Secret は一度しか表示されません)
インストール
オプション1:npx(インストール不要)
npx gongio-mcp
オプション2:npm でグローバルインストール
npm install -g gongio-mcp
gongio-mcp
オプション3:ソースからインストール
git clone https://github.com/JustinBeckwith/gongio-mcp.git
cd gongio-mcp
npm install
npm run build
node dist/index.js
オプション4:Docker(ローカルでビルド)
git clone https://github.com/JustinBeckwith/gongio-mcp.git
cd gongio-mcp
docker build -t gongio-mcp .
docker run --rm -i \
-e GONG_ACCESS_KEY=your-access-key \
-e GONG_ACCESS_KEY_SECRET=your-secret-key \
gongio-mcp
設定
Gong の認証情報を環境変数として設定します。
export GONG_ACCESS_KEY="your-access-key"
export GONG_ACCESS_KEY_SECRET="your-secret-key"
または、インラインで渡します。
GONG_ACCESS_KEY=your-key GONG_ACCESS_KEY_SECRET=your-secret npx gongio-mcp
クライアントの設定
### Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)に追加します。
npx を使用する場合:
{
"mcpServers": {
"gong": {
"command": "npx",
"args": ["gongio-mcp"],
"env": {
"GONG_ACCESS_KEY": "your-access-key",
"GONG_ACCESS_KEY_SECRET": "your-secret-key"
}
}
}
}
Docker を使用する場合:
{
"mcpServers": {
"gong": {
"command": "docker",
"args": ["run", "--rm", "-i",
"-e", "GONG_ACCESS_KEY",
"-e", "GONG_ACCESS_KEY_SECRET",
"gongio-mcp"],
"env": {
"GONG_ACCESS_KEY": "your-access-key",
"GONG_ACCESS_KEY_SECRET": "your-secret-key"
}
}
}
}
Claude Code
npx を使用する場合:
claude mcp add gong -e GONG_ACCESS_KEY=your-key -e GONG_ACCESS_KEY_SECRET=your-secret -- npx gongio-mcp
Docker を使用する場合(docker build -t gongio-mcp . の実行後):
claude mcp add gong -e GONG_ACCESS_KEY=your-key -e GONG_ACCESS_KEY_SECRET=your-secret -- docker run --rm -i -e GONG_ACCESS_KEY -e GONG_ACCESS_KEY_SECRET gongio-mcp
利用可能なツール
list_calls — 日付で絞り込んで Gong の通話を一覧表示
任意の日付範囲やワークスペースで絞り込んで通話を一覧表示します。最小限の通話メタデータ(ID、タイトル、日付、時間)を返します。
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
fromDateTime | いいえ | ISO 8601 形式の開始日時(例:2024-01-01T00:00:00Z) |
toDateTime | いいえ | ISO 8601 形式の終了日時(例:2024-01-31T23:59:59Z) |
workspaceId | いいえ | ワークスペース ID で通話を絞り込みます(ID の確認には list_workspaces を使用します) |
cursor | いいえ | 次のページを取得するためのページネーションカーソル |
get_call — 特定の通話のメタデータを取得
1 件の通話の URL、タイミング、方向、スコープ、システムなどのメタデータを取得します。通話メタデータのみが必要な場合は、get_call_summary より高速です。
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
callId | はい | Gong の通話 ID(数値文字列) |
get_call_summary — AI が生成した通話の要約
簡単な概要、要点、トピック、アクション項目、詳細なアウトラインを含む、AI が生成した要約を取得します。通話内容を把握するには、この方法を推奨します。正確な引用が必要な場合にのみ get_call_transcript を使用してください。
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
callId | はい | Gong の通話 ID(数値文字列) |
get_call_transcript — 発言者情報付きの全文トランスクリプト
発言者情報付きの生のトランスクリプトを取得します。コンテキストの過剰な使用を防ぐため、トランスクリプトはページ分割されます(デフォルトは 10KB)。ページ間を移動するには、maxLength と offset を使用します。
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
callId | はい | Gong の通話 ID(数値文字列) |
maxLength | いいえ | 返す最大文字数(デフォルト:10000、最大:100000) |
offset | いいえ | ページネーションで開始する文字オフセット(デフォルト:0) |
search_calls — 高度な通話検索
参加者の検索、顧客名の検索、詳細なコンテンツの選択など、高度なフィルターを使って通話を検索します。すべての結果を自動的にページネーションし、デフォルトで参加者情報、簡単な要約、トピックを返します。
パラメーター:
日付とワークスペース
| パラメーター | 説明 |
|---|---|
fromDateTime | ISO 8601 形式の開始日時 |
toDateTime | ISO 8601 形式の終了日時 |
workspaceId | ワークスペース ID で絞り込みます(ID の確認には list_workspaces を使用します) |
callIds | 取得する特定の通話 ID の配列 |
ホスト/参加者
| パラメーター | 説明 |
|---|---|
primaryUserIds | ホストのユーザー ID(サーバー側) |
primaryUserEmails | ホストのメールアドレス(大文字と小文字を区別しません) |
excludePrimaryUserIds | これらのホストユーザー ID を除外します |
participantUserIds | 任意の参加者(ホスト/出席者/招待された人)のユーザー ID |
excludeParticipantUserIds | いずれかの参加者がこれらのユーザー ID を持つ通話を除外します |
participantEmails | 任意の参加者のメールアドレス(大文字と小文字を区別しません) |
excludeParticipantEmails | いずれかの参加者がこれらのメールアドレスを持つ通話を除外します |
コンテンツと顧客
| パラメーター | 説明 |
|---|---|
customerName | CRM アカウント名、外部メールドメイン、タイトルとあいまい一致します |
titleContains | 通話タイトルに部分一致します(大文字と小文字を区別しません) |
trackers | 該当するトラッカーが反応した通話(カウント > 0)。ワークスペース固有のため、get_trackers を使用して確認してください |
メタデータ
| パラメーター | 説明 |
|---|---|
scope | External、Internal、または Unknown |
direction | Inbound、Outbound、Conference、または Unknown |
system | 会議プラットフォーム(例:Zoom) — 大文字と小文字を区別しない部分一致 |
language | 言語コード(例:eng) — 大文字と小文字を区別しない完全一致 |
minDuration | 最小時間(秒) |
maxDuration | 最大時間(秒) |
レスポンス形式
| パラメーター | 説明 |
|---|---|
include | 追加で返すデータ — 以下の表を参照 |
include のオプション:
| 値 | 追加される内容 | サイズ |
|---|---|---|
keyPoints | AI が抽出した要点(箇条書き) | 1 通話あたり約 5KB |
trackers | キーワード/スマートトラッカーの検出結果とカウント | 1 通話あたり約 3KB |
highlights | テーマ別にまとめられた、AI が選定したハイライトクリップ | 1 通話あたり約 3KB |
speakers | 参加者ごとの発話時間 | 1 通話あたり約 1KB |
comments | 通話に投稿された公開コメント | 変動 |
context | CRM アカウント/商談との関連付け(HubSpot、Salesforce) | 1 通話あたり約 1KB |
outline | 項目を含む、セクションごとの完全なアウトライン | 1 通話あたり約 80KB(大容量) |
media | 音声/動画の URL(有効期間は 8 時間) | 1 通話あたり約 3KB |
デフォルト(常に返されます):参加者、簡単な要約、トピック — 1 通話あたり約 3KB。
フィルターの動作に関する注意事項:
- フィルターは AND ロジックで組み合わされます。
primaryUserIdsとparticipantUserIdsは連携します。primary はサーバー側で絞り込み、participant は後処理でフィルタリングします。 customerNameは、CRM のアカウント Name フィールド、外部参加者のメールドメイン、通話タイトルのいずれかに一致します(大文字と小文字を区別しない部分一致)。trackersの名前は ワークスペース固有 です。まずget_trackersを呼び出して、設定内容を確認してください。一致条件は大文字と小文字を区別しない部分一致です(そのため、"competitor"は"Competitors"と"Competitor Mentions"の両方に一致します)。trackersフィルターを設定すると、該当するトラッカーの内容が自動的に含まれ、出力には指定したトラッカーのみが表示されます。フィルターを指定しない場合は、カウントが 0 より大きいトラッカーのみが表示されます。- 結果が空の場合、エラーではなく
"No calls found"が返されます。
大きな結果のフォールバック処理については、レスポンスサイズとコンテキスト制限を参照してください。
search_calls_by_account — アカウント/会社(メールドメイン)で通話を検索
外部参加者のメールドメインを照合し、特定のアカウントまたは会社が関係する通話を検索します。Gong API はアカウント名によるフィルタリングをネイティブではサポートしていません(既知の制限)。このツールは指定期間の通話を取得し、parties[].emailAddress に基づいて後処理でフィルタリングします。基盤となる /v2/calls/extensive エンドポイントのページネーションは、maxCalls まで自動的に行われます。
次のような場合に使用してください:
- 見込み顧客が複数のメールドメイン(
acme.com、acme.io、地域別 TLD など)を持ち、すべてを検索する必要がある場合 - 外部のエンリッチメントデータ(例:BuiltWith/Clearbit/ベンダースタックのグラフから「Klaviyo を利用しているすべての見込み顧客」)と結合する必要がある場合。上流でドメインの一覧を特定し、ここに渡してください
- システム間で表記が揺れる CRM のアカウント名よりも、ドメインベースの照合のほうが信頼性が高い場合
パラメーター:
コストに関する注意: 取得してから絞り込む処理です。他に絞り込み条件を指定せずに 90 日間を対象にした場合、通常は API 呼び出しが 1~5 回発生します。期間が長い場合は primaryUserIds と組み合わせて、コストを抑えてください。
search_calls_by_opportunity — CRM Opportunity に関連付けられた通話を検索
CRM Opportunity の ID または名前の部分文字列を指定して、関連付けられた通話を検索します。Gong-CRM 連携(Salesforce / HubSpot)が必要です。CRM に紐付いていない通話は一致しません。
次のような場合に使用します:
- 特定の案件に関するすべての通話を取得したい場合 —
opportunityIds: ["006xxxxx"]が最も正確な方法です - Opportunity の名前が具体的な場合(例:
"Acme Q4 Renewal")に、名前が変更された、または重複した Opportunity もあいまい検索したい場合
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
opportunityIds | opportunityIds または opportunityNames のいずれかが必須です | CRM Opportunity ID(Salesforce の 18 文字 ID など) |
opportunityNames | opportunityIds または opportunityNames のいずれかが必須です | Opportunity コンテキストオブジェクトの Name フィールドと照合する名前の部分文字列(大文字と小文字を区別しません) |
fromDateTime | いいえ | ISO 8601 形式の開始日 |
toDateTime | いいえ | ISO 8601 形式の終了日 |
workspaceId | いいえ | ワークスペース ID で絞り込みます |
primaryUserIds | いいえ | 通話のホストユーザー ID で事前に絞り込みます |
maxCalls | いいえ | 取得して絞り込む通話の最大数(デフォルト:500、最大:5000) |
cursor | いいえ | ページネーションカーソル(上級者向け) |
コストに関する注意: search_calls_by_account と同じ、取得してから絞り込む方法を使用します。CRM コンテキストの照会に追加の API 呼び出しは発生しません。同じ /v2/calls/extensive リクエストで context: "Extended" を指定して処理します。
search_transcripts — トランスクリプト全体を対象にしたフリーテキストキーワード検索
指定した日付範囲内の通話トランスクリプトの文章を対象に、フリーテキストキーワード検索を行います。2 段階で処理します:(1)/v2/calls/extensive で、日付と任意の primaryUserIds / domains に基づいて通話を絞り込み、(2)/v2/calls/transcript で絞り込んだ通話のトランスクリプトを取得し、話者の情報とタイムスタンプを含む文章単位の一致結果を返します。
繰り返し検索する用語には Gong Trackers を優先してください。 競合他社名、ESP/技術用語(Klaviyo、Braze、Iterable、Postscript、Attentive、Sendgrid、Customer.io など)、その他繰り返し検索する用語は、UI で Gong Trackers に設定してください(初回のみ。約 20 個の用語で約 30 分)。その後は get_trackers、search_calls、get_call_summary を使用してください。Trackers はサーバー側で処理されるため、コストを大幅に削減でき、件数とタイムスタンプも標準で取得できます。search_transcripts は一時的な検索に使用してください。
コスト上限: 30 日を超える日付範囲を指定するには、primaryUserIds または domains による追加の絞り込みが必要です。6 か月間を絞り込みなしで検索すると、API クォータを消費するため、スキーマレベルで拒否されます。
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
keywords | はい | 検索するキーワードです。それぞれ2文字以上である必要があります。 |
fromDateTime | はい | 日付範囲の開始日時(ISO 8601)です。 |
toDateTime | はい | 日付範囲の終了日時(ISO 8601)です。 |
primaryUserIds | 範囲が30日を超え、domains が設定されていない場合に必須 | スキャン前に、これらのユーザーが主催した通話に絞り込みます |
domains | 範囲が30日を超え、primaryUserIds が設定されていない場合に必須 | スキャン前に、これらのドメインの外部参加者がいる通話に絞り込みます |
workspaceId | いいえ | ワークスペース ID で絞り込みます |
caseSensitive | いいえ | デフォルトは false です。 |
wholeWord | いいえ | デフォルトは true です。"ai" は "said" や "again" に一致しません。部分文字列で一致させるには false を設定します。 |
maxCalls | いいえ | スキャンする通話の最大数です(デフォルト:500)。 |
maxMatchesPerCall | いいえ | 通話ごとに返す文の一致件数の上限です(デフォルト:10)。ヒット数の多い通話でコンテキストがあふれるのを防ぎます。 |
返される内容: 通話ごとにグループ化された文単位の一致結果です。話者名と所属(利用可能な場合)、一致したキーワード、タイムスタンプ(mm:ss)、文の抜粋が含まれます。
get_trackers — キーワードトラッカーの一覧
追跡対象のフレーズ、所属(誰の発言を追跡するか)、フィルタークエリを含む、すべてのキーワードトラッカーの定義を一覧表示します。get_call_summary の出力に表示されるトラッカーのヒットについて説明します。
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
workspaceId | いいえ | ワークスペース ID でトラッカーを絞り込みます(ID の確認には list_workspaces を使用してください) |
list_workspaces — すべてのワークスペースの一覧
Gong のすべてのワークスペースについて、ID と名前を一覧表示します。これらの ID は、list_calls、search_calls、get_trackers などのツールでフィルターとして使用できます。ほとんどの企業では、ワークスペースは1~3個です(地域や製品ラインごとなど)。
パラメーター: なし
get_user — ユーザープロフィールの取得
名前、メールアドレス、役職、電話番号、設定を含む、特定のユーザーのプロフィールを取得します。通話データから返されたユーザー ID の特定に役立ちます。
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
userId | はい | Gong ユーザー ID(数値文字列) |
search_users — フィルターによるユーザー検索
ID または作成日時でユーザーを検索、絞り込みます。通話データから取得した特定のユーザー ID を一括で特定する場合、list_users より柔軟に使用できます。
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
userIds | いいえ | 検索する特定のユーザー ID の配列 |
createdFromDateTime | いいえ | この日時以降に作成されたユーザーに絞り込みます(ISO 8601) |
createdToDateTime | いいえ | この日時以前に作成されたユーザーに絞り込みます(ISO 8601) |
cursor | いいえ | ページネーションカーソル |
list_users — ワークスペース内の全ユーザーの一覧
ワークスペース内のすべての Gong ユーザーを一覧表示します。各ユーザーの名前、メールアドレス、役職を返します。
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
cursor | いいえ | ページネーションカーソル |
includeAvatars | いいえ | ユーザーのアバター URL を含めるかどうか |
list_library_folders — 公開通話ライブラリフォルダーの一覧
ワークスペース内の Gong 公開通話ライブラリフォルダーをすべて一覧表示します。get_library_folder_calls で使用するフォルダー ID と名前を返します。非公開フォルダーとアーカイブ済みフォルダーは返されません。
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
workspaceId | はい | フォルダーを一覧表示するワークスペース ID(ID の確認には list_workspaces を使用してください) |
get_library_folder_calls — ライブラリフォルダー内の通話を取得
指定した Gong ライブラリフォルダーに保存されている通話をすべて取得します。通話 ID、タイトル、キュレーターのメモ、クリップの開始・終了時間を返します。通話 ID は get_call_summary または get_call_transcript に直接渡せます。
パラメーター:
| パラメーター | 必須 | 説明 |
|---|---|---|
folderId | はい | ライブラリフォルダー ID(list_library_folders から取得する数値文字列) |
利用可能なリソース
gong://users — ワークスペース内の全ユーザー
Gong ワークスペース内の全ユーザーの Markdown 形式のリストを返します。通話データに含まれるユーザー ID の特定に便利です。
パラメーター: なし
プロンプトの例
Claude に接続すると、次のように質問できます。
- 「先週の Gong の通話を一覧表示して」
- 「通話 123456789 の詳細を取得して」
- 「通話 123456789 の概要を表示して」
- 「通話 789012 の文字起こしを取得して」
- 「Gong にはどのワークスペースがありますか?」
- 「Gong は競合他社についてどのキーワードを追跡していますか?」
- 「Gong にはどの通話ライブラリフォルダーがありますか?」
- 「『Best Discovery Calls』ライブラリフォルダー内の通話を表示して」
- 「Gong ワークスペース内の全ユーザーを教えて」
- 「2025 年 7 月に Justin(ユーザー ID 232255198215877499)がホストした通話を検索して」
- 「これらのユーザー ID を調べて:111、222、333」
- 「過去 60 日間に acme.com または acme.io のユーザーと行った通話をすべて表示して」
- 「商談 006xxxxx に関連付けられた通話をすべて検索して」
- 「見込み客が Klaviyo または Braze に言及した第 3 四半期の通話を検索して、John の通話に絞り込んで」
貢献
貢献に関心がありますか?開発環境のセットアップ、テスト手順、ガイドラインについては、CONTRIBUTING.md をご確認ください。
リポジトリには Gong API の OpenAPI 仕様書のローカルコピー gong-openapi.json が含まれています。新しいツールを追加する際の参考資料として便利です。エディターを離れずに、エンドポイントのパス、パラメーター名、レスポンスの形式を確認できます。最新の仕様書は Gong API のドキュメント からダウンロードできます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。