使用说明

项目简介

本项目 DingTalkMCPServer 是一个本地部署的MCP(Model Context Protocol)服务器实现,旨在为钉钉客户端的AI助手提供可扩展的功能支持。它允许开发者在本地注册和运行自定义工具,并通过简单的配置即可与钉钉AI助手集成,实现更强大的本地化AI能力。

主要功能点

  • 本地化部署: 无需云端服务器,直接在本地环境运行MCP服务。
  • 钉钉直连: 通过钉钉客户端AI助手直接调用本地MCP服务,实现功能扩展。
  • 多模型支持: 支持配置和使用多种LLM模型,例如OpenAI和Qwen。
  • 自定义工具: 允许开发者通过简单的装饰器注册自定义Python函数作为工具,扩展AI助手的功能。
  • 易于使用: 项目结构清晰,配置简单,易于上手和二次开发。
  • Stdio传输: 使用标准输入输出流 (stdio) 作为MCP服务器的传输协议,简化部署和集成。

安装步骤

  1. 环境准备: 确保已安装 Python 3.10 或更高版本,并安装了 OpenSSL 1.1 或更高版本。
  2. 导入项目: 将整个 GitHub 仓库 'DingTalkMCPServer' 导入到您的 Python IDE (如 PyCharm, VSCode) 工程中。
  3. 安装依赖: 项目依赖已包含在代码中,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 配置信息。

基本使用方法

  1. 配置 API Keys: 打开 'app/config/settings.py' 文件,根据您的需求配置 'OPENAI_API_KEY' 或 'QWEN_API_KEY',用于支持 LLM 功能的工具,例如 'extra_order_from_content'。如果您不使用需要LLM的功能,可以忽略这些配置。
  2. 自定义工具: 如果您需要添加自定义功能,请修改 'app/core/mcp_server.py' 文件。
    • 使用 '@register_tool(name="工具名称", description="工具描述")' 装饰器来注册您的 Python 函数。
    • 在装饰器下方的函数中编写您的工具逻辑。
    • 工具函数应返回字符串类型的结果,以便 MCP 客户端能够接收和展示。
    • 示例代码已经提供了 'list_tools', 'extra_order_from_content', 'tell_joke', 'get_time', 'fortune' 等工具作为参考。
  3. 运行服务器: 在 IDE 中运行 'main.py' 文件,或者在命令行中导航到项目根目录并执行 'python main.py' 命令,即可启动 MCP 服务器。
  4. 连接钉钉: 在钉钉客户端的 AI 助手配置中,按照 服务器配置 部分的说明,填入正确的 MCP 服务器配置信息。
  5. 使用工具: 在钉钉中,通过 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与计算