Nido MCP Server
使用说明
- 项目简介
- Nido 的 MCP 服务器实现,基于 MCP 标准,向 LLM 客户端暴露资源访问、工具执行和提示模板等能力。服务器通过标准的 JSON-RPC 2.0 与客户端对话,并采用 STDIN/STDOUT 进行请求响应通信。核心能力包括:
- 处理 MCP 请求(如 initialize、tools/list、tools/call 等)
- 以 JSON 形式返回响应或通知
- 通过 VM 提供者(VMProvider)对虚拟机进行创建、启动、停止、删除等操作
- 与现有 Nido 后端(如图片/镜像、模板、端口转发、云与局部镜像等)无缝集成
- Nido 的 MCP 服务器实现,基于 MCP 标准,向 LLM 客户端暴露资源访问、工具执行和提示模板等能力。服务器通过标准的 JSON-RPC 2.0 与客户端对话,并采用 STDIN/STDOUT 进行请求响应通信。核心能力包括:
- 主要功能点
- MCP 握手与能力声明:实现 initialize、notifications/initialized、tools/list 等核心 MCP 端点
- Tools Catalog:暴露可用的 MCP Tools 及其输入 Schema,供 LLM 客户端了解可调用的工具
- Tools 调用:通过 tools/call 执行具体工具(如 vm_list、vm_create、vm_start、vm_stop、vm_delete、vm_info、vm_ssh、vm_prune、vm_template_list、vm_images_list 等等),并把参数解析成可用形式后调用底层提供者
- JSON-RPC 响应/错误:统一的响应与错误结构,使用 stdout 输出响应,stdin 读取请求
- 与后端提供者集成:Server 使用传入的 VMProvider 进行实际的 VM 操作,具备对资源、镜像、模板等的调用能力
- 服务器实现形态:当前实现以 STDIN/STDOUT 作为传输通道,提供最基本的 MCP 服务能力
- 安装与运行步骤
- 构建运行环境
- 需要 Go 语言环境
- 构建执行文件
- 在仓库根目录执行构建,生成 nido 二进制
- 启动 MCP 服务
- 以 nido 命令启动 MCP 子命令,进入 MCP 服务模式
- 运行前请确保已有合适的配置环境(见下方服务器配置说明)
- MCP 客户端对接
- 客户端需配置 MCP 服务器信息,客户端通过配置文件中的 server name、command 与 args 等字段来连接 MCP 服务器
- 构建运行环境
- 服务器配置(MCP 客户端所需信息,客户端不需要修改服务器端)
- 配置为 JSON,描述 MCP 服务器的名称、启动命令及参数等,示例配置如下(文本说明,不附带代码块):
- server name: "nido-local-vm-manager"
- command: 指向用于启动 Nido 的二进制文件路径,例如 /path/to/nido
- args: ["mcp"]
- 说明:上述配置对应仓库中的 MCP 服务实现入口,即 cmd/nido/main.go 的 mcp 子命令会基于提供的 VMProvider 启动 MCP 服务。
- 基本使用方法
- 运行 MCP 服务:通过 nido mcp 启动 MCP 服务,服务器将监听并处理来自 MCP 客户端的请求
- 客户端 handshake:MCP 客户端应通过配置文件指定服务器启动命令与参数,并通过 MCP handshake 进行初始化
- 调用工具与读取资源:通过 MCP 客户端调用 vm_list、vm_create、vm_start、vm_stop、vm_delete、vm_info、vm_ssh 等工具,以结构化的输入输出获取 VM 状态、信息、SSH 指令等