Synology Docker MCP Server
Synology Docker MCP Server
(Scrollen Sie nach unten für die englische Version / English version below)
🇨🇳 中文说明 (Chinesische Version)
Dies ist ein Model Context Protocol (MCP) Server, der speziell für Synology NAS entwickelt wurde. Er dient dazu, Docker-Container und Docker-Compose-Projekte im Synology Container Manager direkt über Large Language Models zu verwalten, zu konfigurieren und zu debuggen.
✨ Kernfunktionen und Highlights
Sichere Verwaltung via SSH: Direkte Kommunikation mit Ihrem Synology NAS über SSH, sichere Ausführung nativer Befehle und vollständiger Verzicht auf das Risiko, Docker-TCP-Schnittstellen nach außen freizugeben.
Auto-Privilege Escalation (Automatische Privilegieneskalation): Automatische Injektion von Anmeldedaten zur stillen Ausführung von
sudo, wodurch die bei Synology-Administratorkonten häufig auftretendenPermission Denied-Berechtigungshürden bei der Ausführung von Docker-Befehlen gelöst werden.Perfekte Kompatibilität mit dem Synology Container Manager: Native Unterstützung und erzwungene Verwendung von
docker-compose -p-Tags, um sicherzustellen, dass Projekte, die über diesen MCP-Server gestartet oder aktualisiert werden, perfekt mit der webbasierten Projektoberfläche von Synology synchronisiert bleiben (Beibehaltung des grünen Status-Punkts).Umfassendes Toolset:
synology_docker_ps: Alle laufenden Container anzeigen.synology_docker_logs: Container-Logs abrufen und verfolgen.synology_docker_manage: Starten, Stoppen, Neustarten oder Entfernen von Containern steuern.synology_project_list: Automatische Suche und Erkennung aller Projekte im Verzeichnis/volume1/docker/.synology_project_manage: Native Ausführung von Pull-, Up-, Down- oder Restart-Befehlen für Projekte.synology_read_file/synology_write_file: Remote-Lesen oder Ändern von.env- unddocker-compose.yml-Konfigurationsdateien.
🔒 Sicherheitsprotokoll (v1.1.0)
Schwachstelle | Lösung |
Shell-Expansion bei Sonderzeichen im Passwort ( |
|
Befehlsinjektion (Containername/Projektname/Pfad-Konkatenation) | Alle Benutzereingaben werden vor der Befehlskonkatenation mit |
Nicht validierter | Whitelist-Validierung auf Code-Ebene, unabhängig vom Schema-Enum |
Pfad-Traversal ( |
|
| Erzwingung positiver Ganzzahlen, Obergrenze 10000, Standardwert 100 |
SSH-Verbindung ohne Timeout |
|
🚀 Schnelleinstieg und Konfiguration
Synology SSH-Dienst aktivieren: Gehen Sie zu Systemsteuerung -> Terminal & SNMP und aktivieren Sie SSH-Dienst aktivieren.
Umgebungsvariablen und Anmeldedaten konfigurieren: Kopieren Sie die
.env.exampleaus dem Projekt, benennen Sie sie in.envum und geben Sie Ihre NAS-Verbindungsinformationen ein:NAS_HOST=192.168.1.xxx NAS_PORT=22 NAS_USER=your_admin_account NAS_PASSWORD=your_admin_password NAS_DOCKER_DIR=/volume1/dockerAbhängigkeiten installieren und bauen:
npm install npm run buildMCP-Client verbinden (z. B. Claude Desktop oder Cursor): Fügen Sie den folgenden Inhalt zur MCP-Konfigurations-JSON Ihres Clients hinzu:
{ "mcpServers": { "synology-docker": { "command": "node", "args": [ "--env-file=e:\\Dev\\Synology Docker MCP\\.env", "e:\\Dev\\Synology Docker MCP\\build\\index.js" ] } } }
🇬🇧 Englische Version
Dies ist ein Model Context Protocol (MCP) Server, der speziell für die Verwaltung, Konfiguration und das Debugging von Docker-Containern und Docker-Compose-Projekten auf Synology NAS-Geräten entwickelt wurde.
✨ Funktionen & Highlights
SSH-basierte Verwaltung: Kommuniziert direkt über SSH mit Ihrem Synology NAS und gewährleistet die sichere Ausführung nativer Befehle, ohne den Docker-TCP-Socket freigeben zu müssen.
Auto-Privilege Escalation: Injiziert automatisch Anmeldedaten, um
sudoim Hintergrund auszuführen und die bei Synology-Administratorkonten üblichenPermission Denied-Probleme zu umgehen.Kompatibilität mit dem Synology Container Manager: Native Unterstützung für
docker-compose -p, wodurch sichergestellt wird, dass Projekte, die über diesen MCP-Server gestartet oder aktualisiert werden, perfekt mit der GUI des Synology Container Managers übereinstimmen (Beibehaltung der grünen Statusanzeige).Umfassendes Toolset:
synology_docker_ps: Alle laufenden Container anzeigen.synology_docker_logs: Container-Logs streamen.synology_docker_manage: Container starten, stoppen, neu starten oder entfernen.synology_project_list: Projekte entdecken, die in/volume1/docker/gemappt sind.synology_project_manage: Docker-Compose-Projekte nativ per Pull, Up, Down oder Restart verwalten.synology_read_file/synology_write_file:.env- unddocker-compose.yml-Konfigurationen remote bearbeiten.
🔒 Sicherheitshärtung (v1.1.0)
Schwachstelle | Lösung |
Shell-Expansion bei Passwort ( |
|
Befehlsinjektion (Container-/Projektname/Pfad-Konkatenation) | Alle Benutzereingaben werden vor der Shell-Konkatenation mit |
Nicht validierter | Whitelist-Validierung auf Code-Ebene, unabhängig vom Schema-Enum |
Pfad-Traversal (z. B. Lesen von |
|
| Erzwingung positiver Ganzzahlen, Obergrenze 10000, Standardwert 100 |
SSH-Verbindung hängt unendlich |
|
🚀 Einrichtungsanleitung
SSH auf dem Synology NAS aktivieren: Gehen Sie zu Systemsteuerung -> Terminal & SNMP und aktivieren Sie SSH-Dienst aktivieren.
Anmeldedaten konfigurieren: Kopieren Sie
.env.examplenach.envund geben Sie Ihre NAS-Verbindungsdetails ein:NAS_HOST=192.168.1.xxx NAS_PORT=22 NAS_USER=your_admin_account NAS_PASSWORD=your_admin_password NAS_DOCKER_DIR=/volume1/dockerAbhängigkeiten installieren & bauen:
npm install npm run buildMit MCP-Client verbinden (z. B. Claude Desktop / Cursor): Fügen Sie Folgendes zu Ihrer MCP-Konfigurations-JSON hinzu:
{ "mcpServers": { "synology-docker": { "command": "node", "args": [ "--env-file=e:\\Dev\\Synology Docker MCP\\.env", "e:\\Dev\\Synology Docker MCP\\build\\index.js" ] } } }
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/hifishhe/Synology-Docker-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server