Skip to main content
Glama

Lilith Shell

Experimenteller MCP-Server, der die Ausführung lokaler Shell-Befehle für einen KI-Assistenten bereitstellt.

Aktueller Status

Dieses Repository sollte als Prototyp betrachtet werden, nicht als sicherer Shell-Server.

Die aktuelle Implementierung stellt ein MCP-Tool bereit, execute_command, das einen vom Aufrufer bereitgestellten Befehlsstring über subprocess.run(..., shell=True) ausführt. Es hat ein festes Timeout von fünf Minuten, erfasst stdout und stderr und akzeptiert ein optionales Arbeitsverzeichnis. Es implementiert derzeit nicht die zuvor in dieser README beschriebenen Sicherheitskontrollen.

Empfohlene Profilaktion: Archivieren oder lösen Sie dieses Repository, bis das Sicherheitsmodell neu aufgebaut und getestet wurde.

Related MCP server: Terminally MCP

Sicherheitswarnung

Führen Sie dies nicht auf einem Host, Konto oder Verzeichnis aus, das Anmeldeinformationen, Produktionsdaten, privaten Quellcode, SSH-Schlüssel, Cloud-Token oder anderes sensibles Material enthält.

Bekannte Lücken im aktuellen Code:

  • Keine Durchsetzung einer Befehls-Allowlist oder -Denylist

  • Keine strikten, permissiven oder Lockdown-Modi

  • Keine Durchsetzung von Grenzen für das Arbeitsverzeichnis

  • Keine Umgebungsfilterung

  • Keine Bereinigung der Ausgabe

  • Kein Audit-Log

  • Keine Shell-Auswahl über Konfiguration

  • Kein Streaming der Ausgabe

  • Kein Windows-spezifischer Ausführungspfad

  • shell=True wird mit nicht vertrauenswürdiger Tool-Eingabe verwendet

Diese Lücken machen das Projekt für den Produktionseinsatz ungeeignet und selbst auf einer normalen Entwickler-Workstation riskant.

Was heute funktioniert

Der MCP-Server registriert ein Tool:

  • execute_command

    • Eingabe: command String

    • Optionale Eingabe: directory String, standardmäßig ~

    • Verhalten: führt den Befehl im angeforderten Verzeichnis aus und gibt Exit-Code, stdout und stderr zurück

Was aus dem Umfang entfernt wurde

Die vorherige README behauptete Unterstützung für Befehls-Allowlisting, Erkennung gefährlicher Befehle, konfigurierbare Modi, Ausgabebereinigung, Audit-Logging, Einschränkung des Arbeitsverzeichnisses, plattformübergreifende Shell-Auswahl und Streaming-Ausgabe. Diese Funktionen sind im aktuellen Quellbaum nicht vorhanden.

Minimaler Patch-Plan vor der erneuten Veröffentlichung

Bevor dies als sicherheitsorientierter MCP-Server präsentiert werden kann:

  1. Ersetzen Sie die String-Ausführung shell=True durch eine argv-basierte Ausführung.

  2. Fügen Sie standardmäßig einen erforderlichen strikten Modus mit expliziten Befehls-Allowlists hinzu.

  3. Kanonisieren und erzwingen Sie ein konfiguriertes Arbeitsbereichs-Root vor jedem Befehl.

  4. Erstellen Sie Tests für Befehlsparser, blockierte Befehle, Pfad-Traversal, Symlink-Escapes, Timeout-Verhalten und Ausgabegrenzen.

  5. Schwärzen Sie gängige Geheimnismuster aus der zurückgegebenen Ausgabe.

  6. Fügen Sie eine begrenzte Ausgabeverarbeitung hinzu, damit große Befehle nicht den Speicher erschöpfen oder MCP-Antworten überfluten können.

  7. Fügen Sie auditierbare Befehlsprotokolle mit Zeitstempeln, cwd, Exit-Code und Blockierungsgrund hinzu.

  8. Dokumentieren Sie genau, welche Shells, Plattformen und Bedrohungsgrenzen unterstützt werden.

Entwicklung

pip install -e ".[dev]"
pytest

Lizenz

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    A secure Model Context Protocol server that allows AI assistants to execute terminal commands with controlled directory access and command permissions. It features a robust security architecture including whitelisting, session IDs, and categorized command levels to ensure safe system interaction.
    8
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    A secure MCP server for shell operations, terminal management, and process control, enabling AI assistants to safely execute commands and manage interactive sessions.
    13
    55 npm
    6
    MIT