Skip to main content
Glama

🐋 Docker MCP 服务器

一个使用自然语言管理 Docker 的 MCP 服务器!

🪩 它能做什么?

  • 🚀 使用自然语言编写容器

  • 🔍 自省和调试正在运行的容器

  • 📀 使用 Docker 卷管理持久数据

Related MCP server: ChatGPT MCP Server

❓ 这是给谁的?

  • 服务器管理员:连接到远程 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 服务器文件中:

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

纯粹为了方便,服务器可以在 Docker 容器中运行。

克隆此存储库后,构建 Docker 镜像:

docker build -t mcp-server-docker .

然后将以下内容添加到您的 MCP 服务器文件中:

"mcpServers": { "mcp-server-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/var/run/docker.sock:/var/run/docker.sock", "mcp-server-docker:latest" ] } }

请注意,我们将 Docker 套接字作为卷挂载;这确保 MCP 服务器可以连接并控制本地 Docker 守护进程。

📝 提示

docker_compose

使用自然语言编写容器。请参阅上面的演示。

提供项目名称和所需容器的描述,然后让 LLM 完成剩下的工作。

此提示指示LLM进入plan+apply循环。你与LLM的互动将涉及以下步骤:

  1. 你给 LLM 指示要带上哪个容器

  2. LLM 计算出一个简洁的自然语言计划并呈现给你

  3. 您可以:

    • 应用计划

    • 向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:

"mcpServers": { "mcp-server-docker": { "command": "uvx", "args": [ "mcp-server-docker" ], "env": { "DOCKER_HOST": "ssh://myusername@myhost.example.com" } } }

💻 开发

最好使用 Devbox 来配置您的开发环境。

请参阅devbox.json以获取有用的开发命令。

设置 devbox 后,您可以配置 Claude MCP 配置来使用它:

"docker": { "command": "/path/to/repo/.devbox/nix/profile/default/bin/uv", "args": [ "--directory", "/path/to/repo/", "run", "mcp-server-docker" ] },
-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ckreiling/mcp-server-docker'

If you have feedback or need assistance with the MCP directory API, please join our Discord server