mcpField
G
gongio-mcp

gongio-mcp

本地服务
github.com/JustinBeckwith商业与营销222 周前更新

关于 gongio-mcp

gongio-mcp 是面向 Gong.io 数据的 MCP 服务,可从 Claude 或其他 MCP 客户端查询通话、转录文本、用户和关键词追踪器。适合需要分析销售通话的团队。

主要功能

  1. 01按日期和工作区列出通话
  2. 02获取通话 AI 摘要与行动项
  3. 03按说明人归属的完整转录分页读取
  4. 04按参与者、客户、追踪器等条件搜索通话
  5. 05在转录文本中进行关键词搜索
  6. 06输出超长时自动回退为紧凑表格

适用场景

  1. 01汇总某一客户相关的通话要点
  2. 02查找提及竞争对手的通话记录
  3. 03在通话转录中核对具体原话

MCP 相关

该项目是 MCP 服务,向 Claude 等 MCP 客户端暴露 15 个工具,用于读取 Gong 的通话、转录、用户、库文件夹和追踪器数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"justinbeckwith-gongio": {
"command": "npx",
"args": [
"-y",
"gongio-mcp"
]
}
}
}
启动命令npx -y gongio-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmgongio-mcp2.0.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Gong MCP 服务

npm version License: MIT

一只可爱的红熊猫正在敲锣

一个 MCP(Model Context Protocol)服务,可访问你的 Gong.io 数据。直接通过 Claude 或任何兼容 MCP 的客户端查询通话、转录文本、用户、关键词追踪器等。

工具速查

工具描述
list_calls按日期/工作区筛选并列出通话
get_call获取特定通话的元数据
get_call_summaryAI 摘要:关键要点、主题、行动项
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 条通话(50 个 API 页面)
  • 分页后应用客户端筛选器(参与者、客户、追踪器、时长等)
  • 默认返回丰富的单条通话格式(元数据 + 摘要 + 主题 + 参与者)

内置防护机制:

  • 如果格式化后的输出超过 MAX_MCP_OUTPUT_LENGTH(默认值为 50000 个字符,可通过环境变量配置),工具会自动回退为精简表格并发出警告。你仍会获得每条通话的 ID 和标题——可对特定通话使用 get_call_summary 深入查看。
  • include: ["outline"] 开销很大(每条通话约 80KB)。请避免在多通话搜索中使用。
  • 追踪器数据仅显示与你的 trackers 筛选条件匹配的追踪器(如果没有筛选条件,则仅显示非零追踪器)——不再有满屏的 (0x) 噪声。

如果查询触及输出上限,请缩小范围:

  1. 缩短 fromDateTime/toDateTime 的时间范围
  2. 添加 scope: "External" 或 scope: "Internal"
  3. 添加 minDuration: 600 以跳过简短的未出席通话
  4. 添加 customerName 或 trackers 筛选条件
  5. 移除 outline 等开销较大的 include 选项

前置条件

  • Node.js 18+ 或 Docker
  • Gong API 凭据(Access Key 和 Secret)
获取 API 凭据
  1. 以管理员身份登录 Gong
  2. 前往 Company Settings → Ecosystem → API
  3. 点击 Create API Key
  4. 保存 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 筛选通话(使用 list_workspaces 查找 ID)
cursor否下一页的分页游标

get_call — 获取特定通话的元数据

获取单次通话的 URL、时间、方向、范围、系统及其他元数据。只需要通话元数据时,此工具比 get_call_summary 更快。

参数:

参数必填说明
callId是Gong 通话 ID(数字字符串)

get_call_summary — AI 生成的通话摘要

获取 AI 生成的摘要,包括简要概述、要点、主题、行动项和详细大纲。这是了解通话内容的推荐方式——只有需要准确引述时才使用 get_call_transcript。

参数:

参数必填说明
callId是Gong 通话 ID(数字字符串)

get_call_transcript — 完整的发言者归属转录文本

获取带有发言者归属信息的原始转录文本。转录文本采用分页方式(默认 10 KB),以防止上下文溢出——使用 maxLength 和 offset 浏览内容。

参数:

参数必填说明
callId是Gong 通话 ID(数字字符串)
maxLength否返回的最大字符数(默认值:10000,最大值:100000)
offset否分页起始字符偏移量(默认值:0)

search_calls — 高级通话搜索

使用高级筛选条件搜索通话,包括参与者查询、客户名称搜索和丰富的内容选择。自动遍历所有结果,默认返回参与者信息、简要摘要和主题。

参数:

日期和工作区

参数说明
fromDateTimeISO 8601 格式的开始日期
toDateTimeISO 8601 格式的结束日期
workspaceId按工作区 ID 筛选(使用 list_workspaces 查找 ID)
callIds要检索的特定通话 ID 数组

主持人 / 参与者

参数说明
primaryUserIds主持人用户 ID(服务端)
primaryUserEmails主持人邮箱(不区分大小写)
excludePrimaryUserIds排除这些主持人用户 ID
participantUserIds任意参与者(主持人 / 出席者 / 邀请者)的用户 ID
excludeParticipantUserIds排除任意参与者包含这些用户 ID 的通话
participantEmails任意参与者的邮箱(不区分大小写)
excludeParticipantEmails排除任意参与者包含这些邮箱的通话

内容和客户

参数描述
customerName模糊匹配 CRM 账户名称、外部邮箱域名和标题
titleContains按通话标题子字符串匹配(不区分大小写)
trackers触发了匹配的追踪器(计数 > 0)的通话。因工作区而异——使用 get_trackers 进行发现

元数据

参数描述
scopeExternal、Internal 或 Unknown
directionInbound、Outbound、Conference 或 Unknown
system会议平台(例如 Zoom)——按子字符串匹配,不区分大小写
language语言代码(例如 eng)——精确匹配,不区分大小写
minDuration最短时长(秒)
maxDuration最长时长(秒)

响应结构

参数描述
include要返回的附加数据——参见下表

include 选项:

值添加的内容大小
keyPointsAI 提取的要点列表约 5KB/通话
trackers关键词/智能追踪器命中项及计数约 3KB/通话
highlights按主题分组、由 AI 精选的精彩片段约 3KB/通话
speakers每位参与者的发言时长约 1KB/通话
comments留在通话中的公开评论不定
contextCRM 账户/商机关联(HubSpot、Salesforce)约 1KB/通话
outline完整的分节大纲及条目约 80KB/通话(较大)
media音频/视频 URL(有效期 8 小时)约 3KB/通话

默认值(始终返回):参与者、简要摘要和主题——每次通话约 3KB。

筛选行为说明:

  • 筛选条件采用 AND 逻辑组合。primaryUserIds + participantUserIds 会共同生效:主用户筛选在服务端进行,参与者筛选在之后进行。
  • customerName 会匹配以下任一项:CRM 账户的 Name 字段、外部参与者的邮箱域名,或通话标题(不区分大小写的子字符串匹配)。
  • trackers 名称因工作区而异——先调用 get_trackers 查看已配置的追踪器。匹配采用不区分大小写的子字符串方式(因此,"competitor" 会同时匹配 "Competitors" 和 "Competitor Mentions")。
  • 设置 trackers 筛选条件后,相关追踪器内容会自动包含在结果中,且输出只显示你指定的追踪器。不设置筛选条件时,只显示计数非零的追踪器。
  • 没有匹配结果时会返回 "No calls found",而不是错误。

有关大结果的回退处理方式,请参阅响应大小和上下文限制。

search_calls_by_account — 按账户/公司查找通话(电子邮件域名)

通过匹配外部参与者的电子邮件域名,查找涉及特定账户或公司的通话。Gong API 原生不支持按账户名称筛选(这是一个已知的缺陷)——此工具会获取指定日期范围内的通话,然后按 parties[].emailAddress 进行后置筛选。该工具会自动对底层的 /v2/calls/extensive 端点分页,最多获取 maxCalls 条通话。

