企业网关API服务器

Gupshup企业网关API的MCP服务器,支持SMS和WhatsApp消息发送、模板管理及用户订阅等功能。

  • by ManmohanBuildsProducts
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ManmohanBuildsProducts/gupshup-mcp

使用说明

gupshup mcp(企业网关)

Gupshup Enterprise Gateway API的MCP服务器(enterprise.smsgupshup.com 和 media.smsgupshup.com).

突破性变革:合作伙伴API与企业网关

此仓库有两行不兼容的代码:

  • 企业网关(当前):使用 v0.2.0+ (这个分支)。用途 GUPSHUP_USER_ID / GUPSHUP_PASSWORD 和 GUPSHUP_WHATSAPP_USER_ID / GUPSHUP_WHATSAPP_PASSWORD.
  • 合作伙伴API(遗留):使用 v0.1.0 标签。它曾经 partner.gupshup.io 和一个 GUPSHUP_PARTNER_TOKEN JWT有一套不同的工具。

如果你正在使用 enterprise.smsgupshup.com / media.smsgupshup.com,你想要 企业网关 (v0.2.0+).

发生了什么变化

此服务器现在以企业凭据为目标(userid/password)和网关方法,如 SENDMESSAGE 和 OPT_IN.

环境变量

变量 必填 描述
GUPSHUP_USER_ID 仅限短信 短信网关用户id
GUPSHUP_PASSWORD 仅限短信 短信网关密码
GUPSHUP_WHATSAPP_USER_ID 仅限WhatsApp WhatsApp网关用户id
GUPSHUP_WHATSAPP_PASSWORD 仅限WhatsApp WhatsApp网关密码
GUPSHUP_API_ENDPOINT 否 默认值 https://enterprise.smsgupshup.com/GatewayAPI/rest
GUPSHUP_WHATSAPP_API_ENDPOINT 否 默认值 https://media.smsgupshup.com/GatewayAPI/rest
GUPSHUP_LOG_LEVEL 没有 off (默认), info, debug
GUPSHUP_REDACT_LOGS 没有 true 默认情况下;在日志中隐藏秘密/电话/消息
GUPSHUP_MAX_RETRIES 否 瞬态错误的重试次数(默认值 3)
GUPSHUP_RETRY_BASE_MS 否 指数退避基准延迟(默认值 300)
GUPSHUP_RETRY_MAX_MS 否 每次重试的最大延迟上限(默认值 5000)
GUPSHUP_RETRY_JITTER_MS 否 随机抖动以分散重试次数(默认值 150)

您必须至少设置一个凭据对:

  • 短讯服务: GUPSHUP_USER_ID + GUPSHUP_PASSWORD
  • WhatsApp GUPSHUP_WHATSAPP_USER_ID + GUPSHUP_WHATSAPP_PASSWORD

安全本地设置

  1. 创建本地未跟踪的环境变量文件:
cp .env.example .env.enterprise
  1. 填写秘密 .env.enterprise.

  2. 将env加载到shell中:

set -a
source .env.enterprise
set +a

.env git会忽略文件;不要提交凭据。

克劳德代码MCP配置

使用本地生成路径:

{
  "mcpServers": {
    "gupshup": {
      "command": "node",
      "args": ["/Users/mac/gupshup-mcp/dist/index.js"],
      "env": {
        "GUPSHUP_USER_ID": "your-sms-user-id",
        "GUPSHUP_PASSWORD": "your-sms-password",
        "GUPSHUP_WHATSAPP_USER_ID": "your-wa-user-id",
        "GUPSHUP_WHATSAPP_PASSWORD": "your-wa-password"
      }
    }
  }
}

工具

  • check_gateway_credentials:检查是否配置了SMS/WhatsApp凭据。
  • whatsapp_opt_in:运行 OPT_IN 一个电话号码。
  • whatsapp_send_template:发送模板/HSM消息。
  • whatsapp_send_text:发送一条普通的WhatsApp消息。
  • sms_send_text:发送短信。
  • gateway_raw_request:具有自动注入凭据的高级直接方法调用。

工具示例

check_gateway_credentials

{}

whatsapp_opt_in

{
  "phoneNumber": "919999999999"
}

whatsapp_send_template

{
  "sendTo": "919999999999",
  "templateId": "7091229",
  "variables": {
    "var1": "Alice",
    "var2": "ORD-123"
  }
}

whatsapp_send_text

{
  "sendTo": "919999999999",
  "message": "Hello from gupshup-mcp"
}

sms_send_text

{
  "sendTo": "919999999999",
  "message": "Your OTP is 123456"
}

gateway_raw_request

{
  "endpoint": "whatsapp",
  "httpMethod": "POST",
  "requestParams": {
    "method": "SENDMESSAGE",
    "send_to": "919999999999",
    "format": "Text",
    "msg_type": "TEXT",
    "isTemplate": true,
    "isHSM": true,
    "template_id": "7091229",
    "v": "1.1",
    "auth_scheme": "plain",
    "data_encoding": "TEXT",
    "var1": "Alice",
    "var2": "ORD-123"
  }
}

测试

npm install
npm test
npm run build
npm run smoke -- check

然后运行增量实时检查:

npm run smoke -- opt-in 91XXXXXXXXXX
npm run smoke -- send-template 91XXXXXXXXXX YOUR_TEMPLATE_ID var1=Alice var2=Order123
npm run smoke -- send-sms 91XXXXXXXXXX "Test message"

记录和重试行为

  • 修改日志:当 GUPSHUP_LOG_LEVEL 是 info 或 debug,日志以JSON行的形式发出。
  • 随着 GUPSHUP_REDACT_LOGS=true,凭据、电话号码和消息正文被屏蔽。
  • 重试/回退适用于瞬态故障:
    • HTTP: 429, 500, 502, 503, 504
    • 网络/获取/超时错误
  • 不重试身份验证/验证失败,例如 400/401/403.

实时网关烟雾测试(加载env后):

curl -sS -G "$GUPSHUP_WHATSAPP_API_ENDPOINT" \
  --data-urlencode "userid=$GUPSHUP_WHATSAPP_USER_ID" \
  --data-urlencode "password=$GUPSHUP_WHATSAPP_PASSWORD" \
  --data-urlencode "method=OPT_IN" \
  --data-urlencode "phone_number=91XXXXXXXXXX" \
  --data-urlencode "v=1.1" \
  --data-urlencode "format=json" \
  --data-urlencode "auth_scheme=plain" \
  --data-urlencode "channel=WHATSAPP"

许可证

麻省理工学院

安全和发布