返回市场
docker-mcp容器服务

docker-mcp容器服务

作者:QuantGeekDev423 星标更新:2024-12-14

项目介绍

🐳 docker-mcp

Python 3.12 License: MIT Code style: black smithery badge

一个强大的用于Docker操作的Model Context Protocol (MCP)服务器,通过Claude AI实现无缝的容器和堆栈管理。

✨ 特性

  • 🚀 容器创建与实例化
  • 📦 Docker Compose堆栈部署
  • 🔍 容器日志检索
  • 📊 容器列表及状态监控

🎬 演示

部署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桌面应用中尝试此功能,请在您的Claude配置文件中添加以下内容:

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

通过Smithery安装

要通过Smithery自动安装Docker MCP到Claude桌面:

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

先决条件

  • UV(包管理器)
  • Python 3.12+
  • Docker Desktop或Docker Engine
  • Claude Desktop

安装

Claude Desktop配置

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

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

<details> <summary>💻 开发配置</summary>
{
  "mcpServers": {
    "docker-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "<path-to-docker-mcp>",
        "run",
        "docker-mcp"
      ]
    }
  }
}
</details> <details> <summary>🚀 生产配置</summary>
{
  "mcpServers": {
    "docker-mcp": {
      "command": "uvx",
      "args": [
        "docker-mcp"
      ]
    }
  }
}
</details>

🛠️ 开发

本地设置

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

🔍 调试

启动MCP Inspector进行调试:

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

Inspector将提供一个URL以访问调试界面。

📝 可用工具

该服务器提供了以下工具:

create-container

创建独立的Docker容器

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

deploy-compose

部署Docker Compose堆栈

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

get-logs

从特定容器检索日志

{
    "container_name": "my-container"
}

list-containers

列出所有Docker容器

{}

🚧 当前限制

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

🤝 贡献

  1. docker-mcp分叉仓库
  2. 创建您的功能分支
  3. 提交更改
  4. 推送到分支
  5. 打开Pull Request

📜 许可证

本项目采用MIT许可证 - 查看LICENSE文件获取详细信息。

✨ 作者

  • Alex Andru - 初始工作 | 核心贡献者 - @QuantGeekDev
  • Ali Sadykov - 初始工作 | 核心贡献者 - @md-archive

由❤️制作