使用说明
项目简介
本项目 '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 客户端。
安装步骤
-
克隆仓库
git clone https://github.com/darrenyao/dingtalk-agent-client.git cd dingtalk-agent-client -
安装依赖 确保你的Python环境已安装 pip,然后运行以下命令安装项目依赖:
pip install -r requirements.txt -
配置环境变量 复制 '.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 客户端的相应配置项即可。
基本使用方法
-
启动 MCP 服务器 在项目根目录下,根据你的部署方式(直接安装或 Docker),启动 MCP 服务器。例如,直接安装方式运行 'python main.py' 即可启动服务器。
-
配置 MCP 客户端 在你的 MCP 客户端应用中,配置上述 “服务器配置” 中提供的 JSON 信息,指定连接到 'DINGTALK_MCP_SERVER'。
-
调用 MCP 工具 通过 MCP 客户端,你可以调用本服务器注册的各种工具。工具列表及其描述可以通过调用 'list_tools' 工具获取。例如,调用 'search_users' 工具可以搜索钉钉用户,调用 'send_message' 工具可以发送钉钉消息。工具的具体使用方法请参考仓库 'README.md' 中的 “使用示例” 部分。
-
在钉钉中使用 本 MCP 服务器可以与钉钉 AI 助理配合使用。在钉钉中,你可以通过 '@你的AI助理 /run 工具名 参数' 的方式触发 MCP 工具的调用。例如,'/run get_weather 北京' 将会调用 'get_weather' 工具查询北京的天气。
信息
分类
通信与社交