Skip to main content

DingTalk MCP Server V2

这是一个基于 MCP (Model Control Protocol) 的钉钉机器人服务器实现。它提供了与钉钉进行交互的各种功能,包括发送消息、获取会话信息、用户信息和日历事件等。

功能特性

  • 发送消息到钉钉会话
  • 获取钉钉会话信息
  • 获取钉钉用户信息
  • 查询用户日历事件
  • 支持多种消息类型(文本、Markdown、链接等)

环境要求

  • Python 3.10+
  • MCP 0.1.0+
  • aiohttp 3.9.1+

环境变量配置

使用前需要设置以下环境变量:

  • DINGTALK_APP_KEY: 钉钉应用的 AppKey
  • DINGTALK_APP_SECRET: 钉钉应用的 AppSecret

在 Claude 客户端中使用

  1. 在你的 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"
      ]
    }
  }
}
  1. 重启 Claude 客户端

注意:上面的启动命令会:

  1. 查找并删除所有旧的 mcp-dingding-v2 容器
  2. 从 GitHub 拉取最新的镜像
  3. 使用 --name 参数给容器指定固定名称
  4. 使用 --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: 本次返回的事件数量

使用示例

在 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
  }
}

注意事项

  1. 安全性

    • 请妥善保管你的钉钉 API 凭证
    • 不要在公共场合分享你的配置文件
    • 建议使用环境变量而不是硬编码凭证
  2. 故障排除

    • 检查 API 凭证是否正确
    • 确保网络连接正常
    • 查看日志输出了解详细错误信息

许可证

MIT

Metadata

Release files for iflow-mcp_dingding_mcp_v2 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_dingding_mcp_v2 0.1.0
File Size Uploaded
iflow_mcp_dingding_mcp_v2-0.1.0.tar.gz 9.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_dingding_mcp_v2 0.1.0
File Interpreter ABI Platform
iflow_mcp_dingding_mcp_v2-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.5 kB

Release files / iflow_mcp_dingding_mcp_v2-0.1.0.tar.gz

Download URL iflow_mcp_dingding_mcp_v2-0.1.0.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
81d98b1c6c7cc729bc3b858fe6df1cc683c5a3ecb29dbc04f0dd394b5ef79e5c
BLAKE2b-256 checksum
How to use checksums
9533220424106c40f4065747d1763c8dda9c373c05012b28fdba762a7ff7a0c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_dingding_mcp_v2-0.1.0-py3-none-any.whl

Download URL iflow_mcp_dingding_mcp_v2-0.1.0-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
85e06593a26ce1e132c84e4e89ab00963c92f6cc71a90dd4c9fec05290c4c266
BLAKE2b-256 checksum
How to use checksums
434f206790b0d8216d5c4c69fd89807df2086ff52523902fd8b66d69e2320547
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page