🔔 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,然后运行:
✅ 完成!现在可以在每次对话结束时调用
方法一: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 的任务完成通知更加便捷! 🚀
Related MCP Servers
- Asecurity-licenseAqualityIntegrate Claude with Any OpenAI SDK Compatible Chat Completion API - OpenAI, Perplexity, Groq, xAI, PyroPrompts and more.Last updated -120140MIT License
- -security-license-qualityThis server allows integration with Discord, enabling message exchanges between Claude and a Discord channel using prompts and notifications.Last updated -01
- 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 -720MIT License
- -securityAlicense-qualityEnables multiple Claude Code instances to collaborate in real-time through channels, allowing AI agents to work together on projects without requiring local setup beyond Docker.Last updated -2MIT License