terminal-mcp
Das Problem
Jedes KI-Coding-Tool stößt an dieselbe Grenze: kein echter Terminalzugriff.
Das Bash-Tool von Claude Code, GitHub Copilot und Codex führen Befehle in isolierten Unterprozessen aus. Jeder Befehl startet neu. Kein Zustand wird übernommen. Das bedeutet:
Keine SSH-Sitzungen – Keine Verbindung zu einem entfernten Server und Ausführung mehrerer Befehle möglich
Keine REPLs – Keine interaktive Nutzung von Python-, Node- oder Ruby-Interpretern
Keine Datenbank-CLIs – Keine dauerhafte Verbindung mit psql, mysql oder redis-cli
Keine TUI-Apps – Keine Navigation in htop, vim oder fzf mit Pfeiltasten
Keine langlaufenden Prozesse – Keine Überwachung von Builds, Logs oder Ausführung von Dev-Servern
Related MCP server: Interactive Terminal MCP Server
Die Lösung
terminal-mcp gibt KI-Agenten ein echtes Terminal. Beständige PTY-Sitzungen, die über Tool-Aufrufe hinweg bestehen bleiben. Befehle senden, Ausgaben lesen, Tasten drücken, TUIs navigieren – genau wie ein Mensch am Terminal.
uvx terminal-mcpEin Befehl. Funktioniert mit Claude Code, Claude Desktop, VS Code, Cursor und Windsurf.
Schnellstart
1. Installation (30 Sekunden)
# No install needed - run directly
uvx terminal-mcp
# Or install globally
pip install terminal-mcp2. Verbindung mit Ihrem KI-Client herstellen
Zu ~/.claude.json oder Projekt-.mcp.json hinzufügen:
{
"mcpServers": {
"terminal": {
"command": "uvx",
"args": ["terminal-mcp"]
}
}
}Zu claude_desktop_config.json hinzufügen:
{
"mcpServers": {
"terminal": {
"command": "uvx",
"args": ["terminal-mcp"]
}
}
}Klicken Sie auf das One-Click-Install-Abzeichen oben, oder fügen Sie zu .vscode/mcp.json hinzu:
{
"servers": {
"terminal-mcp": {
"command": "uvx",
"args": ["terminal-mcp"]
}
}
}Zu ~/.codeium/windsurf/mcp_config.json hinzufügen:
{
"mcpServers": {
"terminal": {
"command": "uvx",
"args": ["terminal-mcp"]
}
}
}3. Überprüfen
session_exec exec="echo hello from terminal-mcp"Was können Sie damit tun?
Per SSH auf entfernte Server zugreifen
session_create command="ssh user@prod-server.com" label="prod"
session_interact session_id="a1b2c3d4" input="df -h" wait_for="\$"
session_interact session_id="a1b2c3d4" input="docker ps" wait_for="\$"
session_close session_id="a1b2c3d4"Interaktive REPLs ausführen
session_create command="python3" label="python"
session_interact session_id="e5f6g7h8" input="import pandas as pd" wait_for=">>>"
session_interact session_id="e5f6g7h8" input="df = pd.read_csv('data.csv')" wait_for=">>>"
session_interact session_id="e5f6g7h8" input="df.describe()" wait_for=">>>"
session_close session_id="e5f6g7h8"Datenbanken abfragen
session_create command="psql -U admin mydb" label="db"
session_interact session_id="x1y2z3w4" input="SELECT count(*) FROM users;" wait_for="row"
session_interact session_id="x1y2z3w4" input="\dt" wait_for="#"
session_close session_id="x1y2z3w4"TUI-Apps navigieren
session_create command="htop" label="monitor"
session_read session_id="a1b2c3d4"
# Auto-detects TUI, returns screen snapshot
session_send session_id="a1b2c3d4" key="F6"
session_read session_id="a1b2c3d4" mode="diff"
# Returns only changed lines - saves tokens
session_send session_id="a1b2c3d4" key="F10"
session_close session_id="a1b2c3d4"Langlaufende Builds überwachen
session_create command="bash" label="build"
session_send session_id="a1b2c3d4" input="npm run build"
session_wait_for session_id="a1b2c3d4" pattern="Build complete|ERROR" timeout=120Einmalige Befehle ausführen
session_exec exec="git log --oneline -10"
session_exec exec="docker compose ps" timeout=10Auf einen Blick: Funktionen
Funktion | Was sie tut |
Beständige Sitzungen | Echte PTY-Sitzungen, die über Tool-Aufrufe hinweg bestehen |
Senden + Lesen in einem Aufruf |
|
Musterbasierte Lesevorgänge |
|
Automatische TUI-Erkennung | Erkennt htop, vim usw. und wechselt automatisch in den Bildschirm-Snapshot-Modus |
Ausgabe-Diff-Modus | Gibt nur geänderte Bildschirmzeilen zurück – minimiert Tokens |
Spezielle Tasten | Pfeiltasten, Tab, F1-F12, Pos1/Ende, Bild auf/ab |
Steuerzeichen | Strg-C, Strg-D, Strg-Z, Strg-L, Telnet-Escape |
Gefahrenbefehl-Sperre | Blockiert |
OSC 133 Shell-Integration | Erkennt automatisch Befehlsgrenzen und Exit-Codes |
Intelligente Kürzung | Vier Strategien, um Überlauf des Kontexts zu vermeiden |
Geheime Eingabe | Passwörter senden, ohne sie zu protokollieren |
Dynamische Größenänderung | Terminalgröße im laufenden Betrieb mit SIGWINCH ändern |
Bereinigung bei Inaktivität | Schließt inaktive Sitzungen automatisch |
Plattformübergreifend | Unterstützt Linux, macOS und Windows |
Tool-Referenz
terminal-mcp bietet 9 MCP-Tools. Vollständige Details in docs/tools.md.
Tool | Zweck |
Eine beständige Terminalsitzung starten | |
Text, Tasten oder Steuerzeichen senden | |
Ausgabe lesen (Stream, Snapshot, Auto, Diff-Modi) | |
Senden + Lesen in einem Aufruf | |
Auf ein Regex-Muster in der Ausgabe warten | |
Einmalige Befehlsausführung | |
Eine Sitzung ordentlich beenden | |
Terminalabmessungen ändern | |
Aktive Sitzungen auflisten |
Architektur
flowchart LR
Client[AI Client] -->|MCP JSON-RPC| Server[terminal-mcp]
Server --> SM[Session Manager]
SM --> S1[PTY 1: bash]
SM --> S2[PTY 2: python3]
SM --> S3[PTY 3: ssh user@host]
S1 & S2 & S3 -.->|PTY output| Reader[Reader Thread]
Reader -.->|buffer| ServerJede Sitzung basiert auf einem echten PTY über pexpect.spawn (oder PopenSpawn unter Windows). Vollständige Architekturdetails finden Sie in docs/architecture.md.
Konfiguration
Alle Einstellungen über Umgebungsvariablen TERMINAL_MCP_* konfigurierbar. Vollständige Referenz in docs/configuration.md.
Einstellung | Umgebungsvariable | Standard |
Max. Sitzungen |
|
|
Leerlauf-Timeout |
|
|
Sicherheitssperre |
|
|
Puffergrenze |
|
|
Kürzungsmodus |
|
|
Beispiel mit benutzerdefinierten Einstellungen:
{
"mcpServers": {
"terminal": {
"command": "uvx",
"args": ["terminal-mcp"],
"env": {
"TERMINAL_MCP_MAX_SESSIONS": "20",
"TERMINAL_MCP_IDLE_TIMEOUT": "3600",
"TERMINAL_MCP_TRUNCATION_MODE": "head_tail"
}
}
}
}Dokumentation
Dokument | Beschreibung |
Vollständige API für alle 9 MCP-Tools | |
Wie terminal-mcp unter der Haube funktioniert | |
Alle Einstellungen und Umgebungsvariablen | |
Erkennung gefährlicher Befehle und Sicherheitssperre | |
Praxisrezepte und Muster | |
Versionsgeschichte und Veröffentlichungshinweise | |
Wie man mitwirken kann |
Unterstützte Clients
Client | Status | Installation |
Claude Code (CLI) | Unterstützt |
|
Claude Desktop | Unterstützt | |
VS Code (Copilot Chat) | Unterstützt | One-Click-Installation oder |
Cursor | Unterstützt | One-Click-Installation oder Einstellungen |
Windsurf | Unterstützt |
|
Tests ausführen
pip install -e ".[dev]"
pytest tests/ -vMitwirken
Beiträge sind willkommen! Siehe docs/contributing.md für Richtlinien.
Lizenz
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceProvides stateful, interactive terminal access for LLMs to spawn and maintain persistent processes like SSH sessions, debuggers, and REPLs with continuous input/output interaction across commands.7
- Alicense-qualityCmaintenanceProvides AI agents with fully interactive terminal sessions, including TUI support, keyboard control, and screen capture across Windows, Linux, and Mac.MIT
- Alicense-qualityCmaintenanceEnables AI agents to have persistent, fully interactive SSH sessions into remote hosts, behaving like a local terminal.231MIT
- Alicense-qualityDmaintenanceEnables AI agents to spawn and interact with real terminal sessions, capturing screenshots of rendered TUI output and sharing live sessions for debugging.01MIT
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Run AI customer support from your terminal: conversations, knowledge base, and chat widget.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mkpvishnu/terminal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server