Zum Inhalt springen
Alle Werkzeuge

run_terminal_command

Diagnose und System · macOS · Windows

Wirkung: Ausführen. Status: bedingt verfügbar.

„Bedingte Verfügbarkeit“ bedeutet, dass das Werkzeug von Version, Plattform, Berechtigungen, Konto oder Konfiguration abhängen kann. Es ist nicht in jeder Installation aktiv.

macOS

Zweck

Führt einen Shell-Befehl auf dem Mac des Benutzers aus und gibt dessen Ausgabe zurück. Immer aktiv. Deaktiviert, wenn LMCP im Nur-Lese-Modus ist. Drei Arten von Befehlen werden abgelehnt, weil sie sich nicht rückgängig machen lassen: das Formatieren oder Überschreiben eines Datenträgers (mkfs, newfs, fdisk, diskutil erase/partition, dd zu oder von einem Datenträgergerät), ein rekursives Löschen eines Systemordners, des Home-Ordners des Benutzers oder eines seiner Datenordner (Documents, Desktop, Downloads, Library, Pictures, Movies, Music), von allem direkt darin oder eines Ziels oder Ordners, den der Text des Befehls nicht eindeutig festlegt (eine Variable, eine Befehlssubstitution, ein cd in einer Subshell), sowie eine Fork-Bombe. Ein Befehl, der einen Ort mit Zugangsdaten nennt (Schlüsselbunde, private Schlüssel in ~/.ssh, ~/.aws, ~/.config/gh, Browser-Anmeldungen, das Home-Verzeichnis eines anderen Benutzers), eine Datei schreibt, die später Code ausführt (LaunchAgents, Shell-Startdateien, Ordner von KI-Clients), eine andere App per Skript steuert, ein Skript oder eine Terminal-App öffnet, einen Systemdienst oder die Energieversorgung steuert, ein heruntergeladenes Skript in eine Shell leitet, in eine Gerätedatei schreibt oder rekursiv Berechtigungen auf einem Systempfad ändert, wird NICHT abgelehnt: Die Vorschau und das Ergebnis enthalten eine Warnung, die sagt, was er tut. Vor der Bestätigung sagen Sie dem Benutzer, was er lesen oder ändern wird, es sei denn, er hat genau das verlangt. Die Warnungen lesen nur den Text des Befehls, sodass ein Befehl, der einen Pfad verbirgt, keine erhält. Befehle laufen in einer macOS-Sandbox, die nur Local MCP selbst schützt: Das Terminal kann die eigenen Dateien von Local MCP nicht über deren Pfad öffnen oder ändern (Einstellungen und Token, Binärdateien, Aktivitätsprotokoll, Messaging- und Websitzungen, Startobjekt), kann nicht mit dessen Socket sprechen und kann die Dateien eines Kontos nicht öffnen, dessen Feld Read oder Write der Benutzer ausgeschaltet hat. Keine Einstellung öffnet diese wieder. Wegen dieser Sandbox können setuid-Systemprogramme außer ps und top nicht starten (sudo, su, crontab, at, traceroute): Die Warnung sagt dies vor der Ausführung des Befehls, und der Befehl `log` läuft nicht. In der Sandbox benötigt SwiftPM --disable-sandbox. Destruktiv: Es zeigt zuerst eine Vorschau des Befehls – übergeben Sie confirm:true, um ihn tatsächlich auszuführen. Ausgabe und Laufzeit sind begrenzt.

Erforderliche Eingaben

Die Namen bleiben exakt so erhalten, wie das Werkzeug sie verlangt. Die kanonischen technischen Definitionen auf Englisch stehen im ausklappbaren Schema unten.

Berechtigungen und Bestätigung

Das Schema deklariert einen ausdrücklichen Bestätigungsparameter. Prüfen Sie die Vorschau und autorisieren Sie den echten Vorgang gemäß Plattformvertrag.

Kanonisches technisches Schema auf Englisch — macOS
{
  "properties": {
    "command": {
      "description": "The shell command to run (a single command line, executed with /bin/zsh -lc).",
      "type": "string"
    },
    "confirm": {
      "description": "Must be true to actually run. Without it, a preview of the command is returned.",
      "type": "boolean"
    },
    "timeout_seconds": {
      "description": "Max seconds to run before it is terminated (default 20, max 60).",
      "type": "integer"
    },
    "working_dir": {
      "description": "Optional absolute working directory. Defaults to the user's home directory.",
      "type": "string"
    }
  },
  "required": [
    "command"
  ],
  "type": "object"
}

Dokumentationsbeispiel

Dokumentationsbeispiel für run_terminal_command. Führen Sie dieses Beispiel nicht aus. Die gezeigten Argumente gehören zu einem fiktiven Datensatz; ermitteln Sie reale Kennungen und holen Sie vor einem echten Aufruf die Genehmigung ein.

{
  "command": "echo Hello from LMCP",
  "confirm": false
}

Windows

Zweck

Führt einen Shell-Befehl auf dem Computer des Benutzers aus. Manche Befehle auf Systemebene (sudo/Rechteausweitung, rekursives Löschen von System- oder Home-Pfaden, Formatieren von Datenträgern, Herunterfahren/Neustart, ein heruntergeladenes Skript in eine Shell leiten, Fork-Bomben) werden abgelehnt. Destruktiv: Es zeigt zuerst eine Vorschau des Befehls – übergeben Sie confirm:true, um ihn tatsächlich auszuführen. Ausgabe und Laufzeit sind begrenzt. Unter Windows läuft der Befehl über `cmd /c`, sonst über `sh -c`.

Erforderliche Eingaben

Die Namen bleiben exakt so erhalten, wie das Werkzeug sie verlangt. Die kanonischen technischen Definitionen auf Englisch stehen im ausklappbaren Schema unten.

Berechtigungen und Bestätigung

Das Schema deklariert einen ausdrücklichen Bestätigungsparameter. Prüfen Sie die Vorschau und autorisieren Sie den echten Vorgang gemäß Plattformvertrag.

Kanonisches technisches Schema auf Englisch — Windows
{
  "properties": {
    "command": {
      "description": "The shell command to run (a single command line).",
      "type": "string"
    },
    "confirm": {
      "description": "Must be true to actually run. Without it, a preview of the command is returned.",
      "type": "boolean"
    },
    "timeout_seconds": {
      "description": "Max seconds to run before it is terminated (default 30, max 60).",
      "type": "integer"
    },
    "working_dir": {
      "description": "Optional absolute working directory. Defaults to the user's home directory.",
      "type": "string"
    }
  },
  "required": [
    "command"
  ],
  "type": "object"
}

Dokumentationsbeispiel

Dokumentationsbeispiel für run_terminal_command. Führen Sie dieses Beispiel nicht aus. Die gezeigten Argumente gehören zu einem fiktiven Datensatz; ermitteln Sie reale Kennungen und holen Sie vor einem echten Aufruf die Genehmigung ein.

{
  "command": "echo Hello from LMCP",
  "confirm": false
}