项目简介
钉钉MCP服务器是一个基于 Model Context Protocol (MCP) 实现的应用后端,旨在将钉钉的开放接口能力暴露给支持MCP协议的大模型客户端。通过该服务器,大模型可以直接调用钉钉提供的各种API,例如管理组织架构、员工信息、角色权限、外部联系人等,从而实现智能化的企业管理和办公自动化。
主要功能点
- 钉钉接口集成: 将钉钉开放平台提供的丰富API封装为可供大模型调用的“工具(Tools)”。
- 组织架构管理: 支持创建、更新、删除部门,获取部门详情、子部门列表、父部门列表等。
- 员工信息管理: 支持创建、更新、删除员工(包括不同类型的企业账号),搜索员工,获取员工详情、离职记录、管理员列表等。
- 角色与权限管理: 支持创建、更新、删除角色、角色组,批量增删员工角色,设定角色成员管理范围。
- 通讯录可见性控制: 支持新增、修改、删除通讯录隐藏设置和限制查看设置,设置用户属性可见性,设置部门可见性优先级。
- 外部联系人管理: 支持添加、更新、删除、获取外部联系人及其标签列表。
- 企业与账号信息查询: 支持获取企业认证信息、邀请信息、钉钉指数、企业账号状态和拥有的组织等。
- 大模型友好接口: 遵循MCP协议,将复杂的钉钉API转换为结构化的工具定义,方便大模型理解和调用。
- 安全通信: 通过环境变量配置AppKey和AppSecret,实现与钉钉API的安全认证。
安装步骤
- 环境准备: 确保您的系统已安装 Python 环境。
- 创建钉钉应用: 在钉钉开发者后台创建一个企业内部应用。
- 配置应用权限: 为创建的应用授予调用所需钉钉开放接口的权限。
- 获取密钥: 在钉钉开发者后台获取应用的 AppKey 和 AppSecret。
- 克隆仓库: 将 dingtalk_mcp_server 仓库克隆到本地。
- 创建配置文件: 参考仓库中的 '.env.example' 文件,创建 '.env' 文件,并在其中配置您在步骤4中获取的 AppKey 和 AppSecret。
- 安装依赖: 在项目根目录,使用 pip 安装项目所需的依赖库。
或者如果使用uv:pip install -r requirements.txt # 假设存在requirements.txt,或根据实际情况安装uv和aiohttp等# 安装 uv # 安装项目依赖 uv sync
服务器配置(供MCP客户端使用)
此服务器设计为由支持MCP协议的客户端(如 Cursor, Cline 或其他自定义客户端)通过标准输入/输出(Stdio)协议启动和通信。您需要在客户端的MCP配置中添加如下信息:
{ "mcpServers": { "dingtalk-connector": { // 服务器的唯一标识名称,可自定义 "command": "uv", // 启动服务器的可执行命令 "args": ["run", "src/main.py"], // 传递给命令的参数,用于运行入口文件 "env": {} // 可选:需要传递给服务器进程的环境变量 // 其他可能的客户端配置字段(如 disable, autoApprove 等) } } }
参数说明:
- 'command': 启动 dingtalk_mcp_server 进程的命令。通常指向 Python 环境中的 'uv' 或 'python' 可执行文件。
- 'args': 传递给 'command' 的参数列表。'run src/main.py' 表示使用 uv 运行项目入口文件 'src/main.py'。如果直接使用 python,可能是 '["src/main.py"]'。请根据实际安装和运行方式调整。
- 'env': 启动服务器进程时需要设置的环境变量。在本例中,AppKey 和 AppSecret 是通过 '.env' 文件加载的,通常不需要在此处单独配置。但如果有其他特殊环境变量需求,可在此添加。
基本使用方法
- 配置客户端: 按照上述“服务器配置”部分,在您使用的MCP客户端(如 Cursor, Cline)中添加 dingtalk_mcp_server 的启动配置。
- 启动客户端: 启动您的MCP客户端。客户端会根据配置自动启动 dingtalk_mcp_server 进程并建立连接。
- 通过大模型交互: 在MCP客户端中,通过与大模型的对话或交互界面,大模型即可识别并调用 dingtalk_mcp_server 提供的钉钉相关工具。例如,您可以向大模型提问“帮我查询一下部门ID为12345的部门详情”,大模型可能会自动调用 'get_department_detail' 工具并返回结果。
信息
分类
AI与计算