连接 Docker MCP Toolkit
使用 docker mcp client connect --global codex 连接本地网关,服务名为 MCP_DOCKER。网关采用 stdio,服务器授权在 Docker Desktop 中完成。
Docker Desktop 的 MCP Toolkit 文档包含 Codex 配置说明。它不是远程 HTTP,也不是 Docker Hub REST。本机网关走 stdio,官方用户层表名是 MCP_DOCKER。Codex 只认全局配置,docker mcp client connect 必须带 --global(或 -g),漏了会报 codex only supports global configuration。
先装 Docker Desktop 4.62 或以上。Settings → Beta features → Enable Docker MCP Toolkit,再 Apply。只要 Engine、没有 docker mcp 插件不够。在 Toolkit 里建 profile、从 Catalog 加服务器;需要 OAuth 的服务器在 Desktop 里授权,不要对网关这张表跑 codex mcp login。
主路径用 Desktop:MCP Toolkit → Clients → 找到 Codex → Connect。CLI 等价:
docker mcp client connect --global codex
codex mcp list
指定 profile(官方 CLI 示例常用 web-dev):
docker mcp client connect --global --profile web-dev codex
官方核对 codex mcp list 应看到 MCP_DOCKER,Command 是 docker,Args 是 mcp gateway run,Status 是 enabled,Auth 列是 Unsupported。那是预期:网关自己不走 Codex 的 OAuth 探活。
手写等价(已经 connect 过就不要再 add 一张同名表):
codex mcp add MCP_DOCKER -- docker mcp gateway run
[mcp_servers.MCP_DOCKER]
command = "docker"
args = ["mcp", "gateway", "run"]
enabled = true
startup_timeout_sec = 60
指定 profile 时 args 写成 ["mcp", "gateway", "run", "--profile", "web-dev"]。网关冷启动大约 15–25 秒,默认握手 10 秒不够,所以加 startup_timeout_sec = 60。这是 stdio,不要写 url,也
断开:
docker mcp client disconnect --global codex
Catalog 里常见 Playwright、GitHub 一类服务器。官方测试句是 codex "Use the GitHub MCP server to show me my open pull requests",前提是 profile 里已经加了 GitHub 并完成授权。Playwright 走 Toolkit 时由网关拉容器,无需重复添加 playwright stdio 表指向 npx @playwright/mcp。
相关连接方式:
- 2025 年 10 月那篇 Docker 博客写
docker mcp-client configure codex,命令已经作废,现行是docker mcp client connect。 - VS Code 可以
docker mcp client connect vscode写项目级.vscode/mcp.json。Codex 没有项目级 connect,不要漏--global,也不要把那份 JSON 贴进config.toml。 - GitHub issue 里有人把表名写成
docker-mcp-gateway。官方文档和mcp list示例都是MCP_DOCKER。 - 这不是 Composio / 第三方 Docker Hub MCP,也不是给 Codex 发明
plugin add docker@。
which docker 找不到时,把 command 写成 Desktop 的 docker 绝对路径;Windows + WSL 常要指向 docker.exe。路径带空格时让 Codex 自己写进 TOML,不要拆成两个 args。保持工具批准。
网页 Cloud 不读取 ~/.codex/config.toml。配置后重新打开会话。用 codex mcp get MCP_DOCKER 看传输是 stdio,command 是 docker。