ocireg MCP Server

resmi

Server MCP berbasis SSE yang memungkinkan aplikasi bertenaga LLM untuk

Dokumentasi

Server MCP OCI Registry

Trust Score 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):

  1. Header Otorisasi HTTP (Prioritas Tertinggi): Sertakan token pembawa di header Authorization permintaan HTTP:

    • Authorization: Bearer <your-token>
    • Metode ini diutamakan dari semua metode autentikasi lainnya
    • Jika ada, variabel lingkungan dan konfigurasi Docker diabaikan
  2. Variabel Lingkungan Token Pembawa: Atur variabel lingkungan berikut:

    • OCI_TOKEN: Token pembawa untuk autentikasi registri
  3. Nama Pengguna dan Kata Sandi: Atur variabel lingkungan berikut:

    • OCI_USERNAME: Nama pengguna untuk autentikasi registri
    • OCI_PASSWORD: Kata sandi untuk autentikasi registri
  4. 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:

  1. Variabel Lingkungan:

    • MCP_PORT: Nomor port untuk mendengarkan (harus antara 0 dan 65535)
    • Jika tidak diatur atau tidak valid, default ke port 8080
  2. 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.