🐳 docker-mcp
一个强大的模型上下文协议(MCP)服务器,用于Docker操作,通过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桌面应用中尝试此功能,请将以下内容添加到您的claude配置文件中:
{
"mcpServers": {
"docker-mcp": {
"command": "uvx",
"args": [
"docker-mcp"
]
}
}
}
通过Smithery安装
要通过Smithery自动为Claude桌面应用安装Docker MCP:
npx @smithery/cli install docker-mcp --client claude
前置条件
- UV(包管理器)
- Python 3.12+
- Docker桌面版或Docker引擎
- Claude桌面版
安装
Claude桌面版配置
将服务器配置添加到您的Claude桌面版配置文件中:
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 # 在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
用❤️制作