短信管理服务器

Twilio SMS MCP Server 是一个生产级的短信管理服务器,支持发送、接收、调度、编辑和检查SMS/MMS对话,适用于任何MCP兼容客户端。

  • by 0x-Professor
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 0x-Professor/Twilio-mcp-server

使用说明

Twilio短信MCP服务器

生产级 模型上下文协议 Twilio短信服务器。
通过任何兼容MCP的客户端(VS Code Copilot、Codex CLI、Claude Desktop等)发送、接收、安排、编辑和检查SMS/MMS对话。


特性

工具(16)

工具 说明
sms_send 发送一条短信或彩信
sms_send_bulk 以有限的并发性向最多100个收件人发送相同的消息
sms_schedule 安排邮件以供将来传递(需要消息服务)
sms_cancel_scheduled 取消已安排的消息
sms_list_sent 使用可选筛选器列出出站消息
sms_get_message 按SID获取一条消息,并丰富传递状态
sms_delete_message 从Twilio删除消息记录
sms_redact_message 新 --为GDPR/隐私合规性修改消息正文
sms_list_inbox 列出入站webhook捕获的消息
sms_get_conversation 将本地收件箱与Twilio历史记录合并为完整线程
sms_mark_read 将收件箱邮件标记为已读
sms_list_numbers 列出帐户上的Twilio电话号码
sms_lookup_number 载波和线路类型智能查找
sms_format_number 新 --验证任何电话字符串并返回E.164+国家格式
sms_usage_stats 新 --每日短信/彩信使用情况和成本分析
sms_account_info 账户余额、状态和元数据

资源

URI 描述
twilio://account 高级帐户摘要(SID、发件人、版本)

提示

提示 描述
draft_sms 给定收件人和主题的人工智能辅助短信起草
summarize_conversation 用数字总结所有交换的消息

生产硬化

  • 使用指数回退重试 关于瞬态Twilio API错误(429,5xx,网络故障)
  • Webhook速率限制 --每个IP节流阀的内存中(120个请求/分钟)
  • 结构化日志记录 --stderr上有时间戳、水平、一致的格式
  • 输入验证 --Pydantic v2严格模式,E.164,SID模式强制
  • Webhook签名验证 --提里奥 RequestValidator 在所有入站挂钩上
  • 健康和准备终点 — /healthz, /readyz 对于管弦乐队
  • Docker多阶段构建 使用非root用户、健康检查、持久卷
  • py.typed 下游类型检查器兼容性标记

需求

  • Python 3.11+
  • Twilio帐户和Twilio电话号码
  • 对于定时消息:Twilio消息服务SID
  • 对于入站消息:一个可公开访问的webhook URL
  • Docker桌面(可选,用于容器部署)

快速开始

cp env.example .env          # fill in your Twilio credentials; for local runs set TWILIO_DB_PATH=inbox.db
pip install -e ".[dev]"
pytest                        # run the test suite
python -m twilio_sms_mcp.boot # start MCP + webhook server

客户端配置

VS代码(GitHub复制/复制聊天)

添加到您的VS代码 settings.json 或 .vscode/mcp.json:

{
  "mcp": {
    "servers": {
      "twilio-sms": {
        "command": "python",
        "args": ["-m", "twilio_sms_mcp.boot"],
        "env": {
          "TWILIO_ACCOUNT_SID": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
          "TWILIO_AUTH_TOKEN": "your_auth_token_here",
          "TWILIO_FROM_NUMBER": "+12025551234"
        }
      }
    }
  }
}

克劳德桌面版

添加 claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/,Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "twilio-sms": {
      "command": "python",
      "args": ["-m", "twilio_sms_mcp.boot"],
      "env": {
        "TWILIO_ACCOUNT_SID": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "TWILIO_AUTH_TOKEN": "your_auth_token_here",
        "TWILIO_FROM_NUMBER": "+12025551234"
      }
    }
  }
}

Codex 命令行界面

codex mcp add twilio-sms \
  -- docker run --rm -i \
  --env-file .env \
  -p 8080:8080 \
  -v twilio_sms_data:/data \
  twilio-sms-mcp

验证:

codex mcp get twilio-sms
codex mcp list

码头工人

构建并运行:

docker build -t twilio-sms-mcp .
docker run --rm -i \
  --env-file .env \
  -p 8080:8080 \
  -v twilio_sms_data:/data \
  twilio-sms-mcp

或者使用Docker Compose:

docker compose up -d

Webhook注释

  • 将Twilio配置为POST <your-host>/webhook/sms 对于入站消息。
  • 将Twilio配置为POST <your-host>/webhook/status 用于交付回访。
  • 集 TWILIO_PUBLIC_WEBHOOK_BASE_URL 当在反向代理或ngrok后面时。
  • 保持 TWILIO_VALIDATE_WEBHOOK_SIGNATURES=true 在生产中。

环境变量

变量 必填 默认 描述
TWILIO_ACCOUNT_SID 是 -- Twilio帐户SID(以开头 AC)
TWILIO_AUTH_TOKEN 是 -- Twilio授权令牌
TWILIO_FROM_NUMBER 是 -- E.164格式的默认发件人
TWILIO_MESSAGING_SERVICE_SID 否 -- 必填 sms_schedule
TWILIO_WEBHOOK_AUTH_TOKEN 否 -- 覆盖webhook签名验证
TWILIO_PUBLIC_WEBHOOK_BASE_URL 否 -- 用于webhook签名验证的公共URL
TWILIO_VALIDATE_WEBHOOK_SIGNATURES 没有 true 仅对本地调试禁用
TWILIO_BULK_SEND_CONCURRENCY 没有 10 最大并行发送次数 sms_send_bulk
TWILIO_LOG_LEVEL 没有 INFO 记录冗长
TWILIO_DB_PATH 没有 inbox.db SQLite数据库位置
WEBHOOK_PORT 没有 8080 Webhook HTTP服务器端口
TWILIO_API_RETRY_ATTEMPTS 没有 3 暂时API错误的重试计数
TWILIO_API_RETRY_DELAY 没有 1.0 重试之间的基本延迟(秒)
MCP_TRANSPORT 没有 stdio MCP传输: stdio, sse,或 http
MCP_HOST 没有 0.0.0.0 SSE/HTTP传输的绑定地址
MCP_PORT 没有 8000 SSE/HTTP传输端口

测试

pip install -e ".[dev]"
pytest -v

生产清单

  • []使用HTTPS进行webhook传递
  • []设置 TWILIO_VALIDATE_WEBHOOK_SIGNATURES=true
  • []对发件人池和计划邮件使用消息服务SID
  • []坚持 /data 卷,使收件箱状态在重新启动后仍然存在
  • []永不承诺 .env --它被排除在外 .gitignore 和 .dockerignore
  • []监视器 /healthz 和 /readyz 来自您的编排器
  • []设置 TWILIO_LOG_LEVEL=WARNING 在高流量环境中

许可证

麻省理工学院