关于 Harbor
Harbor 是用于检查运行中 Harbor 容器镜像仓库的只读 MCP 服务。它面向使用 AI 助手查看仓库配置和状态的团队,工具覆盖项目、制品、漏洞、访问权限、复制、Webhook 和垃圾回收。
主要功能
- 01查看项目、配额和仓库
- 02检查制品及扫描漏洞
- 03列出成员和机器人账户
- 04查看注册表和复制状态
- 05查看 Webhook 与垃圾回收计划
- 06支持 stdio 或 Streamable HTTP
适用场景
- 01检查项目配额和设置
- 02查看制品的漏洞发现结果
- 03审查仓库成员和机器人权限
- 04监控复制和垃圾回收状态
MCP 相关
它提供十二种只读工具,用于查询 Harbor 项目、仓库、制品、漏洞、访问权限、复制、Webhook 和垃圾回收。MCP 客户端可通过 stdio 或 Streamable HTTP 连接;HTTP 模式支持 bearer token 身份验证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e HARBOR_URL -e HARBOR_USERNAME -e HARBOR_PASSWORD -e HARBOR_INSECURE_SKIP_VERIFY -e HARBOR_MCP_RATE ghcr.io/oreondev/harbor-mcp:0.2.0HARBOR_URLHarbor base URL, for example https://harbor.example.comHARBOR_USERNAMEHarbor user or robot account; a read-only system robot is recommendedHARBOR_PASSWORD密钥Password or robot secretHARBOR_INSECURE_SKIP_VERIFYSet to true to skip TLS verification of HarborHARBOR_MCP_RATERequests per second to Harbor本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/oreondev/harbor-mcp:0.2.0stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Harbor MCP 服务
一个面向 Harbor(开源容器镜像仓库)的 Model Context Protocol 服务。它可让 Claude、Cursor 和 VS Code 等 AI 助手回答有关运行中 Harbor 的问题:项目和配额、仓库和制品、漏洞扫描结果、机器人账户、复制状态以及垃圾回收。
文档:https://www.oreonit.com/harbor-mcp/
这是一个独立的社区项目,与 Harbor 项目或 CNCF 无关联,也未获其认可;Harbor 是 The Linux Foundation 的商标。
状态
每个版本的变更见发行说明。这 12 个只读工具支持 stdio 和可流式传输的 HTTP;测试使用模拟 Harbor、每个拉取请求中的 Harbor 2.15,以及每晚测试的 Harbor 2.12 到 2.15,分别以管理员身份和下文所述的只读机器人身份运行。设计说明见 docs/DESIGN.md。
- 只读:12 个工具涵盖项目、仓库、制品、漏洞、机器人、成员、注册表、复制、Webhook 和垃圾回收。写入工具(扫描、启动复制、添加标签、创建项目)将在之后推出,并且只有明确选择启用后才可使用。没有任何工具会删除内容。
- 密钥不会泄露到对话中:Harbor 凭据、机器人密钥和 Webhook 授权标头不会出现在工具结果、日志或错误中。
- 为桌面客户端提供 stdio,为在集群中运行提供带持有者令牌的可流式传输 HTTP。
- 提供已签名的多架构镜像
ghcr.io/oreondev/harbor-mcp,并以io.github.oreondev/harbor-mcp的名称列入官方 MCP Registry。 - 使用 harbor-resource-operator 的 Harbor 客户端;该 Kubernetes 运算符可将 Harbor 项目、机器人账户和复制作为代码进行管理。
工具
| 工具 | 可回答的问题 |
|---|---|
harbor_system_info | Harbor 版本、身份验证模式,以及服务所使用的用户或机器人 |
harbor_list_projects、harbor_get_project | 项目;单个项目的配额、CVE 允许列表、保留策略和不可变性 |
harbor_list_repositories、harbor_list_artifacts | 仓库;包含标签、大小、推送和拉取时间以及扫描摘要的制品 |
harbor_get_vulnerabilities | 单个制品的漏洞,按严重程度从高到低排列 |
harbor_list_members、harbor_list_robots | 谁有访问权限:具有角色的成员,以及具有权限和过期时间的机器人账户 |
harbor_list_registries、harbor_list_replications | 复制端点和策略,以及最近一次运行情况 |
harbor_list_webhooks、harbor_get_gc | Webhook 策略;垃圾回收计划 |
设置只读 Harbor 身份
以只能读取内容的系统机器人账户运行服务。docs/read-only-robot.json 是 Harbor API 所需的请求正文,其中包含工具所需的权限(端到端测试使用同一文件):
curl -u admin -H 'Content-Type: application/json' -d @docs/read-only-robot.json \
https://harbor.example.com/api/v2.0/robots
Harbor 只会在响应中显示一次密钥;用户名为 robot$harbor-mcp。也可以使用管理员账户,但这会让助手拥有超出所需范围的权限。
使用方法
配置通过环境变量提供;除 HARBOR_CA_FILE 外,每个变量也可以从以 <NAME>_FILE 命名的文件中读取,以便使用挂载的机密:
| 变量 | 含义 |
|---|---|
HARBOR_URL | Harbor 基础 URL,例如 https://harbor.example.com(必需) |
HARBOR_USERNAME、HARBOR_PASSWORD | 机器人名称和机密(必需) |
HARBOR_CA_FILE | 用于 Harbor 证书的额外 CA 证书包(PEM) |
HARBOR_INSECURE_SKIP_VERIFY | 设为 true 可跳过 Harbor 的 TLS 验证 |
HARBOR_MCP_RATE | 向 Harbor 发送请求的每秒请求数,默认值为 10 |
HARBOR_MCP_HTTP_TOKEN | HTTP 模式的 bearer 令牌 |
一键安装(客户端会询问 URL 和凭据,也可以稍后填写):
Claude Code,使用镜像(将 0.1.1 替换为最新版本):
claude mcp add harbor -e HARBOR_URL=https://harbor.example.com -e 'HARBOR_USERNAME=robot$harbor-mcp' -e HARBOR_PASSWORD=... \
-- docker run -i --rm -e HARBOR_URL -e HARBOR_USERNAME -e HARBOR_PASSWORD ghcr.io/oreondev/harbor-mcp:0.1.1
Claude Desktop、Cursor 以及其他读取 mcpServers 文件的客户端:
{
"mcpServers": {
"harbor": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "HARBOR_URL", "-e", "HARBOR_USERNAME", "-e", "HARBOR_PASSWORD",
"ghcr.io/oreondev/harbor-mcp:0.1.1"],
"env": {
"HARBOR_URL": "https://harbor.example.com",
"HARBOR_USERNAME": "robot$harbor-mcp",
"HARBOR_PASSWORD": "..."
}
}
}
}
不使用 Docker 时,请从发布页面下载二进制文件(或运行 go install github.com/oreondev/harbor-mcp/cmd/harbor-mcp@latest),并将 harbor-mcp 用作命令。
HTTP 模式
对于共享服务(例如,与 Harbor 相邻的 Deployment),使用 -http 和令牌启动:
docker run -d -p 8080:8080 -e HARBOR_URL -e HARBOR_USERNAME -e HARBOR_PASSWORD -e HARBOR_MCP_HTTP_TOKEN \
ghcr.io/oreondev/harbor-mcp:0.1.1 -http :8080
claude mcp add --transport http harbor https://harbor-mcp.example.com/mcp -H "Authorization: Bearer $HARBOR_MCP_HTTP_TOKEN"
MCP 服务通过 /mcp 提供,每个请求都需要令牌;GET /healthz 可公开访问,供探测使用。未设置令牌时,服务只会监听环回地址。请在其前面配置 TLS(例如 ingress 或 mesh)。
验证镜像
cosign verify ghcr.io/oreondev/harbor-mcp:0.1.1 \
--certificate-identity-regexp '^https://github.com/oreondev/harbor-mcp/\.github/workflows/release\.yml@' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
维护者
由 Oreon IT 维护。欢迎提交问题和拉取请求。
安全
请私下报告漏洞;详情请参阅 SECURITY.md。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。