Harbor について
Harbor は、稼働中の Harbor コンテナレジストリを調査する読み取り専用 MCP サーバーです。AI アシスタントでレジストリの設定や状態を確認するチーム向けで、プロジェクト、アーティファクト、脆弱性、アクセス、レプリケーション、Webhook、ガベージコレクションを扱います。
主な機能
- 01プロジェクト、クォータ、リポジトリの確認
- 02アーティファクトとスキャン脆弱性の確認
- 03メンバーとロボットアカウントの一覧表示
- 04レジストリとレプリケーション状態の確認
- 05Webhook とガベージコレクション予定の表示
- 06stdio または Streamable HTTP で実行
活用シーン
- 01プロジェクトのクォータと設定を確認
- 02アーティファクトの脆弱性検出結果を確認
- 03レジストリのメンバーとロボット権限を監査
- 04レプリケーションとガベージコレクションを監視
MCP 対応
Harbor のプロジェクト、リポジトリ、アーティファクト、脆弱性、アクセス、レプリケーション、Webhook、ガベージコレクションを照会する読み取り専用ツールを 12 種類提供します。MCP クライアントは stdio または Streamable HTTP で接続でき、HTTP モードではベアラートークン認証を利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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をご覧ください。
- 読み取り専用:プロジェクト、リポジトリ、アーティファクト、脆弱性、ロボット、メンバー、レジストリ、レプリケーション、Webhook、ガベージコレクションを対象とする 12 個のツールがあります。書き込みツール(スキャン、レプリケーションの開始、ラベルの追加、プロジェクトの作成)は、明示的なオプトインがある場合に限り、後日追加される予定です。データを削除するツールはありません。
- シークレットが会話に含まれることはありません。Harbor の認証情報、ロボットのシークレット、Webhook の認可ヘッダーは、ツールの結果、ログ、エラーのいずれにも表示されません。
- デスクトップクライアント向けの stdio と、クラスターでの実行向けのベアラートークン付きストリーミング可能 HTTP に対応しています。
- 署名済みのマルチアーキテクチャイメージ
ghcr.io/oreondev/harbor-mcpは、公式 MCP Registry にio.github.oreondev/harbor-mcpとして登録されています。 - Harbor のプロジェクト、ロボットアカウント、レプリケーションをコードとして管理する Kubernetes オペレーター、harbor-resource-operator の Harbor クライアントを使用しています。
ツール
| ツール | 回答する内容 |
|---|---|
harbor_system_info | Harbor のバージョン、認証モード、サーバーが動作しているユーザーまたはロボット |
harbor_list_projects、harbor_get_project | プロジェクト、および 1 つのプロジェクトのクォータ、CVE 許可リスト、保持ポリシー、不変性 |
harbor_list_repositories、harbor_list_artifacts | リポジトリ、およびタグ、サイズ、プッシュ時刻とプル時刻、スキャン概要を含むアーティファクト |
harbor_get_vulnerabilities | 1 つのアーティファクトの脆弱性(深刻度の高い順) |
harbor_list_members、harbor_list_robots | アクセス権を持つユーザー:ロール付きのメンバー、権限と有効期限付きのロボットアカウント |
harbor_list_registries、harbor_list_replications | レプリケーションのエンドポイントとポリシー、および直近の実行 |
harbor_list_webhooks、harbor_get_gc | Webhook ポリシー、ガベージコレクションのスケジュール |
読み取り専用の Harbor ID を設定する
読み取りのみ可能なシステムロボットアカウントとしてサーバーを実行します。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 がシークレットを表示するのはレスポンス内の 1 回だけです。ユーザー名は 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 | Harbor の TLS 検証をスキップする場合は true |
HARBOR_MCP_RATE | Harbor へのリクエスト数/秒。デフォルトは 10 |
HARBOR_MCP_HTTP_TOKEN | HTTP モード用のベアラートークン |
ワンクリックでインストールできます(クライアントで 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
mcpServers ファイルを読み込む Claude Desktop、Cursor、その他のクライアント:
{
"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 を前段に配置してください(イングレスまたはメッシュ)。
イメージを検証する
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 がメンテナンスしています。Issue とプルリクエストを歓迎します。
セキュリティ
脆弱性は非公開で報告してください。SECURITY.md を参照してください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。