Docker Compose容器管理服务

一个MCP(模型上下文协议)服务器,使Claude能够管理本地机器上的Docker Compose容器,提供容器更新、命令执行和错误处理功能。

  • by Krelborn
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Krelborn/docker-compose-mcp

使用说明

Docker编写MCP服务器

MCP(模型上下文协议)服务器,使Claude能够管理本地计算机上的Docker Compose容器。

特性

  • 更新容器:在一个命令中停止、提取最新图像和重新启动容器
  • 运行任何docker compose命令:执行任意docker compose命令
  • 安全错误处理:优雅的错误处理和详细的反馈

安装

  1. 安装依赖项:
npm install
  1. 构建TypeScript代码:
npm run build

Claude桌面配置

将此添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "docker-compose": {
      "command": "node",
      "args": [
        "/absolute/path/to/docker-compose-mcp-server/dist/index.js"
      ]
    }
  }
}

替换 /absolute/path/to/docker-compose-mcp-server 使用您保存此项目的实际路径。

用法示例

配置后,您可以通过Claude与Docker Compose交互:

更新容器

“在/Users/matt/Documents/chemdraw-js/chemdraw js-combed.yml更新我的chemdraw容器”

查看容器状态

“在/Users/matt/Documents/chemdraw-js/chemdraw-js-compose.yml中显示我的docker容器的状态”

查看日志

“显示docker容器中的日志”

重新启动容器

“重新启动我的撰写文件中的容器”

可用工具

docker_compose_update

通过以下方式更新Docker Compose容器:

  1. 停止运行容器(docker compose down)
  2. 提取最新图像(docker compose pull)
  3. 启动容器(docker compose up -d)

参数:

  • compose_file (string,必填):docker-compose.yml文件的绝对路径
  • detached (布尔值,可选):在分离模式下运行(默认值:true)

docker_compose_命令

执行任何docker compose命令。

参数:

  • compose_file (string,必填):docker-compose.yml文件的绝对路径
  • command (string,必填):运行Docker compose命令(例如,“ps”、“logs”、“restart”)

安全考虑

此MCP服务器使用运行Claude Desktop的用户的权限执行docker命令。确保您:

  • 仅使用受信任的合成文件
  • 了解正在执行的命令
  • 在确认破坏性操作之前,请先查看克劳德建议的命令

发展

开发观察模式:

npm run dev

故障排除

“docker:找不到”

确保Docker已安装并位于您的PATH中。通过运行进行测试 docker --version 在你的终端。

“权限被拒绝”

确保您的用户有权运行Docker命令。在Linux上,您可能需要将用户添加到 docker 集团。

“找不到模块”

确保你已经跑过了 npm run build 在启动服务器之前。

许可证

麻省理工学院