ocireg
resmiSSE 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ı al —
get_image_infokullanarak 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 listele —
list_tagsile belirli bir depo için mevcut tüm etiketleri alın. - Ham görüntü manifestini getir —
get_image_manifestaracılığıyla bir görüntü referansının tam manifestini elde edin. - Görüntü yapılandırmasını getir —
get_image_configile 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
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):
-
HTTP Yetkilendirme Başlığı (En Yüksek Öncelik): HTTP isteğinin
Authorizationbaş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
-
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ç
-
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
-
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.jsondosyası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:
-
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
-
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.