一种用于与钉钉集成的模型控制协议服务器,允许用户通过克劳德发送消息、检索会话/用户信息以及查询日历事件。
communicationcalendar-management
3.0k 查看 · 2026-07-07 更新
简介
一种用于与钉钉集成的模型控制协议服务器,允许用户通过克劳德发送消息、检索会话/用户信息以及查询日历事件。
简介
一种用于与钉钉集成的模型控制协议服务器,允许用户通过克劳德发送消息、检索会话/用户信息以及查询日历事件。
DingTalk MCP Server V2
这是一个基于 MCP (Model Control Protocol) 的钉钉机器人服务器实现。它提供了与钉钉进行交互的各种功能,包括发送消息、获取会话信息、用户信息和日历事件等。
功能特性
- 发送消息到钉钉会话
- 获取钉钉会话信息
- 获取钉钉用户信息
- 查询用户日历事件
- 支持多种消息类型(文本、Markdown、链接等)
环境要求
- Python 3.10+
- MCP 0.1.0+
- aiohttp 3.9.1+
环境变量配置
使用前需要设置以下环境变量:
DINGTALK_APP_KEY: 钉钉应用的 AppKeyDINGTALK_APP_SECRET: 钉钉应用的 AppSecret
在 Claude 客户端中使用
- 在你的
claude_desktop_config.json中添加以下配置:
{ "mcpServers": { "dingding": { "command": "sh", "args": [ "-c", "docker ps -a | grep mcp-dingding-v2 | awk '{print $1}' | xargs -r docker rm -f > /dev/null 2>&1; docker pull ghcr.io/wllcnm/mcp-dingding-v2:latest > /dev/null 2>&1; docker run -i --rm --name mcp-dingding-v2 -e DINGTALK_APP_KEY=你的AppKey -e DINGTALK_APP_SECRET=你的AppSecret ghcr.io/wllcnm/mcp-dingding-v2:latest" ] } } }
- 重启 Claude 客户端
注意:上面的启动命令会:
- 查找并删除所有旧的 mcp-dingding-v2 容器
- 从 GitHub 拉取最新的镜像
- 使用
--name参数给容器指定固定名称 - 使用
--rm参数在容器停止时自动删除
命令说明:
docker ps -a | grep mcp-dingding-v2 | awk '{print $1}' | xargs -r docker rm -f: 删除所有旧容器docker pull ghcr.io/wllcnm/mcp-dingding-v2:latest: 拉取最新镜像docker run -i --rm --name mcp-dingding-v2 ...: 运行新容器> /dev/null 2>&1: 隐藏不必要的输出信息
本地开发
安装
pip install -r requirements.txt
运行
直接运行服务器:
python src/server.py
使用 Docker 运行:
# 清理旧容器 docker ps -a | grep mcp-dingding-v2 | awk '{print $1}' | xargs -r docker rm -f # 构建并运行新容器 docker build -t dingding-mcp-v2 . docker run -i --rm --name mcp-dingding-v2 \ -e DINGTALK_APP_KEY=your_app_key \ -e DINGTALK_APP_SECRET=your_app_secret \ dingding-mcp-v2
API 工具
1. send_message
发送消息到钉钉会话
- 参数:
- conversation_id: 会话 ID
- message: 消息内容
- msg_type: 消息类型(可选,默认为 text)
2. get_conversation_info
获取钉钉会话信息
- 参数:
- conversation_id: 会话 ID
3. get_user_info
获取钉钉用户信息
- 参数:
- user_id: 用户 ID
4. get_calendar_list
查询用户的日历事件列表
- 参数:
- userid: 用户 ID(必填)
- start_time: 开始时间的时间戳(毫秒,可选)
- end_time: 结束时间的时间戳(毫秒,可选)
- max_results: 最大返回结果数(可选,默认 50)
- next_token: 分页 token(可选)
- 返回:
- events: 日历事件列表
- summary: 事件标题
- start_time: 开始时间
- end_time: 结束时间
- location: 地点
- organizer: 组织者
- description: 描述
- status: 状态
- attendees: 参与者列表
- next_token: 下一页的 token
- total: 本次返回的事件数量
- events: 日历事件列表
使用示例
在 Claude 中,你可以这样使用工具:
{ "tool": "send_message", "arguments": { "conversation_id": "你的会话ID", "message": "Hello, DingTalk!", "msg_type": "text" } }
查询日历示例:
{ "tool": "get_calendar_list", "arguments": { "userid": "用户ID", "start_time": 1704067200000, // 2024-01-01 00:00:00 "end_time": 1704153600000, // 2024-01-02 00:00:00 "max_results": 10 } }
注意事项
-
安全性
- 请妥善保管你的钉钉 API 凭证
- 不要在公共场合分享你的配置文件
- 建议使用环境变量而不是硬编码凭证
-
故障排除
- 检查 API 凭证是否正确
- 确保网络连接正常
- 查看日志输出了解详细错误信息
许可证
MIT
服务配置
[{'mcpServers': {'dingding': {'args': ['-c', "docker ps -a | grep mcp-dingding-v2 | awk '{print $1}' | xargs -r docker rm -f > /dev/null 2>&1; docker pull ghcr.io/wllcnm/mcp-dingding-v2:latest > /dev/null 2>&1; docker run -i --rm --name mcp-dingding-v2 -e DINGTALK_APP_KEY=你的AppKey -e DINGTALK_APP_SECRET=你的AppSecret ghcr.io/wllcnm/mcp-dingding-v2:latest"], 'command': 'sh'}}}]
来源
- 来源:github
- 链接:https://github.com/wllcnm/dingding_mcp_v2