
最近所有 AI 编程工具都在接 MCP。
Cursor 接 GitHub,Claude 接文件系统,Codex 接 Docker,VS Code 接数据库。看起来工具越多,Agent 越能干活。
但这里有一个很容易被忽略的问题:MCP 不是玩具插件,它是让模型能调用真实外部系统的通道。
一旦你把 GitHub、文件系统、数据库、浏览器自动化、云服务 API 都塞给 Agent,它就不只是“会帮你写代码”了。它也可能误删文件、误发请求、读取 token、把不该发出去的数据发出去。
Docker 这次推 AI Governance 和 MCP Toolkit,最值得看的不是营销词,而是一个很朴素的判断:Agent 真正危险的地方只有两条路径。
第一,它自己执行代码,碰文件系统和网络。第二,它通过 MCP server 调外部工具,替你操作真实系统。
管住这两条路,才算管住 Agent。
Docker AI Governance 更偏企业场景:管理员在控制台里定义策略,覆盖网络、文件系统、凭据、MCP tools,再把策略推到团队机器、CI 和云环境。
个人开发者今天更现实的入口,是 Docker MCP Toolkit。
官方文档里对它的定位很明确:用 Docker Desktop 管理容器化 MCP server,把它们放进 profile,再连接到 Claude Code、Codex、Cursor、Gemini、VS Code 等客户端。
这解决了 MCP 的第一个混乱点:不要让每个 AI 客户端各自跑一堆 server。
传统接法大概是这样:
1Cursor -> filesystem MCP2Claude -> GitHub MCP3Codex -> Docker MCP4VS Code -> 另一个 filesystem MCP每个客户端都有一份配置,每份配置都可能有 token、路径、命令。时间一长,你根本不知道哪一个 server 在跑、哪个 token 还有效、哪个项目暴露了哪个目录。
Docker MCP Toolkit 的思路是换成:
1Cursor / Claude / Codex / VS Code2 |3 v4 Docker MCP Gateway5 |6 v7 profile 里的容器化 MCP serversAI 客户端只连 Gateway,MCP server 的生命周期、路由、认证和容器隔离交给 Docker 管。
如果你已经装了 Docker Desktop,最小路径不复杂。
第一步,升级到 Docker Desktop 4.62 或更新版本。官方文档说明,MCP Toolkit 页面对应的是 4.62 及之后的界面。
第二步,打开 Docker Desktop 设置里的 Beta features,启用 Docker MCP Toolkit。
第三步,创建 profile。
不要所有项目共用一个 default profile。我建议按项目拆:
1profile: blog-writing2 - filesystem MCP: 只读 output/ 和 references/34profile: github-review5 - GitHub MCP: 只允许读 issue、PR、diff67profile: local-dev8 - filesystem MCP9 - Docker MCP10 - shell 类工具谨慎开启第四步,从 MCP Catalog 里把需要的 server 加进 profile。遇到 Configuration Required 标记时,先补必填配置,不要跳过。
第五步,把 AI 客户端连到 Gateway。
如果客户端列表里没有你的工具,可以手动通过 stdio 接入:
1docker mcp gateway run --profile my_profile一个典型 JSON 配置长这样:
1{2"servers":{3"MCP_DOCKER":{4"command":"docker",5"args":["mcp","gateway","run","--profile","my_profile"],6"type":"stdio"7}8}9}Codex 侧可以用下面命令确认状态:
1codex mcp list如果看到 MCP_DOCKER 是 enabled,说明客户端已经能通过 Gateway 调 profile 里的 MCP server。
Docker MCP Gateway 最关键的不是“统一入口”,而是把 MCP server 变成了可管理的运行时对象。
官方文档里写到,Gateway 会在隔离的 Docker 容器里运行 MCP server,并限制权限、网络访问和资源使用。AI 应用需要调用某个工具时,请求先到 Gateway,Gateway 决定哪个 server 处理;如果 server 没运行,就启动对应容器;然后注入必要凭据、应用安全限制,再把请求转发过去。
这比你在本机裸跑 node server.js 或 python mcp_server.py 稳太多。
裸跑 MCP 的问题有三个:
依赖污染:每个 server 都要装 Node、Python、包管理器和一堆库; 权限过大:server 往往继承当前用户权限,能读到很多不该读的目录; 不可审计:你很难复盘某次 Agent 到底调用了哪个 server、传了什么参数。
Gateway 至少把这些东西收束到一个 chokepoint。所有工具调用先过这里,才有机会做认证、授权、日志和策略。
这也是 Docker AI Governance 的底层逻辑。
Docker 官方博客把 AI Governance 的控制面拆成四类:网络、文件系统、凭据、MCP tools。
这四个词很朴素,但正好覆盖 Agent 失控时最常见的事故。
Agent 能不能访问公网?能不能访问内网 IP?能不能请求某个生产 API?
如果你让 Agent 一边读客户数据,一边能随便访问外部 URL,本质上就是给了它一条数据外流路径。
企业级 Governance 可以用 allow/deny 规则控制域名、IP、CIDR。个人用户虽然未必有控制台,但至少可以通过 Docker 网络、代理和 profile 把不同项目的工具隔开。
Agent 能挂载哪些目录?只读还是读写?
这是个人开发者最容易翻车的地方。很多 filesystem MCP 教程一上来就让你开放整个 home 目录。这样确实省事,但也等于把 SSH key、浏览器配置、历史项目、备份文件都暴露给了模型工具链。
更合理的做法是:每个项目只挂载当前 repo,能只读就只读,需要写入再给写入。
Agent 的危险程度,取决于它能拿到什么 token。
GitHub token、Docker Hub token、云厂商 AK/SK、数据库连接串,只要进入 MCP server 或客户端配置,就必须假设模型有机会间接触达它们。
Docker AI Governance 的企业方案会控制哪些凭据能被 Agent session 看见,并限制生命周期。个人用户至少要做到两点:不要把 token 写进 prompt,不要把 MCP 配置提交到 Git。
不是所有工具都应该对所有任务开放。
写文章时,Agent 可能只需要读文件和检索资料;修 bug 时,可能需要 GitHub 和测试命令;部署时才需要 Docker 或云服务。
最好的工具策略不是“全都接上”,而是按 profile 拆小集合。
1写作 profile:filesystem(read-only) + web/search2代码 review profile:GitHub(read) + filesystem(read-only)3本地开发 profile:filesystem(rw) + Docker + test command4生产运维 profile:默认不要给 Agent工具越少,模型越不容易误选,出事后也更容易定位。
🚨 踩坑提醒
第一,Docker AI Governance 更偏组织级产品,不要把它写成个人用户点几下就能完整拥有的免费功能。个人能马上落地的是 Docker MCP Toolkit、profiles 和 Gateway。
第二,MCP 配置里经常有 token、路径和命令参数。无论是 Cursor、Codex 还是 Claude 的 MCP JSON,都应该进 .gitignore,不要上传公开仓库。
第三,不要一次暴露几十个 MCP server。工具太多不是能力强,而是决策噪声变大。先给 Agent 最少工具,确认任务跑通,再补新工具。
如果你只是个人开发者,今天最值得抄的是这一套:
Docker Desktop 开启 MCP Toolkit; 每个项目单独建 profile; 文件系统 server 默认只读; GitHub token 只给最小权限; Codex/Cursor 统一通过 docker mcp gateway run --profile xxx接入;所有 MCP 配置文件加入 .gitignore;生产数据库、生产部署、云厂商高权限 token 暂时不要给 Agent。
这套方案不会让你的 Agent 突然变聪明,但会让它更可控。
AI 编程工具接 MCP,是为了让模型能干真实工作。
但真实工作一定伴随真实权限。
我现在更愿意把 MCP 看成一组“临时发放的工牌”,而不是一串永久钥匙。每个任务只发它需要的那张,干完就收回。Docker 的 MCP Toolkit 和 Gateway,至少给了我们一个能开始这样管理的入口。
素材来源:
Docker AI Governance 官方博客:https://www.docker.com/blog/docker-ai-governance-unlock-agent-autonomy-safely/ Docker MCP Toolkit 入门文档:https://docs.docker.com/ai/mcp-catalog-and-toolkit/get-started/ Docker MCP Gateway 文档:https://docs.docker.com/ai/mcp-catalog-and-toolkit/mcp-gateway/
夜雨聆风