关于 GetSales: Outreach MCP Server
GetSales Outreach MCP Server 让 GTM 团队和代理机构通过 AI Agent 操作自己的 GetSales 工作区,处理外联相关数据与流程。它通过托管端点提供工具集,并对标记为危险的操作先显示预览、等待确认。
主要功能
- 01操作人员和公司表格及记录
- 02管理数据增强列与工作流
- 03访问收件箱、草稿和任务
- 04处理网站访客信号与 Webhook
- 05危险操作先预览并确认
- 06支持 OAuth 或 API 密钥连接
适用场景
- 01查找并整理目标联系人
- 02估算数据增强成本后再运行
- 03查看待回复对话及 AI SDR 草稿
- 04起草工作流并在发布前检查
MCP 相关
托管 MCP 服务通过单一端点连接 GetSales 工作区,向 MCP 客户端提供表格、人员、公司、数据增强、工作流、收件箱、任务、信号和 Webhook 等工具。支持 streamable HTTP,也提供 npm 启动器和 Docker 镜像。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp2.getsales.io/mcp/publicclaude mcp add --transport http io-getsales-outreach https://mcp2.getsales.io/mcp/public{"mcpServers":{"io-getsales-outreach":{"type":"http","url":"https://mcp2.getsales.io/mcp/public"}}}在 Cursor 中打开{"servers":{"io-getsales-outreach":{"type":"http","url":"https://mcp2.getsales.io/mcp/public"}}}在 VS Code 中打开{"mcpServers":{"io-getsales-outreach":{"type":"http","url":"https://mcp2.getsales.io/mcp/public"}}}{"mcpServers":{"io-getsales-outreach":{"serverUrl":"https://mcp2.getsales.io/mcp/public"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
GetSales:外联 MCP 服务
GetSales 是一款集 LinkedIn 和电子邮件外联于一体的应用,服务于代理机构和 GTM 团队。描述你的目标客户后,GetSales 会找到相关人员及其工作邮箱,为他们评分并撰写开场白,而所有回复都会汇入团队收件箱。
这个 MCP 服务让 AI Agent 能在你的 GetSales 工作区中工作。Claude、Cursor、ChatGPT 或其他 MCP 客户端连接到一个托管端点 https://mcp2.getsales.io/mcp/public,然后通过四个元工具访问人员和公司的表格、数据补充列、工作流、包含 AI SDR 草稿的收件箱、任务、网站信号和 Webhook。
该服务以托管方式运行,因此此仓库仅包含配套工具包,不包含服务端代码:用于该 URL 的客户端配置、npx 和 Docker 设置、npm 启动器及其镜像、MCP Registry 条目、Claude Code 和 Cursor 插件清单,以及一个 Agent 技能。
什么是外联 MCP 服务?
外联 MCP 服务通过 Model Context Protocol 工具,将外联产品中的对象开放出来,让 AI Agent 能像用户在应用中一样通过聊天完成操作:构建目标人员名单、补充信息、将其加入序列,并跟进回复。MCP 是一种开放协议,Claude、Cursor、ChatGPT 和其他客户端都使用它来调用服务上的工具。
此服务可操作你自己的 GetSales 工作区中的对象。你可以要求 Agent 根据一句话创建表格、先报价再运行的工作邮箱列、为符合条件的人员起草工作流,或查看待处理的对话,Agent 会串联调用相关工具。对于服务标记为危险的工具(例如删除和取消工具),系统会先显示预览,并且只有在你确认后才会执行。付费操作不会经过该预览,因此此仓库中的技能会让 Agent 先报出预估费用,并等你同意后再开始任何付费操作。
支持哪些客户端?
任何支持可流式 HTTP 或能够启动命令的 MCP 客户端:
- Claude:claude.ai、Claude Desktop 和 Claude Code
- Cursor
- ChatGPT,通过自定义连接器
- VS Code、Codex 和其他 Agent 运行时
不使用 MCP?每个工具都对应 GetSales REST API 的一个端点,文档见 docs.getsales.io,同一个 API 密钥可用于两者。
如何将 GetSales 连接到 Claude、Cursor 或 ChatGPT?
| 设置方式 | 适用对象 | 登录方式 | 要求 |
|---|---|---|---|
URL https://mcp2.getsales.io/mcp/public | 支持可流式 HTTP 的客户端:claude.ai、Claude Desktop、Claude Code、Cursor、ChatGPT、VS Code | 在浏览器中通过 OAuth 登录,或使用 API 密钥请求头 | 无需安装 |
npm 启动器 @getsales/outreach-mcp | 只能启动命令的客户端 | OAuth,或 GETSALES_API_KEY | Node.js 18 或更高版本 |
Docker 镜像 getsalesio/outreach-mcp | 未安装 Node.js 的主机 | 仅需 GETSALES_API_KEY | Docker |
1. 获取账户。 注册 GetSales,或使用你已有的工作区。
2. 将服务添加到客户端。 Claude Desktop 和 Cursor 会从其配置文件中读取纯 URL(examples/claude_desktop_config.json、examples/cursor_mcp.json):
{
"mcpServers": {
"getsales": { "url": "https://mcp2.getsales.io/mcp/public" }
}
}
在 Claude Code 中只需运行一条命令:
claude mcp add --transport http getsales https://mcp2.getsales.io/mcp/public
在 claude.ai 中,打开“设置”“连接器”“添加自定义连接器”,然后粘贴相同的 URL。
无需粘贴密钥。首次调用会返回 WWW-Authenticate 挑战,客户端会注册自身(动态客户端注册),随后 GetSales 授权页面会在浏览器中打开。登录后,选择客户端可以操作的工作区,然后点击“允许”。
无法使用浏览器的客户端(CI、服务端、脚本)会改为发送 API 密钥;该密钥可在应用的“设置”“API 密钥”下创建:
claude mcp add --transport http getsales https://mcp2.getsales.io/mcp/public --header "Authorization: Bearer gs_live_..."
每个连接只能使用一种方式。既运行 OAuth 又发送固定请求头的客户端,会在每次请求时用该请求头覆盖 OAuth 令牌。
只能启动命令的客户端会运行启动器(examples/claude_desktop_config.npx.json)。它会执行相同的 OAuth 流程;或者,在其 env 中设置密钥后使用 GETSALES_API_KEY。密钥会作为 bearer 发送到服务,绝不会出现在命令行中,因此进程列表或客户端的启动器日志都不会显示密钥:
{
"mcpServers": {
"getsales": {
"command": "npx",
"args": ["-y", "@getsales/outreach-mcp"]
}
}
}
Docker 镜像会运行相同的启动器,并且只能通过密钥登录(examples/claude_desktop_config.docker.json)。使用 -e 和纯变量名时,docker 会将客户端 env 中的密钥传给容器,密钥不会出现在 docker 命令行中:
{
"mcpServers": {
"getsales": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "GETSALES_API_KEY", "getsalesio/outreach-mcp"],
"env": { "GETSALES_API_KEY": "gs_live_..." }
}
}
}
OAuth 无法在容器中完成:授权页面完成后,浏览器会返回 localhost,也就是你的计算机;而 mcp-remote 正在容器自己的回环地址上等待该响应。因此,如果没有密钥,容器会立即停止并说明原因。要使用 OAuth,请向客户端提供 URL 或运行 npm 启动器。
3. 用普通语言提问。
“为德国的 SEO 代理机构整理一份营销负责人表格,添加工作邮箱列,并在执行任何操作前告诉我费用。”
Agent 会找到并串联这些工具:生成表格,以 AI 搜索作为数据来源,添加邮箱列,并估算费用。然后它会停下来等待你的指示。所有客户端的分步说明,包括 ChatGPT、VS Code 和 Codex:请参阅 CONNECT.md。
可以将其安装为 Claude Code 或 Cursor 插件吗?
可以。此仓库同时支持这两种插件(.claude-plugin/plugin.json、.cursor-plugin/plugin.json),并包含两个部分:
- 来自
.mcp.json的托管服务https://mcp2.getsales.io/mcp/public。 getsales技能及其完整流程示例。该技能会教 Agent 在调用工具前先查找工具,为付费操作估价并等待确认,在确认危险工具前向你展示预览,并在再次调用前先读取错误信息。
Claude Code 会在一个会话中从此仓库的克隆副本加载插件:
claude --plugin-dir <path to the clone>
对于 Cursor,请将克隆副本中的插件文件复制到 Cursor 的本地插件文件夹:
mkdir -p ~/.cursor/plugins/local/getsales
cp -R .cursor-plugin .mcp.json skills assets ~/.cursor/plugins/local/getsales/
然后运行 Developer: Reload Window。该技能和服务会显示在 Customize 下。
插件不需要密钥,也不要求进行任何设置:首次调用工具时会打开授权页面。
我的 Agent 可以用它做什么?
该服务会将工作区的工具归入工具集,Agent 只加载当前任务所需的工具。它会用通俗语言调用 search_tools,说明对象和操作,读取选中的工具定义(describe_tool,或使用 detail: "full" 调用 search_tools),然后通过 call_tool 运行工具。list_toolsets 是工具集地图。
工作区的工具集按领域划分如下:
Playtables:表格、人员、信息补充和工作流
| 工具集 | Agent 可操作的内容 |
|---|---|
playtables.tables | 表格、已保存的视图,以及各表格的进展情况 |
playtables.columns | 信息补充和 AI 列、单元格、运行记录及费用估算 |
playtables.rows | 人员、公司,以及每个人的动态记录 |
playtables.crm | 销售管道阶段、备注、标签和拒绝联系名单 |
playtables.sources | 行数据的来源:AI 搜索、CSV 导入、webhook |
playtables.workflows | 工作流:编写、验证、发布、暂停和恢复 |
playtables.workflow-records | 每个人在工作流中的进度及其任务 |
收件箱、发件人资料和 AI SDR
| 工具集 | Agent 可操作的内容 |
|---|---|
inbox | 会话、消息、AI SDR 的草稿、任务、人员时间线,以及会话对象 |
sender-profiles | 发件人资料、相关变量,以及每个资料当天和每日的活动 |
ai-sdr.agents | 团队的 AI SDR Agent、场景、计划和运行记录 |
ai-sdr.training | AI SDR 给出的答案及其来源文档,以及它学到的内容:示例、提示、修正和测试 |
信号
| 工具集 | Agent 可操作的内容 |
|---|---|
signals | 会话和访客(已识别到个人或公司),以及针对表格事实触发响应的策略 |
工作区:设置和管理面板
| 工具集 | Agent 操作的内容 |
|---|---|
workspace.team | 你的账户、工作区、成员和邀请、通知动态,以及用于引导入门的网站读取 |
workspace.access | 有效的 API 密钥,以及用户连接的应用 |
workspace.billing | 订阅、发票、付款方式、信用额度余额和支出 |
workspace.website-tracking | 跟踪设置:网站、关键页面、跟踪事件、设置 |
workspace.integrations | 数据提供商及其价格、你自己的连接和 HTTP 工具、调用日志 |
workspace.webhooks | Webhook 订阅及其投递记录 |
workspace.whitelabel | 白标品牌、客户工作区、证书 |
连接后可以询问:
- “柏林代理商表格这个月表现如何?用户在哪里流失?”
- “哪些对话在等我回复?AI SDR 为每个对话草拟了什么内容?”
- “本周谁访问了定价页面但还没有回复?”
- “为 Q4 视图起草一个工作流:发送一封邮件,等待两天,再跟进。发布前先给我看看。”
- “我们还剩多少信用额度?上周的丰富数据支出了多少?”
- “为我们的端点订阅新回复,并触发一个测试事件。”
哪些工具会先要求确认?
服务器标记为危险的工具。首次调用不会进行任何更改,而是返回操作预览,并附带一个 commit_token。再次使用该令牌调用相同工具,就会执行操作。该令牌只能使用一次,且仅适用于该工具、这些参数和该工作区;300 秒后过期。目前标记为危险的操作包括:删除或取消任何内容、合并对话、将某个对话的另一方加入阻止名单、轮换网站密钥或摄取密钥、更改订阅、撤销已连接的应用、创建或更改 Webhook 或重放 Webhook、发布或恢复工作流、恢复、重新启动或将某人移出工作流、将公司从表格中移除、解除网站访客与某人的关联,以及更改 AI SDR Agent、重置其某个场景或清除其示例。
以下操作首次调用时会直接执行,不会提供预览:
- 付费操作。 表格运行(
create_playtable_run,类型为enrich)会在执行过程中消耗信用额度。estimate_credits会先估算费用,max_budget会设置上限,但未设置max_budget的运行没有上限。AI 搜索数据源(create_data_source)会因结果页而消耗信用额度,且没有估算或上限。设置了config.auto_run: true的列会填充每条新到达的行,不受任何运行预算约束;只有在设置了每日信用额度上限时,才受该列自身上限的限制。 - 批量编辑。 类型为
bulk的create_playtable_run会在一次调用中更改多行,其操作还包括删除行和将行移至其他表格。 - 公司合并。
merge_companies会将一家公司的潜在客户转移到另一家公司,且没有任何工具可以撤销该操作。
该技能会让 Agent 说明此类操作将产生的结果,以及(如有)相关费用,并等待你确认。服务器每个工作区每分钟最多处理 600 次调用和 120 次写入。
调用失败时会发生什么?
拒绝响应是一个类型化信封,其中 error.code 为 16 种代码之一,并以 isError: true 的工具结果形式返回,而不是需要解析的自然语言。validation_failed 会指出字段和规则,forbidden 会指出缺少的权限,payment_required 表示工作区订阅已暂停,或其套餐无法承担该步骤。
429 错误分为两种。一种带有 context.retry_after:调用次数过多,或后端要求暂停。等待其指定的时间(边缘节点以秒为单位;后端指定自身时钟时则使用时间戳),然后将工作批量合并,减少调用次数。另一种带有 context.resource,但没有 context.retry_after:这是套餐或并发量的上限,例如团队可同时运行的任务数。等待不会解除此限制。资源释放后限制便会解除,例如某个正在运行的任务结束时。
每个响应都会附带一个跟踪 ID:报告问题时请提供该 ID。
密钥和权限如何运作?
- OAuth,适用于交互式客户端。 用户在 GetSales 授权页面登录,选择客户端可操作的工作区,然后点击 Allow。密码不会传给客户端,客户端会自行刷新令牌。工作区可在 Settings、Connected apps 中撤销连接。
- API 密钥,适用于无头客户端。 在应用的 Settings、API keys 中创建
gs_live_...密钥,并通过Authorization: Bearer gs_live_...发送。密钥只显示一次。一个密钥属于一个工作区,三年后过期,除非创建时不设过期时间。密钥会原地轮换:默认情况下,旧密钥仍可使用 24 小时(grace_seconds),因此可在不中断服务的情况下更改配置。 - 凭据中包含权限。 密钥包含明确的权限令牌列表,例如
can_view_playtables或can_manage_workflows,且权限始终不超过创建者获授的权限;还可将权限范围缩小到某些发件人资料和表(account_sids)。发件人资料是团队用于发送消息的身份,其中包含其 LinkedIn 账号和邮箱。超出授权范围的调用会返回 403forbidden,并指出所需权限。
一个密钥既可用于 REST API,也可用于此服务。详情:docs.getsales.io/authentication。
费用是多少?
截至 2026-11-03,定价页面列出的免费 Playtables & Data 套餐包含 API、webhooks、MCP 和 CLI,因此连接该服务无需付费。付费操作会消耗工作区余额中的数据点数:例如邮箱查找和验证等数据增强列、AI 列、Find people 列和 AI 搜索页面。定价页面还介绍了改用自己的服务提供商密钥。estimate_credits 会在表运行开始前给出预计费用范围,list_provider_catalog 则列出各服务提供商和模型的价格。
这与调用 REST API 有什么不同?
两者遵循同一套契约:每个工具都映射到一个形状相同的 REST 端点。少数端点没有对应工具,例如创建 API 密钥的端点,这样密钥就不会经过模型。
| MCP 服务 | REST API | |
|---|---|---|
| 调用方 | 来自聊天或 Agent 运行环境的 AI Agent | 你自己的代码 |
| 地址 | 单个端点:https://mcp2.getsales.io/mcp/public | 每项服务各有一个基础 URL,详见 API 参考 |
| 查找调用 | 运行时通过目录使用 search_tools | API 参考 |
| 删除、取消及其他危险工具 | 先预览,再使用 commit_token 确认 | 立即执行 |
| 登录 | 在浏览器中使用 OAuth,或使用 API 密钥 | 使用 API 密钥或 OAuth 访问令牌 |
| 错误 | 包含 16 种代码的信封,以 isError: true 的工具结果形式返回 | 相同的信封,并附带 HTTP 状态码 |
此仓库包含什么?
| 路径 | 内容 |
|---|---|
server.json | MCP Registry 条目:远程端点和 npm 包 |
npm/ | @getsales/outreach-mcp,通过 mcp-remote 启动的 stdio 启动器,以及其依赖项锁文件 |
Dockerfile | 同一启动器的镜像版本,仅使用密钥登录,并根据该锁文件安装 |
examples/ | URL、npx 和 Docker 配置的客户端配置,以及 Claude Code 命令 |
.claude-plugin/、.cursor-plugin/、.mcp.json、assets/logo.png | Claude Code 和 Cursor 插件 |
skills/getsales/ | Agent 技能及其实际工作流示例 |
lhm.plugin.json | LobeHub 列表 |
kit.json | 上述文件中重复出现的名称,集中写在此处 |
tests/、scripts/ | 工具包的检查项。npm test 可离线运行 |
服务器如何处理令牌,以及如何报告问题:SECURITY.md。
链接
- 注册:getsales.io/signup
- API 参考:docs.getsales.io
- 密钥和 OAuth:docs.getsales.io/authentication
- 接收 Webhook:docs.getsales.io/guides/receive-webhooks
- AI 销售助手:getsales.io/ai-sales-assistant
- 定价:getsales.io/pricing
- Model Context Protocol:github.com/modelcontextprotocol
GetSales 是一款独立产品,与 LinkedIn Corporation 无关联,亦未获其认可或赞助。LinkedIn 和 LinkedIn 徽标是 LinkedIn Corporation 的商标。使用 GetSales 的风险由您自行承担,并须遵守适用的第三方平台条款。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。