Multipass MCP 服务器端
使用说明
- 项目简介 本仓库实现了一个基于 MCP(Model Context Protocol)的服务器端,允许通过 MCP 客户端访问和控制本地或远程 Multipass 实例。服务器暴露一组工具方法(如列出实例、启动/停止实例、创建快照、执行命令等),并通过 JSON-RPC 的方式与客户端通信,确保安全、标准化的上下文数据提供与功能调用。
- 主要功能点
- MCP 服务器核心:通过 FastMCP 声明服务器并暴露工具(Tools)以供客户端调用。
- 实例相关工具:列出实例、启动/停止/重启、挂载目录、执行命令、克隆实例、快照相关等操作。
- 快照与存储:对实例快照进行创建、恢复、查询等操作。
- 存储与网络辅助:支持目录挂载、文件传输等能力,便于上下文中整合资源。
- 版本与配置工具:获取 Multipass 客户端与守护进程版本信息,检索与设置配置项等。
- 客户端可通过 MCP 客户端(如 Claude/Gemini/Codex 等)使用服务器提供的工具与信息,进行对话式的上下文获取与外部功能调用。
- 安装与运行步骤(简要)
- 你需要一个支持 Python 的运行环境(建议 Python 3.10+)。
- 安装依赖并获取代码(本仓库代码已经实现服务器端逻辑)。
- 以模块方式运行服务器:直接执行服务入口,服务器会启动并等待 MCP 客户端的连接请求。 运行方式示例(非代码片段描述):使用 Python 解释器运行 multipass_mcp.server 对应的入口,服务器就会通过 MCP 与客户端建立连接并暴露工具集合。
- 服务器配置(给 MCP 客户端的配置示例说明)
MCP 客户端需要知道如何启动并连接该 MCP 服务器。下列配置仅用于描述性说明,客户端本身不需要实际包含该配置代码。配置要点包括服务器名称、启动命令和参数等信息,示例如下(JSON 形式,供参考):
{
"server_name": "multipass",
"command": "uvx",
"args": ["multipass-mcp"],
"transport": "stdio",
"description": "MCP 服务器,用于通过 MCP 客户端管理并查询 Multipass 实例、快照和相关资源",
"start_command": "python -m multipass_mcp.server"
}
注释说明:
- server_name 指 MCP 客户端在其配置中用于标识该服务器的名称,便于区分多服务器场景。
- command 与 args 指定了启动 MCP 服务器的外部命令及其参数(如在 README 中示例的 Claude/Gemini 配置中所使用的 uvx / uv 等工具)。
- transport 指明通信传输方式,README 示例中常见为 stdio,具体实现可灵活调整。
- start_command 仅用于描述,实际客户端无需此代码,服务器端应在合适环境中直接启动。
- 基本使用方法
- 通过 MCP 客户端(如 Claude、Gemini、Codex 等)将上述服务器加入到自己的 MCP 配置中,指定对应的启动命令及参数。
- 使用 MCP 客户端向服务器发送请求调用各类工具,例如列出实例、启动/停止实例、执行命令等;服务器将返回 JSON-RPC 的结果或错误信息。
- 如需扩展,请在服务端添加新的工具函数并用 @mcp.tool() 装饰器暴露给 MCP 客户端使用。