使用说明
项目简介
MCP Containerd Server 是一个基于 Rust 和 RMCP (Rust Model Context Protocol) 库实现的 MCP 服务器。它旨在为大型语言模型 (LLM) 客户端提供标准化的接口,以便通过工具调用来管理和操作 Containerd 容器运行时环境。该服务器将 Containerd 的 CRI (Container Runtime Interface) 功能封装成一系列易于 LLM 客户端调用的工具,使得 LLM 应用能够与容器环境进行深度集成。
主要功能点
- 容器运行时管理: 提供容器的生命周期管理功能,例如创建、删除、列举容器等。
- Pod Sandbox 管理: 支持 Pod Sandbox 的管理,包括创建、删除和列举 Pod Sandbox。
- 镜像管理: 允许 LLM 客户端列举和查看 Containerd 中的容器镜像,以及获取镜像文件系统信息。
- 版本查询: 提供查询 Containerd CRI 版本信息的功能。
- 工具化接口: 将上述功能以工具的形式暴露给 MCP 客户端,方便 LLM 应用按需调用。
- 标准 MCP 协议: 完全遵循 Model Context Protocol 协议,确保与任何兼容 MCP 协议的客户端互操作。
- Stdio 传输: 使用标准输入输出 (stdio) 作为默认的传输协议,简化部署和集成。
安装步骤
- 安装 Rust 开发环境: 确保您的系统中已安装 Rust 编程语言和 Cargo 包管理器。您可以访问 Rust官网 获取安装指南。
- 安装 Containerd: MCP Containerd Server 需要连接到 Containerd 运行时环境。请确保 Containerd 已正确安装并运行。您可以参考 Containerd官方文档 进行安装。
- 克隆代码仓库: 使用 Git 工具克隆 'mcp-containerd' 仓库到您的本地计算机:
git clone https://github.com/jokemanfire/mcp-containerd.git cd mcp-containerd - 编译服务器程序: 在仓库根目录下,使用 Cargo 命令编译 MCP Containerd Server:
编译成功后,可执行文件 'mcp-containerd' 将生成在 'target/release/' 目录下。cargo build --release
服务器配置
MCP 客户端需要配置 MCP 服务器的连接信息才能与之通信。对于 MCP Containerd Server,由于它使用 Stdio 协议,客户端需要配置启动服务器的命令。以下是一个典型的 MCP 客户端配置示例 (JSON 格式):
{ "server": [ { "name": "containerd_mcp", // 自定义服务器名称,用于在客户端中引用 "protocol": "stdio", // 使用 Stdio 协议 "command": "/path/to/mcp-containerd/target/release/mcp-containerd", // MCP服务器可执行文件的绝对路径,请根据实际情况修改 "args": [] // 启动参数,当前版本无需额外参数 } ] }
配置说明:
- '"name"': 为该 MCP 服务器连接配置指定一个名称,客户端可以通过此名称引用该服务器。
- '"protocol"': 指定 MCP 服务器使用的传输协议,这里设置为 '"stdio"',表示使用标准输入输出。
- '"command"': 必须根据实际情况修改。填写您在安装步骤中编译生成的 'mcp-containerd' 可执行文件的绝对路径。这是客户端启动 MCP 服务器进程的命令。
- '"args"': 启动命令的参数列表。对于当前的 MCP Containerd Server 版本,通常无需配置启动参数,因此设置为空列表 '[]' 即可。
请注意: MCP 客户端需要能够找到并执行 '"command"' 中配置的可执行文件。请确保路径配置正确,并且客户端进程有执行该文件的权限。
基本使用方法
-
启动 MCP Containerd Server: 在服务器端,打开终端,导航到 'target/release/' 目录,并运行 './mcp-containerd' 命令启动服务器。服务器默认会连接到本地 Containerd 实例 ('unix:///run/containerd/containerd.sock')。服务器的日志信息将输出到标准错误 (stderr),MCP 协议的通信数据将通过标准输入 (stdin) 和标准输出 (stdout) 进行。
-
配置并启动 MCP 客户端: 根据您的 MCP 客户端的使用说明,配置上述服务器连接信息。启动 MCP 客户端后,客户端将自动通过 Stdio 协议与 MCP Containerd Server 建立连接。
-
通过客户端调用工具: 在 MCP 客户端中,您可以指示 LLM 使用服务器提供的工具。例如,如果您使用的是 'simple_chat-client' 示例客户端,您可以输入指令,例如:
- 'please give me a list of containers' (列出容器)
- 'please give me a list of images' (列出镜像)
- 'create a pod named my-pod in default namespace' (创建 Pod,需要按照工具参数格式提供详细配置)
- 'remove pod pod-12345' (删除 Pod,需要按照工具参数格式提供 Pod ID)
LLM 客户端会解析您的指令,并根据工具定义生成相应的工具调用请求发送给 MCP Containerd Server。服务器执行工具后,会将结果返回给客户端,客户端再将结果呈现给用户或继续与 LLM 进行对话。
示例客户端: 仓库中包含 'simple-chat-client' 目录,提供了一个简单的聊天客户端,可以用来测试和演示如何与 MCP Containerd Server 交互。您可以参考 'simple-chat-client/README.md' 中的说明运行和使用该客户端。
信息
分类
开发者工具