virtme-ng MCP 服务器

使用说明

  • 项目简介
    • virtme-ng(Kernel Virtual Testing Studio)是一个将 Linux 内核在可控快照环境中构建、运行与测试的工具集。其 MCP 服务器子模块(mcp.py)实现了 MCP 协议的核心接口,向支持 MCP 的 AI 助手(如 Claude、Cursor 等)暴露内核开发相关的功能入口(资源管理、工具执行、提示模板等)。通过标准的 JSON-RPC 方式,客户端可以查询可用工具、执行任务、获取结果。
  • 主要功能点
    • MCP 服务端实现:提供注册的工具集合、资源访问等接口,响应 MCP 请求并返回 JSON-RPC 风格的结果文本。
    • 工具集合(示例,服务器暴露的能力):
      • build_kernel:生成并执行内核构建命令(本地或远程构建)。
      • configure_kernel:生成或修改内核 .config(可选)。
      • run_kselftest_cmd:生成自测脚本与执行命令,用于自测用例的自动化运行。
      • run_kernel_cmd:生成用于运行内核测试的命令(快速引导/简单命令等)。
      • get_kernel_info:获取内核源码目录的相关信息(版本、git 状态、配置存在性等)。
      • apply_patch:从 lore.kernel.org 下载并应用补丁系列到当前内核树。
    • 服务器启动模式:支持通过 vng-mcp 二进制或通过 vng --mcp 启动,均以 stdio 传输 MCP 流。
    • 安全与扩展性:沿用 virtme-ng 的模块化设计,结合 MCP 框架,便于将来扩展更多工具、资源与模板(Prompts)。
  • 安装与运行步骤
    • 通过包管理与入口点启动 MCP 服务器:
      • 直接作为 MCP 服务启动(推荐方式):运行 vng --mcp
      • 或使用打包的二进制入口:vng-mcp
    • 该服务器依赖 Python 环境和 mcp 库,确保安装时包含扩展:
      • 安装 virtme-ng,若需要 MCP 功能,请安装 virtme-ng[mcp](包含 mcp 相关依赖)。
  • MCP 服务器配置(客户端使用配置示例,供参考,无需在服务端运行时修改)
    • 服务器名称:virtme-ng
    • 命令:vng
    • 参数:--mcp 配置说明(JSON,供 MCP 客户端使用): { "mcpServers": { "virtme-ng": { "command": "vng", "args": ["--mcp"] } } // 说明:该配置用于 MCP 客户端在连接 virtme-ng 时,知道如何启动服务器以及传入的构造参数。 }
  • 基本使用方法
    • 启动 MCP 服务器后,MCP 客户端可以:
      • 查询可用工具清单(list_tools)。
      • 选择需要的工具,传入参数,执行并获取结果文本(通过 JSON/Text 内容解析获得实际命令或结果)。
      • 根据需要组合多个工具的输出,完成更复杂的 kernel 开发工作流。
    • 典型工作流示例(由客户端发起并接收工具返回的执行命令文本;实际执行由 Shell/Script 工具完成):
      • 查询工具列表,了解支持的内核开发任务。
      • 调用 build_kernel,获得“执行的命令文本”,随后在 Shell 工具中执行该命令来构建内核。
      • 调用 get_kernel_info,获取当前内核源码信息(用于决策是否需要重新配置或重新编译)。
      • 调用 run_kernel_cmd 或 run_kselftest_cmd,生成对应的运行或自测命令文本,执行并获取输出。
    • 注意:
      • MCP 客户端需要的只是命令和参数,不要求直接执行 MCP 服务端的操作。服务端返回的都是可执行的命令文本,实际执行由客户端的 Shell/Script 实现。

服务器信息