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 服务器:
- 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 实现。
- 启动 MCP 服务器后,MCP 客户端可以: