Solaya MCP 服务器
- 项目简介
- 该仓库包含一个 MCP 服务器实现(mcp-server),通过 rmcp 库实现对 MCP 协议的处理,向 MCP 客户端暴露工具、服务以及渲染的提示等能力,并以标准传输(此处为 stdio)与客户端通信。
- 服务器具体功能包括对 Solaya 内核在 QEMU 中的控制、执行命令、构建内核、运行系统测试等操作,并提供获取服务器信息和列出可用工具等能力。MCP 客户端可通过 JSON-RPC 的形式向服务器发起请求并收到 JSON-RPC 风格的响应。
- 主要功能点
- MCP 服务端实现:实现 ServerHandler、get_info、call_tool、list_tools、get_tool 等接口,支持工具路由、工具执行上下文以及对外暴露的工具集合。
- QEMU 集成工具: boot_qemu、shutdown_qemu、get_status、send_command、send_input、read_output 等工具,方便对 Solaya 内核及环境的控制与交互。
- 内核构建与系统测试: build_kernel、run_system_tests,自动执行 Just/Cargo 流程以构建内核和运行系统测试。
- 资源与传输:通过 MCP 协议对资源、工具进行管理,并支持多种传输与会话管理(本实现以 stdio 为传输通道,便于在本地开发与测试环境中使用)。
- 安装步骤
- 需要的环境:Rust 工具链、Cargo、Nix(如 README 所述的环境依赖)等。
- 构建与运行步骤(简要概述):
- 进入 mcp-server 相关目录,使用 Rust 编译环境构建。
- 启动 MCP 服务器二进制:使用 cargo run --bin mcp-server(或等效的构建产物执行方式)。
- 服务器将通过标准输入输出(stdio)作为传输,与 MCP 客户端建立连接。
- 服务器配置(客户端使用的 MCP 配置示例) 服务器名称: solaya-mcp-server 启动命令: cargo 启动参数: ["run", "--manifest-path", "mcp-server/Cargo.toml", "--bin", "mcp-server"] 说明: 该配置用于 MCP 客户端通过文本化命令与服务器建立连接。传输方式在此实现中为 stdio,客户端需要按 MCP 客户端要求提供连接参数并以标准输入/输出与服务器通信。 备注: MCP 客户端不需要包含服务器实现的代码,仅需要提供服务器启动命令及参数,以便建立通信。
- 基本使用方法
- 启动服务器后,MCP 客户端可通过 RPC 调用来:
- 启动/管理 QEMU 实例、查询状态
- 发送 shell 命令给 Solaya 内核并获取输出
- 构建内核、运行系统测试
- 使用时,请参考服务器提供的工具名称与参数格式,向服务器发送相应的请求,服务器将返回 JSON-RPC 风格的响应结果或错误信息。
- 启动服务器后,MCP 客户端可通过 RPC 调用来: