Skip to main content
Glama

🐳 Docker Explorer MCP-Server

Docker ExplorerPythonLizenz

📋 Übersicht

Docker Explorer ist ein leistungsstarker Model Context Protocol (MCP)-Server, der Tools und Ressourcen für die Interaktion mit Docker-Images, Containern und Registries bereitstellt. Dieser Server ermöglicht KI-Assistenten wie Claude die Suche, Analyse und Interaktion mit Docker-Ressourcen über eine standardisierte Schnittstelle. Dadurch wird die Verwaltung und Erkundung von Containern einfacher.

Related MCP server: ChatGPT MCP Server

✨ Funktionen

Kernfunktionen

  • Suche nach Docker-Images in allen Registrierungen

  • Suche nach bestimmten Tags von Docker-Images

  • Suche nach Docker Hub-Benutzern/Organisationen

  • Erhalten Sie detaillierte Metadaten zu Docker-Images

  • Dockerfile-Inhalt analysieren

  • Docker-Images vergleichen

Erweiterte Tools

  • 🔒 Sicherheitsscanner : Analysieren Sie Docker-Images auf bekannte Schwachstellen und Sicherheitsprobleme

  • 📦 Bildgrößenoptimierer : Erhalten Sie Empfehlungen zur Reduzierung der Docker-Bildgröße

  • 📄 Docker Compose Generator : Generieren Sie docker-compose.yml-Dateien für Ihre Anwendungen

  • 📊 Container Runtime Analyzer : Erhalten Sie Einblicke in das Laufzeitverhalten und die Ressourcennutzung von Containern

  • 🔍 Bildvergleichstool : Vergleichen Sie zwei Docker-Bilder und heben Sie ihre Unterschiede hervor

  • 📜 Dockerfile-Generator : Erstellen Sie Dockerfiles aus Anwendungsbeschreibungen in natürlicher Sprache

🚀 Installation

Voraussetzungen

  • Python 3.10 oder höher

  • MCP Python SDK

  • Erforderliche Python-Pakete: requests , pydantic

Aufstellen

  1. Klonen Sie dieses Repository :

git clone https://github.com/yourusername/docker-mcp-server.git
cd docker-mcp-server
  1. Erstellen Sie eine virtuelle Umgebung :

python -m venv .venv310
source .venv310/bin/activate  # On Windows: .venv310\Scripts\activate
  1. Installieren Sie Abhängigkeiten :

pip install -r requirements.txt

Oder installieren Sie einzelne Pakete:

pip install anthropic-mcp requests pydantic

💻 Verwendung

Ausführen des Servers

Sie können den Server direkt von der Befehlszeile aus ausführen:

python docker_explorer.py

Dadurch wird der MCP-Server auf dem Standardport (5000) gestartet.

Integration mit Claude Desktop

So verwenden Sie den Docker Explorer MCP-Server mit Claude Desktop:

  1. Aktualisieren Sie die Claude Desktop-Konfiguration :

    • Öffnen oder erstellen Sie die Datei claude_desktop_config.json in Ihrem Claude Desktop-Konfigurationsverzeichnis

    • Fügen Sie die Docker Explorer-Serverkonfiguration hinzu

{
  "mcp_servers": [
    {
      "name": "docker-explorer",
      "command": ["python", "/path/to/mcpIS421/docker_explorer.py"],
      "cwd": "/path/to/mcpIS421"
    }
  ]
}
  1. Starten Sie Claude Desktop neu , um die neue Konfiguration zu laden

Verwenden der Tools

Nach der Integration mit Claude Desktop können Sie die Docker Explorer-Tools verwenden, indem Sie Claude Fragen stellen wie:

Kernwerkzeuge

  1. Suche nach Docker-Images :

    Can you search for Python Docker images?
  2. Bilddetails abrufen :

    What are the details of the python:3.11-slim image?
  3. Verfügbare Tags suchen :

    What tags are available for the nginx image?

