ocireg

resmi

SSE tabanlı bir MCP sunucusu olup, LLM destekli uygulamaların OCI kayıt defterleriyle etkileşime girmesini sağlar. Konteyner görüntüleri hakkında bilgi alma, etiketleri listeleme ve daha fazlası için araçlar sunar.

Ocireg MCP ile neler yapabilirsiniz?

  • Görüntü ayrıntılarını alget_image_info kullanarak herhangi bir herkese açık görüntünün özetini, boyutunu, mimarisini, işletim sistemini, oluşturulma tarihini ve katman sayısını sorgulayın.
  • Depo etiketlerini listelelist_tags ile belirli bir depo için mevcut tüm etiketleri alın.
  • Ham görüntü manifestini getirget_image_manifest aracılığıyla bir görüntü referansının tam manifestini elde edin.
  • Görüntü yapılandırmasını getirget_image_config ile görüntü yapılandırmasını (örneğin, giriş noktası, ortam değişkenleri, açık portlar) alın.

Dokümantasyon

OCI Registry MCP Sunucusu

Trust Score OCI kayıt defterlerini ve imge referanslarını sorgulamak için araçlar sağlayan bir MCP (Model Bağlam Protokolü) sunucusu.

Genel Bakış

Bu proje, LLM destekli uygulamaların OCI kayıt defterleriyle etkileşime girmesine olanak tanıyan SSE tabanlı bir MCP sunucusu uygular. Konteyner imgeleri hakkında bilgi alma, etiketleri listeleme ve daha fazlası için araçlar sunar.

Özellikler

  • OCI imgeleri hakkında bilgi edinme
  • Depolar için etiketleri listeleme
  • İmge manifestolarını alma
  • İmge yapılandırmalarını alma

MCP Araçları

Sunucu aşağıdaki MCP araçlarını sağlar:

get_image_info

Bir OCI imgesi hakkında bilgi alır.

Girdi:

  • image_ref: İmge referansı (örn. docker.io/library/alpine:latest)

Çıktı:

  • Özet, boyut, mimari, işletim sistemi, oluşturulma tarihi ve katman sayısı dahil olmak üzere imge bilgisi

list_tags

Bir depo için etiketleri listeler.

Girdi:

  • repository: Depo adı (örn. docker.io/library/alpine)

Çıktı:

  • Depoya ait etiketlerin listesi

get_image_manifest

Bir OCI imgesinin manifestosunu alır.

Girdi:

  • image_ref: İmge referansı (örn. docker.io/library/alpine:latest)

Çıktı:

  • İmge manifestosu

get_image_config

Bir OCI imgesinin yapılandırmasını alır.

Girdi:

  • image_ref: İmge referansı (örn. docker.io/library/alpine:latest)

Çıktı:

  • İmge yapılandırması

Kullanım

ToolHive ile Çalıştırma (Önerilen)

OCI Registry MCP sunucusunu çalıştırmanın en kolay yolu, MCP sunucularının güvenli, konteynerleştirilmiş dağıtımını sağlayan ToolHive kullanmaktır:

# 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

Sunucu, MCP uyumlu istemcileriniz tarafından kullanılabilir olacak ve imge bilgisi için OCI kayıt defterlerini sorgulayabilir.

ToolHive ile Kimlik Doğrulama

Özel kayıt defterlerine erişmeniz gerekiyorsa, ToolHive'ın gizli dizi yönetimini kullanarak kimlik doğrulama bilgilerini sağlayabilirsiniz:

# 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

Geliştirme

Ön Koşullar

  • Go 1.21 veya üstü
  • OCI kayıt defterlerine erişim

Kimlik Doğrulama

Sunucu, özel OCI kayıt defterlerine erişmek için aşağıdaki kimlik doğrulama yöntemlerini destekler (öncelik sırasına göre):

  1. HTTP Yetkilendirme Başlığı (En Yüksek Öncelik): HTTP isteğinin Authorization başlığına bir taşıyıcı belirteç ekleyin:

    • Authorization: Bearer <your-token>
    • Bu yöntem diğer tüm kimlik doğrulama yöntemlerine göre önceliklidir
    • Mevcut olduğunda, ortam değişkenleri ve Docker yapılandırması yok sayılır
  2. Taşıyıcı Belirteç Ortam Değişkeni: Aşağıdaki ortam değişkenini ayarlayın:

    • OCI_TOKEN: Kayıt defteri kimlik doğrulaması için taşıyıcı belirteç
  3. Kullanıcı Adı ve Parola: Aşağıdaki ortam değişkenlerini ayarlayın:

    • OCI_USERNAME: Kayıt defteri kimlik doğrulaması için kullanıcı adı
    • OCI_PASSWORD: Kayıt defteri kimlik doğrulaması için parola
  4. Docker Yapılandırması (En Düşük Öncelik): Başka bir kimlik doğrulama sağlanmazsa, sunucu varsayılan Docker anahtar zincirini kullanır; bu, kimlik bilgilerini ~/.docker/config.json dosyasından okur.

Örnekler:

# 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

Port Yapılandırması

Sunucu, aşağıdakilerden birini kullanarak belirli bir portu dinleyecek şekilde yapılandırılabilir:

  1. Ortam Değişkeni:

    • MCP_PORT: Dinlenecek port numarası (0 ile 65535 arasında olmalıdır)
    • Ayarlanmazsa veya geçersizse, varsayılan olarak 8080 portu kullanılır
  2. Komut Satırı Bayrağı:

    • -port: Ortam değişkeni ayarını geçersiz kılar (0 ile 65535 arasında olmalıdır)
    • Geçersiz bir port sağlanırsa varsayılan olarak 8080 portu kullanılır
    • Örnek: ./ocireg-mcp -port 9090

Test Etme

go test ./...

Lint Kontrolü

golangci-lint run

Katkıda Bulunma

Bu MCP sunucusuna katkıda bulunmanızı memnuniyetle karşılıyoruz! Katkıda bulunmak isterseniz, başlamak için ayrıntılı bilgi almak üzere lütfen CONTRIBUTING kılavuzunu inceleyin.

Bir hata ile karşılaşırsanız veya bir özellik isteğiniz varsa, lütfen depoda bir konu açın veya topluluk Discord sunucumuzdaki #mcp-servers kanalında bize katılın.

Lisans

Bu proje Apache v2 Lisansı altında lisanslanmıştır - ayrıntılar için LICENSE dosyasına bakın.