Electron Terminal MCP-Server
Idealerweise würden Anbieter eine eigene MCP-Integration für das Terminal bereitstellen. Dieses Projekt bietet jedoch einen Model Context Protocol (MCP)-Server, der Clients die Interaktion mit einem Systemterminal ermöglicht, das innerhalb einer Electron-Anwendung läuft. Es ermöglicht die Ausführung von Befehlen, die Verwaltung von Terminalsitzungen und das programmgesteuerte Abrufen von Ausgaben.
Das System besteht aus zwei Hauptteilen:
MCP-Server ( Ein Node.js-Skript, das über die Standard-Ein-/Ausgabe (stdio) auf MCP-Anfragen wartet. Es verwendet
@modelcontextprotocol/sdkund fungiert als Brücke zum Electron-Backend. Es startet das Electron-Backend automatisch, falls es nicht bereits läuft. Inmcp-package.jsonmuss"type": "module"angegeben werden.Electron-Backend ( Der Hauptprozess der Electron-Anwendung. Er betreibt einen Express-HTTP-Server (standardmäßig Port 3000), mit dem der MCP-Server (
index.js) für Integritätsprüfungen und API-Aufrufe kommuniziert. Dieses Backend verwaltet die eigentlichen Terminalprozesse mithilfe vonnode-ptyin verstecktenBrowserWindowInstanzen,terminal.htmlladen.
2. Screenshots
So sieht die Terminalinteraktion innerhalb eines Clients wie Claude Desktop aus:
Claude-Desktopfenster mit Terminalausgabe:
Fenster für einzelne Elektronenanschlüsse:
Related MCP server: Shell MCP Server
3. Installation
Voraussetzungen: Stellen Sie sicher, dass Sie Node.js und npm installiert haben.
Klonen: Klonen Sie das Repository, falls Sie dies noch nicht getan haben.
git clone <your-repository-url> cd command-terminal-electron # Or your repository directory nameAbhängigkeiten installieren: Installieren Sie Node-Module sowohl für den MCP-Server als auch für die Electron-App.
npm installNative Module neu erstellen: Native Module (wie
node-pty) für Electron neu erstellen.node rebuild.js(Weitere Einzelheiten finden Sie in
3. Nutzung
Starten Sie den MCP-Server: Führen Sie das Skript
index.jsmit Node.js aus. Dadurch wird auf stdio auf MCP-Befehle gewartet und automatisch versucht, den Electron-Backend-Prozess (main.js) zu starten, falls dieser nicht bereits läuft und auf dem erwarteten HTTP-Port lauscht.node index.jsHinweis: Der Electron-Prozess läuft verborgen im Hintergrund und wird bei Bedarf automatisch (neu) gestartet und nach Möglichkeit immer wiederverwendet.
Interaktion über MCP: Clients verbinden sich über stdio mit dem
node index.js-Prozess und verwenden den Befehluse_mcp_tool. Der Servername ist inindex.jsals „Electron Terminal“ definiert.Verfügbare Tools:
terminal_start: Erstellt eine neue Terminalsitzung und führt einen ersten Befehl aus.Eingabe:
{ "command": "string" }Ausgabe:
{ "content": [...], "sessionId": "string" }GXP5
terminal_execute: Führt einen Befehl in einer bestehenden Sitzung aus.Eingabe:
{ "command": "string", "sessionId": "string" }Ausgabe:
{ "content": [...] }(Sitzungs-ID ist im Textinhalt enthalten) GXP6
terminal_get_output: Ruft die kumulierte Ausgabe für eine Sitzung ab.Eingabe:
{ "sessionId": "string" }Ausgabe:
{ "content": [...] }GXP7
terminal_stop: Beendet einen bestimmten Terminalsitzungsprozess.Eingabe:
{ "sessionId": "string" }Ausgabe:
{ "content": [...] }GXP8
terminal_get_sessions: Listet alle derzeit aktiven Sitzungen auf, die vom Electron-Backend verwaltet werden.Eingabe:
{}Ausgabe:
{ "content": [...] }(Inhalt enthält eine JSON-Zeichenfolge aktiver Sitzungen) GXP9
5. Synergie mit dem Filesystem MCP Server
Dieser Electron Terminal MCP-Server arbeitet sehr effektiv mit dem Filesystem MCP-Server zusammen. Sie können den Filesystem-Server verwenden, um Verzeichnisse zu durchsuchen, Dateien zu lesen/schreiben und anschließend mit diesem Terminalserver Befehle innerhalb dieser Verzeichnisse oder in Bezug auf diese Dateien auszuführen. Dies bietet eine umfassende Remote-Entwicklungs- und Interaktionserfahrung, die nahtlos mit beispielsweise der in Claude Desktop integrierten Internet-Suchfunktion zusammenarbeitet.
6. Voraussetzungen
Node.js (v20 oder höher empfohlen, ich verwende Node 22)
npm
Mit Electron kompatibles Betriebssystem (Windows, macOS, Linux)
7. Konfiguration
Claude Desktop MCP-Serverkonfiguration
Standort
Die Datei claude_desktop_config.json sollte im AppData-Verzeichnis Ihres Benutzers abgelegt werden:
Windows:
C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json
Diese Datei wird von Claude Desktop verwendet, um externe MCP-Server zu erkennen und zu konfigurieren.
Zweck und Struktur
Die Konfigurationsdatei definiert MCP-Server, die Claude Desktop starten und mit denen es sich verbinden kann. Jeder Servereintrag gibt an, wie der Serverprozess gestartet werden soll.
mcpServers: Ein Objekt, bei dem jeder Schlüssel ein Servername und der Wert seine Startkonfiguration ist.Beispiel für eine Serverkonfiguration ( :
command: Die auszuführende ausführbare Datei (z. B.nodefür Node.js-Server).args: Ein Array von Argumenten, die an den Befehl übergeben werden (z. B. der Pfad zu Ihrem MCP-Serverskript).
Beispiel
Felderklärungen
mcpServers: Objekt der obersten Ebene, das Servernamen ihren Konfigurationen zuordnet.command-terminal: Beispiel-Servername. Sie können in diesem Objekt mehrere Server definieren.command: Die ausführbare Datei zum Starten des MCP-Servers.args: An den Befehl übergebene Argumente, z. B. der Pfad zu Ihrem Serverskript.
8. Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Informationen finden Sie in der Datei LICENSE.