dingtalk-mcp
by leonleonlei
README.md
# dingtalk-mcp
钉钉群机器人 MCP Server — 通过 [Model Context Protocol](https://modelcontextprotocol.io/) 向钉钉群发送消息。
## 功能
| 工具名 | 功能 |
|--------|------|
| `send_text` | 发送纯文本消息 |
| `send_markdown` | 发送 Markdown 格式消息 |
| `send_image` | 发送图片(通过 URL) |
| `send_news` | 发送图文消息(标题+描述+链接+图片) |
| `send_template_card` | 发送模板卡片消息 |
> **注意**:钉钉自定义机器人(webhook)仅支持 text / link / markdown / actionCard / feedCard 五种消息类型,不支持文件上传。
## 环境变量
| 变量名 | 必填 | 说明 |
|--------|------|------|
| `DINGTALK_ACCESS_TOKEN` | 是 | 钉钉机器人的 access_token(Webhook URL 中 `access_token=` 后面的部分) |
| `DINGTALK_SECRET` | 否 | 钉钉机器人加签密钥(安全设置 → 加签 → SEC 开头的字符串) |
## 快速开始
```bash
git clone https://github.com/leonleonlei/MCP-DTalk.git
cd MCP-DTalk
npm install
node server.js
```
## MCP 客户端配置
```json
{
"mcpServers": {
"dingtalk": {
"command": "node",
"args": ["/path/to/MCP-DTalk/server.js"],
"env": {
"DINGTALK_ACCESS_TOKEN": "your-access-token",
"DINGTALK_SECRET": "SECxxxxxxxx"
}
}
}
}
```
## 使用示例
配置完成后,AI 助手可以直接调用工具:
- "给钉钉群发一条消息:今天下午3点开会"
- "把这份周报以 Markdown 格式发送到钉钉群"
- "在钉钉群里发一个卡片通知,标题是'系统告警'"
## 获取钉钉机器人凭证
1. 打开钉钉群 → 群设置 → 智能群助手 → 添加机器人 → 自定义
2. 安全设置选择「加签」,记录 SEC 开头的密钥(即 `DINGTALK_SECRET`)
3. 记录 Webhook URL 中 `access_token=` 后面的值(即 `DINGTALK_ACCESS_TOKEN`)
## 技术细节
- 基于 `@modelcontextprotocol/sdk` 构建
- 使用 stdio 传输协议
- Node.js >= 18
- ESM 模块
## License
MIT
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues