SuperAPI AI 工具集

hub-mcp

hub-mcp 是 Docker 官方提供的 Docker Hub MCP 服务器,基于 Model Context Protocol (MCP) 构建,将 Docker Hub API 封装并暴露给大语言模型,帮助开发者更智能地发现镜像和管理仓库。它解决了开发者在使用容器(尤其是 AI 和 LLM 工作流)时,难以从海量 Docker Hub 镜像中快速找到合适镜像的问题,让 LLM 能够获取实时 Docker Hub 数据并给出准确的镜像推荐。主要能力包括:AI 驱动的镜像推荐、增强的内容发现、以及使用自然语言简化 Docker Hub 工作流。该服务器支持通过 npm 安装和运行,提供 stdio 和 http 两种传输方式,并可通过 Docker PAT 令牌进行认证以管理私有仓库。它还可以配置到 Docker Ask Gordon 以及 Claude Desktop、VS Code 等 MCP 客户端中使用。项目采用 Apache License 2.0 开源。

访问官网

工具介绍

Docker Hub MCP Server(hub-mcp)是一个 Model Context Protocol(MCP)服务器,用于对接 Docker Hub API,使大语言模型(LLM)能够访问这些 API,从而实现智能的内容发现和仓库管理。它主要面向使用容器进行开发的开发者,尤其是在 AI 和 LLM 驱动的工作流中,解决因 Docker Hub 镜像数量庞大而导致的上下文不足问题,帮助 LLM 推荐正确的镜像,减少开发者手动搜索的时间。

主要能力

  • AI 驱动的镜像推荐:LLM 可访问实时 Docker Hub 数据,提供准确的容器镜像建议。
  • 增强的内容发现:AI 工具帮助开发者更快找到合适的镜像。
  • 简化 Docker Hub 工作流:支持使用自然语言管理 Docker 仓库和镜像。

环境要求与运行方式

需要安装 Docker 和 Node.js(版本 22 及以上),可选提供一个具有相应权限的 Docker Personal Access Token(PAT)。构建与运行命令如下:

# 安装依赖
npm install

# 构建
npm run build

# 运行
npm start -- [--transport = http | stdio] [--port = 3000] [--host = 127.0.0.1]

默认参数:transport 可选 http 或 stdio(默认 stdio);port=3000;host=127.0.0.1(仅 HTTP 传输使用)。默认设置下启动的服务器只能访问公开的 Docker Hub 内容。

HTTP 传输默认绑定到 127.0.0.1(回环地址),并且要求认证。在暴露到网络之前,需要先阅读“保护 HTTP 传输”部分。

也可以使用 MCP Inspector 提供的 Web 界面来测试服务器(可选)。

保护 HTTP 传输

  • 回环绑定:除非传入 --host=<addr>(例如 --host=0.0.0.0 以从容器中暴露),监听器默认绑定到 127.0.0.1。
  • 强制认证(失败即关闭):在 http 模式下,除非提供 bearer token 或明确选择退出,否则服务器拒绝启动。可通过 MCP_AUTH_TOKEN 环境变量设置 token,客户端必须在每个请求中发送 Authorization: Bearer <token>。
  • DNS 重绑定 / CSRF 保护:当 Host 头不在允许列表(回环地址加上 --host,可通过 --allowed-hosts 扩展)中,或请求带有未在 --allowed-origins 中列出的浏览器 Origin 头时,请求会被拒绝。非浏览器 MCP 客户端不受影响。

使用认证运行 HTTP 传输的示例如下:

# 根据文档,需设置 MCP_AUTH_TOKEN 并指定 transport http

如需超出回环地址暴露(例如在容器内),仍需认证。--allow-unauthenticated 会完全禁用认证,并将你的 Docker Hub PAT 暴露给任何能访问该端口的客户端。仅在可信的隔离网络中使用。

认证

默认情况下,该 MCP 服务器只能查询 Docker Hub 上的公开内容。要管理自己的仓库,需要提供认证。运行时可设置 Docker Hub 用户名和 PAT 令牌。

在 Docker Ask Gordon 中使用

可以将 Gordon 配置为与 Docker Hub MCP 服务器交互的宿主。Ask Gordon 是嵌入 Docker Desktop 和 Docker CLI 的个人 AI 助手。配置步骤包括:在工作目录创建 gordon-mcp.yml 文件,替换其中的环境变量为 Docker Hub 用户名和 PAT 令牌,然后运行 docker build -t hub .。

在其他 MCP 客户端中使用

与 Claude Desktop 配合使用

需先完成构建步骤,然后将 Docker Hub MCP Server 配置添加到 claude_desktop_config.json 中。配置时需注意:如果使用 nvm 管理 Node 版本,应在 command 属性中填写 node 二进制路径(可通过 which node 查找),以确保 MCP 服务器使用正确的 Node 版本。配置中需替换以下值:YOUR_DOCKER_HUB_USERNAME、YOUR_DOCKER_HUB_PERSONAL_ACCESS_TOKEN、/FULL/PATH/TO/YOUR/docker-hub-mcp-server。保存配置后需完全重启 Claude Desktop 使更改生效。

与 VS Code 配合使用

在 VS Code 的用户设置(JSON)中添加 Docker Hub MCP Server 配置(可通过命令面板输入 Preferences: Open User Settings (JSON) 打开)。然后打开命令面板,输入 MCP: List Servers,选择 docker-hub,再选择 Start Server。

主要工具与能力

仓库管理与镜像推送/拉取

以及 Docker Hardened Images 相关功能。

search(搜索)

使用 Search V4 API 搜索仓库和内容。支持参数:

  • query:搜索查询参数(字符串,必填)
  • architectures:按架构过滤(字符串,可选)
  • badges:按镜像内容类型徽章过滤(字符串,可选)
  • categories:按类别过滤(字符串,可选)
  • extension_reviewed:按已审核扩展过滤(布尔值,可选)
  • from:分页时跳过的文档数量(数字,可选)
  • images:按镜像名称过滤(字符串,可选)
  • operating_systems:按操作系统过滤(字符串,可选)
  • order:更改结果排序(字符串,可选)
  • size:返回的最大结果数(数字,可选)
  • sort:按搜索字段排序结果(字符串,可选)
  • type:按仓库内容类型过滤(字符串,可选)

命名空间管理

  • get_namespaces:获取用户所属的命名空间列表。参数:page(字符串,可选)、page_size(字符串,可选)。
  • list_repositories_by_namespace:列出指定命名空间下的所有仓库。参数:namespace(字符串,必填)、content_types(字符串,可选)、media_types(字符串,可选)、name(字符串,可选)、ordering(字符串,可选)、page(数字,可选)、page_size(数字,可选)。
  • get_repository_info:获取仓库信息。参数:namespace(字符串,必填)、repository(字符串,必填)。
  • check_repository:检查仓库是否存在。参数:namespace(字符串,必填)、repository(字符串,必填)。
  • check_repository_tag:检查仓库中是否存在特定标签。参数:namespace(字符串,必填)、repository(字符串,必填)、tag(字符串,必填)。
  • create_repository:在指定命名空间创建新仓库。参数:namespace(字符串,必填)、body(对象,可选)。
  • update_repository_info:更新仓库信息。参数:namespace(字符串,必填)、repository(字符串,必填)、body(对象,可选)。
  • list_repository_tags:列出仓库的所有标签。参数:namespace(字符串,必填)、repository(字符串,必填)、architecture(字符串,可选)、os(字符串,可选)、page(数字,可选)、page_size(数字,可选)。
  • read_repository_tag:获取特定仓库标签的详情。参数:namespace(字符串,必填)、repository(字符串,必填)、tag(字符串,必填)。

Docker Hardened Images

  • docker_hardened_images:查询命名空间中镜像的 Docker Hardened Images(DHI)。参数:namespace(字符串,可选)。

适用场景

  • 开发者在 AI/LLM 工作流中需要快速找到合适的容器镜像。
  • 使用自然语言管理 Docker Hub 仓库、标签和命名空间。
  • 将 Docker Hub 操作集成到 Claude Desktop、VS Code 或 Docker Ask Gordon 等 MCP 客户端中。

限制与说明

  • 默认仅能访问公开 Docker Hub 内容;管理私有仓库需配置认证。
  • HTTP 传输默认绑定回环地址并要求认证,暴露到网络时需注意安全配置,防止 PAT 泄露。
  • 需要 Node.js 22+ 和 Docker 环境。
  • 项目采用 Apache License 2.0 许可。
  • 收费、价格、平台等信息暂未提供。