DingDing MCP
by wllcnm
# 钉钉 MCP 服务
这是一个基于MCP(Model Control Protocol)的钉钉服务,提供了钉钉API的访问功能。
## 功能特性
1. 获取钉钉 Access Token
2. 获取部门列表
3. 获取部门用户列表
4. 根据姓名查询用户详细信息(包括遍历部门查找用户)
## 环境要求
- Python 3.12+
- Docker(推荐)
- 钉钉应用凭证
## 安装和配置
### 1. 获取钉钉应用凭证
1. 登录[钉钉开放平台](https://open.dingtalk.com/)
2. 创建企业内部应用
3. 获取应用的 AppKey 和 AppSecret
### 2. 配置环境变量
需要设置以下环境变量:
```bash
DINGDING_APP_KEY=你的AppKey
DINGDING_APP_SECRET=你的AppSecret
```
## 使用方法
### 在 Claude 桌面客户端中使用
1. 在你的 `claude_desktop_config.json` 中添加以下配置:
```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. 克隆仓库:
```bash
git clone <repository_url>
cd dingding_chat
```
2. 安装依赖:
```bash
pip install -r requirements.txt
```
3. 运行服务:
```bash
python src/server.py
```
### Docker 部署
1. 拉取镜像:
```bash
docker pull ghcr.io/你的用户名/dingding-mcp:latest
```
2. 运行容器:
```bash
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