使用说明

项目简介

本项目是钉钉 MCP (Model Context Protocol) 服务器的实现,旨在使大型语言模型(LLM)客户端,如 Claude,能够安全、便捷地与钉钉工作空间进行交互。通过本服务,LLM 可以调用预设的工具,访问钉钉内的用户数据,并执行发送消息等操作,从而扩展 LLM 在企业办公场景下的应用能力。

主要功能点

  • 用户搜索:通过关键词搜索钉钉工作空间内的用户,支持精确匹配和模糊匹配,返回匹配的用户列表及其基本信息。
  • 用户信息获取:根据用户 ID 获取用户的详细信息,包括姓名、工号、部门、联系方式等。
  • 消息发送(待完善):支持向钉钉用户发送私信,但当前版本发送消息功能尚未完全实现,需要用户授权码,具体授权流程和后续完善计划请关注项目仓库。
  • 资源管理(示例):内置简单的笔记资源管理功能,用于演示 MCP 资源的概念。
  • Prompt 模板(示例):提供示例 Prompt 模板,如总结笔记,用于演示 MCP Prompt 的使用。

安装步骤

  1. 创建钉钉应用

  2. 配置应用权限

    • 在应用详情页面,配置以下必要的应用权限:
      • 'userinfo': 获取用户信息
      • 'message': 发送消息 (如果需要启用消息发送功能,当前版本功能待完善)
      • 'user': 获取用户列表
  3. 获取应用凭证

    • 在应用详情页面的“应用凭证与基础信息”中,记录并妥善保管应用的 AppKeyAppSecret
  4. 选择部署方式

    • 可以选择使用 'npx' 方式或 'Docker' 方式运行 MCP 服务器。
  5. 配置环境变量

    • 部署前,请确保设置以下环境变量:
      • '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
      }
    }
  }
}

基本使用方法

  1. 确保 MCP 服务器已成功启动并运行。

  2. 在 MCP 客户端(如 Claude Desktop)中配置上述服务器连接信息。

  3. 在 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 的基本概念,用户可以根据实际需求进行扩展和定制。

信息

分类

通信与社交