Skip to main content
Glama

Docker MCP Server

🐋 Docker MCP-Server

Ein MCP-Server zur Verwaltung von Docker mit natürlicher Sprache!

🪩 Was kann es?

  • 🚀 Container mit natürlicher Sprache erstellen
  • 🔍 Laufende Container überprüfen und debuggen
  • 📀 Verwalten persistenter Daten mit Docker-Volumes

❓ Für wen ist das?

  • Serveradministratoren: Stellen Sie eine Verbindung zu Remote-Docker-Engines her, um beispielsweise eine öffentlich zugängliche Website zu verwalten.
  • Tüftler: Führen Sie Container lokal aus und experimentieren Sie mit Open-Source-Apps, die Docker unterstützen.
  • KI-Enthusiasten: Gehen Sie an die Grenzen dessen, was ein LLM leisten kann!

Demo

Eine kurze Demo, die eine WordPress-Bereitstellung in natürlicher Sprache zeigt:

https://github.com/user-attachments/assets/65e35e67-bce0-4449-af7e-9f4dd773b4b3

🏎️ Schnellstart

Installieren

Claude Desktop

Unter MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json

Unter Windows: %APPDATA%/Claude/claude_desktop_config.json

Wenn Sie uv nicht installiert haben, folgen Sie den Installationsanweisungen für Ihr System: Link

Fügen Sie dann Folgendes zu Ihrer MCP-Serverdatei hinzu:

"mcpServers": { "mcp-server-docker": { "command": "uvx", "args": [ "mcp-server-docker" ] } }

Der reinen Bequemlichkeit halber kann der Server in einem Docker-Container ausgeführt werden.

Erstellen Sie nach dem Klonen dieses Repositorys das Docker-Image:

docker build -t mcp-server-docker .

Und fügen Sie dann Folgendes zu Ihrer MCP-Serverdatei hinzu:

"mcpServers": { "mcp-server-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/var/run/docker.sock:/var/run/docker.sock", "mcp-server-docker:latest" ] } }

Beachten Sie, dass wir den Docker-Socket als Volume mounten. Dadurch wird sichergestellt, dass der MCP-Server eine Verbindung zum lokalen Docker-Daemon herstellen und diesen steuern kann.

📝 Eingabeaufforderungen

🎻 docker_compose

Verwenden Sie natürliche Sprache zum Erstellen von Containern. Eine Demo finden Sie oben .

Geben Sie einen Projektnamen und eine Beschreibung der gewünschten Container an und überlassen Sie den Rest dem LLM.

Diese Eingabeaufforderung weist den LLM an, eine plan+apply Schleife einzugeben. Ihre Interaktion mit dem LLM umfasst die folgenden Schritte:

  1. Sie geben dem LLM Anweisungen, welche Container hochgebracht werden sollen
  2. Der LLM berechnet einen prägnanten Plan für natürliche Sprache und präsentiert ihn Ihnen
  3. Sie haben entweder:
    • Wenden Sie den Plan an
    • Geben Sie dem LLM Feedback, und der LLM berechnet den Plan neu
Beispiele
  • Name: nginx , Container: „Stellen Sie einen Nginx-Container bereit, der ihn auf Port 9000 verfügbar macht.“
  • Name: wordpress , Container: „Stellen Sie einen WordPress-Container und einen unterstützenden MySQL-Container bereit und stellen Sie WordPress auf Port 9000 bereit.“
Fortsetzen eines Projekts

Wenn Sie mit dieser Eingabeaufforderung einen neuen Chat starten, erhält das LLM den Status aller Container, Volumes und Netzwerke, die mit dem angegebenen name erstellt wurden.

Dies ist vor allem zum Aufräumen nützlich, falls Sie einen Chat verlieren, der für viele Container verantwortlich war.

📔 Ressourcen

Der Server implementiert für jeden Container einige Ressourcen:

  • Statistiken: CPU, Speicher usw. für einen Container
  • Protokolle: Einige Protokolle aus einem Container verfolgen

🔨 Werkzeuge

Behälter

  • list_containers
  • create_container
  • run_container
  • recreate_container
  • start_container
  • fetch_container_logs
  • stop_container
  • remove_container

Bilder

  • list_images
  • pull_image
  • push_image
  • build_image
  • remove_image

