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 (
index.js
): Ein Node.js-Skript, das über die Standard-Ein-/Ausgabe (stdio) auf MCP-Anfragen wartet. Es verwendet@modelcontextprotocol/sdk
und fungiert als Brücke zum Electron-Backend. Es startet das Electron-Backend automatisch, falls es nicht bereits läuft. Inmcp-package.json
muss"type": "module"
angegeben werden. - Electron-Backend (
main.js
): 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-pty
in verstecktenBrowserWindow
Instanzen,terminal.html
laden.
2. Screenshots
So sieht die Terminalinteraktion innerhalb eines Clients wie Claude Desktop aus:
Claude-Desktopfenster mit Terminalausgabe:
Fenster für einzelne Elektronenanschlüsse:
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.
- Abhängigkeiten installieren: Installieren Sie Node-Module sowohl für den MCP-Server als auch für die Electron-App.
- Native Module neu erstellen: Native Module (wie
node-pty
) für Electron neu erstellen.(Weitere Einzelheiten finden Sie inrebuild.js
.)
3. Nutzung
- Starten Sie den MCP-Server: Führen Sie das Skript
index.js
mit 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.Hinweis: 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.js
als „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
- Eingabe:
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
- Eingabe:
terminal_get_output
: Ruft die kumulierte Ausgabe für eine Sitzung ab.- Eingabe:
{ "sessionId": "string" }
- Ausgabe:
{ "content": [...] }
GXP7
- Eingabe:
terminal_stop
: Beendet einen bestimmten Terminalsitzungsprozess.- Eingabe:
{ "sessionId": "string" }
- Ausgabe:
{ "content": [...] }
GXP8
- Eingabe:
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
- Eingabe:
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-terminal
) :command
: Die auszuführende ausführbare Datei (z. B.node
fü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.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Ein Model Context Protocol-Server, der Clients die Interaktion mit einem Systemterminal ermöglicht, das in einer Electron-Anwendung ausgeführt wird. Dadurch ist die Ausführung von Befehlen, die Verwaltung von Terminalsitzungen und das programmgesteuerte Abrufen von Ausgaben möglich.
- Screenshots
- Installation
- Nutzung
- Synergie mit dem Filesystem MCP Server
- Voraussetzungen
- Konfiguration
- Lizenz
Related Resources
Related MCP Servers
- -securityFlicense-qualityThis server enables running a Model Context Protocol in a web browser with functionalities including arithmetic operations and session-based key-value storage.Last updated -2TypeScript
- -securityFlicense-qualityA Model Context Protocol server that allows LLMs to execute shell commands and receive their output in a controlled manner.Last updated -Python
- AsecurityAlicenseAqualityA secure terminal execution server that enables controlled command execution with security features and resource limits via the Model Context Protocol (MCP).Last updated -1121JavaScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables seamless execution of commands, Python code, web content fetching, and reusable task management with secure credentials handling.Last updated -2PythonMIT License