🐋 Docker MCP 服务器
一个使用自然语言管理 Docker 的 MCP 服务器!
🪩 它能做什么?
- 🚀 使用自然语言编写容器
- 🔍 自省和调试正在运行的容器
- 📀 使用 Docker 卷管理持久数据
❓ 这是给谁的?
- 服务器管理员:连接到远程 Docker 引擎,例如管理面向公众的网站。
- 修补者:在本地运行容器并试验支持 Docker 的开源应用程序。
- 人工智能爱好者:突破法学硕士的极限!
演示
使用自然语言展示 WordPress 部署的快速演示:
https://github.com/user-attachments/assets/65e35e67-bce0-4449-af7e-9f4dd773b4b3
🏎️ 快速入门
安装
克劳德桌面
在 MacOS 上: ~/Library/Application\ Support/Claude/claude_desktop_config.json
在 Windows 上: %APPDATA%/Claude/claude_desktop_config.json
如果你没有安装uv
,请按照你的系统的安装说明进行操作:链接
然后将以下内容添加到您的 MCP 服务器文件中:
纯粹为了方便,服务器可以在 Docker 容器中运行。
克隆此存储库后,构建 Docker 镜像:
然后将以下内容添加到您的 MCP 服务器文件中:
请注意,我们将 Docker 套接字作为卷挂载;这确保 MCP 服务器可以连接并控制本地 Docker 守护进程。
📝 提示
docker_compose
使用自然语言编写容器。请参阅上面的演示。
提供项目名称和所需容器的描述,然后让 LLM 完成剩下的工作。
此提示指示LLM进入plan+apply
循环。你与LLM的互动将涉及以下步骤:
- 你给 LLM 指示要带上哪个容器
- LLM 计算出一个简洁的自然语言计划并呈现给你
- 您可以:
- 应用计划
- 向LLM提供反馈,LLM重新计算计划
示例
- 名称:
nginx
,容器:“部署一个 nginx 容器并将其暴露在端口 9000 上” - 名称:
wordpress
,容器:“部署一个 WordPress 容器和一个支持 MySQL 容器,在端口 9000 上公开 Wordpress”
恢复项目
当使用此提示开始新的聊天时,LLM 将收到使用给定项目name
创建的任何容器、卷和网络的状态。
这主要用于清理,以防您丢失负责许多容器的聊天。
📔 资源
服务器为每个容器实现了一些资源:
- 统计信息:容器的 CPU、内存等
- 日志:从容器中跟踪一些日志
🔨工具
容器
list_containers
create_container
run_container
recreate_container
start_container
fetch_container_logs
stop_container
remove_container
图片
list_images
pull_image
push_image
build_image
remove_image
网络
list_networks
create_network
remove_network
卷
list_volumes
create_volume
remove_volume
🚧 免责声明
敏感数据
**请勿在容器中配置敏感数据。**这些数据包括 API 密钥、数据库密码等。
除非 LLM 在您的本地机器上运行,否则与 LLM 交换的任何敏感数据本质上都会受到损害。
如果您有兴趣将机密安全地传递给容器,请在此存储库上提交您的用例问题。
审查已创建的容器
请仔细检查 LLM 创建的容器。Docker 并非安全沙盒,因此 MCP 服务器可能会通过 Docker 影响主机。
出于安全考虑,此 MCP 服务器不支持--privileged
或--cap-add/--cap-drop
等敏感 Docker 选项。如果您对这些功能感兴趣,请在此仓库中提交您的用例问题。
🛠️ 配置
此服务器使用 Python Docker SDK 的from_env
方法。有关配置详细信息,请参阅文档。
通过 SSH 连接到 Docker
该 MCP 服务器可以通过 SSH 连接到远程 Docker 守护进程。
只需在 MCP 服务器定义中设置ssh://
主机 URL:
💻 开发
最好使用 Devbox 来配置您的开发环境。
请参阅devbox.json
以获取有用的开发命令。
设置 devbox 后,您可以配置 Claude MCP 配置来使用它:
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server to run commands.Last updated -2265150TypeScriptMIT License
- AsecurityAlicenseAqualityA powerful Model Context Protocol (MCP) server for Docker operations, enabling seamless container and compose stack management through Claude AI.Last updated -4160PythonMIT License
- AsecurityAlicenseAqualityA MCP server for managing and storing code snippets in various programming languages, allowing users to create, list, and delete snippets via a standardized interface.Last updated -34JavaScriptMIT License
- AsecurityFlicenseAqualityAn MCP server implementation that enables interaction with the Unstructured API, providing tools to list, create, update, and manage sources, destinations, and workflows.Last updated -3928