TrueDialog MCP
官方将 TrueDialog 接入您的 AI Agent。通过屡获殊荣的 TrueDialog 平台发送全渠道消息并管理联系人。将您的 AI Agent 连接到 TrueDialog,即可使用现有 TrueDialog 账户发送商务 SMS、RCS 消息并管理联系人。搜索和检索联系人、创建或更新联系人记录、查看账户详情及已配置的 10DLC/长代码和短代码渠道,并向一个或多个收件人发送外发短信。使用 TrueDialog 开展 SMS 和 RCS 营销推广、发送警报和通知、预约及活动提醒、销售跟进、客户服务更新以及员工沟通。消息通过 TrueDialog 的直连运营商连接和内置退订处理功能发送,助力实现可靠且合规的 SMS 工作流。
你可以用 TrueDialog MCP 做什么?
- 检查会话 — 询问已授权的连接当前以哪个 TrueDialog 用户和账户身份运行,快速检查身份验证状态。
- 浏览账户和渠道 — 列出登录账号可访问的所有账户,获取某个账户的详细信息,或列出其 SMS、RCS、电子邮件和语音渠道。
- 查找联系人 — 按 ID 获取联系人,或按子字符串搜索电话号码和电子邮件地址。
- 创建或更新联系人 — 根据电话号码或电子邮件添加联系人,或仅更新传入的字段,不覆盖其余信息。
- 发送 SMS — 向一个或多个号码发送短信,可先进行试运行;如果未指定发送渠道,则由连接器选择。
文档
MCP(Model Context Protocol,模型上下文协议)是 AI 客户端访问所需工具和数据、真正执行任务的方式。tdmcp 是任何支持 MCP 的客户端与 TrueDialog SMS API 之间的连接层:它依托三十年的运营商基础设施,提供退订处理、双向对话、RCS、MMS 和短代码流量,并将这些能力封装为一组命名清晰的工具。
身份验证采用 OAuth 2.1,而不是粘贴凭据。你只需在浏览器中通过 auth.tdmcp.com 授权,并使用与登录门户相同的 TrueDialog 账号登录。AI 客户端只会持有短期 bearer token,绝不会接触你的密码,并会在每次调用时发送该令牌。连接器会验证令牌,并通过私有后端通道在服务器端解析你的 TrueDialog 访问权限。客户端配置中不会留下任何长期有效的凭据。
运行时刻意保持简单:Azure Container Apps 位于托管的前端入口之后,使用 AMD64 容器,由 FastMCP 提供 Streamable HTTP 服务,不使用粘性会话。整个环境由 Terraform 管理。没有意外,也没有任何你未曾引入的组件进入关键路径。
端点:https://connect.tdmcp.com。采用无状态的 Streamable HTTP。同一传输方式也可通过 https://connect.tdmcp.com/mcp 访问——这是为习惯 /mcp 路径约定的客户端提供的兼容别名;两个 URL 均可使用。身份验证采用 OAuth 2.1——客户端会自动发现相关信息,并引导你通过浏览器登录。无需粘贴密钥或请求头。
授权流程
以下每种客户端都遵循相同的四个步骤,其中大部分会自动完成:
- 将 connect.tdmcp.com 添加到客户端。
- 客户端会在 auth.tdmcp.com 找到 OAuth 服务器,并自动注册自身(动态客户端注册、PKCE)。
- 浏览器窗口会打开。使用你的 TrueDialog 凭据登录。
- 客户端收到令牌后,即表示连接成功。令牌会自动刷新——会话过期前,你无需再次登录。
在 Claude(桌面应用或 claude.ai)中,打开 Customize → Connectors,然后点击 + → Add custom connector。为连接器命名,并填写端点 URL:
添加自定义连接器
Name: TrueDialog
URL: https://connect.tdmcp.com/
点击 Add,然后点击 Connect。浏览器窗口会打开,供你登录 TrueDialog;批准授权后,九个工具便会显示出来——Claude 会自动向 OAuth 服务器注册自身,无需粘贴任何内容。对于 Team/Enterprise,Owner 必须先为组织启用该连接器(Organization settings → Connectors → Add → Custom → Web);之后,每位成员都可以从 Customize → Connectors 添加它。
每个 MCP 工具都对应 TrueDialog API 的特定功能面。它们刻意设计得精简直观;智能体的推理逻辑在提示词中,而不是工具列表里。总共九个工具——六个只读工具,三个写入工具。
- whoami
返回已授权会话对应的用户和账号。可用于一次性检查身份验证。只读。 - list_accounts
列出你的登录账号可访问的所有账号。多租户运营人员会用到;单账号用户则不需要。只读。 - get_account_info
获取单个账号记录。默认使用已验证身份对应的账号。只读。 - list_channels
列出账号上的渠道——长码、短码、RCS、电子邮件、语音。调用此工具可在使用 send_sms 前查找渠道 ID。只读。 - get_contact
按 ID 查找联系人。只读。 - search_contacts
按电话号码和电子邮件地址进行子串匹配。只读。 - create_contact
通过电话号码或电子邮件创建联系人(至少需要提供其中一项)。如果该号码或电子邮件已关联某个联系人,TrueDialog 会拒绝创建,并提示你使用 update_contact——不会悄悄创建重复联系人。 - update_contact
更新联系人的电话、电子邮件或姓名。它会先读取记录,再仅重写你传入的字段,因此 TrueDialog 那种覆盖所有字段的更新不会清除其余信息——这是一次读取-修改-写入操作,因此除了管理权限外,还需要联系人读取权限;并且无法防止并发编辑造成的冲突。写入工具。 - send_sms
向一个或多个号码发送外发 SMS。会实际发送:默认情况下,消息会送达真实手机(传入execute=false可进行试运行)。如果未指定发送渠道,会自动解析。单向发送——不会读取回复。
与它对话
你无需按名称调用这些工具——只需提出请求,智能体就会选择合适的工具。连接后可以试试以下请求:
- “我当前以哪个身份连接?”确认身份验证
- “我的账号设置了哪些渠道?”读取渠道
- “发短信给 +1 512 555 0142:已为你确认晚上 7 点的四人桌。”发送一条消息,收件人一位
- “查找 512 555 0142 对应的联系人,并告知对方订单已发货。”查找联系人并发送消息
文件通过电子邮件工具传递。inbox_send_message 和 inbox_reply_to_message 都接受附件列表;inbox_forward_message 则会直接携带原始文件(include_attachments 默认开启)。附件列表中的每一项都必须且只能指定一个字节来源;选择哪种来源,决定了文件能否成功送达。
这些工具属于 Inbox pack,需按部署启用。connect.tdmcp.com 上的连接器目前提供上述九个 TrueDialog 工具;启用 Inbox pack 的部署还会提供电子邮件工具及附件功能。
- attachment_id
指定平台已存储在此收件箱某条消息上的附件——这些 ID 来自 inbox_get_thread。服务器会自行重新附加已存储的字节,因此模型无需传递 base64。这适用于任何不算很小的文件;如果要回复的线程中已经有文件字节,这也是最自然的方式。filename 和 content_type 会继承自已存储的字节,也可以覆盖。它突破的是转录限制,而不是大小上限。(转发时甚至不需要它:inbox_forward_message 默认会携带原始附件。) - upload_id
指定已暂存到存储中的字节——适用于真正需要添加的新大文件。向 /v1/inboxes/{inbox_id}/attachments/uploads 发送POST,并提供文件名、MIME 类型和准确的字节长度;然后将原始字节PUT到它返回的预签名 upload_url;最后在发送时填写 upload_id。启用 Inbox pack 的部署中,inbox_create_attachment_upload 会完成第一步,并返回 upload_id 和 upload_url。没有任何工具会执行PUT,因此,如果智能体只能访问此连接器,它仍无法暂存新字节;必须由能够通过带外方式PUT的客户端或应用完成上传。 - content
内联 base64,并提供 filename 和 content_type。只有非常小的文件才可靠——大约 2 KB,即约 2,700 个 base64 字符——因为整个字符串都必须在工具调用中逐字符输出,任何一个字符出错都会导致发送失败,并返回含义不明的 base64 填充错误。这是可靠性上限,而非经过验证的限制:文件达到 2 KB 时不会被拒绝。发送请求会被接受,但之后会在解码阶段失败。
服务器强制执行的限制
服务器会检查以下三项限制:
- 每条消息最多 10 MB,按所有附件条目合计,无论其形式如何——引用的字节也会按完整大小计入,与内联字节完全相同。引用附件可以省去转录文件的步骤,但不会缩小文件。
- 每个文件最多 10 MB,在创建上传槽位时根据声明的 size_bytes 检查——因此绝不会签发可用于存储超大对象的 URL。
- 每个附件列表最多 100 项。
服务器会在获取任何字节之前,根据已存储的元数据检查总大小;所有内容解析完成后还会再次检查。因此,超出上限的发送会被拒绝,并返回 422,而不会只发送部分内容。若一组附件超出任一限制,请拆分为多次发送。
三种形式可以在同一列表中自由混用。预签名上传 URL 的有效期很短——默认 15 分钟;PUT 必须发送收到的确切 Content-Type 和 Content-Length,因为签名涵盖这两项。上传只能使用一次:首次引用该上传的发送会消耗它。GET …/attachments/uploads/{upload_id} 会告知槽位是否仍处于待处理状态、何时过期,以及由哪条消息使用;但不会检查你的 PUT 是否已送达。如果字节尚未就绪就尝试发送,服务器会返回 422 并且不会消耗上传,因此你可以等 PUT 完成后重试。反向读取时,inbox_get_attachment 会以 base64 编码返回附件字节。
MCP 服务器是接入入口。真正有意思的产品工作是在它之上构建智能体运行时,将 SMS 对话转化为实际成果。
收到 SMS 回复时,唤醒合适的智能体,并提供完整的对话上下文:触发回复的外发消息、客户历史记录以及对话目标。就像面向智能体的 Webhook。
围绕目标销售,而不是按分钟计费。多轮预约确认与改期、针对低分的 NPS 深入跟进、B2B 潜在客户资格筛选、支持请求分流。智能体端到端处理整个对话。
将 TrueDialog 的合规专业能力应用于回复层。“晚上别给我发短信”会转化为静默时段设置建议,而不是彻底退订。TCPA 合规的审计轨迹也会自动生成。
不要取代支持专员,而是为他们提供协助。在他们现有的智能体控制台中提供回复草稿、对话摘要和下一步最佳操作建议。
技术栈
FastMCP / httpx / Python 3.14
Azure Container Apps / ACR / Static Web Apps / Azure DNS
Terraform / Docker
许可证
MIT。
字体
Lato、JetBrains Mono。