Erweiterte Tools

  1. Sicherheitsscanner :

    Scan the security of the nginx image
  2. Bildgrößenoptimierer :

    How can I reduce the size of my python:3.9 image?
  3. Docker Compose Generator :

    Generate a docker-compose file for nginx with port 8080:80
  4. Container-Laufzeitanalysator :

    Analyze the runtime behavior of mysql:5.7 as a database

👷 Entwicklung

Projektstruktur

docker-explorer-mcp/
├── docker_explorer.py      # Main server implementation with all tools
├── requirements.txt        # Project dependencies
├── .gitignore             # Git ignore file
└── docs/                  # Documentation
    ├── server_guide.md    # Guide for setting up and using the server
    ├── new_tools_suggestions.md  # Ideas for additional tools
    └── docker_mcp_server_project.md  # Project overview

Neue Funktionen hinzufügen

So fügen Sie dem Docker Explorer MCP-Server ein neues Tool hinzu:

  1. Implementieren Sie die Tool-Funktion in docker_explorer.py mithilfe des MCP-Tool-Dekorators:

@mcp.tool()
def my_new_tool(
    param1: str = Field(description="Description of param1"),
    param2: int = Field(default=10, description="Description of param2")
) -> str:
    """Description of what your tool does"""
    try:
        # Implementation logic here
        result = f"Your formatted result"
        return result
    except Exception as e:
        return f"Error in my_new_tool: {str(e)}"
  1. Befolgen Sie diese Best Practices für die Toolimplementierung:

    • Halten Sie die Ausgabe prägnant und formatiert für Claude Desktop

    • Ausnahmen ordnungsgemäß behandeln

    • Geben Sie klare Parameterbeschreibungen an

    • Liefern Sie gut strukturierte Ergebnisse

Testen

  1. Manuelles Testen :

    • Führen Sie den Server aus: python docker_explorer.py

    • Testen Sie mit Claude Desktop, indem Sie relevante Fragen stellen

  2. Debuggen :

    • Überprüfen Sie die Terminalausgabe auf etwaige Fehler

    • Überprüfen Sie die Tool-Antworten in Claude Desktop

    • Passen Sie die Ausgabeformatierung an, wenn Claude Kapazitätsbeschränkungen hat

📚 API-Dokumentation

Kernwerkzeuge

search_images

  • Beschreibung : Suche nach Docker-Images in allen Registern

  • Parameter :

    • query (Zeichenfolge): Suchanfrage für Docker-Images

    • limit (Ganzzahl, Standard=10): Maximale Anzahl der zurückzugebenden Ergebnisse

  • Gibt zurück : Liste der Docker-Images mit Metadaten

search_tags

  • Beschreibung : Suche nach bestimmten Tags eines Docker-Images

  • Parameter :

    • image_name (Zeichenfolge): Name des Docker-Images

    • tag_pattern (Zeichenfolge, Standard=""): Muster, mit dem Tags abgeglichen werden

    • limit (Ganzzahl, Standard=25): Maximale Anzahl der zurückzugebenden Ergebnisse

  • Gibt zurück : Liste der passenden Tags

get_image_details

  • Beschreibung : Erhalten Sie detaillierte Informationen zu einem Docker-Image

  • Parameter :

    • image_name (Zeichenfolge): Name des Docker-Images

    • tag (Zeichenfolge, Standard="neueste"): Tag des Docker-Images

  • Rückgaben : Detaillierte Bildinformationen

Erweiterte Tools

scan_security

  • Beschreibung : Analysieren Sie Docker-Images auf bekannte Schwachstellen und Sicherheitsprobleme

  • Parameter :

    • image_name (Zeichenfolge): Name des Docker-Images

    • tag (Zeichenfolge, Standardwert = „latest“): Tag des zu scannenden Docker-Images

  • Renditen : Sicherheitsanalysebericht mit Empfehlungen

