🔔 Claude Code DingTalk MCP Server
Claude Code 集成钉钉机器人通知的 MCP Server 实现
📋 功能特性
- ✅ 环境变量配置 - 支持通过环境变量自动初始化,无需手动配置
- ✅ 钉钉群机器人集成 - 完整的 Webhook API 支持
- ✅ 多种消息格式 - 支持文本、Markdown、链接三种消息类型
- ✅ 安全签名验证 - 支持 HMAC-SHA256 签名验证
- ✅ 专用任务通知 - 格式化的任务完成通知模板
- ✅ TypeScript 开发 - 完整的类型安全和智能提示
- ✅ 即插即用 - 与 Claude Code 无缝集成
🚀 5分钟快速开始
第1步:安装
使用 Claude MCP 管理器安装(推荐)
claude mcp add dingtalk-mcp dingtalk-mcp-server
第2步:获取钉钉机器人信息
- 钉钉群 → 群设置 → 智能群助手 → 添加机器人 → 自定义
- 安全设置选择"加签",获取 Webhook URL 和密钥
第3步:配置环境变量
第4步:配置 Claude Code
创建 .mcp.json
文件:
第5步:测试
重启 Claude Code,然后运行:
✅ 完成!现在可以在每次对话结束时调用 dingtalk_notify_session_end
发送通知
方法一:npm 安装(推荐)
方法二:通过 MCP 管理器安装
方法三:直接使用 npx
⚙️ Claude Code 对接配置
第一步:安装钉钉 MCP Server
选择以下任一方式安装:
第二步:配置 Claude Code
在您的项目根目录或 Claude Code 全局配置目录创建/编辑 .mcp.json
文件:
全局安装方式:
本地安装方式:
NPX 方式:
第三步:配置钉钉机器人
3.1 创建钉钉群机器人
- 在钉钉群中:群设置 → 智能群助手 → 添加机器人
- 选择 "自定义" 机器人
- 设置机器人名称(如:Claude Code 通知)
- 重要:选择安全设置 → 加签(推荐)
- 复制生成的 Webhook URL 和 签名密钥
3.2 设置环境变量
方式1:系统环境变量
方式2:项目 .env 文件
第四步:重启 Claude Code
第五步:验证配置
在 Claude Code 中运行以下命令测试:
📍 配置文件位置
Claude Code 会在以下位置查找 .mcp.json
配置:
- 当前项目目录:
./mcp.json
或./.mcp.json
- 用户主目录:
~/.claude/mcp.json
- 全局配置:
~/.config/claude-code/mcp.json
🔍 常见问题
Q: 提示找不到 dingtalk_xxx 命令?
A: 检查 .mcp.json
配置是否正确,重启 Claude Code
Q: 钉钉通知发送失败?
A: 检查环境变量配置,确保 Webhook URL 和密钥正确
Q: 如何确认 MCP Server 是否运行?
A: 在 Claude Code 中输入 dingtalk_
按 Tab 键,应该会显示可用命令
Q: 支持团队共享配置吗?
A: 是的,将 .mcp.json
提交到代码仓库即可团队共享
🛠️ 使用方法
自动初始化(推荐)
如果您已设置环境变量,MCP Server 将自动初始化,无需手动配置:
手动配置方式
如果未设置环境变量,可以在 Claude Code 中手动配置:
📖 可用工具
1. dingtalk_configure
手动配置钉钉机器人设置
参数:
webhook
(必需): 钉钉机器人 Webhook URLsecret
(可选): 签名验证密钥keywords
(可选): 安全关键字数组
2. dingtalk_send_text
发送文本消息
参数:
content
(必需): 文本内容atAll
(可选): 是否 @所有人,默认 false
3. dingtalk_send_markdown
发送 Markdown 格式消息
参数:
title
(必需): 消息标题text
(必需): Markdown 格式文本内容atAll
(可选): 是否 @所有人,默认 false
4. dingtalk_send_link
发送链接消息
参数:
title
(必需): 链接标题text
(必需): 链接描述文本messageUrl
(必需): 目标 URLpicUrl
(可选): 图片 URL
6. dingtalk_notify_session_end
发送会话结束通知(新功能)
参数:
sessionType
(可选): 会话类型,如 "开发协助"、"代码审查"、"问题解决",默认 "开发协助"duration
(可选): 会话时长,如 "30分钟"、"1小时20分"mainTasks
(可选): 主要任务列表summary
(可选): 会话摘要,默认 "会话已完成"filesCount
(可选): 修改/创建的文件数量,默认 0toolsUsed
(可选): 使用的工具/命令数量,默认 0atAll
(可选): 是否 @所有人,默认 false
🎯 自动会话结束通知
重要功能:每次 Claude Code 对话完成后,自动推送通知到钉钉群!
方法一:直接调用(推荐)
在 Claude Code 对话即将结束时,直接调用:
方法二:环境变量触发
设置环境变量后,使用脚本自动触发:
方法三:Claude Code Hooks(自动化)
安装钩子后,每次会话结束自动触发:
💡 使用示例
任务完成通知
发送 Markdown 消息
发送简单文本
🔧 钉钉机器人配置
1. 创建钉钉群机器人
- 在钉钉群中,点击群设置 → 智能群助手 → 添加机器人
- 选择"自定义"机器人
- 设置机器人名称和头像
- 重要:配置安全设置(推荐使用"加签"方式)
- 获取 Webhook URL 和签名密钥
2. 安全设置说明
- 关键词验证:消息中必须包含设定的关键词
- 加签验证:使用 HMAC-SHA256 签名验证(推荐)
- IP 白名单:限制请求来源 IP
3. 获取配置信息
🚨 注意事项
- 消息频率限制:每个机器人每分钟最多发送 20 条消息
- 消息格式:确保 Markdown 格式正确,特殊字符需要转义
- 安全配置:生产环境建议启用签名验证
- 环境变量优先级:环境变量配置优先于手动配置
- 错误处理:工具会返回成功/失败状态,请检查返回值
🔍 故障排查
常见问题
Q: 提示"DingTalk client not configured"
A: 请检查环境变量设置或使用 dingtalk_configure
手动配置
Q: 消息发送失败 A: 请检查:
- Webhook URL 是否正确
- 签名密钥是否匹配
- 是否触发了安全关键字验证
- 是否超过频率限制(20条/分钟)
Q: npm 安装失败 A: 请确保 Node.js 版本 ≥ 18.0.0
调试模式
🤝 开发与贡献
本地开发
项目结构
📄 许可证
MIT License - 详见 LICENSE 文件
🔗 相关链接
让 Claude Code 的任务完成通知更加便捷! 🚀
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
Integrates Claude Code with DingTalk (钉钉) robot notifications, allowing users to send task completion alerts and various message formats to DingTalk groups from Claude Code.
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityIntegrate Claude with Any OpenAI SDK Compatible Chat Completion API - OpenAI, Perplexity, Groq, xAI, PyroPrompts and more.Last updated -160138JavaScriptMIT License
- AsecurityAlicenseAqualityEnables interaction with the Things app through Claude Desktop, allowing task creation, project analysis, and priority management using natural language commands.Last updated -2192PythonMIT License
- -securityFlicense-qualityThis server allows integration with Discord, enabling message exchanges between Claude and a Discord channel using prompts and notifications.Last updated -31TypeScript
- AsecurityAlicenseAqualityIntegrates Claude with Todoist for natural language task management, supporting project and section organization, task creation, updating, completion, and deletion using everyday language.Last updated -191618JavaScriptMIT License