MCP

Docker Hub MCP:先发现镜像,再决定要不要带令牌管仓库

适合要让模型查 Docker Hub 镜像并在授权后管仓库的人,但 HTTP 一旦带上操作者令牌,能碰到该入口的人就能创建和修改仓库。

官方来源 · Docker Hub MCP Server

安装

npm install && npm run build && npm start

适合谁

需要让模型通过 Docker Hub API 做镜像内容发现,并在带上个人访问令牌后管理仓库的人。适合本机已安装 Docker、具备 Node.js 22+,并且能接受「令牌可选、但一旦用 HTTP 带上 HUB_PAT_TOKEN,能碰到该入口的人就能以该身份创建和修改仓库」这一前提的操作者。不适合只想看网页目录、或计划把 HTTP 端口暴露到网络却未读过源码安全说明的人。官方页面: https://github.com/docker/hub-mcp

3 分钟完成第一次尝试

只走一条官方路径:在仓库根目录构建后,用默认 stdio 启动。第一次不要改成 http。

前置条件:已安装 Docker,以及 Node.js 22+。个人访问令牌是可选的;第一次尝试不要把令牌绑到 HTTP 传输。

安装与启动位置:打开官方仓库根目录,执行:

npm install
npm run build
npm start

源码默认传输是 stdio,也允许 npm start -- [--transport=http|stdio] [--port=3000] [--host=127.0.0.1]。第一次保持默认即可。

低风险动作:让 MCP 客户端连上 stdio 进程后,只做内容发现方向的调用。摘录只写了 intelligent content discovery 与 repository management,没有给出具体工具名或参数,因此不要编造查询命令;以客户端列出的工具为准,优先选名称像发现/查询、而不是创建或修改的那一个。

成功信号:npm start 在默认 stdio 下保持运行,客户端能列出工具,而不是立刻因未构建或 Node 版本不足退出。若进程马上结束,先核对 Node.js 22+ 和 npm run build 是否完成。

使用案例

案例一:公开内容发现。对应源码「interfaces with Docker Hub APIs」以及「intelligent content discovery」。在默认 stdio、且未强制要求令牌的前提下,用客户端发起一次发现类调用。证据没有写出工具名、过滤参数或返回字段,所以只能确认调用是否打到 Docker Hub API,以及客户端是否返回结果或明确的 API 错误;不要假设存在某种搜索语法。

案例二:仓库管理,有副作用。源码写明 http 传输会用操作者的 HUB_PAT_TOKEN 派发每一次工具调用,能触达该 HTTP 入口的人都可以 creating and modifying repositories。若必须管理仓库,先在本机为进程提供令牌再启动,源码示例是 HUB_PAT_TOKEN=... npm start -- [--username=...];确认客户端连的是你自己的进程、且 HTTP 仍只绑在 127.0.0.1 之后,再发起创建或修改。确认点:Docker Hub 上对应仓库出现预期变更。证据没有列出仓库管理工具的参数表,缺的部分只能停在「具备创建/修改仓库的能力」。

使用边界

HTTP 默认绑定 127.0.0.1,并且要求认证;源码要求在暴露到网络前先看 Securing the HTTP transport。不要把未加固的 HTTP 当作共享入口。

一旦 HTTP 带着操作者令牌被别人碰到,对方就能以该 Docker Hub 身份创建和修改仓库。只读提示也不等于零风险:进程会访问 Docker Hub API,也会按你提供的令牌行事。

令牌在前置里是可选的,但摘录没有写清未认证时能看到哪些私有内容;不要假设一定能读私有仓库。

证据未给出客户端名单,也未给出完整 MCP 工具清单;不要按其他 Hub 插件补命令。需要 Docker 与 Node.js 22+,缺其一不要改用未在摘录中出现的安装方式。