使用说明
项目简介
本项目 DingTalkMCPServer 是一个本地部署的MCP(Model Context Protocol)服务器实现,旨在为钉钉客户端的AI助手提供可扩展的功能支持。它允许开发者在本地注册和运行自定义工具,并通过简单的配置即可与钉钉AI助手集成,实现更强大的本地化AI能力。
主要功能点
- 本地化部署: 无需云端服务器,直接在本地环境运行MCP服务。
- 钉钉直连: 通过钉钉客户端AI助手直接调用本地MCP服务,实现功能扩展。
- 多模型支持: 支持配置和使用多种LLM模型,例如OpenAI和Qwen。
- 自定义工具: 允许开发者通过简单的装饰器注册自定义Python函数作为工具,扩展AI助手的功能。
- 易于使用: 项目结构清晰,配置简单,易于上手和二次开发。
- Stdio传输: 使用标准输入输出流 (stdio) 作为MCP服务器的传输协议,简化部署和集成。
安装步骤
- 环境准备: 确保已安装 Python 3.10 或更高版本,并安装了 OpenSSL 1.1 或更高版本。
- 导入项目: 将整个 GitHub 仓库 'DingTalkMCPServer' 导入到您的 Python IDE (如 PyCharm, VSCode) 工程中。
- 安装依赖: 项目依赖已包含在代码中,IDE 通常会自动提示安装缺失的库,或者您可以手动运行 'pip install -r requirements.txt' (如果项目包含 requirements.txt 文件,但根据提供的仓库内容,似乎不需要单独安装依赖,直接通过IDE导入即可)。
服务器配置 (MCP客户端配置)
对于 MCP 客户端(例如,钉钉AI助手或其他支持MCP协议的应用),您需要配置以下信息以连接到此 MCP 服务器。配置信息通常以 JSON 格式提供,示例如下:
{ "serverName": "DingTalkLocalMCP", "command": "python", "args": [ "main.py" ], "transport": "stdio" }
配置参数说明:
- 'serverName': MCP 服务器的名称,可以自定义,例如 "DingTalkLocalMCP"。
- 'command': 启动 MCP 服务器的命令。由于本项目 'main.py' 是 Python 脚本,因此设置为 '"python"'。
- 'args': 启动命令的参数,以列表形式提供。这里需要指定运行 'main.py' 文件,因此设置为 '["main.py"]'。 假设 MCP 客户端的当前工作目录就是 'DingTalkMCPServer' 仓库的根目录。如果 'main.py' 文件不在当前目录,则需要提供 'main.py' 的相对或绝对路径。
- 'transport': MCP 服务器使用的传输协议。本项目使用 Stdio,因此设置为 '"stdio"'。
注意: 请确保 MCP 客户端能够找到并执行 'python' 命令,并且 'main.py' 文件路径相对于客户端的工作目录是正确的。 您可能需要在 MCP 客户端的配置界面中填入以上 JSON 配置信息。
基本使用方法
- 配置 API Keys: 打开 'app/config/settings.py' 文件,根据您的需求配置 'OPENAI_API_KEY' 或 'QWEN_API_KEY',用于支持 LLM 功能的工具,例如 'extra_order_from_content'。如果您不使用需要LLM的功能,可以忽略这些配置。
- 自定义工具: 如果您需要添加自定义功能,请修改 'app/core/mcp_server.py' 文件。
- 使用 '@register_tool(name="工具名称", description="工具描述")' 装饰器来注册您的 Python 函数。
- 在装饰器下方的函数中编写您的工具逻辑。
- 工具函数应返回字符串类型的结果,以便 MCP 客户端能够接收和展示。
- 示例代码已经提供了 'list_tools', 'extra_order_from_content', 'tell_joke', 'get_time', 'fortune' 等工具作为参考。
- 运行服务器: 在 IDE 中运行 'main.py' 文件,或者在命令行中导航到项目根目录并执行 'python main.py' 命令,即可启动 MCP 服务器。
- 连接钉钉: 在钉钉客户端的 AI 助手配置中,按照 服务器配置 部分的说明,填入正确的 MCP 服务器配置信息。
- 使用工具: 在钉钉中,通过 AI 助手使用您注册的工具。例如,如果配置了 '/run' 作为触发标志 (在 'app/config/settings.py' 中 'FUNCTION_TRIGGER_FLAG' 设置),您可以在钉钉中输入 '/run list_tools' 来查看可用的工具列表,或者使用 '/run 工具名称 [参数]' 来调用其他工具。 具体触发方式和工具调用方法取决于钉钉AI助手的实现。
注意事项
- 本地 MCP 服务器启动后,会一直运行,直到您手动停止 'main.py' 进程。
- 配置文件 'app/config/settings.py' 中可以设置 OpenAI 或 Qwen 的 API Key,以及功能触发标志 'FUNCTION_TRIGGER_FLAG'。
- 自定义工具的逻辑在 'app/core/mcp_server.py' 中编写。
- 本项目主要演示了如何快速搭建本地 MCP 服务器,您可以根据实际需求进行更复杂的工具开发和功能扩展。
信息
分类
AI与计算