ocireg MCP Server
offiziellEin SSE-basierter MCP-Server, der LLM-gestützten Anwendungen die Interaktion mit OCI-Registries ermöglicht. Er bietet Werkzeuge zum Abrufen von Informationen über Container-Images, Auflisten von Tags und mehr.
Dokumentation
OCI Registry MCP Server
Ein MCP (Model Context Protocol) Server, der Werkzeuge zur Abfrage von OCI-Registries und Image-Referenzen bereitstellt.
Übersicht
Dieses Projekt implementiert einen SSE-basierten MCP-Server, der es LLM-gestützten Anwendungen ermöglicht, mit OCI-Registries zu interagieren. Es bietet Werkzeuge zum Abrufen von Informationen über Container-Images, zum Auflisten von Tags und mehr.
Funktionen
- Informationen über OCI-Images abrufen
- Tags für Repositories auflisten
- Image-Manifeste abrufen
- Image-Konfigurationen abrufen
MCP-Werkzeuge
Der Server stellt die folgenden MCP-Werkzeuge bereit:
get_image_info
Ruft Informationen über ein OCI-Image ab.
Eingabe:
image_ref: Die Image-Referenz (z. B. docker.io/library/alpine:latest)
Ausgabe:
- Image-Informationen einschließlich Digest, Größe, Architektur, Betriebssystem, Erstellungsdatum und Anzahl der Layer
list_tags
Listet Tags für ein Repository auf.
Eingabe:
repository: Der Repository-Name (z. B. docker.io/library/alpine)
Ausgabe:
- Liste der Tags für das Repository
get_image_manifest
Ruft das Manifest für ein OCI-Image ab.
Eingabe:
image_ref: Die Image-Referenz (z. B. docker.io/library/alpine:latest)
Ausgabe:
- Das Image-Manifest
get_image_config
Ruft die Konfiguration für ein OCI-Image ab.
Eingabe:
image_ref: Die Image-Referenz (z. B. docker.io/library/alpine:latest)
Ausgabe:
- Die Image-Konfiguration
Verwendung
Ausführung mit ToolHive (Empfohlen)
Der einfachste Weg, den OCI Registry MCP-Server auszuführen, ist die Verwendung von ToolHive, das eine sichere, containerisierte Bereitstellung von MCP-Servern ermöglicht:
# 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
Der Server steht Ihren MCP-kompatiblen Clients zur Verfügung und kann OCI-Registries nach Image-Informationen abfragen.
Authentifizierung mit ToolHive
Wenn Sie auf private Registries zugreifen müssen, können Sie Authentifizierungsdaten über die Geheimnisverwaltung von ToolHive bereitstellen:
# 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
Entwicklung
Voraussetzungen
- Go 1.21 oder höher
- Zugriff auf OCI-Registries
Authentifizierung
Der Server unterstützt die folgenden Authentifizierungsmethoden für den Zugriff auf private OCI-Registries (in der Reihenfolge ihrer Priorität):
-
HTTP Authorization Header (Höchste Priorität): Fügen Sie ein Bearer-Token in den
Authorization-Header der HTTP-Anfrage ein:Authorization: Bearer <your-token>- Diese Methode hat Vorrang vor allen anderen Authentifizierungsmethoden
- Wenn vorhanden, werden Umgebungsvariablen und die Docker-Konfiguration ignoriert
-
Bearer-Token-Umgebungsvariable: Setzen Sie die folgende Umgebungsvariable:
OCI_TOKEN: Bearer-Token für die Registry-Authentifizierung
-
Benutzername und Passwort: Setzen Sie die folgenden Umgebungsvariablen:
OCI_USERNAME: Benutzername für die Registry-AuthentifizierungOCI_PASSWORD: Passwort für die Registry-Authentifizierung
-
Docker-Konfiguration (Niedrigste Priorität): Wenn keine andere Authentifizierung bereitgestellt wird, verwendet der Server den standardmäßigen Docker-Schlüsselbund, der Anmeldeinformationen aus
~/.docker/config.jsonliest.
Beispiele:
# 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-Konfiguration
Der Server kann so konfiguriert werden, dass er auf einem bestimmten Port lauscht, entweder über:
-
Umgebungsvariable:
MCP_PORT: Die Portnummer, auf der gelauscht werden soll (muss zwischen 0 und 65535 liegen)- Wenn nicht gesetzt oder ungültig, wird standardmäßig Port 8080 verwendet
-
Kommandozeilen-Flag:
-port: Überschreibt die Einstellung der Umgebungsvariable (muss zwischen 0 und 65535 liegen)- Bei Angabe eines ungültigen Ports wird standardmäßig Port 8080 verwendet
- Beispiel:
./ocireg-mcp -port 9090
Testen
go test ./...
Linting
golangci-lint run
Mitwirken
Wir freuen uns über Beiträge zu diesem MCP-Server! Wenn Sie mitwirken möchten, lesen Sie bitte den CONTRIBUTING-Leitfaden für Details zum Einstieg.
Wenn Sie auf einen Fehler stoßen oder einen Funktionswunsch haben, eröffnen Sie bitte ein Issue im Repository oder besuchen Sie uns im #mcp-servers-Kanal auf unserem Community-Discord-Server.
Lizenz
Dieses Projekt ist unter der Apache v2-Lizenz lizenziert – siehe die LICENSE-Datei für Details.