Docker MCP工具
一个强大的模型上下文协议(MCP)服务器,用于Docker操作,通过Claude AI实现容器和组合堆栈的无缝管理。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"docker-mcp": {
"args": [
"docker-mcp"
],
"command": "uvx"
}
}
}
可用工具 (4 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
create-container 4 个参数 需填 1 项
Create a new standalone Docker container
必填参数:image
deploy-compose 2 个参数 需填 2 项
Deploy a Docker Compose stack
必填参数:compose_yaml、project_name
get-logs 1 个参数 需填 1 项
Retrieve the latest logs for a specified Docker container
必填参数:container_name
list-containers
List all Docker containers
该工具无需必填参数,直接调用即可
服务介绍
🐳 docker-mcp
一个强大的用于 Docker 操作的 Model Context Protocol (MCP) 服务器,通过 Claude AI 实现无缝容器和 compose 堆栈管理。
✨ 特性
- 🚀 容器创建和实例化
- 📦 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 Desktop 应用程序中尝试此功能,请将以下内容添加到您的 claude 配置文件中:
{
"mcpServers": {
"docker-mcp": {
"command": "uvx",
"args": [
"docker-mcp"
]
}
}
}
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 Docker MCP:
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
{
"mcpServers": {
"docker-mcp": {
"command": "uv",
"args": [
"--directory",
"<path-to-docker-mcp>",
"run",
"docker-mcp"
]
}
}
}
{
"mcpServers": {
"docker-mcp": {
"command": "uvx",
"args": [
"docker-mcp"
]
}
}
}
🛠️ 开发
本地设置
- 克隆仓库:
git clone https://github.com/QuantGeekDev/docker-mcp.git
cd docker-mcp
- 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- 安装依赖项:
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 容器
{}
🚧 当前限制
- 不支持内置环境变量
- 无卷管理
- 无网络管理
- 无容器健康检查
- 无容器重启策略
- 无容器资源限制
🤝 贡献
- 从 docker-mcp 仓库分叉
- 创建你的特性分支
- 提交你的更改
- 推送到分支
- 打开 Pull Request
📜 许可证
该项目根据 MIT 许可证许可 - 有关详细信息,请参阅 LICENSE 文件。
✨ 作者
- Alex Andru - 初始工作 | 核心贡献者 - @QuantGeekDev
- Ali Sadykov - 初始工作 | 核心贡献者 - @md-archive
Made with ❤️