DingDing

Integrates with
DingDing

钉钉 MCP 服务

这是一个基于MCP(Model Control Protocol)的钉钉服务,提供了钉钉API的访问功能。

功能特性

  1. 获取钉钉 Access Token
  2. 获取部门列表
  3. 获取部门用户列表
  4. 根据姓名查询用户详细信息(包括遍历部门查找用户)

环境要求

  • Python 3.12+
  • Docker(推荐)
  • 钉钉应用凭证

安装和配置

1. 获取钉钉应用凭证

  1. 登录钉钉开放平台
  2. 创建企业内部应用
  3. 获取应用的 AppKey 和 AppSecret

2. 配置环境变量

需要设置以下环境变量:

DINGDING_APP_KEY=你的AppKey
DINGDING_APP_SECRET=你的AppSecret

使用方法

在 Claude 桌面客户端中使用

  1. 在你的 claude_desktop_config.json 中添加以下配置:
{
  "mcpServers": {
    "dingding": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "DINGDING_APP_KEY=你的AppKey",
        "-e", "DINGDING_APP_SECRET=你的AppSecret",
        "ghcr.io/你的用户名/dingding-mcp:latest"
      ]
    }
  }
}

本地开发

  1. 克隆仓库:
git clone <repository_url>
cd dingding_chat
  1. 安装依赖:
pip install -r requirements.txt
  1. 运行服务:
python src/server.py

Docker 部署

  1. 拉取镜像:
docker pull ghcr.io/你的用户名/dingding-mcp:latest
  1. 运行容器:
docker run -d --name dingding-mcp \
  -e DINGDING_APP_KEY=你的AppKey \
  -e DINGDING_APP_SECRET=你的AppSecret \
  ghcr.io/你的用户名/dingding-mcp:latest

API 说明

1. 获取 Access Token

  • 功能:获取钉钉API的access token
  • 工具名:get_access_token
  • 参数:无
  • 返回:access token字符串

2. 获取部门列表

  • 功能:获取企业的部门列表
  • 工具名:get_department_list
  • 参数:
    • fetch_child: 是否抓取子部门列表(可选,默认为true)
  • 返回:部门列表信息(包括部门ID、名称、父部门ID等)

3. 获取部门用户列表

  • 功能:获取指定部门的用户列表
  • 工具名:get_department_users
  • 参数:
    • department_id: 部门ID(必填)
  • 返回:部门用户列表(包括用户ID、姓名等)

4. 根据姓名查询用户

  • 功能:通过用户姓名查询用户详细信息
  • 工具名:search_user_by_name
  • 参数:
    • name: 用户姓名
  • 返回:用户详细信息(包括用户ID、姓名、手机、邮箱、职位、所属部门等)

注意事项

  1. 确保正确配置钉钉应用的凭证信息
  2. 由于钉钉API的限制,查询用户信息需要遍历所有部门,可能需要一定时间
  3. 建议在生产环境中使用 Docker 部署,以确保环境一致性

许可证

MIT License