SuperAPI AI 工具集

pp-docker-hub

部署与运维

查看项目

更新于 10-15 12:31

技能介绍

用途

pp-docker-hub 是一个面向 Docker Hub 的 Printing Press 只读命令行工具,用于检查和检索 Docker Hub 上的公开仓库信息,例如搜索容器镜像、浏览标签、查看镜像大小、检查 Dockerfile 以及探索仓库元数据。它基于 Docker Hub 公共 API。

该工具驱动 docker-hub-pp-cli 二进制,属于只读命令集,显式不支持创建、更新、删除、发布、评论、点赞、邀请、下单、发送消息或改变远端状态等请求。

主要能力

  • 全文搜索:通过 docker-hub-search 在所有 Docker Hub 仓库中进行全文搜索,返回名称、描述、星标数和拉取次数。
  • 仓库元数据:通过 repositories <namespace> <repository> 获取指定仓库的完整元数据,包括拉取次数、星标数、描述和最后更新时间。
  • 能力查询:通过 which "<自然语言能力描述>" 将能力描述解析为最匹配的命令。退出码 0 表示至少有一个匹配,退出码 2 表示没有确信匹配,可回退到 --help 或使用更窄的查询。
  • Agent 模式:在任意命令后添加 --agent,等价于 --json --compact --no-input --no-color --yes。
  • 字段筛选:--select 保留部分字段,支持点路径进入嵌套结构,数组按元素遍历。
  • 干跑预览:--dry-run 显示请求而不实际发送。
  • 离线友好:在本地 SQLite 存储可用时,sync/search 命令可使用本地存储。
  • 非交互式:从不提示,所有输入均为标志。
  • 输出投递:所有命令接受 --deliver <sink>,sink 支持 stdout(默认)、file:<path>(原子写入 tmp + rename)、webhook:<url>(POST output body,application/json 或 --compact 时 application/x-ndjson)。未知 scheme 会以结构化错误拒绝,webhook 失败返回非零并在 stderr 记录 URL 和 HTTP 状态。
  • 命名配置档案:profile 是一组保存的 flag 值,可在多次调用间复用。支持 profile save/list/show/delete。显式 flag 优先于 profile 值,profile 值优先于默认值。agent-context 在 available_profiles 下列出所有可用 profile。
  • 反馈记录:feedback 命令可在本地记录使用中的意外情况,默认仅本地存储于 ~/.docker-hub-pp-cli/feedback.jsonl,除非设置 DOCKER_HUB_FEEDBACK_ENDPOINT 并传入 --send 或设置 DOCKER_HUB_FEEDBACK_AUTO_SEND=true,否则永不 POST。

使用方式

安装:使用 Printing Press 安装器,二进制默认安装到 macOS/Linux 的 $HOME/.local/bin 和 Windows 的 %LOCALAPPDATA%\Programs\PrintingPress\bin:

npx -y @mvanhorn/printing-press-library install docker-hub --cli-only

验证:docker-hub-pp-cli --version

若 npx 安装失败(无 Node、离线等),可回退到直接 Go 安装(需 Go 1.26.6 或更新版本):

go install github.com/mvanhorn/printing-press-library/library/developer-tools/docker-hub/cmd/docker-hub-pp-cli@latest

若安装后 --version 报 "command not found",说明运行时的 $PATH 中看不到二进制目录,需先解决验证问题再使用本工具命令。

认证:无需认证。可运行 docker-hub-pp-cli doctor 验证设置。

示例:

docker-hub-pp-cli docker-hub-search --agent --select id,name,status
docker-hub-pp-cli which "<capability in your own words>"
docker-hub-pp-cli repositories <namespace> <repository>

响应信封:从本地存储或 API 读取的命令将输出包裹在 provenance 信封中:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

解析 .results 获取数据,.meta.source 判断是 live 还是 local。仅当 stdout 是终端时,人类可读的 "N results (live)" 摘要才打印到 stderr;管道/agent 消费者在 stdout 得到纯 JSON。

退出码:0 成功;2 用法错误(参数错误);3 资源未找到;5 API 错误(上游问题);7 速率受限(等待并重试);10 配置错误。

参数解析:空、help 或 --help 显示帮助输出;以 install 开头且以 mcp 结尾为 MCP 安装,否则参见安装说明;其他直接以 --agent 执行 CLI 命令。

MCP 服务器安装:

go install github.com/mvanhorn/printing-press-library/library/other/docker-hub-pp-cli/cmd/docker-hub-pp-mcp@latest

注册到 Claude Code:

claude mcp add docker-hub-pp-mcp -- docker-hub-pp-mcp

验证:claude mcp list

适用场景

  • 搜索并发现 Docker Hub 上的容器镜像。
  • 查看特定仓库的标签、大小与元数据。
  • 在 agent 工作流中以纯 JSON 形式获取 Docker Hub 数据。
  • 通过输出投递将结果路由到文件或 webhook。

限制

  • 只读:不得用于创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他变更请求。
  • 使用前必须确认 CLI 已安装且可执行文件目录在 $PATH 中,否则不得继续执行技能命令。
  • 需 Go 1.26.6 或更新版本才能进行直接 Go 安装。
  • 其他具体价格、收费、平台细节暂未提供。