🚀 🔔 Claude Code 釘釘 MCP 服務器
Claude Code 釘釘 MCP 服務器實現了與釘釘機器人的集成,可在任務完成或會話結束時自動推送通知到釘釘群,支持多種消息格式,配置簡單且使用便捷。
🚀 快速開始
5分鐘快速上手
第1步:安裝
npm install -g claude-code-dingtalk-mcp
也可以使用 Claude MCP 管理器安裝(推薦):
claude mcp add dingtalk-mcp dingtalk-mcp-server
第2步:獲取釘釘機器人信息
- 進入釘釘群,點擊群設置 → 智能群助手 → 添加機器人 → 自定義。
- 安全設置選擇“加簽”,獲取 Webhook URL 和密鑰。
第3步:配置環境變量
export DINGTALK_WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN"
export DINGTALK_SECRET="YOUR_SECRET"
第4步:配置 Claude Code
創建 .mcp.json 文件:
{"mcpServers": {"dingtalk-notifications": {"command": "dingtalk-mcp-server"}}}
第5步:測試
重啟 Claude Code,然後運行:
dingtalk_send_text {"content": "測試成功!"}
✅ 完成!現在可以在每次對話結束時調用 dingtalk_notify_session_end 發送通知
✨ 主要特性
- ✅ 環境變量配置:支持通過環境變量自動初始化,無需手動配置。
- ✅ 釘釘群機器人集成:具備完整的 Webhook API 支持。
- ✅ 多種消息格式:支持文本、Markdown、鏈接三種消息類型。
- ✅ 安全簽名驗證:支持 HMAC - SHA256 簽名驗證。
- ✅ 專用任務通知:提供格式化的任務完成通知模板。
- ✅ TypeScript 開發:具備完整的類型安全和智能提示。
- ✅ 即插即用:與 Claude Code 無縫集成。
📦 安裝指南
方法一:npm 安裝(推薦)
npm install -g claude-code-dingtalk-mcp
方法二:通過 MCP 管理器安裝
npx @modelcontextprotocol/cli add claude-code-dingtalk-mcp
方法三:直接使用 npx
npx claude-code-dingtalk-mcp
💻 使用示例
基礎用法
任務完成通知
dingtalk_notify_task_complete {
"taskName": "代碼部署",
"status": "success",
"details": "✅ 部署到生產環境成功\\n- 版本: v2.1.0\\n- 測試: 100% 通過\\n- 性能: 優化 15%",
"duration": "3分45秒"
}
發送 Markdown 消息
dingtalk_send_markdown {
"title": "📊 每日構建報告",
"text": "## 📊 每日構建報告\\n\\n**日期**: 2025-01-15\\n**狀態**: ✅ 成功\\n\\n### 📈 統計數據\\n- 構建次數: 12\\n- 成功率: 100%\\n- 平均耗時: 2分15秒\\n\\n### 🔧 修復問題\\n- 修復了登錄超時問題\\n- 優化了數據庫查詢性能\\n\\n---\\n*來自 Claude Code 自動化構建*"
}
發送簡單文本
dingtalk_send_text {
"content": "🎉 代碼審查完成!所有檢查項目都已通過,可以開始合併到主分支。",
"atAll": false
}
高級用法
自動會話結束通知
方法一:直接調用(推薦)
在 Claude Code 對話即將結束時,直接調用:
dingtalk_notify_session_end {
"sessionType": "開發協助",
"duration": "45分鐘",
"mainTasks": ["實現釘釘MCP Server", "添加環境變量支持", "編寫使用文檔"],
"summary": "成功開發並部署了釘釘通知MCP Server,支持多種消息格式和自動會話通知",
"filesCount": 8,
"toolsUsed": 15
}
方法二:環境變量觸發
設置環境變量後,使用腳本自動觸發:
export CLAUDE_SESSION_TYPE="代碼審查"
export CLAUDE_SESSION_DURATION="30分鐘"
export CLAUDE_MAIN_TASKS="代碼質量檢查,安全漏洞掃描,性能優化建議"
export CLAUDE_SESSION_SUMMARY="完成了全面的代碼審查,發現並修復了3個安全問題"
export CLAUDE_FILES_COUNT="5"
export CLAUDE_TOOLS_USED="12"
npm run notify-session-end
方法三:Claude Code Hooks(自動化)
安裝鉤子後,每次會話結束自動觸發:
./claude-hook.sh install
📚 詳細文檔
Claude Code 對接配置
第一步:安裝釘釘 MCP Server
選擇以下任一方式安裝:
npm install -g claude-code-dingtalk-mcp
npm install claude-code-dingtalk-mcp
npx claude-code-dingtalk-mcp
第二步:配置 Claude Code
在您的項目根目錄或 Claude Code 全局配置目錄創建/編輯 .mcp.json 文件:
全局安裝方式:
{
"mcpServers": {
"dingtalk-notifications": {
"command": "dingtalk-mcp-server",
"description": "釘釘通知服務器"
}
}
}
本地安裝方式:
{
"mcpServers": {
"dingtalk-notifications": {
"command": "node",
"args": ["./node_modules/claude-code-dingtalk-mcp/dist/index.js"],
"description": "釘釘通知服務器"
}
}
}
NPX 方式:
{
"mcpServers": {
"dingtalk-notifications": {
"command": "npx",
"args": ["claude-code-dingtalk-mcp"],
"description": "釘釘通知服務器"
}
}
}
第三步:配置釘釘機器人
3.1 創建釘釘群機器人
- 在釘釘群中,點擊群設置 → 智能群助手 → 添加機器人。
- 選擇“自定義”機器人。
- 設置機器人名稱(如:Claude Code 通知)。
- 重要:選擇安全設置 → 加簽(推薦)。
- 複製生成的 Webhook URL 和 簽名密鑰。
3.2 設置環境變量
方式1:系統環境變量
export DINGTALK_WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=YOUR_ACCESS_TOKEN"
export DINGTALK_SECRET="YOUR_SECRET_KEY"
export DINGTALK_KEYWORDS="Claude,任務完成,通知"
方式2:項目 .env 文件
DINGTALK_WEBHOOK=https://oapi.dingtalk.com/robot/send?access_token=YOUR_ACCESS_TOKEN
DINGTALK_SECRET=YOUR_SECRET_KEY
DINGTALK_KEYWORDS=Claude,任務完成,通知
第四步:重啟 Claude Code
claude code restart
第五步:驗證配置
在 Claude Code 中運行以下命令測試:
dingtalk_send_text {"content": "🎉 Claude Code 釘釘通知測試成功!"}
dingtalk_notify_session_end {
"sessionType": "配置測試",
"summary": "成功配置了 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 將自動初始化,無需手動配置:
dingtalk_notify_task_complete {
"taskName": "項目構建",
"status": "success",
"details": "構建成功,所有測試通過",
"duration": "2分30秒"
}
手動配置方式
如果未設置環境變量,可以在 Claude Code 中手動配置:
dingtalk_configure {
"webhook": "https://oapi.dingtalk.com/robot/send?access_token=YOUR_ACCESS_TOKEN",
"secret": "YOUR_SECRET_KEY"
}
可用工具
1. dingtalk_configure
手動配置釘釘機器人設置。
參數:
webhook (必需):釘釘機器人 Webhook URL。
secret (可選):簽名驗證密鑰。
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 (必需):目標 URL。
picUrl (可選):圖片 URL。
6. dingtalk_notify_session_end
發送會話結束通知(新功能)。
參數:
sessionType (可選):會話類型,如 "開發協助"、"代碼審查"、"問題解決",默認 "開發協助"。
duration (可選):會話時長,如 "30分鐘"、"1小時20分"。
mainTasks (可選):主要任務列表。
summary (可選):會話摘要,默認 "會話已完成"。
filesCount (可選):修改/創建的文件數量,默認 0。
toolsUsed (可選):使用的工具/命令數量,默認 0。
atAll (可選):是否 @所有人,默認 false。
釘釘機器人配置
1. 創建釘釘群機器人
- 在釘釘群中,點擊群設置 → 智能群助手 → 添加機器人。
- 選擇“自定義”機器人。
- 設置機器人名稱和頭像。
- 重要:配置安全設置(推薦使用“加簽”方式)。
- 獲取 Webhook URL 和簽名密鑰。
2. 安全設置說明
- 關鍵詞驗證:消息中必須包含設定的關鍵詞。
- 加簽驗證:使用 HMAC - SHA256 簽名驗證(推薦)。
- IP 白名單:限制請求來源 IP。
3. 獲取配置信息
https://oapi.dingtalk.com/robot/send?access_token=f248fa5a2e04cf0c13abb23831c4a6190f3837fa7ddf3338f759db5a67079469
SECad12bf23f1e2e3c3d7dae0cd58e41c2b4daa9d1066cdf7ce452c4732ecf0c30e
故障排查
常見問題
Q: 提示"DingTalk client not configured"
A: 請檢查環境變量設置或使用 dingtalk_configure 手動配置。
Q: 消息發送失敗
A: 請檢查:
- Webhook URL 是否正確。
- 簽名密鑰是否匹配。
- 是否觸發了安全關鍵字驗證。
- 是否超過頻率限制(20條/分鐘)。
Q: npm 安裝失敗
A: 請確保 Node.js 版本 ≥ 18.0.0。
調試模式
DEBUG=dingtalk-mcp-server npx claude-code-dingtalk-mcp
開發與貢獻
本地開發
git clone https://github.com/claude-code-community/dingtalk-mcp-server.git
cd dingtalk-mcp-server
npm install
npm run dev
npm run build
npm test
項目結構
claude-code-dingtalk-mcp/
├── src/
│ ├── dingtalk.ts # 釘釘客戶端封裝
│ ├── index.ts # MCP Server 主程序
│ └── test.ts # 測試用例
├── dist/ # 編譯輸出
├── .env.example # 環境變量示例
├── LICENSE # MIT 許可證
├── README.md # 說明文檔
└── package.json # 項目配置
🔧 技術細節
本項目使用 TypeScript 開發,具備完整的類型安全和智能提示。支持通過環境變量自動初始化,使用 HMAC - SHA256 進行安全簽名驗證。與 Claude Code 無縫集成,可在任務完成或會話結束時自動推送通知到釘釘群。
📄 許可證
本項目採用 MIT 許可證,詳見 LICENSE 文件。
🔗 相關鏈接
🚨 注意事項
⚠️ 重要提示
- 每個機器人每分鐘最多發送 20 條消息。
- 確保 Markdown 格式正確,特殊字符需要轉義。
- 生產環境建議啟用簽名驗證。
- 環境變量配置優先於手動配置。
- 工具會返回成功/失敗狀態,請檢查返回值。
💡 使用建議
建議在使用前仔細閱讀文檔,按照步驟進行配置和測試。遇到問題時,可參考常見問題解答或開啟調試模式進行排查。