ocireg MCP Server
resmiServer MCP berbasis SSE yang memungkinkan aplikasi bertenaga LLM untuk
Dokumentasi
Server MCP OCI Registry
Server MCP (Model Context Protocol) yang menyediakan alat untuk melakukan kueri
registri OCI dan referensi citra.
Gambaran Umum
Proyek ini mengimplementasikan server MCP berbasis SSE yang memungkinkan aplikasi bertenaga LLM untuk berinteraksi dengan registri OCI. Server ini menyediakan alat untuk mengambil informasi tentang citra kontainer, mendaftar tag, dan lainnya.
Fitur
- Mendapatkan informasi tentang citra OCI
- Mendaftar tag untuk repositori
- Mendapatkan manifes citra
- Mendapatkan konfigurasi citra
Alat MCP
Server menyediakan alat MCP berikut:
get_image_info
Mendapatkan informasi tentang citra OCI.
Masukan:
image_ref: Referensi citra (misalnya, docker.io/library/alpine:latest)
Keluaran:
- Informasi citra termasuk digest, ukuran, arsitektur, OS, tanggal pembuatan, dan jumlah lapisan
list_tags
Mendaftar tag untuk repositori.
Masukan:
repository: Nama repositori (misalnya, docker.io/library/alpine)
Keluaran:
- Daftar tag untuk repositori
get_image_manifest
Mendapatkan manifes untuk citra OCI.
Masukan:
image_ref: Referensi citra (misalnya, docker.io/library/alpine:latest)
Keluaran:
- Manifes citra
get_image_config
Mendapatkan konfigurasi untuk citra OCI.
Masukan:
image_ref: Referensi citra (misalnya, docker.io/library/alpine:latest)
Keluaran:
- Konfigurasi citra
Penggunaan
Menjalankan dengan ToolHive (Direkomendasikan)
Cara termudah untuk menjalankan server MCP OCI Registry adalah menggunakan ToolHive, yang menyediakan penerapan server MCP yang aman dan terkontainerisasi:
# 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
Server akan tersedia untuk klien yang kompatibel dengan MCP Anda dan dapat melakukan kueri registri OCI untuk informasi citra.
Autentikasi dengan ToolHive
Jika Anda perlu mengakses registri privat, Anda dapat memberikan kredensial autentikasi menggunakan manajemen rahasia 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
Pengembangan
Prasyarat
- Go 1.21 atau lebih baru
- Akses ke registri OCI
Autentikasi
Server mendukung metode autentikasi berikut untuk mengakses registri OCI privat (berdasarkan urutan prioritas):
-
Header Otorisasi HTTP (Prioritas Tertinggi): Sertakan token pembawa di header
Authorizationpermintaan HTTP:Authorization: Bearer <your-token>- Metode ini diutamakan dari semua metode autentikasi lainnya
- Jika ada, variabel lingkungan dan konfigurasi Docker diabaikan
-
Variabel Lingkungan Token Pembawa: Atur variabel lingkungan berikut:
OCI_TOKEN: Token pembawa untuk autentikasi registri
-
Nama Pengguna dan Kata Sandi: Atur variabel lingkungan berikut:
OCI_USERNAME: Nama pengguna untuk autentikasi registriOCI_PASSWORD: Kata sandi untuk autentikasi registri
-
Konfigurasi Docker (Prioritas Terendah): Jika tidak ada autentikasi lain yang disediakan, server akan menggunakan rantai kunci Docker default, yang membaca kredensial dari
~/.docker/config.json.
Contoh:
# 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
Konfigurasi Port
Server dapat dikonfigurasi untuk mendengarkan pada port tertentu menggunakan salah satu:
-
Variabel Lingkungan:
MCP_PORT: Nomor port untuk mendengarkan (harus antara 0 dan 65535)- Jika tidak diatur atau tidak valid, default ke port 8080
-
Flag Baris Perintah:
-port: Menimpa pengaturan variabel lingkungan (harus antara 0 dan 65535)- Jika port yang diberikan tidak valid, default ke port 8080
- Contoh:
./ocireg-mcp -port 9090
Pengujian
go test ./...
Linting
golangci-lint run
Berkontribusi
Kami menyambut kontribusi untuk server MCP ini! Jika Anda ingin berkontribusi, silakan tinjau panduan CONTRIBUTING untuk detail tentang cara memulai.
Jika Anda menemukan bug atau memiliki permintaan fitur, silakan
buka isu di repositori atau bergabunglah dengan kami di
saluran #mcp-servers di server Discord komunitas kami.
Lisensi
Proyek ini dilisensikan di bawah Lisensi Apache v2 - lihat file LICENSE untuk detailnya.