使用说明

项目简介

本项目 'dingtalk-agent-client' 是一个基于 Model Context Protocol (MCP) 的服务器实现,它将钉钉客户端的功能通过 MCP 协议暴露给大型语言模型 (LLM) 客户端。简单来说,它允许你的 LLM 应用通过标准化的 MCP 接口,调用钉钉的各种能力,例如查询用户信息、发送消息等。这个服务器作为 LLM 和钉钉之间的桥梁,使得 LLM 可以更方便地与钉钉平台进行交互,扩展了 LLM 在企业办公场景下的应用。

主要功能点

  • 用户管理工具:提供搜索用户、获取用户详细信息等工具,方便 LLM 应用获取钉钉组织架构信息。
  • 消息发送工具:支持发送文本和 Markdown 消息,使 LLM 应用能够主动与钉钉用户进行沟通。
  • 实用工具集成:内置天气查询、订单信息提取、笑话、时间、运势等多种实用工具,扩展 LLM 的应用场景。
  • 钉钉开放平台集成:利用钉钉开放平台的 API,安全可靠地访问和操作钉钉数据。
  • 易于扩展的工具注册机制:通过简单的装饰器即可注册新的 MCP 工具,方便开发者根据需求扩展服务器功能。
  • 支持标准 MCP 协议:使用 JSON-RPC over Stdio 通信,兼容各种 MCP 客户端。

安装步骤

  1. 克隆仓库

    git clone https://github.com/darrenyao/dingtalk-agent-client.git
    cd dingtalk-agent-client
  2. 安装依赖 确保你的Python环境已安装 pip,然后运行以下命令安装项目依赖:

    pip install -r requirements.txt
  3. 配置环境变量 复制 '.env.example' 文件并重命名为 '.env',然后根据你的钉钉应用配置信息修改 '.env' 文件。你需要配置钉钉AI助理和钉钉开放平台应用的相关参数,包括 'DINGTALK_APP_KEY', 'DINGTALK_APP_SECRET', 'DINGTALK_CLIENT_ID', 'DINGTALK_CLIENT_SECRET', 'DINGTALK_CORP_ID' 等。

    cp .env.example .env
    # 编辑 .env 文件,填入你的钉钉应用配置

服务器配置

MCP 服务器配置信息(JSON 格式),用于 MCP 客户端连接本服务器。

{
  "server_name": "DINGTALK_MCP_SERVER",  // MCP 服务器名称,与代码中 FastMCP 初始化时名称一致
  "command": "python",                   // 启动服务器的命令,这里使用 python 解释器
  "args": [                             // 启动命令的参数列表
    "main.py"                          // 指定执行 main.py 文件作为服务器入口
  ]
}

配置说明:

  • 'server_name': MCP 服务器的名称,必须与 'app/core/mcp_server.py' 中 'FastMCP("DINGTALK_MCP_SERVER")' 定义的名称保持一致。
  • 'command': 运行 MCP 服务器的命令,通常为 'python' 或 'python3',确保 MCP 客户端能够找到 Python 解释器。
  • 'args': 命令参数列表,指定服务器的入口文件为 'main.py'。

请注意: MCP 客户端需要配置以上 JSON 信息,才能正确启动和连接到本 MCP 服务器。用户无需修改此 JSON 配置中的代码或参数,只需将其填入 MCP 客户端的相应配置项即可。

基本使用方法

  1. 启动 MCP 服务器 在项目根目录下,根据你的部署方式(直接安装或 Docker),启动 MCP 服务器。例如,直接安装方式运行 'python main.py' 即可启动服务器。

  2. 配置 MCP 客户端 在你的 MCP 客户端应用中,配置上述 “服务器配置” 中提供的 JSON 信息,指定连接到 'DINGTALK_MCP_SERVER'。

  3. 调用 MCP 工具 通过 MCP 客户端,你可以调用本服务器注册的各种工具。工具列表及其描述可以通过调用 'list_tools' 工具获取。例如,调用 'search_users' 工具可以搜索钉钉用户,调用 'send_message' 工具可以发送钉钉消息。工具的具体使用方法请参考仓库 'README.md' 中的 “使用示例” 部分。

  4. 在钉钉中使用 本 MCP 服务器可以与钉钉 AI 助理配合使用。在钉钉中,你可以通过 '@你的AI助理 /run 工具名 参数' 的方式触发 MCP 工具的调用。例如,'/run get_weather 北京' 将会调用 'get_weather' 工具查询北京的天气。

信息

分类

通信与社交