TermSSH MCP
✨ Warum TermSSH MCP
Die meisten SSH-Tools für KI-Workflows basieren auf dem Prinzip Befehl ausführen → Ausgabe erhalten → fertig.
Das funktioniert nicht, wenn die eigentliche Aufgabe interaktiv ist:
Installationsprogramme stellen Fragen
Shells behalten ihren Zustand bei
Debugging erfordert mehrere Schritte
Bereitstellungen erfordern Uploads plus Terminal-Steuerung
Agenten müssen beobachten, reagieren und fortfahren
TermSSH MCP wurde für diese Lücke entwickelt.
Anstatt so zu tun, als sei alles ein einzelner Befehl, bietet es MCP-Clients einen echten Workflow im Operator-Stil:
Shell öffnen → Eingabe schreiben → Ausgabe lesen → Kontext beibehalten → Dateien hochladen → weiterarbeiten
🧠 Was macht es anders
Terminal-zentriert
Interaktive Terminal-Sitzungen sind das Kernmodell, kein nachträglicher Einfall.
Agentenbereit
Entwickelt für MCP-Clients, Coding-Agenten und Automatisierungsschleifen.
Zustandsbehaftete Workflows
Aktive Sitzungen wiederverwenden, damit mehrstufige Aufgaben sich natürlich und zuverlässig anfühlen.
Upload enthalten
Skripte, Konfigurationen, Payloads und generierte Artefakte über SFTP verschieben.
Plattformübergreifend
Funktioniert mit Linux- und Windows-SSH-Zielen.
Saubere Tool-Oberfläche
Fokussierte MCP-Tools für Terminal-Steuerung und Remote-Dateibereitstellung.
🚀 Kernfunktionen
Interaktive SSH-Terminal-Sitzungen
Inkrementeller Terminal-Lese-/Schreibfluss
Standardmäßig verwaltete Wiederverwendung von Terminal-Sitzungen
Optionale Erstellung erzwungener Multi-Sitzungen
Lokaler Datei-Upload via SFTP
Direkter Text- und Base64-Inhalts-Upload
Unterstützung für Terminal-Größenänderung
Unterstützung für Linux- und Windows-SSH-Ziele
MCP-native Schnittstelle für KI-Tools
🧰 Tool-Set
upload-file
Lädt eine lokale Datei vom MCP-Host-Rechner auf den Remote-SSH-Server mittels SFTP hoch.
Parameter
localPath— lokaler Quellpfad der DateiremotePath— Zielpfad auf dem Remote-HostcreateDirectories— erstellt bei Bedarf fehlende übergeordnete Verzeichnisseoverwrite— überschreibt eine vorhandene Remote-Datei, falls vorhandenmode— optionaler POSIX-Modus wie0644
upload-content
Lädt direkten Text oder Base64-Inhalt auf den Remote-Server hoch.
Parameter
content— Rohtext oder Base64-Payloadencoding—utf8oderbase64remotePath— Zielpfad auf dem Remote-HostcreateDirectories— erstellt bei Bedarf fehlende übergeordnete Verzeichnisseoverwrite— überschreibt eine vorhandene Remote-Datei, falls vorhandenmode— optionaler POSIX-Modus wie0644
terminal-start
Startet eine interaktive Remote-Terminal-Sitzung.
Parameter
cwd— optionales Arbeitsverzeichnis nach dem Shell-Startshell— optionale Shell-BinärdateiplatformHint—auto,linuxoderwindowselevated— versucht bei Konfiguration einesu-Erhöhungcols— Terminal-Breiterows— Terminal-Höheenv— optionale UmgebungsvariablenmultiSession— auftruesetzen, um eine neue verwaltete Sitzung zu erzwingen, anstatt eine bestehende wiederzuverwenden
terminal-write
Schreibt Eingaben in eine aktive Terminal-Sitzung.
Parameter
sessionId— Ziel-Sitzungs-IDinput— zu sendender TextappendNewline— hängt bei Bedarf automatisch einen Zeilenumbruch an
terminal-read
Liest gepufferte Ausgaben aus einer Terminal-Sitzung.
Parameter
sessionId— Ziel-Sitzungs-IDsinceSequence— gibt nur Ausgaben zurück, die neuer als eine bestimmte Sequenznummer sindmaxChars— begrenzt die Größe der zurückgegebenen AusgabewaitForMs— optionale kurze Polling-Verzögerung
terminal-resize
Ändert die Größe einer aktiven Terminal-Sitzung.
Parameter
sessionId— Ziel-Sitzungs-IDcols— neue Breiterows— neue Höhe
terminal-close
Schließt eine Terminal-Sitzung lokal.
Parameter
sessionId— Ziel-Sitzungs-ID
🔄 Typischer Workflow
flowchart LR
A[terminal-start] --> B[terminal-write]
B --> C[terminal-read]
C --> D{Need file?}
D -- Yes --> E[upload-file / upload-content]
D -- No --> F{Continue session?}
E --> F
F -- Yes --> B
F -- No --> G[terminal-close]Dies funktioniert besonders gut für:
interaktive Paketinstallationen
Remote-Einrichtung und Provisionierung
Bereitstellungen mit Artefakt-Upload
Debugging von Diensten über mehrere Schritte hinweg
zustandsbehaftete Shell-Workflows, bei denen der Kontext wichtig ist
🛠 Installation
Repository klonen
git clone https://github.com/rayss868/termssh-mcp.git
cd termssh-mcp
npm install
npm run buildGlobal installieren
npm install -g termssh-mcp⚙ Konfiguration
Erforderliche CLI-Parameter
host— Hostname oder IP-Adresse der Remote-Maschineuser— SSH-Benutzername
Optionale CLI-Parameter
port— SSH-Port, Standard22password— SSH-Passwortkey— Pfad zu einem privaten SSH-SchlüsselsudoPassword— optionales Passwort für sudo-orientierte WorkflowssuPassword— optionales Passwort fürsu-basierte Erhöhungtimeout— SSH-Bereitschafts-Timeout in Millisekunden, Standard60000maxChars— Validierungslimit für die Befehlslänge, Standard1000; verwenden Sienoneoder0für den unbegrenzten Modus
🧩 MCP-Konfigurationsbeispiel
{
"mcpServers": {
"termssh-mcp": {
"command": "npx",
"args": [
"-y",
"termssh-mcp",
"--",
"--host=1.2.3.4",
"--port=22",
"--user=root",
"--password=pass",
"--timeout=30000",
"--maxChars=none"
]
}
}
}Beispiel für SSH-Schlüssel
{
"mcpServers": {
"termssh-mcp": {
"command": "npx",
"args": [
"-y",
"termssh-mcp",
"--",
"--host=example.com",
"--user=root",
"--key=/path/to/private/key"
]
}
}
}🤖 Claude Code Beispiel
Registrieren Sie den Server in Claude Code:
claude mcp add --transport stdio termssh-mcp -- npx -y termssh-mcp -- --host=YOUR_HOST --user=YOUR_USER --password=YOUR_PASSWORDMit SSH-Schlüssel-Authentifizierung:
claude mcp add --transport stdio termssh-mcp -- npx -y termssh-mcp -- --host=example.com --user=root --key=/path/to/private/keyMit erweitertem Timeout:
claude mcp add --transport stdio termssh-mcp -- npx -y termssh-mcp -- --host=192.168.1.100 --user=admin --password=your_password --timeout=120000 --maxChars=none🎯 Hervorragend geeignet für
Entwickler
Remote-Shell-Zugriff von KI-Coding-Tools
zustandsbehaftete Debugging-Sitzungen
Skript- und Konfigurationsbereitstellung
DevOps / Infra-Teams
Dienstinspektion
Bereitstellungsunterstützung
mehrstufige Remote-Operationen
Agenten-Entwickler
Terminal-native MCP-Workflows
wiederverwendbare Sitzungen
kontrollierte Remote-Automatisierungsschleifen
🏗 Entwicklung
Projekt bauen:
npm run buildTests ausführen:
npm testDen MCP Inspector verwenden:
npm run inspect📁 Projektstruktur
src/index.ts— MCP-Server-Einstiegspunkt und Tool-Registrierungsrc/ssh-connection-manager.ts— SSH-Verbindung und Handhabung des Terminal-Lebenszyklussrc/upload.ts— Upload-Helfer und Helfer für Metadaten interaktiver Sitzungensrc/core.ts— geteilte Validierung und SSH-Utility-Primitivetest/upload-and-terminal.test.ts— Unit-Abdeckung für Upload/Sitzungtest/maxChars.test.ts— Abdeckung der Befehlsvalidierungtest/smoke.ssh.test.ts— Smoke-Tests für das aktuell exportierte Verhalten
🗺 Roadmap-Ideen
reichhaltigere Inspektion von Sitzungsmetadaten
bessere Beobachtbarkeit von Remote-Sitzungen
optionale Funktionen zur Sitzungspersistenz
mehr Beispiele für Claude Code und MCP-Tools
Workflow-Vorlagen für die Bereitstellung
🔐 Sicherheitshinweis
TermSSH MCP ermöglicht den Remote-Zugriff auf Systeme über SSH.
Verwenden Sie es nur auf Infrastrukturen, die Sie besitzen oder für deren Verwaltung Sie ausdrücklich autorisiert sind.
📜 Lizenz
Veröffentlicht unter der MIT-Lizenz.
🤝 Mitwirken
Beiträge sind willkommen.
Siehe CONTRIBUTING.md für Richtlinien zur Mitwirkung und CODE_OF_CONDUCT.md für das erwartete Verhalten.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rayss868/termssh-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server