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——客户端会自动发现相关信息,并引导你通过浏览器登录。无需粘贴密钥或请求头。

授权流程

以下每种客户端都遵循相同的四个步骤,其中大部分会自动完成:

  1. 将 connect.tdmcp.com 添加到客户端。
  2. 客户端会在 auth.tdmcp.com 找到 OAuth 服务器,并自动注册自身(动态客户端注册、PKCE)。
  3. 浏览器窗口会打开。使用你的 TrueDialog 凭据登录。
  4. 客户端收到令牌后,即表示连接成功。令牌会自动刷新——会话过期前,你无需再次登录。

在 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 的特定功能面。它们刻意设计得精简直观;智能体的推理逻辑在提示词中,而不是工具列表里。总共九个工具——六个只读工具,三个写入工具。

  1. whoami
    返回已授权会话对应的用户和账号。可用于一次性检查身份验证。只读。
  2. list_accounts
    列出你的登录账号可访问的所有账号。多租户运营人员会用到;单账号用户则不需要。只读。
  3. get_account_info
    获取单个账号记录。默认使用已验证身份对应的账号。只读。
  4. list_channels
    列出账号上的渠道——长码、短码、RCS、电子邮件、语音。调用此工具可在使用 send_sms 前查找渠道 ID。只读。
  5. get_contact
    按 ID 查找联系人。只读。
  6. search_contacts
    按电话号码和电子邮件地址进行子串匹配。只读。
  7. create_contact
    通过电话号码或电子邮件创建联系人(至少需要提供其中一项)。如果该号码或电子邮件已关联某个联系人,TrueDialog 会拒绝创建,并提示你使用 update_contact——不会悄悄创建重复联系人。
  8. update_contact
    更新联系人的电话、电子邮件或姓名。它会先读取记录,再仅重写你传入的字段,因此 TrueDialog 那种覆盖所有字段的更新不会清除其余信息——这是一次读取-修改-写入操作,因此除了管理权限外,还需要联系人读取权限;并且无法防止并发编辑造成的冲突。写入工具。
  9. 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 的部署还会提供电子邮件工具及附件功能。

  1. attachment_id
    指定平台已存储在此收件箱某条消息上的附件——这些 ID 来自 inbox_get_thread。服务器会自行重新附加已存储的字节,因此模型无需传递 base64。这适用于任何不算很小的文件;如果要回复的线程中已经有文件字节,这也是最自然的方式。filename 和 content_type 会继承自已存储的字节,也可以覆盖。它突破的是转录限制,而不是大小上限。(转发时甚至不需要它:inbox_forward_message 默认会携带原始附件。)
  2. 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 的客户端或应用完成上传。
  3. content
    内联 base64,并提供 filename 和 content_type。只有非常小的文件才可靠——大约 2 KB,即约 2,700 个 base64 字符——因为整个字符串都必须在工具调用中逐字符输出,任何一个字符出错都会导致发送失败,并返回含义不明的 base64 填充错误。这是可靠性上限,而非经过验证的限制:文件达到 2 KB 时不会被拒绝。发送请求会被接受,但之后会在解码阶段失败。

服务器强制执行的限制

服务器会检查以下三项限制:

  1. 每条消息最多 10 MB,按所有附件条目合计,无论其形式如何——引用的字节也会按完整大小计入,与内联字节完全相同。引用附件可以省去转录文件的步骤,但不会缩小文件。
  2. 每个文件最多 10 MB,在创建上传槽位时根据声明的 size_bytes 检查——因此绝不会签发可用于存储超大对象的 URL。
  3. 每个附件列表最多 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。