ocireg MCP Server

offiziell

Ein 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

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

  1. 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
  2. Bearer-Token-Umgebungsvariable: Setzen Sie die folgende Umgebungsvariable:

    • OCI_TOKEN: Bearer-Token für die Registry-Authentifizierung
  3. Benutzername und Passwort: Setzen Sie die folgenden Umgebungsvariablen:

    • OCI_USERNAME: Benutzername für die Registry-Authentifizierung
    • OCI_PASSWORD: Passwort für die Registry-Authentifizierung
  4. 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.json liest.

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:

  1. 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
  2. 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.