mcpField
T
twilio-sms

twilio-sms

github.com/steipete生产力7.4k66 次安装1 周前更新
代码仓库

关于 twilio-sms

通过 Twilio CLI 或 REST API 执行 Twilio 电话号码和短信操作的技能。它指导凭据检查、号码管理、短信发送与状态查询,并防止泄露密钥和敏感消息内容。

主要功能

  1. 01检查 CLI 配置和凭据
  2. 02查找、列出和购买电话号码
  3. 03标记要保留的号码
  4. 04发送短信并查询状态
  5. 05查看收发消息

适用场景

  1. 01查找支持短信的号码
  2. 02购买并验证号码
  3. 03发送短信并检查状态
  4. 04查看某个号码的消息

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/steipete/agent-scripts --skill twilio-sms

安装后在 Claude Code 中输入/twilio-sms确认已加载。

附带文件agents/openai.yaml

详细介绍

Twilio 短信

用于 Twilio 电话号码和短信相关工作:创建/购买号码、列出已拥有的号码、保留/标记号码、发送短信,以及检查收发的消息。

安全

  • 切勿打印 Account SID、身份验证令牌、API 密钥、TOTP 代码或完整的 1Password 项目 JSON。
  • 不要在此技能中存储真实电话号码、SID、姓名或特定账户的项目 ID。
  • 使用 $one-password 读取机密。op 仅限在 tmux 中使用。
  • 如果需要通过桌面版 1Password 访问,请在这些命令中取消设置服务账户身份验证:env -u OP_SERVICE_ACCOUNT_TOKEN op ...。
  • 仅打印凭据形态:字段是否存在、长度,以及(如有用)前缀类别。
  • 对外写入或记录时,除非用户要求读取/检查短信,否则不要泄露消息正文。

凭据路径

  1. 检查 Twilio CLI/配置文件:
    • twilio --version 或 npx -y twilio-cli --version
    • twilio profiles:list 或 npx -y twilio-cli profiles:list
  2. 仅检查环境变量是否存在:
    • TWILIO_ACCOUNT_SID
    • TWILIO_AUTH_TOKEN
    • 可选的 API 密钥/密钥变量
  3. 如果环境变量只配置了部分内容,请先搜索 1Password 元数据。
  4. 优先选择字段匹配以下内容的项目:
    • TWILIO_ACCOUNT_SID
    • TWILIO_AUTH_TOKEN
    • 可选的 TWILIO_FROM_NUMBER
  5. 如果 op 只能看到受限保管库,请使用 env -u OP_SERVICE_ACCOUNT_TOKEN 重试桌面端读取。
  6. 在购买/发送之前验证身份验证:
curl -sS -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN" \
  "https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID.json"

CLI 设置

创建 Twilio CLI 配置文件需要账户身份验证令牌,而不仅仅是 API 密钥凭据:

npx -y twilio-cli profiles:create "$TWILIO_ACCOUNT_SID" \
  --auth-token "$TWILIO_AUTH_TOKEN" \
  --profile default --force --silent
npx -y twilio-cli profiles:use default

如果未安装 twilio,请使用 npx -y twilio-cli。

号码

列出已拥有的号码:

npx -y twilio-cli api:core:incoming-phone-numbers:list \
  --properties phoneNumber,friendlyName,capabilities

搜索支持短信的美国本地号码:

npx -y twilio-cli api:core:available-phone-numbers:local:list \
  --country-code US --sms-enabled --voice-enabled --limit 5

如果 CLI 参数格式不便使用或缺少标志,请使用 REST:

curl -sS -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN" \
  "https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/AvailablePhoneNumbers/US/Local.json?SmsEnabled=true&VoiceEnabled=true&PageSize=5"

购买一个候选号码:

curl -sS -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN" \
  -X POST "https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/IncomingPhoneNumbers.json" \
  --data-urlencode "PhoneNumber=$PHONE_NUMBER"

购买后验证号码的所有权/功能。Twilio JSON 使用小写键:

capabilities.sms
capabilities.mms
capabilities.voice

标记用户想要保留的号码:

npx -y twilio-cli api:core:incoming-phone-numbers:update \
  --sid "$PHONE_NUMBER_SID" \
  --friendly-name "KEEP - <purpose>"

保留规则:只要号码仍在 Twilio 账户中且账单状态正常,就会保留该号码。除非用户明确要求,否则不要释放/删除号码。

短信

发送:

npx -y twilio-cli api:core:messages:create \
  --from "$FROM_NUMBER" \
  --to "$TO_NUMBER" \
  --body "$BODY" \
  -o json

获取状态:

npx -y twilio-cli api:core:messages:fetch --sid "$MESSAGE_SID" -o json

检查发往某个号码的入站短信:

npx -y twilio-cli api:core:messages:list \
  --to "$NUMBER" --limit 20 -o json

检查从某个号码发出的出站短信:

npx -y twilio-cli api:core:messages:list \
  --from "$NUMBER" --limit 20 -o json

单资源命令的 Twilio CLI JSON 可能会返回数组。请使用稳健的解析方式:

jq 'if type=="array" then .[0] else . end'

说明

  • 国际短信的发送方可能显示为字母数字名称或运营商,而不是购买的美国号码。
  • 美国短信可能需要通过合规审核。如果发送给美国收件人失败,请先检查 A2P/10DLC 注册状态,不要盲目重试。
  • 试用账户可能会限制收件人。

评论

支持 Markdown