关于 DialMCP
DialMCP 是面向需要拨打电话的 Agent 的托管 MCP 服务,可使用经过验证的美国或加拿大号码外呼。它提供通话进度、文字记录、录音和结构化结果;不支持远程连接的客户端可使用本地 stdio 连接器。
主要功能
- 01异步发起外呼
- 02查询状态、文字记录和录音
- 03列出并结束通话
- 04处理电话菜单和语音信箱
- 05执行身份披露与呼叫限制
适用场景
- 01按指定目标拨打美国或加拿大号码
- 02查看通话结果和对方承诺
- 03通过桥接器连接仅支持 stdio 的 MCP 客户端
MCP 相关
通过 `https://mcp.dialmcp.com/mcp` 上的托管 MCP 服务提供呼叫工具,使用 Streamable HTTP 和 OAuth。可选连接器将本地 stdio 客户端桥接至该端点。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.dialmcp.com/mcpclaude mcp add --transport http com-dialmcp-dialmcp https://mcp.dialmcp.com/mcp{"mcpServers":{"com-dialmcp-dialmcp":{"type":"http","url":"https://mcp.dialmcp.com/mcp"}}}在 Cursor 中打开{"servers":{"com-dialmcp-dialmcp":{"type":"http","url":"https://mcp.dialmcp.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-dialmcp-dialmcp":{"type":"http","url":"https://mcp.dialmcp.com/mcp"}}}{"mcpServers":{"com-dialmcp-dialmcp":{"serverUrl":"https://mcp.dialmcp.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
DialMCP Connector
为你的 AI Agent 配备一部电话。
DialMCP 的开源连接器——这是一款托管式 MCP 服务,可让 AI Agent 使用你自己的已验证号码拨打真实电话。
这是什么
DialMCP 是部署在 https://mcp.dialmcp.com/mcp 的远程 MCP 服务。任何支持带 OAuth 的
Streamable HTTP 的客户端都可以直接连接——无需安装,也无需 API 密钥。这些客户端不需要此软件包。
此仓库的存在有两个原因:
- 为仅支持本地服务的客户端提供 stdio 桥接。 一些 MCP 客户端仍无法与
远程服务通信。
dialmcp-connector会启动一个本地 stdio 服务,将请求代理到托管端点,并为你处理 OAuth 浏览器授权流程。 - 以开放、规范的方式集中记录 DialMCP 集成文档——工具架构、客户端配置、
server.json注册清单和安全模型都在一个可审计的位置。
托管电话服务本身为闭源。本连接器采用 MIT 许可证,不包含专有逻辑:它只是一个用于连接公共端点的轻量传输适配层。
快速开始
直接连接(首选)
如果你的客户端支持远程 MCP 服务,请跳过此软件包:
URL: https://mcp.dialmcp.com/mcp
Transport: Streamable HTTP
Auth: OAuth 2.1 (sign in with your phone number)
Claude Code
claude mcp add --transport http dialmcp https://mcp.dialmcp.com/mcp
# add --scope user to enable it in every project
Codex — ~/.codex/config.toml
[mcp_servers.dialmcp]
url = "https://mcp.dialmcp.com/mcp"
claude.ai / Claude Desktop
设置 → 连接器 → 添加自定义连接器 → 粘贴 https://mcp.dialmcp.com/mcp。
Gamut
设置 → 连接器 → 添加 MCP 服务 → 粘贴 URL(HTTP / OAuth)→ 完成 SMS 验证。
首次连接时会打开浏览器窗口供你登录。使用 SMS 验证码验证你的电话号码——该号码将成为你的来电显示号码。
通过此连接器使用(仅支持 stdio 的客户端)
npx dialmcp-connector
或者在 MCP 客户端配置中使用:
{
"mcpServers": {
"dialmcp": {
"command": "npx",
"args": ["-y", "dialmcp-connector"]
}
}
}
可在 examples/ 中查看可直接粘贴使用的配置。
工具
| 工具 | 描述 |
|---|---|
place_call | 使用明确说明的目标,向美国或加拿大号码拨打电话。立即返回通话 ID——通话以异步方式运行。 |
get_call | 获取通话的当前状态:状态、实时进度,以及通话结束后的转录文本、录音链接和结构化结果。在调用 place_call 后轮询此工具。 |
end_call | 立即挂断正在进行的通话。 |
list_calls | 列出已认证用户的近期通话及其状态和结果。 |
该 API 从设计上采用异步模式:place_call 会立即返回通话 ID,随后由 Agent 轮询
get_call,因此持续数分钟的通话不会触发客户端的工具超时。
通话结束后,get_call 会返回结构化结果——achieved、partially_achieved 或
not_achieved——其中包含摘要、对方作出的承诺、建议的后续操作、逐轮对话转录文本,以及指向音频录音的签名链接。
通话期间,服务会通过自动化电话菜单按键操作,在等待音乐播放时静默等待,并检测语音信箱——检测到后会挂断,而不会留言。
安全模型
所有防护措施都在服务端执行,而不是作为 Agent 可能自行说服自己不遵守的模型指令。
- 披露身份。 每次通话开始时,都会先说明自己是 AI 助手、代表谁致电,以及通话会被录音,然后才提出请求。系统会独立核验每段通话记录是否合规,并记录结果。Agent 绝不会否认自己是 AI;如果接听者提出异议,通话便会结束。
- 你的真实号码。 通话会显示你本人通过 SMS 验证的来电显示号码。不会伪造号码,接听者也可以回拨给你。
- 速率限制。 同时最多 1 通 · 每小时 3 通 · 每天 10 通 · 同一目标每天最多 2 通 · 默认上限 6 分钟,硬性上限 10 分钟,由看门狗强制执行。系统从设计上杜绝了批量拨号。
- 时间与地点。 仅允许在接听者当地时间 8:00–21:00 拨打(符合 TCPA 要求),且仅限美国和加拿大。对于未知时区,将采取保守处理。
- 不可绕过的屏蔽列表。 绝不会拨打紧急服务号码(911)、高费率号码(900/976)和高欺诈风险号段。
- 永久退订。 通话中会确认对方的谢绝来电请求;第二次独立的通话记录审核也会核实该请求。退订记录将永久保存,并在整个平台的所有用户之间统一生效。用户可通过 https://mcp.dialmcp.com/opt-out 自助退订,无需账户。
- 客观审核。 独立审核员会在拨号前审核每通电话所述的目标,排查骚扰、欺骗或欺诈行为。Agent 只会陈述任务中提供的事实。
- 禁止用途。 禁止用于电话营销、陌生拜访、自动拨号、调查、潜在客户开发、债务催收和政治宣传,详见条款。
完整详情:https://dialmcp.com/safety.html
要求
- Node.js 18 或更高版本(仅在使用 stdio bridge 时需要)
- 用于 SMS 验证的美国或加拿大手机号码
- 用户必须年满 18 岁
链接
- 网站 — https://dialmcp.com
- 安全与反垃圾信息 — https://dialmcp.com/safety.html
- 隐私 — https://dialmcp.com/privacy
- 条款 — https://dialmcp.com/terms
- 谢绝来电退订 — https://mcp.dialmcp.com/opt-out
- 支持 — [email protected]
发布
每次发布都会同步到两个平台:npm(dialmcp-connector)和官方 MCP Registry(com.dialmcp/dialmcp)。两处发布均由 .github/workflows/release.yml 自动完成。
发布新版本
- 更新
package.json和server.json两处的version。如果版本不一致,npm run validate:manifest会失败;CI 会在每次推送时运行此命令。 - 合并到
main。 - 手动运行 Release 工作流(Actions → Release → Run workflow,保持勾选
dry_run),并等待工作流成功完成。此步骤会打包 tarball,并根据实时注册表架构验证server.json,但不会发布任何内容。 - 发布一个标记为
vX.Y.Z的 GitHub Release。标签必须与package.json中的版本一致,否则工作流会在发布前停止。
第 3 步花两分钟就能完成,值得一做:注册表中的版本不可修改,也不能撤回发布。 有问题的版本只能由更高版本取代,或标记为弃用。
工作流的作用
| Job | 运行条件 | 步骤 |
|---|---|---|
publish | 发布 和 手动试运行 | 类型检查 → 验证清单 → 构建 → 冒烟测试 → 检查标签与版本是否匹配 → npm publish --provenance → mcp-publisher validate |
registry | 仅发布 | 等待 npm 同步 → mcp-publisher login dns → mcp-publisher publish |
--provenance 会附加一份签名证明,将 tarball 与构建它的提交和工作流运行关联起来,因此该 Job 需要 id-token: write。
注册表发布是一个独立 Job,原因有二。首先,它必须等待 npm:注册表会通过获取刚发布的版本并读取其 mcpName 字段来验证所有权;在 npm 完成同步之前,该请求会返回 404(此 Job 会重试约 2.5 分钟)。其次,它持有签名密钥;该密钥的作用范围是整个 com.dialmcp 命名空间,而非仅限此软件包,因此需要放在受保护的环境中。刻意不将该环境应用于 publish Job:其分支策略只允许 v* 标签,如果应用于整个 Job,就会直接阻止从 main 手动试运行。
一次性设置
| 项目 | 位置 | 用途 |
|---|---|---|
NPM_TOKEN | 仓库机密 | 拥有 dialmcp-connector 发布权限的自动化令牌 |
MCP_REGISTRY_PRIVATE_KEY | release 环境机密 | Ed25519 密钥,采用 base64 编码;用于验证注册表发布 |
release 环境 | 部署分支策略 → 标签 → v* | 防止命名空间密钥用于未打标签的运行 |
v=MCPv1; k=ed25519; p=<public key> | dialmcp.com 根域名上的 TXT 记录 | 注册表据此验证域名所有权 |
TXT 记录应添加在裸域名上,类似 SPF 的设置方式——不会读取 _mcp. 选择器,且会导致难以诊断的签名错误。签名的时间戳窗口为 ±15 秒,因此运行器的时钟必须准确。
参与贡献
欢迎为连接器、文档和客户端配置提交问题和拉取请求。托管服务本身的 Bug 最好发送至 [email protected]。报告任何安全相关问题前,请先阅读 SECURITY.md。
许可证
MIT © Datawizz Inc. 详见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。