optimize_image_size

  • Beschreibung : Analysieren Sie ein Docker-Image und schlagen Sie Möglichkeiten zur Reduzierung seiner Größe vor

  • Parameter :

    • repository_url (Zeichenfolge): Vollständige URL zu einem Docker Hub-Repository

    • tag (Zeichenfolge, Standardwert = „latest“): Tag des zu analysierenden Docker-Images

  • Rücksendungen : Empfehlungen zur Größenoptimierung

generate_docker_compose

  • Beschreibung : Generieren Sie eine docker-compose.yml-Datei basierend auf einem Image

  • Parameter :

    • repository_url (Zeichenfolge): Vollständige URL zu einem Docker Hub-Repository

    • tag (Zeichenfolge, Standard="neueste"): Tag des Docker-Images

    • port_mapping (Zeichenfolge, Standard=""): Optionale Portzuordnung (z. B. „8080:80“)

    • environment_variables (Zeichenfolge, Standard=""): Optionale Umgebungsvariablen

    • include_db (boolean, default=false): Ob ein Datenbankdienst eingeschlossen werden soll

  • Gibt zurück : Generierter docker-compose.yml-Inhalt

analyze_runtime

  • Beschreibung : Analysieren Sie, wie sich ein Container zur Laufzeit verhalten könnte

  • Parameter :

    • image_name (Zeichenfolge): Name des Docker-Images

    • tag (Zeichenfolge, Standard="neueste"): Tag des Docker-Images

    • app_type (Zeichenfolge, Standard="Web"): Anwendungstyp (Web, Datenbank, Cache, API, Batch)

  • Ergebnisse : Laufzeitanalyse mit Vorhersagen und Empfehlungen zur Ressourcennutzung

compare_images

  • Beschreibung : Vergleichen Sie zwei Docker-Images und heben Sie die Unterschiede hervor

  • Parameter :

    • image1 (Zeichenfolge): Erstes zu vergleichendes Docker-Image (z. B. „nginx:1.21“ oder „user/repo:tag“)

    • image2 (Zeichenfolge): Zweites zu vergleichendes Docker-Image (z. B. „nginx:1.22“ oder „user/repo:tag“)

  • Rückgabe : Detaillierter Vergleichsbericht, der Unterschiede in Größe, Schichten, Konfiguration und Kompatibilität hervorhebt

generate_dockerfile

  • Beschreibung : Generieren Sie eine Docker-Datei basierend auf den in natürlicher Sprache beschriebenen Anwendungsanforderungen.

  • Parameter :

    • app_description (Zeichenfolge): Beschreibung der zu containerisierenden Anwendung (z. B. „Python Flask-Web-App mit Redis“)

    • app_type (Zeichenfolge, Standard="Web"): Anwendungstyp (Web, API, Datenbank, Worker, statisch)

    • base_image (Zeichenfolge, Standard=""): Optionales zu verwendendes Basisbild (z. B. „python:3.9-alpine“)

    • include_comments (boolean, default=true): Ob erklärende Kommentare in die Docker-Datei aufgenommen werden sollen

  • Rückgabe : Generierte Docker-Datei mit Gebrauchsanweisungen

🔒 Sicherheitsüberlegungen

Der Docker Explorer MCP-Server ist für Bildungs- und Entwicklungszwecke konzipiert. Bei der Verwendung:

  • Geben Sie keine vertraulichen Anmeldeinformationen oder API-Schlüssel preis

  • Seien Sie vorsichtig beim Generieren und Ausführen von Docker Compose-Dateien

  • Überprüfen Sie vor der Implementierung immer die Sicherheitsempfehlungen

📌 Lizenz

MIT

👥 Beitragen

Beiträge sind willkommen! Senden Sie uns gerne einen Pull Request mit neuen Tools oder Verbesserungen bestehender Funktionen.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jar285/mcp-docker'

If you have feedback or need assistance with the MCP directory API, please join our Discord server