mcpField
H
Harbor

Harbor

本地服务
oreonit.com云与基础设施02 天前更新

关于 Harbor

Harbor 是用于检查运行中 Harbor 容器镜像仓库的只读 MCP 服务。它面向使用 AI 助手查看仓库配置和状态的团队,工具覆盖项目、制品、漏洞、访问权限、复制、Webhook 和垃圾回收。

主要功能

  1. 01查看项目、配额和仓库
  2. 02检查制品及扫描漏洞
  3. 03列出成员和机器人账户
  4. 04查看注册表和复制状态
  5. 05查看 Webhook 与垃圾回收计划
  6. 06支持 stdio 或 Streamable HTTP

适用场景

  1. 01检查项目配额和设置
  2. 02查看制品的漏洞发现结果
  3. 03审查仓库成员和机器人权限
  4. 04监控复制和垃圾回收状态

MCP 相关

它提供十二种只读工具,用于查询 Harbor 项目、仓库、制品、漏洞、访问权限、复制、Webhook 和垃圾回收。MCP 客户端可通过 stdio 或 Streamable HTTP 连接;HTTP 模式支持 bearer token 身份验证。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"oreondev-harbor": {
"command": "docker",
"args": [
"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.0"
],
"env": {
"HARBOR_URL": "<HARBOR_URL>",
"HARBOR_USERNAME": "<HARBOR_USERNAME>",
"HARBOR_PASSWORD": "<HARBOR_PASSWORD>",
"HARBOR_INSECURE_SKIP_VERIFY": "<HARBOR_INSECURE_SKIP_VERIFY>",
"HARBOR_MCP_RATE": "<HARBOR_MCP_RATE>"
}
}
}
}
启动命令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.0
需要配置的环境变量
HARBOR_URLHarbor base URL, for example https://harbor.example.com
HARBOR_USERNAMEHarbor user or robot account; a read-only system robot is recommended
HARBOR_PASSWORD密钥Password or robot secret
HARBOR_INSECURE_SKIP_VERIFYSet to true to skip TLS verification of Harbor
HARBOR_MCP_RATERequests per second to Harbor

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/oreondev/harbor-mcp:0.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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_infoHarbor 版本、身份验证模式,以及服务所使用的用户或机器人
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_gcWebhook 策略;垃圾回收计划

设置只读 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_URLHarbor 基础 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_TOKENHTTP 模式的 bearer 令牌

一键安装(客户端会询问 URL 和凭据,也可以稍后填写):

在 VS Code 中安装 添加到 Cursor

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。

许可证

Apache-2.0。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。