KeepGPU MCP 服务器

  • 项目简介
    • KeepGPU 的 MCP 服务器是在本仓库中实现的后端服务,遵循 MCP 的核心理念:通过标准化的 JSON-RPC 协议向客户端提供资源读取、工具调用、以及 Prompt 模板等能力,并提供基于 HTTP 的 REST 接口与仪表盘,便于 LLM 应用在上下文管理中调用外部功能与获取数据。
  • 主要功能点
    • JSON-RPC 接口:实现 start_keep、stop_keep、status、list_gpus 等核心方法,支持按会话或批量管理多 GPU 的资源占用。
    • HTTP REST 与 仪表盘:通过 HTTP 端点暴露健康检查、GPU 列表、会话列表等信息,配合仪表盘进行可观测性展示。
    • 会话管理:可创建、查询、停止一个或多个会话,自动管理控制器实例并对超时/失败场景进行处理。
    • 资源管理与渲染:基于 GPU 控制器(CUDA/ROCM)实现资源占用、GPU 使用监控与算子负担(如简单的运算负载)来维持上下文信息。
    • 多传输模式:提供 stdio(行式 JSON-RPC)和 http(HTTP + REST + dashboard)两种传输模式,灵活适配不同客户端需求。
    • 安全与鲁棒性:对服务状态、请求字段、错误状态进行处理,包含基本的错误返回与超时处理逻辑。
  • 安装与运行步骤
    • 获取源码:从仓库克隆源码并进入项目目录。
    • 安装依赖:在合适的 Python 虚拟环境中安装必要依赖(通常通过 pip 安装仓库自带的依赖配置,例如通过 dev 依赖或直接安装包)。
    • 运行 MCP 服务器(stdio 模式):在需要的环境中直接以 stdio 模式运行,便于与本地工作流集成。
    • 运行 MCP 服务器(HTTP 模式):以 HTTP 端口监听的方式启动,便于远程客户端接入并查看仪表盘。
  • 服务器配置(给 MCP 客户端的配置示例,JSON 格式) 说明:MCP 客户端需要知道服务器的启动命令与参数,用以在需要时自动启动服务并建立连接。以下为示例配置,请据实际环境调整 host、port、以及启动参数。 { "servers": { "keepgpu": { "name": "KeepGPU MCP Server", "command": ["python", "-m", "keep_gpu.mcp.server"], "args": [ "--mode", "http", "--host", "127.0.0.1", "--port", "8765" ], "description": "KeepGPU 本地 MCP 服务,暴露 JSON-RPC/REST 接口,供 LLM 客户端调用。" } // 如需 stdio 模式,可再添加一个条目,使用 stdio 传输即可 } }
  • 基本使用方法
    • 启动并连接
      • 启动服务器(HTTP 模式)后,客户端通过指定的 URL 连接并使用 MCP 提供的 JSON-RPC 调用,例如 start_keep、status、stop_keep 等。
    • 常用操作流程
      • 启动/mcp 服务器并确认健康状态
      • 通过 JSON-RPC 调用 start_keep 来创建会话,传入 gpu_ids、vram、interval 等参数
      • 使用 status 查询会话是否活跃以及获取参数信息
      • 通过 stop_keep(携带 job_id)或 stop-all 停止会话,释放资源
    • 客户端行为
      • MCP 客户端只需要知道服务器地址、支持的接口方法及参数格式即可发起请求,MCP 服务器将返回标准的 JSON-RPC 风格的响应结果或错误信息。

服务器信息