面向 AI 智能体
一个智能体真正读得到的手机号码
智能体替你注册各种服务时,会和人卡在同一个地方:一条短信发来的六位验证码。Cleat 给它一条真实的美国手机线路,再配一个读取这条线路的 MCP 服务器。验证码直接进入智能体的上下文,而不是发到某个人的手机上。
接入你的客户端
服务器通过 HTTP 提供 Model Context Protocol。任何能发送 Authorization 请求头的 MCP 客户端都可以添加它。API 密钥在工作区设置中创建,只会显示一次。
{
"mcpServers": {
"cleat": {
"type": "http",
"url": "https://cleat.so/api/mcp",
"headers": { "Authorization": "Bearer clt_your_api_key" }
}
}
}密钥决定智能体能访问什么:只有它所在工作区的线路,其他一概访问不了。撤销密钥后,智能体下一次调用就会被拒绝。密码和登录会话都不受影响。
四个工具
| 工具 | 作用 |
|---|---|
list_lines | 工作区里的号码,从新到旧排列。先调用它:其他工具都要用到它返回的 lineId。 |
list_messages | 某条线路收到的短信,从新到旧排列,最多 200 条。 |
latest_code | 某条线路最近收到的验证码;还没收到则返回 found: false。 |
wait_for_code | 等待*下一条*验证码并返回。最长 55 秒,默认 30 秒。 |
等待比轮询好
wait_for_code 只认调用开始之后到达的短信,之前登录留下的验证码不会被误当成这一次的。在触发短信的那一步之前调用它,然后再提交表单。这时工具已经在等了。
curl https://cleat.so/api/mcp \
-H "Authorization: Bearer $CLEAT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "wait_for_code",
"arguments": { "lineId": "8f14e45f-ceea-4b6b-9d3c-2a1f0e7c5b10", "timeoutSeconds": 45 }
}
}'{
"jsonrpc": "2.0",
"id": 1,
"result": {
"structuredContent": {
"found": true,
"from": "55512",
"body": "Your verification code is 704 118",
"code": "704118",
"receivedAt": "2026-09-11T10:02:41.000Z"
}
}
}如果超时仍未收到,它会返回 found: false 和 timedOut: true。这不是错误,而是普通结果,智能体可以重试。
它能做什么,不能做什么
- 只能接收。Cleat Line 只接收短信,不能发送,也没有任何工具会尝试发送。它也不能拨打或接听电话。
- 电话念出的验证码也能收到。服务用自动语音来电念出验证码时,来电会被转成文字。转写文字作为普通消息送达,验证码已经提取好,来电号码在
from里。没有字段会标明它来自来电。 - 一个订阅一个号码。每条线路每月 US$24.99。Cleat 不是一次性号码池,也没有轮换号码的端点。
- 每条线路都有一位已验证身份的真人持有人。发放任何号码之前,账户要先完成一次身份验证。智能体没法自己注册。
- 每个密钥每分钟 120 次请求。正在等待的
wait_for_code不消耗请求次数。 - 被保留的线路无法读取。订阅失效后,号码会被保留,短信保持锁定,直到订阅恢复。
如果你不想用 MCP
同样的数据也可以通过普通的 REST API 和签名 Webhook 获取。比起智能体会话,它更适合长期运行的服务:请看面向开发者的 Cleat。如果要把验证码共享给人而不是程序,请用团队收件箱。真实的手机线路能收到网络号码永远收不到的验证码:请看非 VoIP 号码和Google Voice 与验证码。
常见问题
哪些客户端可以用?
任何能访问 HTTP 服务器、能设置 Authorization 请求头的 MCP 客户端。服务器通过 POST 处理 JSON-RPC 请求,返回普通 JSON,不需要配置 SSE。
智能体能发短信吗?
不能。Cleat Line 只能接收,没有任何工具能发送。
如果服务打电话念验证码,而不是发短信呢?
照样能收到。来电会被转成文字,像短信一样保存,所以 latest_code 和 wait_for_code 会返回其中的验证码,list_messages 会在 from 里显示来电号码。智能体不能接听,也不能回拨。
可以给每个智能体一个单独的号码吗?
可以。在同一个工作区为每个智能体添加一条线路,每条线路单独订阅 US$24.99,各用各的密钥。每个密钥都能看到所在工作区的全部线路。如果智能体之间不能看到彼此的短信,请使用不同的工作区。
两个智能体在同一条线路上等待会怎样?
两个都会收到下一条验证码。线路是共享收件箱,不是队列,所以不能互相干扰的智能体,请给它们各自的线路。
智能体需要验证身份吗?
需要验证的是账户,只验证一次,并且由真人完成。智能体使用已验证账户的密钥工作,从不自己注册。
有免费套餐吗?
没有。一条线路每月 US$24.99,随时取消。