Docker MCP Server
一个 MCP 服务器,允许通过自然语言管理 Docker 容器,使用户无需亲自运行命令即可组合、检查和调试容器。 (Alternative, slightly more formal and technical): 一个 MCP 服务器,它允许通过自然语言来管理 Docker 容器。用户可以通过自然语言进行容器的编排、内省和调试,而无需直接执行命令。
README
🐋 Docker MCP 服务器
一个用自然语言管理 Docker 的 MCP 服务器!
🪩 它能做什么?
- 🚀 用自然语言编写容器
- 🔍 检查和调试正在运行的容器
- 📀 使用 Docker 卷管理持久性数据
❓ 它是为谁准备的?
- 服务器管理员:连接到远程 Docker 引擎,例如管理面向公众的网站。
- 喜欢摆弄的人:在本地运行容器并试验支持 Docker 的开源应用程序。
- AI 爱好者:突破 LLM 的能力极限!
演示
一个快速演示,展示了使用自然语言部署 WordPress:
https://github.com/user-attachments/assets/65e35e67-bce0-4449-af7e-9f4dd773b4b3
🏎️ 快速开始
安装
Claude Desktop
在 MacOS 上:~/Library/Application\ Support/Claude/claude_desktop_config.json
在 Windows 上:%APPDATA%/Claude/claude_desktop_config.json
<details> <summary>使用 uv 从 PyPi 安装</summary>
如果您没有安装 uv
,请按照您系统的安装说明进行操作:
link
然后将以下内容添加到您的 MCP 服务器文件中:
"mcpServers": {
"mcp-server-docker": {
"command": "uvx",
"args": [
"mcp-server-docker"
]
}
}
</details>
<details> <summary>使用 Docker 安装</summary>
纯粹为了方便起见,服务器可以在 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 socket 挂载为卷;这确保了 MCP 服务器可以连接到并控制本地 Docker 守护程序。
</details>
📝 提示词
🎻 docker_compose
使用自然语言来编写容器。参见上面的演示。
提供一个项目名称,以及对所需容器的描述,然后让 LLM 完成剩下的工作。
此提示指示 LLM 进入 plan+apply
循环。您与 LLM 的交互将涉及以下步骤:
- 您向 LLM 提供有关要启动哪些容器的说明
- LLM 计算出一个简洁的自然语言计划并将其呈现给您
- 您可以:
- 应用该计划
- 向 LLM 提供反馈,LLM 重新计算该计划
示例
- name:
nginx
, containers: "部署一个 nginx 容器,将其暴露在端口 9000 上" - name:
wordpress
, containers: "部署一个 WordPress 容器和一个支持的 MySQL 容器,将 Wordpress 暴露在端口 9000 上"
恢复项目
当使用此提示开始新的聊天时,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 在您的本地计算机上运行。
如果您有兴趣安全地将密钥传递给容器,请在此存储库上提交一个 issue,说明您的用例。
审查创建的容器
请务必审查 LLM 创建的容器。 Docker 不是一个安全的沙箱,因此 MCP 服务器可能会通过 Docker 影响主机。
出于安全原因,此 MCP 服务器不支持敏感的 Docker 选项,例如 --privileged
或 --cap-add/--cap-drop
。 如果您对这些功能感兴趣,请在此存储库上提交一个 issue,说明您的用例。
🛠️ 配置
此服务器使用 Python Docker SDK 的 from_env
方法。 有关配置详细信息,请参见文档。
💻 开发
首选使用 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"
]
},
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。