cleat.

面向 AI 智能体

一个智能体真正读得到的手机号码

智能体替你注册各种服务时,会和人卡在同一个地方:一条短信发来的六位验证码。Cleat 给它一条真实的美国手机线路,再配一个读取这条线路的 MCP 服务器。验证码直接进入智能体的上下文,而不是发到某个人的手机上。

接入你的客户端

服务器通过 HTTP 提供 Model Context Protocol。任何能发送 Authorization 请求头的 MCP 客户端都可以添加它。API 密钥在工作区设置中创建,只会显示一次。

mcp.json
{
  "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: falsetimedOut: 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_codewait_for_code 会返回其中的验证码,list_messages 会在 from 里显示来电号码。智能体不能接听,也不能回拨。

可以给每个智能体一个单独的号码吗?

可以。在同一个工作区为每个智能体添加一条线路,每条线路单独订阅 US$24.99,各用各的密钥。每个密钥都能看到所在工作区的全部线路。如果智能体之间不能看到彼此的短信,请使用不同的工作区。

两个智能体在同一条线路上等待会怎样?

两个都会收到下一条验证码。线路是共享收件箱,不是队列,所以不能互相干扰的智能体,请给它们各自的线路。

智能体需要验证身份吗?

需要验证的是账户,只验证一次,并且由真人完成。智能体使用已验证账户的密钥工作,从不自己注册。

有免费套餐吗?

没有。一条线路每月 US$24.99,随时取消。

给你的智能体一条读得到的线路。

每月 US$24.99 · 随时取消

  • 每位持有人都已验证身份
  • 短信仅你的团队可见
  • 随时取消