BroadNet
面向AI智能体·/developers/ai-agents

面向AI智能体的消息服务与语音服务。

为AI智能体提供一种安全的方式,使其能够查询BroadNet账户的覆盖范围、规则和价格,并发送短信、WhatsApp以及一次性密码。请根据您的技术栈选择合适的接入方式:两个MCP服务器、REST API、TypeScript SDK或纯机器可读文件。

选择接入方式

智能体通常需要两样东西:用于规划的事实数据,以及执行动作的方式。BroadNet将两者分开。知识服务器无需账户即可回答问题;发送消息则始终需要您的令牌。

知识MCP服务器

来自本网站相同数据的公开只读回答:覆盖范围、发送者ID规则、示例价格表、法规、分段计数、问答、客户案例、更新日志和状态。

https://www.broadnet.me/mcp
身份验证:
无
访问:
只读 · 13 工具,每个IP每分钟 60 次请求
最佳适用场景:
在开设账户前的规划、研究及售前咨询。
消息服务MCP服务器

BroadNet消息服务API通过MCP工具进行公开。智能体将在您授予的令牌权限范围内发送并追踪消息。

https://mcp.broadnet.me/mcp
身份验证:
Bearer <token>
访问:
作用于您的账户
最佳适用场景:
根据用户请求发送消息的助手和智能体,并由人工确认每次发送。
REST API

Bearer-token REST,每个通道对应一个路径族,由OpenAPI 3.1规范描述。由您的智能体进行决策,由您的代码发起调用。

https://api.broadnet.me
身份验证:
Bearer <token>
访问:
您的代码调用API · OpenAPI 3.1
最佳适用场景:
由您的后端控制重试、日志记录和限制的生产级智能体。
TypeScript SDK

由OpenAPI规范生成的唯一官方SDK @broadnet/cpaas-sdk。其他语言可以通过REST API或生成客户端。

npm i @broadnet/cpaas-sdk
身份验证:
Bearer <token>
访问:
您的代码调用API · TypeScript / Node.js
最佳适用场景:
带有完整类型的Node.js智能体框架和工具定义。

智能体可发送的内容

无论智能体使用哪种渠道,都必须遵循相同的规则:已注册的发送者、已授权的接收者以及符合渠道要求的内容。

SMS

每次请求发送一条消息,或通过文件进行批量任务。计费按分段计算,因此长文本或非拉丁字符文本成本更高:请先进行计数。

REST API
POST /sms/sendSms(JSON) POST /sms/sendbulk(分段)
消息服务MCP
短信发送工具,例如post_sms_send
WhatsApp

在24小时服务窗口期内可发送自由格式消息;窗口期外仅限已批准的模板。模板按名称列出并发送。

REST API
POST /whatsapp/message/sendbulk(长短信)
消息服务MCP
post_whatsapp_message_send,get_whatsapp_template_list,post_whatsapp_template_send
OTP

您的系统生成代码;智能体通过短信或WhatsApp身份验证模板将其发送。公开的API没有独立的验证端点,因此验证代码的操作需在您的系统中完成。

REST API
消息中包含代码的POST /sms/sendSms
消息服务MCP
相同的短信和WhatsApp模板工具
语音

语音OTP、文本转语音外呼和IVR需通过您的客户团队进行配置。公开的OpenAPI规范和MCP工具涵盖消息服务渠道,不包括语音通话。有关AI驱动的外呼,请参阅DialerBee。

REST API
按账户配置
消息服务MCP
无语音工具

示例:智能体规划OTP验证码发送

用户要求智能体规划向阿联酋发送一次性密码。智能体调用了公开知识服务器上的四个工具。以下结果是服务器的真实输出,已裁剪为智能体使用的字段。

用户

