使用说明
项目简介
本项目是钉钉 MCP (Model Context Protocol) 服务器的实现,旨在使大型语言模型(LLM)客户端,如 Claude,能够安全、便捷地与钉钉工作空间进行交互。通过本服务,LLM 可以调用预设的工具,访问钉钉内的用户数据,并执行发送消息等操作,从而扩展 LLM 在企业办公场景下的应用能力。
主要功能点
- 用户搜索:通过关键词搜索钉钉工作空间内的用户,支持精确匹配和模糊匹配,返回匹配的用户列表及其基本信息。
- 用户信息获取:根据用户 ID 获取用户的详细信息,包括姓名、工号、部门、联系方式等。
- 消息发送(待完善):支持向钉钉用户发送私信,但当前版本发送消息功能尚未完全实现,需要用户授权码,具体授权流程和后续完善计划请关注项目仓库。
- 资源管理(示例):内置简单的笔记资源管理功能,用于演示 MCP 资源的概念。
- Prompt 模板(示例):提供示例 Prompt 模板,如总结笔记,用于演示 MCP Prompt 的使用。
安装步骤
-
创建钉钉应用:
- 访问 钉钉开发者后台。
- 创建“企业内部应用”。
- 填写应用信息并完成创建。
-
配置应用权限:
- 在应用详情页面,配置以下必要的应用权限:
- 'userinfo': 获取用户信息
- 'message': 发送消息 (如果需要启用消息发送功能,当前版本功能待完善)
- 'user': 获取用户列表
- 在应用详情页面,配置以下必要的应用权限:
-
获取应用凭证:
- 在应用详情页面的“应用凭证与基础信息”中,记录并妥善保管应用的 AppKey 和 AppSecret。
-
选择部署方式:
- 可以选择使用 'npx' 方式或 'Docker' 方式运行 MCP 服务器。
-
配置环境变量:
- 部署前,请确保设置以下环境变量:
- 'DINGTALK_APP_KEY': 钉钉应用的 AppKey
- 'DINGTALK_APP_SECRET': 钉钉应用的 AppSecret
- 部署前,请确保设置以下环境变量:
服务器配置
以下 JSON 配置信息用于 MCP 客户端(例如 Claude Desktop)连接到本钉钉 MCP 服务器。请根据选择的部署方式复制相应的配置,并根据实际情况修改 'your_app_key' 和 'your_app_secret' 为您在钉钉开发者后台获取的凭证。
npx 方式配置
{ "mcpServers": { "dingtalk": { // 服务器名称,可以自定义 "command": "npx", // 启动命令,使用 npx 运行 npm 包 "args": [ "-y", "@darrenyao/server-dingtalk" // 钉钉 MCP 服务器的 npm 包名 ], "env": { "DINGTALK_APP_KEY": "your_app_key", // 替换为您的钉钉应用 AppKey "DINGTALK_APP_SECRET": "your_app_secret" // 替换为您的钉钉应用 AppSecret } } } }
Docker 方式配置
{ "mcpServers": { "dingtalk": { // 服务器名称,可以自定义 "command": "docker", // 启动命令,使用 docker 运行容器 "args": [ "run", "-i", // 保持标准输入打开 "--rm", // 容器退出后自动删除 "-e", // 设置环境变量 "DINGTALK_APP_KEY", // 传递环境变量 DINGTALK_APP_KEY "-e", // 设置环境变量 "DINGTALK_APP_SECRET", // 传递环境变量 DINGTALK_APP_SECRET "mcp/dingtalk" // Docker 镜像名称 ], "env": { "DINGTALK_APP_KEY": "your_app_key", // 替换为您的钉钉应用 AppKey "DINGTALK_APP_SECRET": "your_app_secret" // 替换为您的钉钉应用 AppSecret } } } }
基本使用方法
-
确保 MCP 服务器已成功启动并运行。
-
在 MCP 客户端(如 Claude Desktop)中配置上述服务器连接信息。
-
在 LLM 的 Prompt 中,可以使用以下工具来与钉钉交互:
- 'dingtalk_search_users': 搜索钉钉用户。
- 'dingtalk_get_user_info': 获取用户详细信息。
- 'dingtalk_send_message': 发送钉钉消息 (当前版本功能待完善,发送消息可能需要额外的授权步骤)。
例如,在 Claude 中,您可以这样提问:
请使用工具 'dingtalk_search_users' 搜索用户 "张三"。 请使用工具 'dingtalk_get_user_info' 获取用户ID为 "userid123" 的用户信息。服务器会将工具调用结果返回给 LLM 客户端,从而实现与钉钉工作空间的联动。
注意: 发送消息功能 'dingtalk_send_message' 在当前版本中可能需要用户授权码,具体使用方式和限制请关注项目后续更新。示例的笔记资源和 Prompt 模板主要用于演示 MCP 的基本概念,用户可以根据实际需求进行扩展和定制。
信息
分类
通信与社交