Docker容器管理协议

一个强大的模型上下文协议(MCP)服务器,用于通过Claude AI实现无缝的Docker容器和Compose堆栈管理。

  • by QuantGeekDev
  • Python
  • 本地部署
  • 504 星标
  • 更新于
在 GitHub 查看 QuantGeekDev/docker-mcp

使用说明

🐳 docker mcp

用于Docker操作的强大模型上下文协议(MCP)服务器,通过Claude AI实现无缝容器和组合堆栈管理。

✨ 特性

  • 🚀 容器创建和实例化
  • 📦 Docker编写堆栈部署
  • 🔍 容器日志检索
  • 📊 集装箱清单和状态监控

🎬 德莫斯

部署Docker Compose堆栈

https://github.com/user-attachments/assets/b5f6e40a-542b-4a39-ba12-7fdf803ee278

分析容器日志

https://github.com/user-attachments/assets/da386eea-2fab-4835-82ae-896de955d934

🚀 快速启动

要在Claude Desktop应用程序中尝试此操作,请将其添加到您的Claude配置文件中:

{
  "mcpServers": {
    "docker-mcp": {
      "command": "uvx",
      "args": [
        "docker-mcp"
      ]
    }
  }
}

通过Smithery安装

通过以下方式自动安装Docker MCP for Claude Desktop 史密瑟里:

npx @smithery/cli install docker-mcp --client claude

先决条件

  • UV(包管理器)
  • Python 3.12+
  • Docker桌面或Docker引擎
  • 克劳德桌面

安装

Claude桌面配置

将服务器配置添加到Claude Desktop配置文件中:

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

💻 Development Configuration
{
  "mcpServers": {
    "docker-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "<path-to-docker-mcp>",
        "run",
        "docker-mcp"
      ]
    }
  }
}
🚀 Production Configuration
{
  "mcpServers": {
    "docker-mcp": {
      "command": "uvx",
      "args": [
        "docker-mcp"
      ]
    }
  }
}

🛠️ 发展

本地设置

  1. 克隆存储库:
git clone https://github.com/QuantGeekDev/docker-mcp.git
cd docker-mcp
  1. 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装依赖项:
uv sync

🔍 调试

启动MCP检查器进行调试:

npx @modelcontextprotocol/inspector uv --directory <path-to-docker-mcp> run docker-mcp

检查器将提供一个URL来访问调试界面。

📝 可用工具

服务器提供以下工具:

创建容器

创建独立的Docker容器

{
    "image": "image-name",
    "name": "container-name",
    "ports": {"80": "80"},
    "environment": {"ENV_VAR": "value"}
}

部署组合

部署Docker Compose堆栈

{
    "project_name": "example-stack",
    "compose_yaml": "version: '3.8'\nservices:\n  service1:\n    image: image1:latest\n    ports:\n      - '8080:80'"
}

获取日志

从特定容器检索日志

{
    "container_name": "my-container"
}

列出容器

列出所有Docker容器

{}

🚧 当前限制

  • 容器没有内置的环境变量支持
  • 无卷管理
  • 无网络管理
  • 无容器健康检查
  • 无容器重启策略
  • 没有容器资源限制

🤝 贡献

  1. 从以下位置分叉存储库 docker mcp
  2. 创建功能分支
  3. 提交您的更改
  4. 推到分支
  5. 打开拉取请求

📜 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

✨ 作者

  • 亚历克斯·安德鲁 - 初步工作|核心贡献者 - @QuantGeekDev
  • 阿里·萨迪科夫 - 初步工作|核心贡献者 - @md存档

由以下材料制成❤️