labs-ai-tools-for-devs
Docker 官方的 MCP 工具发现与对话循环平台,用 Markdown 编写 AI 工作流
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Docker 官方的 MCP 工具发现与对话循环平台,用 Markdown 编写 AI 工作流
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2024 年,当 MCP(Model Context Protocol)协议开始走红时,Docker 官方实验室(Docker Labs)推出了一个极具想象力的实验项目——docker/labs-ai-tools-for-devs。这个项目的核心理念大胆而简洁:把 AI 工具做成 Docker 容器,用 Markdown 文件编写提示词,通过对话循环让大语言模型调用这些工具。
你可以把它理解为「给 AI 编程工具用的效率装备包」——开发者只需写 Markdown,LLM 就能自动执行 Docker 容器中的工具,完成代码审查、文件生成、Docker Compose 编写等各种开发任务。
2026 年,Docker 官方宣布将 MCP 功能直接集成进 Docker Desktop,这个独立实验项目随之被标记为 deprecated(已废弃),但它留下的架构思想和代码遗产,依然值得深入研究。
项目最独特的设计哲学是「Prompt as a Tool」。传统的 AI 编程工具需要复杂的代码集成,而 labs-ai-tools-for-devs 只需一个 Markdown 文件就能定义一个工具行为。
以 prompts/compose-gen.md 为例——它告诉 LLM 如何根据用户需求生成 Docker Compose 配置。LLM 读到这份 Markdown 后,在对话循环中自动调用对应的 Docker 容器执行任务。Prompts 存储在 Git 仓库中,支持版本控制和团队共享,这比硬编码的工具链配置灵活得多。
整个系统的运转依赖一个精心设计的对话循环:
这个循环让 AI 具有了「试错」能力——如果某个工具参数不对,LLM 会自动换一个工具或调整参数重试,直到得到正确结果。
项目包含一个 extractors/ 子系统,其核心是一个 Docker 镜像,运行在目标项目目录下,自动提取项目信息为 JSON 上下文。这意味着 AI 在处理任何代码库时,都能自动获得语言、依赖、目录结构等背景信息,而无需手动输入。
不同 prompt 可以配置不同的 LLM 模型。重量级前沿模型(如 GPT-4o、Claude)负责规划和决策,轻量级本地模型(如 Ollama 驱动的 Llama)负责执行简单任务。Docker 天然支持这种异构计算——用 docker run 拉起不同容器里的模型即可。
项目主体用 Clojure 编写,这是一个运行在 JVM 上的函数式 Lisp 方言,擅长处理数据转换和并发逻辑。关键依赖包括:
docker/curl/git 等系统命令26 个 src/*.clj 文件覆盖了完整的功能模块:MCP 协议服务器(src/mcp/)、JSON-RPC 实现(src/jsonrpc/)、Docker 操作(src/docker/)、Git 集成(git.clj)、Prompts 管理(prompts.clj)等。
项目实现了完整的 MCP 服务器端,支持两种传输方式:
compose.yaml 中的 --transport sse 开启最终交付的 Docker 镜像采用 Nix 包管理器构建(multi-stage build:从 Nix 基础镜像编译,到 scratch 极简镜像),最终产物只有 /nix/store(所有依赖)和 /app/result(入口符号链接),镜像体积极小。
项目提供了 Dockerfile 和 compose.yaml,上手路径有两条:
路径一:VSCode 扩展(推荐)
安装实验室发布的 VSCode 扩展(.vsix),设置 OpenAI API Key,选择目标项目目录,运行 Docker AI: Run Prompt 即可启动对话循环。扩展自动处理 Docker 容器生命周期。
路径二:CLI
手动执行 docker run 命令,挂载 Docker socket 和 API Key volume,通过 --register 参数注册 Git 仓库中的 prompt 文件。适合 CI/CD 流水线集成。
/var/run/docker.sock)无 GPU 要求,纯 CPU 运行,RAM 需求约 1GB,磁盘 500MB。
2026 年,Docker 官方宣布项目 deprecated,推荐用户迁移到 Docker Desktop 内置 MCP Toolkit。背后有几层原因:
1. 维护成本高:用 Clojure + Nix 构建的工具链,对外部贡献者门槛较高 2. 用户体验问题:VSCode 扩展 + CLI 的上手路径,对非技术用户不够友好 3. 标准化趋势:MCP 协议生态迅速成熟,Docker 选择将 MCP 直接集成到 Desktop 产品中,而不是维护一个独立实验项目
对于已经在用这个项目的团队,建议尽快迁移到 Docker Desktop MCP Toolkit。但如果你对 MCP 协议的底层实现感兴趣,这个项目源码依然是极好的学习素材——它展示了如何用 Clojure 构建完整的 MCP 服务器、处理 JSON-RPC 通信、管理 Docker 容器化的工具生态。
docker/labs-ai-tools-for-devs 代表了 AI 开发工具领域的一个重要方向:工具容器化 + Prompt 脚本化。虽然项目本身被废弃,但它验证了几个核心命题:
这些设计思想已被 MCP 生态广泛采纳,影响了包括 Claude Desktop、Cursor IDE 在内的多个主流产品的工具集成方案。