我们每月想向阿联酋的客户发送约50,000条登录验证码。我们需要准备什么,费用是多少?

  1. 工具调用check_coverage阿联酋是否在覆盖范围内?包含哪些运营商?
    →{"country":"UAE"}
    结果(已修剪)
    {
      "country": "UAE",
      "regulator": "TDRA (Telecommunications and Digital Government Regulatory Authority)",
      "channels": { "sms": "Live", "otp": "Live", "whatsapp": "Live", "rcs": "Available", "voice": "Live" },
      "operators": [
        { "name": "Etisalat / e&", "status": "Direct" },
        { "name": "du", "status": "Direct" },
        { "name": "Virgin Mobile", "status": "Operator-grade" }
      ]
    }
  2. 工具调用sender_id_rules在那里需要什么样的发送者ID?
    →{"country":"ae"}
    结果(已修剪)
    {
      "typicalLeadTime": "5-7 business days",
      "requirements": [
        {
          "format": "Alphanumeric (Latin or Arabic), up to 11 chars. AD- prefix mandatory on promotional senders.",
          "preRegistration": "Required — one sender ID per legal entity per use case"
        }
      ],
      "marketingRules": { "quietHours": "TDRA's spam policy bars marketing text messages between 21:00 and 07:00 GST. Transactional OTP and alerts are 24/7." }
    }
  3. 工具调用count_sms_segments该消息包含多少个分段?
    →{"text":"Your MyShop code is 482913. It expires in 5 minutes. Never share it."}
    结果(已修剪)
    {
      "encoding": "GSM-7",
      "units": 68,
      "segments": 1
    }
  4. 工具调用estimate_price参考价格是多少?
    →{"country":"UAE","channel":"sms","volume":50000}
    结果(已修剪)
    {
      "country": "UAE",
      "unitPriceUsd": 0.0123,
      "unit": "per SMS segment",
      "estimatedMonthlyUsd": 615,
      "ratesReviewed": "2026-09-24",
      "note": "Indicative list rate, excluding taxes and sender-ID fees. Volume pricing available; a written quote confirms per-operator pricing."
    }
智能体

阿联酋通过运营商直连覆盖(Etisalat / e& · du)。您的发送者ID需要向 TDRA 进行预报备,通常需要 5–7 个工作日。您的代码消息为 1 短信分段。按每分段 US$0.0123 的参考价计算,每月 50,000 条代码的费用约为 US$615,不含税费和发送者ID费用。这并非正式报价。

下一步:请访问broadnet.me/signup申请测试权限。一旦您拥有了令牌,我可以通过消息服务器向您的已验证号码发送一个测试验证码。需要我为您准备该消息以供确认吗?

每次部署时均基于实时工具输出构建

复制并粘贴

示例仅使用虚构数字。请从环境变量中读取令牌;切勿将其粘贴到聊天窗口或已提交的文件中。

mcp.json — 两个服务器
{
  "mcpServers": {
    "broadnet-knowledge": {
      "type": "http",
      "url": "https://www.broadnet.me/mcp"
    },
    "broadnet": {
      "type": "http",
      "url": "https://mcp.broadnet.me/mcp",
      "headers": {
        "Authorization": "Bearer ${BROADNET_TOKEN}"
      }
    }
  }
}
tools/call estimate_price(知识服务器)
curl -X POST https://www.broadnet.me/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
       "params":{"name":"estimate_price",
                 "arguments":{"country":"UAE","channel":"sms","volume":50000}}}'
发送一条短信(REST API)
curl -X POST https://api.broadnet.me/sms/sendSms \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "senderId": "BroadNet",
    "destinationNumber": "447700900123",
    "message": "Your verification code is 482913",
    "messageType": "TEXT"
  }'

# 200 OK → response body is the message ID, e.g. 2603121407537573731
HTTP 200会返回消息ID。API没有幂等性标头:在发生网络错误或5xx错误后,请在重新发送之前通过消息ID检查消息状态。
使用TypeScript SDK进行相同的发送
// npm install @broadnet/cpaas-sdk axios
import { Configuration, SMSSMSApi } from "@broadnet/cpaas-sdk";

const sms = new SMSSMSApi(
  new Configuration({
    basePath: "https://api.broadnet.me",
    accessToken: process.env.BROADNET_TOKEN!,
  }),
);

const res = await sms.smsSendsmsPost({
  sMSSmsRequest: {
    senderId: "BroadNet",
    destinationNumber: "447700900123",
    message: "Your verification code is 482913",
    messageType: "TEXT",
  },
});

console.log(res.data); // message ID
发送已通过审核的WhatsApp模板(REST API)
# Send an approved WhatsApp template
curl -X POST https://api.broadnet.me/whatsapp/message/sendbulk \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -F batchId=0 \
  -F campaignName=order-updates \
  -F destinationNo=447700900123 \
  -F messageType=TEMPLATE \
  -F templateName=order_update \
  -F templateLanguage=en_US \
  -F bodyTemplateVariables=INV-400

# 200 OK → the response carries the batchId; per-recipient status
# (SUBMITTED → SENT → DELIVERED → READ) arrives on your webhook.
模板消息不受24小时服务窗口限制;自由文本消息则需要处于开启的窗口期内。

机器可读的入口点

采用浏览模式而非连接模式的智能体可以直接读取纯文本文件。它们均无需登录。

智能体必须遵守的规则

发送消息的智能体将使用您的凭据代表您的品牌进行操作。请将这些规则纳入其指令和工具中。

  • 先征得同意,后发送内容

    仅向已选择接收营销信息的接收者发送营销短信,并保留其选择记录。sender_id_rules工具会返回每个市场的选择接收规则。

  • 尊重退订请求

    营销短信包含市场的退订关键词,例如STOP。智能体绝不会向已退订的号码发送消息。

  • 仅限已报备的发送者ID

    许多市场要求预先报备字母数字组合的发送者ID。AI智能体使用您账户中已获批的发送者ID,绝不会使用虚构的ID。

  • 遵守静默时间

    多个市场禁止在夜间发送营销短信。sender_id_rules会返回获取到的静默时段;OTP和警报通常允许全天候发送。

  • 保护OTP流程免受短信刷量欺诈

    机器人可能会向其获利的号码触发OTP发送。请针对每个号码、IP和设备限制代码请求频率,并拦截您不服务的目的地。MyOTP默认开启这些保护措施。

  • 由人工确认每次发送

    在任何发送工具(尤其是向大量接收者发送的工具)运行前,请让客户进行确认,并仅启用智能体所需的工具。

  • 使用您的号码进行测试

    使用测试凭据时,请仅向您本人已验证的号码发送。示例和提示中使用的均为虚构号码。

  • 请勿在聊天中泄露令牌

    该令牌是发送凭据。请从环境变量中加载,切勿通过提示词加载,若发生泄露请立即撤销。

相关

问题

AI智能体可以通过BroadNet发送短信和WhatsApp消息吗?

是的。您可以使用BroadNet令牌将其连接到位于 https://mcp.broadnet.me/mcp 的消息MCP服务器,或让您的代码调用位于 https://api.broadnet.me 的REST API。无论哪种方式,智能体都以您令牌的权限执行操作,因此每次发送都应要求人工确认。

智能体是否需要账户才能咨询覆盖范围或价格?

不需要。位于https://www.broadnet.me/mcp的知识MCP服务器是公开且只读的。它从与网站相同的数据中返回覆盖范围、发送者ID规则、参考价格表和法规。价格为参考价格,而非报价。

智能体如何发送一次性密码?

您的系统生成验证码,智能体通过POST /sms/sendSms发送短信,或通过WhatsApp身份验证模板发送。公开API没有独立的验证端点,因此验证码校验在您的系统中完成。

智能体可以拨打语音电话吗?

语音OTP、文本转语音外呼和IVR通过您的BroadNet账户团队提供。这些功能不包含在公开的OpenAPI规范或MCP工具中。DialerBee是BroadNet为联络中心提供的AI外呼系统。

如何获取令牌?

请在 /signup 申请测试权限。BroadNet会在一个工作日内回复并提供测试凭据。目前不提供即时自助获取的密钥。

将您的智能体连接至BroadNet

立即开始使用公共知识服务器。当您的智能体准备好发送时,请申请测试权限。