项目简介
Container Manager MCP服务器是一个强大的后端服务,旨在通过标准化的Model Context Protocol (MCP) 接口,让LLM客户端能够管理Docker和Podman容器、镜像、网络、存储卷,并支持Docker Swarm集群服务和Docker/Podman Compose应用编排。它为LLM应用提供了安全、可扩展的容器上下文服务框架。
主要功能点
- 镜像管理: 列出、拉取、删除Docker/Podman镜像。
- 容器管理: 列出、运行、停止、删除容器,获取容器日志,在容器内执行命令。
- 存储卷管理: 列出、创建、删除容器卷。
- 网络管理: 列出、创建、删除容器网络。
- Docker Swarm集群管理 (仅限Docker): 初始化/退出Swarm集群,列出节点和服务,创建/删除服务。
- Compose应用编排: 启动、停止、列出、查看Compose项目日志。
- 灵活的部署: 支持作为Python包运行或通过Docker容器部署。
- 日志与错误处理: 提供全面的操作日志和错误信息。
安装步骤
- 确保Python环境: 请确保您的系统已安装Python 3.7或更高版本。
- 安装Docker或Podman: 根据您的需求,安装并运行Docker或Podman容器运行时。
- 安装Python依赖: 打开终端或命令提示符,执行以下命令安装MCP服务器及其所有依赖:
(注意:'docker' 和 'podman' 库是可选的,根据您使用的容器运行时选择安装)python -m pip install container-manager-mcp fastmcp docker podman pydantic
服务器配置 (供MCP客户端连接)
MCP客户端需要以下JSON格式的配置信息来连接并使用'container-manager-mcp'服务器。
{ "mcpServers": { "container_manager": { "command": "uv", // 或 "python" "args": [ "run", "--with", "container-manager-mcp", "container-manager-mcp", "--transport", "http", "--host", "0.0.0.0", "--port", "8000" ], "env": { "SILENT": "False", // 可选:设置为True可抑制服务器大部分输出 "LOG_FILE": "~/Documents/container_manager_mcp.log", // 可选:指定日志文件路径 "CONTAINER_MANAGER_TYPE": "docker" // 可选:强制指定容器管理器类型 (docker 或 podman),默认自动检测 }, "timeout": 200000 // MCP服务器启动超时时间(毫秒) } } }
- 'container_manager': 您为该MCP服务器实例指定的名称。
- 'command': 启动MCP服务器的主命令,例如 'uv' (推荐) 或 'python'。
- 'args': 启动命令的参数列表。
- '--transport http': 指定使用HTTP传输协议。您也可以使用 'stdio' 进行标准输入输出传输。
- '--host 0.0.0.0': HTTP服务器监听的主机地址。
- '--port 8000': HTTP服务器监听的端口。
- 'env': 可选的环境变量,用于配置服务器行为,例如日志文件路径或强制指定容器管理器类型。
- 'timeout': 客户端等待MCP服务器启动的最长时间(毫秒)。
基本使用方法
1. 启动MCP服务器: 在终端中运行MCP服务器。例如,使用HTTP传输并监听8080端口:
container-manager-mcp --transport http --host 127.0.0.1 --port 8080
2. 使用MCP客户端调用工具: 一旦服务器运行,您的LLM或其他MCP客户端可以通过JSON-RPC协议调用其暴露的工具。 例如,使用'curl'模拟客户端调用'pull_image'工具拉取Nginx镜像:
curl -X POST http://127.0.0.1:8080/pull_image \ -H "Content-Type: application/json" \ -d '{"image": "nginx", "tag": "latest", "manager_type": "docker"}'
客户端收到响应后即可处理容器拉取结果。其他功能(如'list_containers'、'run_container')也通过类似方式调用。
信息
分类
开发者工具