适用场景:

  • 潜在客户有多个电子邮件域名(acme.com、acme.io、地区顶级域名),而你需要查找所有域名
  • 你需要合并外部丰富数据(例如,从 BuiltWith / Clearbit / 供应商技术栈图谱中获取“所有使用 Klaviyo 的潜在客户”)——先在上游解析出域名列表,再传入此工具
  • 与会在不同系统中发生变化的 CRM 账户名称相比,基于域名的匹配更可靠

参数:

参数必需描述
domains是电子邮件域名,例如 ["acme.com", "acme.io"]。如果任意外部参与者的电子邮件地址属于其中一个域名,则调用匹配。
fromDateTime否ISO 8601 格式的开始日期
toDateTime否ISO 8601 格式的结束日期
workspaceId否按工作区 ID 筛选
primaryUserIds否预先按通话主持人用户 ID 缩小范围(速度更快,在服务端执行)
matchCrmAccount否同时匹配 CRM Account 上下文对象名称中包含域名根名称的情况(例如,从 "acme.com" 得到 "acme")。需要 CRM 集成。默认值为 false。
maxCalls否要获取和筛选的最大通话数(默认值:500,最大值:5000)。会自动对底层 API 进行分页。
cursor否分页游标(高级)

成本说明: 此操作会先获取数据再筛选。对于 90 天的时间范围,如果没有其他缩小范围的条件,通常会分页调用 1–5 次 API。长时间范围内可结合 primaryUserIds 来控制成本。

search_calls_by_opportunity — 查找与 CRM Opportunity 关联的通话

按 ID 或名称子字符串查找与特定 CRM Opportunity 关联的通话。需要 Gong-CRM 集成(Salesforce / HubSpot)——没有 CRM 关联的通话将无法匹配。

适用于以下情况:

  • 你想获取特定交易中的所有通话——opportunityIds: ["006xxxxx"] 是最精确的选项
  • Opportunity 名称具有描述性(例如 "Acme Q4 Renewal"),且你想通过模糊匹配查找已重命名或重复的 Opportunity

参数:

参数必需描述
opportunityIdsopportunityIds 或 opportunityNames 至少需要一个CRM Opportunity ID(例如 Salesforce 的 18 位 ID)
opportunityNamesopportunityIds 或 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 — 在转录文本中进行自由文本关键词搜索

在限定日期范围内,对通话转录文本中的句子进行自由文本关键词搜索。分两个阶段执行:(1) /v2/calls/extensive 按日期和可选的 primaryUserIds / domains 缩小通话范围;(2) /v2/calls/transcript 获取缩小范围内的转录文本,并返回包含发言者归属信息和时间戳的句子级匹配结果。

对于需要重复搜索的词语,优先使用 Gong Trackers。 对于竞争对手名称、ESP/技术术语(Klaviyo、Braze、Iterable、Postscript、Attentive、Sendgrid、Customer.io 等)以及其他你会反复搜索的词语,可在界面中将其设置为 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 筛选跟踪器(使用 list_workspaces 查找 ID)

list_workspaces — 列出所有工作区

列出所有 Gong 工作区及其 ID 和名称。将这些 ID 用作 list_calls、search_calls、get_trackers 和其他工具中的筛选条件。大多数公司有 1–3 个工作区(例如按地区或产品线划分)。

参数: 无

get_user — 获取用户个人资料

获取指定用户的个人资料,包括姓名、电子邮件、职位、电话和设置。可用于解析通话数据返回的用户 ID。

参数:

参数必填说明
userId是Gong 用户 ID(数字字符串)

search_users — 按筛选条件搜索用户

按 ID 或创建日期搜索和筛选用户。与 list_users 相比,它更适合批量解析通话数据中的指定用户 ID。

参数:

参数必填说明
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(使用 list_workspaces 查找 ID)
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 的通话,并筛选出 John 的通话”

贡献

有意参与贡献?请查看 CONTRIBUTING.md,了解开发环境设置、测试说明和指南。

仓库包含 gong-openapi.json——Gong API OpenAPI 规范的本地副本。添加新工具时,它可作为参考:无需离开编辑器,即可用它查找端点路径、参数名称和响应结构。可从 Gong API 文档 下载最新规范。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。