Metadata-Version: 2.5
Name: dingtalk-alert-mcp
Version: 0.1.0
Summary: 钉钉群机器人告警 MCP Server，支持多群配置、文本/卡片消息、@指定手机号（复刻 base_server DingTalkUtils 的 OapiRobot + HmacSHA256 签名协议）
Author: dong_tech
License: MIT
Keywords: ai,alert,dingtalk,llm,mcp,model-context-protocol,robot
Requires-Python: >=3.10
Requires-Dist: mcp<2.0.0,>=1.0.0
Requires-Dist: requests>=2.28.0
Description-Content-Type: text/markdown

# dingtalk-alert-mcp-py

钉钉群机器人告警 MCP Server，复刻 base_server `DingTalkUtils` 的钉钉机器人协议（OapiRobot + HmacSHA256 签名）。

## 特性

- 多群配置（`DINGTALK_GROUPS` 环境变量）
- 文本消息发送 + 可选 @指定手机号
- 加签模式（webhook + secret → HmacSHA256 签名，与 `DingTalkUtils.getDrainageServerUrl` 算法一致）

## 配置

```bash
export DINGTALK_GROUPS='{
  "中台群": {"webhook": "https://oapi.dingtalk.com/robot/send?access_token=xxx", "secret": "SECxxx"},
  "监控群": {"webhook": "https://oapi.dingtalk.com/robot/send?access_token=yyy", "secret": "SECyyy"}
}'
```

## 工具

| 工具 | 说明 |
|------|------|
| `list_groups` | 列出已配置群（不含敏感信息） |
| `send_message(content, group?, at_phones?)` | 发送文本消息到指定群或默认群 |

## 开发

```bash
uv sync
python3 -m unittest discover tests
```

## 接入 Claude Code

在 `~/.mcp.json` 注册：

```json
{
  "mcpServers": {
    "dingtalk-alert": {
      "command": "uvx",
      "args": ["--from", "git+https://.../dingtalk-alert-mcp-py", "dingtalk-alert-mcp"],
      "env": {
        "DINGTALK_GROUPS": "{\"中台群\": {\"webhook\": \"...\", \"secret\": \"...\"}}"
      }
    }
  }
}
```

（或本地安装：`uv sync` 后 `DINGTALK_GROUPS=... dingtalk-alert-mcp`）
