使用说明

项目简介

本项目实现了一个 MCP (Model Context Protocol) 服务器,其核心作用是作为大型语言模型(LLM)与外部能力(如工具、资源、Prompt 模板)之间的协调者和网关。通过 MCP 协议,该服务器能够接收 LLM 客户端的请求,调用已注册的外部工具,管理上下文信息,并支持复杂的任务编排流程,从而赋能更强大的 AI 应用。

主要功能点

  • MCP 服务器核心: 运行一个符合 MCP 协议的服务器,提供标准化的接口供 LLM 客户端调用。
  • 能力聚合: 能够连接并聚合来自其他 MCP 服务器提供的工具、资源和 Prompt 模板。
  • 工具调用编排: 接收 LLM 的工具调用请求,调度执行相应的工具,并将结果返回给 LLM。
  • 任务流管理: 实现分析模型和执行模型的协同工作流程,支持任务分解、执行和结果处理。
  • 配置管理: 支持通过配置文件进行服务器和代理能力的配置,并支持运行时热重载。
  • 多种传输协议支持: 主服务器默认通过 HTTP/SSE 提供服务,同时作为客户端可以连接支持 Process, HTTP, WebSocket, UVX, NPX 等多种传输协议的 MCP 服务器。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/MarshallEriksen-shaomingyang/moonshot_tools.git
    cd moonshot_tools
  2. 安装依赖: 确保您已安装 Python 3.8+ 和 poetry。运行以下命令安装项目依赖:
    # 如果没有安装 poetry
    # curl -sSL https://install.python-poetry.org | python3 -
    poetry install
  3. 配置环境: 创建 '.env' 文件配置必要的环境变量(例如 API 密钥、MCP 服务器地址等)。请参考 'src/settings.py' 中的 'Settings' 类了解所需配置项。
  4. 运行前置脚本: 项目启动时会尝试运行 'run.sh' 脚本进行初始化(具体内容未提供,请根据实际仓库内容查看)。
    bash run.sh

服务器配置

该项目本身就是一个 MCP 服务器。当您运行本项目后,其他 MCP 客户端(如一个 LLM 代理)可以配置连接到它。本服务器默认通过 HTTP/SSE 协议在 '127.0.0.1:8000' 地址提供服务(可在 'moonshot_config.toml' 中修改)。

一个典型的 MCP 客户端配置(例如在客户端的配置文件中)可能需要包含类似如下的条目来连接本服务器:

{
  "mcpServers": { // 客户端配置,指定要连接的 MCP 服务器列表
    "alpha-core-orchestrator": { // 为本服务器在客户端中取一个别名
      "type": "http", // 连接类型,本项目默认提供 HTTP/SSE 服务
      "url": "http://127.0.0.1:8000", // 本服务器运行时的实际地址和端口
      "prefix": "", // 可选:客户端调用本服务器能力时使用的前缀
      "roots": ["tool", "resource", "prompt"] // 可选:客户端声明期望本服务器提供的能力类型
      // 客户端可以根据需要配置其他字段,如 headers, timeout 等
    }
  }
  // ... 其他客户端配置项
}

请注意,上述配置是用于指导其他 MCP 客户端如何连接到本服务器的示例。本项目自身的运行配置则位于 'moonshot_config.toml' 文件中,用于定义本服务器自身的地址以及它将作为客户端连接的其他 MCP 服务器(代理)的信息。

基本使用方法

  1. 启动服务器: 在项目根目录下运行:
    poetry run python server.py
    服务器将根据 'moonshot_config.toml' 加载配置并启动。
  2. 客户端连接: 启动一个 MCP 客户端(例如使用项目中的 'client.py' 示例或其他兼容 MCP 协议的客户端),并配置其连接到本服务器的地址(默认 'http://127.0.0.1:8000')。 例如,使用项目中的 'client.py' 连接到另一个 MCP 服务器(如果 'python_example/weather.py' 或 'python_example/mcp_weather_server.py' 作为独立的 stdio 服务器运行):
    # 启动一个示例 MCP 工具服务器 (例如 weather.py)
    # poetry run python python_example/weather.py
    
    # 启动客户端连接到这个工具服务器 (如果 weather.py 运行在 stdio 模式)
    # poetry run python python_example/client.py python_example/weather.py
    请注意,'client.py' 是一个连接 MCP 服务器的示例,而不是连接到本项目启动的那个服务器。本项目启动的主服务器是等待其他 MCP 客户端连接的。
  3. 交互: 通过配置好的 MCP 客户端与本服务器交互,发送请求(如调用工具、访问资源等),本服务器将处理请求并协调 LLM 及其他后端服务完成任务。

注意事项

  • 首次运行或修改配置后,请确保重启服务器。
  • 确保 '.env' 和 'moonshot_config.toml' 文件中的配置(特别是 API Key 和地址)正确无误。
  • 依赖的外部服务(如 Kafka, Redis)和代理的 MCP 服务器需要提前启动。

信息

分类

AI与计算