mcpField
H
harbor-registry-mcp

harbor-registry-mcp

本地服务
github.com/mshegolev云与基础设施111 周前更新

关于 harbor-registry-mcp

harbor-registry-mcp 是面向 Harbor 2.x 的 MCP 服务,供 DevOps 人员通过 Agent 检查项目、镜像及存储,并规划和执行清理。它提供存储报告与清理候选项,批量删除默认先执行 dry-run。

主要功能

  1. 01查看项目、仓库和制品
  2. 02生成项目存储报告
  3. 03筛选清理候选制品
  4. 04删除单个或批量制品
  5. 05批量清理默认 dry-run

适用场景

  1. 01检查项目的镜像存储占用
  2. 02查找未标记或过期制品
  3. 03预览保留最新版本的清理操作

MCP 相关

该服务通过 stdio 向 MCP 客户端提供 Harbor 项目、仓库、制品查询及清理工具。删除工具标记为破坏性操作,批量删除默认 dry-run。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"mshegolev-harbor-registry": {
"command": "uvx",
"args": [
"harbor-registry-mcp"
],
"env": {
"HARBOR_URL": "<HARBOR_URL>",
"HARBOR_USERNAME": "<HARBOR_USERNAME>",
"HARBOR_PASSWORD": "<HARBOR_PASSWORD>",
"HARBOR_SSL_VERIFY": "<HARBOR_SSL_VERIFY>"
}
}
}
}
启动命令uvx harbor-registry-mcp
需要配置的环境变量
HARBOR_URLHarbor URL (e.g. https://harbor.example.com)
HARBOR_USERNAMEHarbor username (robot account recommended for automation)
HARBOR_PASSWORD密钥Harbor password or robot account token
HARBOR_SSL_VERIFYVerify SSL certificates (true/false). Set to 'false' for self-signed certs.

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

安装包
pypiharbor-registry-mcp0.1.0

工具

还没有获取到工具列表

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

详细介绍

harbor-registry-mcp

PyPI Python License: MIT

适用于 Harbor Registry 的 MCP 服务。让 LLM Agent(Claude Code、Cursor、OpenCode 等)列出项目、仓库和制品,生成存储报告、查找清理候选项,并删除未标记或较旧的制品——所有操作都带有安全保障(批量删除默认采用试运行模式)。

Python、FastMCP、stdio 传输。

适用于任何 Harbor 2.x 实例,无论是 SaaS 还是可自托管/本地部署。

为什么还要做另一个 Harbor MCP?

社区中已有一些 Harbor MCP(nomagicln/mcp-harbor、bupd/harbor-mcp-server),但它们只提供基本的列表/获取接口。本项目新增了存储报告、清理候选项、删除未标记制品,以及支持试运行的旧制品删除——这些正是 DevOps 工程师回收磁盘空间所需的操作。

设计亮点

  • 工具注解——只读工具设有 readOnlyHint: True;有破坏性的工具(harbor_delete_*)带有 destructiveHint: True,以便 MCP 客户端请求确认。
  • 默认采用试运行模式——两种批量清理操作(harbor_delete_untagged、harbor_delete_old_artifacts)都如此;Agent 必须传入 dry_run=False 才会执行。
  • 结构化输出——每个工具都会返回类型化载荷(TypedDict)和 Markdown 摘要。
  • 结构化错误——将 401/403/404/429/5xx 映射为可执行的提示。
  • Pydantic 输入验证——验证每个参数。
  • 漏洞快照——启用 with_scan_overview 后,harbor_list_artifacts 会显示扫描状态和数量。

功能(8 个工具)

发现与检查

  • harbor_list_projects — 列出项目,包含仓库数量和可见性
  • harbor_list_repos — 列出项目中的仓库
  • harbor_list_artifacts — 列出仓库中的制品,包含标签/大小/扫描状态
  • harbor_storage_report — 完整的项目存储明细(所有仓库 × 所有制品)

清理规划

  • harbor_cleanup_candidates — 建议要删除的内容(未标记、从未拉取、旧版本)

清理执行(有破坏性)

  • harbor_delete_artifact — 按标签或摘要删除单个制品
  • harbor_delete_untagged — 删除项目/仓库中的所有未标记制品(默认采用试运行模式)
  • harbor_delete_old_artifacts — 每个仓库保留最新的 N 个制品,删除其余制品(默认采用试运行模式)

安装

需要 Python 3.10+。

# via uvx (recommended)
uvx --from harbor-registry-mcp harbor-registry-mcp

# or via pipx
pipx install harbor-registry-mcp

配置

claude mcp add harbor -s project \
  --env HARBOR_URL=https://harbor.example.com \
  --env HARBOR_USERNAME='robot$your-robot' \
  --env HARBOR_PASSWORD=your-robot-token \
  --env HARBOR_SSL_VERIFY=true \
  -- uvx --from harbor-registry-mcp harbor-registry-mcp

或在 .mcp.json 中:

{
  "mcpServers": {
    "harbor": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "harbor-registry-mcp", "harbor-registry-mcp"],
      "env": {
        "HARBOR_URL": "https://harbor.example.com",
        "HARBOR_USERNAME": "robot$your-robot",
        "HARBOR_PASSWORD": "${HARBOR_PASSWORD}",
        "HARBOR_SSL_VERIFY": "true"
      }
    }
  }
}

检查:

claude mcp list
# harbor: uvx --from harbor-registry-mcp harbor-registry-mcp - ✓ Connected

环境变量

变量必需描述
HARBOR_URL是Harbor URL(末尾不要加斜杠)
HARBOR_USERNAME是Harbor 用户名——建议使用机器人账户
HARBOR_PASSWORD是密码或机器人令牌
HARBOR_SSL_VERIFY否true/false。默认值:true。

使用示例

  • “生成项目 einvy-pub 的存储报告”
  • “查找 qa-assistant 中的清理候选项——保留最新的 3 个”
  • “删除 qa-assistant 中所有未标记的制品”
  • “试运行删除 qa-assistant/pgvector-rag 中的旧制品,保留最新的 1 个”
  • “einvy-pub/my-image 中有什么?”

安全

  • 读取工具使用 readOnlyHint: True——无需确认。
  • 删除工具使用 destructiveHint: True——客户端应请求确认。
  • harbor_delete_untagged 和 harbor_delete_old_artifacts 均默认使用 dry_run=True;Agent 必须显式设置 dry_run=False 才会实际删除。
  • harbor_cleanup_candidates 是只读的——它只会建议候选项,不会删除任何内容。

开发

git clone https://github.com/mshegolev/harbor-registry-mcp.git
cd harbor-registry-mcp
pip install -e '.[dev]'
pytest

许可证

MIT © Mikhail Shchegolev

评论

支持 Markdown

第一次接触 MCP?

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

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