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.
- 2. Screenshots
- 3. Installation
- 3. Nutzung
- 5. Synergie mit dem Filesystem MCP Server
- 6. Voraussetzungen
- 7. Konfiguration
- 8. Lizenz
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that provides programmatic access to the Windows terminal, enabling AI models to interact with the Windows command line through standardized tools for writing commands, reading output, and sending control signals.Last updated -3JavaScriptMIT License
- -securityFlicense-qualityA Model Context Protocol server that allows LLMs to execute shell commands and receive their output in a controlled manner.Last updated -3Python
- AsecurityAlicenseAqualityA secure terminal execution server that enables controlled command execution with security features and resource limits via the Model Context Protocol (MCP).Last updated -16677JavaScriptMIT 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