Netzwerke

  • list_networks
  • create_network
  • remove_network

Bände

  • list_volumes
  • create_volume
  • remove_volume

🚧 Haftungsausschlüsse

Sensible Daten

Konfigurieren Sie keine Container mit sensiblen Daten. Dazu gehören API-Schlüssel, Datenbankkennwörter usw.

Alle mit dem LLM ausgetauschten vertraulichen Daten sind grundsätzlich gefährdet, es sei denn, das LLM wird auf Ihrem lokalen Computer ausgeführt.

Wenn Sie daran interessiert sind, Geheimnisse sicher an Container weiterzugeben, melden Sie in diesem Repository ein Problem mit Ihrem Anwendungsfall.

Überprüfen erstellter Container

Überprüfen Sie die vom LLM erstellten Container sorgfältig. Docker ist keine sichere Sandbox, daher kann der MCP-Server möglicherweise über Docker den Hostcomputer beeinflussen.

Aus Sicherheitsgründen unterstützt dieser MCP-Server keine sensiblen Docker-Optionen wie --privileged oder --cap-add/--cap-drop . Wenn Sie an diesen Funktionen interessiert sind, melden Sie bitte in diesem Repository ein Problem mit Ihrem Anwendungsfall.

🛠️ Konfiguration

Dieser Server verwendet die Methode from_env des Python Docker SDK. Konfigurationsdetails finden Sie in der Dokumentation .

Verbinden Sie sich über SSH mit Docker

Dieser MCP-Server kann über SSH eine Verbindung zu einem Remote-Docker-Daemon herstellen.

Legen Sie einfach eine ssh:// Host-URL in der MCP-Serverdefinition fest:

"mcpServers": { "mcp-server-docker": { "command": "uvx", "args": [ "mcp-server-docker" ], "env": { "DOCKER_HOST": "ssh://myusername@myhost.example.com" } } }

💻 Entwicklung

Verwenden Sie zum Konfigurieren Ihrer Entwicklungsumgebung vorzugsweise Devbox.

Hilfreiche Entwicklungsbefehle finden Sie in der Datei devbox.json .

Nachdem Sie devbox eingerichtet haben, können Sie Ihre Claude MCP-Konfiguration für die Verwendung konfigurieren:

"docker": { "command": "/path/to/repo/.devbox/nix/profile/default/bin/uv", "args": [ "--directory", "/path/to/repo/", "run", "mcp-server-docker" ] },
-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Ein MCP-Server, der die Verwaltung von Docker-Containern über natürliche Sprache ermöglicht und es Benutzern ermöglicht, Container zusammenzustellen, zu prüfen und zu debuggen, ohne selbst Befehle ausführen zu müssen.

  1. 🪩 Was kann es?
    1. ❓ Für wen ist das?
      1. Demo
        1. 🏎️ Schnellstart
          1. Installieren
        2. 📝 Eingabeaufforderungen
          1. 🎻 docker_compose
        3. 📔 Ressourcen
          1. 🔨 Werkzeuge
            1. Behälter
            2. Bilder
            3. Netzwerke
            4. Bände
          2. 🚧 Haftungsausschlüsse
            1. Sensible Daten
            2. Überprüfen erstellter Container
          3. 🛠️ Konfiguration
            1. Verbinden Sie sich über SSH mit Docker
          4. 💻 Entwicklung

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              A powerful Model Context Protocol (MCP) server for Docker operations, enabling seamless container and compose stack management through Claude AI.
              Last updated -
              4
              160
              Python
              MIT License
              • Apple
            • A
              security
              F
              license
              A
              quality
              A Model Context Protocol server that enables Docker container management through natural language interactions using a custom GPT interface.
              Last updated -
              7
              7
              TypeScript
            • -
              security
              F
              license
              -
              quality
              Allows Claude and other AI assistants to interact with Docker through the MCP protocol, enabling container and image management including listing, running, stopping, and pulling Docker resources.
              Last updated -
              2
              JavaScript
              • Apple
            • A
              security
              A
              license
              A
              quality
              An MCP server that enables interaction with development containers through the devcontainers CLI, allowing users to start, run commands in, and execute arbitrary shell commands inside devcontainers.
              Last updated -
              3
              97
              TypeScript
              MIT License

            View all related MCP servers

            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/ckreiling/mcp-server-docker'

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