ocireg MCP Server
公式SSEベ
ドキュメント
OCI レジストリ MCP サーバー
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 レジストリ MCP サーバーを実行する最も簡単な方法は、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 ./...
リンティング
golangci-lint run
貢献
この MCP サーバーへの貢献を歓迎します!貢献をご希望の場合は、開始方法の詳細について CONTRIBUTING ガイド をご確認ください。
バグを発見した場合や機能リクエストがある場合は、リポジトリで Issue を作成 するか、コミュニティ Discord サーバー の #mcp-servers チャンネルにご参加ください。
ライセンス
このプロジェクトは Apache v2 ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。