terminal-mcp
El problema
Todas las herramientas de codificación con IA se topan con el mismo muro: no tienen acceso real a una terminal.
La herramienta Bash de Claude Code, GitHub Copilot y Codex ejecutan comandos en subprocesos aislados. Cada comando comienza desde cero. No se conserva ningún estado. Eso significa:
Sin sesiones SSH – No se puede conectar a un servidor remoto y ejecutar múltiples comandos.
Sin REPLs – No se puede usar intérpretes interactivos de Python, Node o Ruby.
Sin CLIs de bases de datos – No se puede mantener una conexión de psql, mysql o redis-cli.
Sin aplicaciones TUI – No se puede navegar htop, vim o fzf con las teclas de flecha.
Sin procesos de larga duración – No se puede monitorear compilaciones, ver logs o ejecutar servidores de desarrollo.
Related MCP server: Interactive Terminal MCP Server
La solución
terminal-mcp les da a los agentes de IA una terminal real. Sesiones PTY persistentes que sobreviven entre llamadas a herramientas. Envía comandos, lee la salida, presiona teclas, navega TUIs – exactamente como un humano en una terminal.
uvx terminal-mcpUn solo comando. Funciona con Claude Code, Claude Desktop, VS Code, Cursor y Windsurf.
Inicio rápido
1. Instalación (30 segundos)
# No install needed - run directly
uvx terminal-mcp
# Or install globally
pip install terminal-mcp2. Conéctate a tu cliente de IA
Añade a ~/.claude.json o .mcp.json del proyecto:
{
"mcpServers": {
"terminal": {
"command": "uvx",
"args": ["terminal-mcp"]
}
}
}Añade a claude_desktop_config.json:
{
"mcpServers": {
"terminal": {
"command": "uvx",
"args": ["terminal-mcp"]
}
}
}Haz clic en la insignia de instalación con un clic de arriba, o añade a .vscode/mcp.json:
{
"servers": {
"terminal-mcp": {
"command": "uvx",
"args": ["terminal-mcp"]
}
}
}Añade a ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"terminal": {
"command": "uvx",
"args": ["terminal-mcp"]
}
}
}3. Verificación
session_exec exec="echo hello from terminal-mcp"¿Qué puedes hacer con esto?
Conectarte por SSH a servidores remotos
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"Ejecutar REPLs interactivos
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"Consultar bases de datos
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"Navegar aplicaciones TUI
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"Monitorear compilaciones de larga duración
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=120Ejecutar comandos puntuales
session_exec exec="git log --oneline -10"
session_exec exec="docker compose ps" timeout=10Características de un vistazo
Característica | Qué hace |
Sesiones persistentes | Sesiones PTY reales que sobreviven entre llamadas a herramientas |
Enviar y leer en una llamada |
|
Lecturas basadas en patrones |
|
Detección automática de TUI | Detecta htop, vim, etc. y cambia automáticamente al modo de captura de pantalla |
Modo de diferencias de salida | Devuelve solo las líneas de pantalla cambiadas – minimiza los tokens |
Teclas especiales | Flechas, Tab, F1-F12, Inicio/Fin, RePág/AvPág |
Caracteres de control | Ctrl-C, Ctrl-D, Ctrl-Z, Ctrl-L, escape de telnet |
Puerta de comandos peligrosos | Bloquea |
Integración de shell OSC 133 | Detecta automáticamente los límites de comandos y códigos de salida |
Truncamiento inteligente | Cuatro estrategias para evitar el desbordamiento de contexto |
Entrada secreta | Envía contraseñas sin que queden registradas |
Redimensionamiento dinámico | Redimensiona la terminal sobre la marcha con SIGWINCH |
Limpieza por inactividad | Cierra automáticamente sesiones inactivas |
Multiplataforma | Soporte para Linux, macOS y Windows |
Referencia de herramientas
terminal-mcp expone 9 herramientas MCP. Detalles completos en docs/tools.md.
Herramienta | Propósito |
Crear una sesión de terminal persistente | |
Enviar texto, teclas o caracteres de control | |
Leer la salida (modos: flujo, instantánea, auto, diferencias) | |
Enviar + leer en una sola llamada | |
Esperar un patrón regex en la salida | |
Ejecución de comando único | |
Cerrar una sesión de forma ordenada | |
Redimensionar las dimensiones de la terminal | |
Listar sesiones activas |
Arquitectura
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| ServerCada sesión está respaldada por un PTY real mediante pexpect.spawn (o PopenSpawn en Windows). Para más detalles sobre la arquitectura, consulta docs/architecture.md.
Configuración
Todos los ajustes son configurables mediante variables de entorno TERMINAL_MCP_*. Referencia completa en docs/configuration.md.
Ajuste | Variable de entorno | Valor por defecto |
Máx. sesiones |
|
|
Tiempo de inactividad |
|
|
Puerta de seguridad |
|
|
Límite de búfer |
|
|
Truncamiento |
|
|
Ejemplo con ajustes personalizados:
{
"mcpServers": {
"terminal": {
"command": "uvx",
"args": ["terminal-mcp"],
"env": {
"TERMINAL_MCP_MAX_SESSIONS": "20",
"TERMINAL_MCP_IDLE_TIMEOUT": "3600",
"TERMINAL_MCP_TRUNCATION_MODE": "head_tail"
}
}
}
}Documentación
Documento | Descripción |
API completa de las 9 herramientas MCP | |
Cómo funciona terminal-mcp por dentro | |
Todos los ajustes y variables de entorno | |
Detección de comandos peligrosos y puerta de seguridad | |
Recetas y patrones del mundo real | |
Historial de versiones y notas de lanzamiento | |
Cómo contribuir |
Clientes compatibles
Cliente | Estado | Instalación |
Claude Code (CLI) | Compatible |
|
Claude Desktop | Compatible | |
VS Code (Copilot Chat) | Compatible | Instalación con un clic o |
Cursor | Compatible | Instalación con un clic o Configuración |
Windsurf | Compatible |
|
Ejecutar pruebas
pip install -e ".[dev]"
pytest tests/ -vContribuir
¡Las contribuciones son bienvenidas! Consulta docs/contributing.md para conocer las pautas.
Licencia
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