项目简介
Docker MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,专注于 Docker 容器管理。它通过 MCP 协议向 AI Agent 提供了一系列工具,使得 AI Agent 能够自动化执行 Docker 容器的生命周期管理、状态监控等操作。简单来说,你可以通过这个服务器,让 AI Agent 来帮你管理 Docker 容器。
主要功能点
- 容器生命周期管理: 支持创建、启动、停止、暂停、杀死和删除 Docker 容器。
- 实时容器状态监控: 可以获取容器的实时状态,例如运行中、已暂停、已退出等。
- Docker API 集成: 基于 Dockerode 库与 Docker API 交互,实现对 Docker 容器的控制。
- MCP 协议实现: 遵循 MCP 协议标准,可以与任何兼容 MCP 协议的客户端进行通信。
- 工具化操作: 将 Docker 容器管理操作封装成易于 AI Agent 调用的工具,例如创建容器、获取容器信息、管理容器状态等。
安装步骤
-
克隆仓库: 首先,你需要将仓库克隆到本地:
git clone https://github.com/braveTony44/docker-mcp-server.git cd docker-mcp-server -
安装依赖: 进入仓库目录后,使用 npm 安装项目依赖:
npm install -
配置 Docker 连接: 确保你的 Docker Engine 正在运行,并配置 Docker 连接信息。默认情况下,服务器会尝试连接到 '/var/run/docker.sock'。如果你的 Docker Socket 路径不同,或者需要通过其他方式连接 Docker,请修改 'config/docker.config.js' 文件中的配置。
// config/docker.config.js import Docker from 'dockerode'; const docker = new Docker({ socketPath: process.env.DOCKER_SOCKET || '/var/run/docker.sock' // 你可以根据需要修改 socketPath 或添加其他连接配置,例如 host 和 port }); export default docker;
服务器配置
要将 Docker MCP Server 集成到 MCP 客户端,你需要在客户端的 MCP 配置文件(通常是 'cline_mcp_settings.json')中添加以下服务器配置。这将告诉 MCP 客户端如何启动和连接到 Docker MCP Server。
{ "mcpServers": { "dockerMcp": { // 服务器名称,客户端通过此名称引用该服务器 "command": "node", // 启动服务器的命令,这里使用 node.js 运行 index.js "args": ["index.js"], // 启动命令的参数,这里指定运行 index.js 文件 "env": {}, // 环境变量,如果服务器需要额外的环境变量,可以在这里配置 "disabled": false, // 是否禁用该服务器,false 表示启用 "autoApprove": [] // 自动批准的工具列表,如果客户端请求调用列表中的工具,无需用户手动批准 } } }
配置参数说明:
- '"dockerMcp"': 这是你为该 Docker MCP 服务器定义的名称,在客户端调用工具时会用到这个名称。你可以自定义服务器名称。
- '"command": "node"': 指定用于启动服务器的命令。由于该服务器是 Node.js 应用,因此使用 'node' 命令。
- '"args": ["index.js"]': 指定传递给 'node' 命令的参数,这里是服务器的入口文件 'index.js'。
- '"env": {}': 允许你设置服务器运行时的环境变量。当前配置为空,表示不设置额外的环境变量。
- '"disabled": false': 设置为 'false' 表示启用该服务器。如果设置为 'true',客户端将不会连接到该服务器。
- '"autoApprove": []': 用于配置自动批准的工具列表。如果客户端请求调用的工具名称包含在此列表中,则无需用户手动批准即可执行。当前配置为空,表示所有工具调用都需要手动批准。
基本使用方法
配置完成后,MCP 客户端就可以通过 'dockerMcp' 这个服务器名称来调用 Docker MCP Server 提供的工具了。以下是一个使用示例,展示如何通过 '<use_mcp_tool>' 标签调用 'createConatinerByImage' 工具来创建一个新的 Docker 容器:
<use_mcp_tool> <server_name>dockerMcp</server_name> // 指定要使用的 MCP 服务器名称,这里是之前配置的 "dockerMcp" <tool_name>createConatinerByImage</tool_name> // 指定要调用的工具名称,这里是 "createConatinerByImage" <arguments> // 传递给工具的参数,以 JSON 格式表示 { "image_name": "nginx", // 要使用的 Docker 镜像名称 "tag": "latest" // 要使用的 Docker 镜像标签 } </arguments> </use_mcp_tool>
AI Agent 可以生成类似上述格式的指令,MCP 客户端解析这些指令后,会调用 Docker MCP Server 提供的相应工具,从而实现对 Docker 容器的管理。
信息
分类
开发者工具