🐋 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:
Der reinen Bequemlichkeit halber kann der Server in einem Docker-Container ausgeführt werden.
Erstellen Sie nach dem Klonen dieses Repositorys das Docker-Image:
Und fügen Sie dann Folgendes zu Ihrer MCP-Serverdatei hinzu:
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:
- Sie geben dem LLM Anweisungen, welche Container hochgebracht werden sollen
- Der LLM berechnet einen prägnanten Plan für natürliche Sprache und präsentiert ihn Ihnen
- 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:
💻 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:
This server cannot be installed
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.
- 🪩 Was kann es?
- ❓ Für wen ist das?
- Demo
- 🏎️ Schnellstart
- 📝 Eingabeaufforderungen
- 📔 Ressourcen
- 🔨 Werkzeuge
- 🚧 Haftungsausschlüsse
- 🛠️ Konfiguration
- 💻 Entwicklung
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA powerful Model Context Protocol (MCP) server for Docker operations, enabling seamless container and compose stack management through Claude AI.Last updated -4160PythonMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that enables Docker container management through natural language interactions using a custom GPT interface.Last updated -77TypeScript
- -securityFlicense-qualityAllows 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 -2JavaScript
- AsecurityAlicenseAqualityAn 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 -397TypeScriptMIT License