Docker MCP Server

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 的交互将涉及以下步骤:

  1. 您向 LLM 提供有关要启动哪些容器的说明
  2. LLM 计算出一个简洁的自然语言计划并将其呈现给您
  3. 您可以:
    • 应用该计划
    • 向 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

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

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

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript