OCI Registry MCP Server について
OCI Registry MCP Serverは、OCIコンテナイメージを調べるLLMアプリケーション向けのSSEベースのサーバーです。レジストリからイメージのメタデータ、タグ、マニフェスト、設定データを取得できます。
主な機能
- 01OCIイメージ情報の取得
- 02リポジトリのタグ一覧
- 03イメージマニフェストの取得
- 04イメージ設定の取得
活用シーン
- 01イメージのダイジェスト、サイズ、プラットフォームの確認
- 02リポジトリ内のタグの確認
- 03マニフェストや設定データの取得
MCP 対応
イメージ情報の照会、タグ一覧、マニフェストと設定の取得をツールとしてMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OCI Registry MCP Server
OCI レジストリとイメージ参照を照会するためのツールを提供する MCP(Model Context Protocol)サーバーです。
概要
このプロジェクトは、LLM を活用したアプリケーションが OCI レジストリと連携できるようにする、SSE ベースの MCP サーバーを実装しています。コンテナーイメージの情報取得やタグの一覧表示などを行うツールを提供します。
機能
- OCI イメージの情報を取得
- リポジトリのタグを一覧表示
- イメージマニフェストを取得
- イメージ設定を取得
MCP ツール
サーバーは次の MCP ツールを提供します。
get_image_info
OCI イメージの情報を取得します。
入力:
image_ref:イメージ参照(例:docker.io/library/alpine:latest)
出力:
- ダイジェスト、サイズ、アーキテクチャ、OS、作成日、レイヤー数などのイメージ情報
list_tags
リポジトリのタグを一覧表示します。
入力:
repository:リポジトリ名(例:docker.io/library/alpine)
出力:
- リポジトリのタグ一覧
get_image_manifest
OCI イメージのマニフェストを取得します。
入力:
image_ref:イメージ参照(例:docker.io/library/alpine:latest)
出力:
- イメージマニフェスト
get_image_config
OCI イメージの設定を取得します。
入力:
image_ref:イメージ参照(例:docker.io/library/alpine:latest)
出力:
- イメージ設定
使用方法
ToolHive で実行する(推奨)
OCI Registry MCP サーバーを実行する最も簡単な方法は、安全なコンテナー化デプロイを提供する ToolHive を使用することです。
# Install ToolHive (if not already installed)
# See: https://docs.stacklok.com/toolhive/guides-cli/install
# Register a supported client so ToolHive can auto-configure your environment
thv client setup
# Run the OCI Registry MCP server (packaged as 'oci-registry' in ToolHive)
thv run oci-registry
# List running servers
thv list
# Get detailed information about the server
thv registry info oci-registry
サーバーは MCP 互換クライアントから利用でき、OCI レジストリに問い合わせてイメージ情報を取得できます。
ToolHive での認証
プライベートレジストリにアクセスする必要がある場合は、ToolHive のシークレット管理を使用して認証情報を指定できます。
# For bearer token authentication
thv secret set oci-token
# Enter your bearer token when prompted
thv run --secret oci-token,target=OCI_TOKEN oci-registry
# For username/password authentication
thv secret set oci-username
thv secret set oci-password
# Enter your credentials when prompted
thv run --secret oci-username,target=OCI_USERNAME --secret oci-password,target=OCI_PASSWORD oci-registry
開発
前提条件
- Go 1.21 以降
- OCI レジストリへのアクセス
認証
サーバーは、プライベート OCI レジストリへのアクセスに次の認証方法をサポートしています(優先順位順)。
-
HTTP Authorization ヘッダー(最優先):HTTP リクエストの
Authorizationヘッダーにベアラートークンを含めます。Authorization: Bearer <your-token>- この方法は、他のすべての認証方法より優先されます
- このヘッダーが存在する場合、環境変数と Docker 設定は無視されます
-
ベアラートークンの環境変数:次の環境変数を設定します。
OCI_TOKEN:レジストリ認証用のベアラートークン
-
ユーザー名とパスワード:次の環境変数を設定します。
OCI_USERNAME:レジストリ認証用のユーザー名OCI_PASSWORD:レジストリ認証用のパスワード
-
Docker 設定(優先度最低):他の認証情報が指定されていない場合、サーバーはデフォルトの Docker キーチェーンを使用し、
~/.docker/config.jsonから認証情報を読み込みます。
例:
# HTTP Authorization header (for per-request authentication)
# This is handled automatically by the MCP client when making requests
# Example: curl -H "Authorization: Bearer mytoken" http://localhost:8080/...
# Bearer token authentication via environment variable
export OCI_TOKEN=mytoken
# Username/password authentication via environment variables
export OCI_USERNAME=myuser
export OCI_PASSWORD=mypassword
ポートの設定
サーバーは、次のいずれかの方法でリッスンするポートを指定できます。
-
環境変数:
MCP_PORT:リッスンするポート番号(0~65535 の範囲で指定)- 未設定または無効な場合は、デフォルトのポート 8080 が使用されます
-
コマンドラインフラグ:
-port:環境変数の設定を上書きします(0~65535 の範囲で指定)- 無効なポートが指定された場合は、デフォルトのポート 8080 が使用されます
- 例:
./ocireg-mcp -port 9090
テスト
go test ./...
Lint
golangci-lint run
コントリビューション
この MCP サーバーへのコントリビューションを歓迎します!コントリビューションをご希望の場合は、 始め方の詳細について、コントリビューションガイドをご確認ください。
バグを見つけた場合や機能のリクエストがある場合は、
リポジトリでイシューを作成するか、
コミュニティの Discord サーバーの
#mcp-servers チャンネルにご参加ください。
ライセンス
このプロジェクトは Apache v2 License の下でライセンスされています。詳細は LICENSE ファイルを ご確認ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。