内容
# alert-my-human
一个轻量级、多通道的MCP服务器,允许代理发送警报 — 在调度作业失败、数据丢失或需要关注其他事情时通知人类。
支持电子邮件、Slack、Telegram、短信和通用Webhook。启用通道需设置其环境变量。调用者选择每次调用要传递的已配置通道。
## 工具
### `list_channels`
返回当前已配置的通道。无参数。在调用`send_alert`之前调用此函数以了解哪些通道名称有效。
### `send_alert`
| 参数 | 类型 | 是否必填 | 描述 |
| ---------- | --------------------------------- | -------- | -------------------------------------------------------------------- |
| `channels` | 通道名称数组 | 是 | 要传递到的通道(例如`["slack", "email"]`)。请参阅`list_channels`。 |
| `severity` | `info` \| `success` \| `warning` \| `error` | 否(默认为`info`) | 控制警报中使用的颜色/表情符号。 |
| `title` | 字符串 | 是 | 警报的简要标题。 |
| `message` | 字符串 | 是 | 警报正文。 |
| `context` | 字符串键值对对象 | 否 | 额外的详细信息,呈现为列表(例如作业名称、错误代码)。 |
## 设置
1. 将`.env.example`复制到`.env`并填写:
- `AUTH_API_KEY` — 任意随机密钥字符串;调用者必须将其作为`Authorization: Bearer <key>`发送。
- 然后配置一个或多个通道(取消设置通道的变量以禁用它):
- **电子邮件** — `SENDING_EMAIL`,`RESEND_API_KEY`(来自[resend.com](https://resend.com)),`ALERT_EMAIL`(一个地址或多个逗号分隔的地址)。
- **Slack** — `SLACK_WEBHOOK_URL`([传入Webhook](https://api.slack.com/messaging/webhooks))。
- **Telegram** — `TELEGRAM_BOT_TOKEN`,`TELEGRAM_CHAT_ID`。
- **短信** — `TWILIO_ACCOUNT_SID`,`TWILIO_AUTH_TOKEN`,`TWILIO_FROM_NUMBER`,`ALERT_PHONE_NUMBER`(来自[Twilio](https://twilio.com))。
- **Webhook** — `WEBHOOK_URLS`,逗号分隔;每个接收警报为JSON。
2. `pnpm install`
3. `pnpm dev`
## 连接MCP客户端
使用静态Bearer令牌头注册服务器,例如在Claude Code的`mcpServers`配置中:
```json
{
"type": "http",
"url": "https://your-deployment.example.com/api/mcp",
"headers": {
"Authorization": "Bearer <AUTH_API_KEY>"
}
}
```
## 测试
运行`npx @modelcontextprotocol/inspector@latest http://localhost:3000 undefined`,然后使用`Authorization: Bearer <AUTH_API_KEY>`头连接到`http://localhost:3000/api/mcp`。
## 路线图
- 带有自动部署提示的登陆页面(通过Vercel)
- 电话警报