Skip to main content
Glama
mkpvishnu

terminal-mcp

by mkpvishnu

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-mcp

Un 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-mcp

2. 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=120

Ejecutar comandos puntuales

session_exec  exec="git log --oneline -10"
session_exec  exec="docker compose ps"  timeout=10

Caracterí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

session_interact reduce a la mitad los viajes de ida y vuelta del LLM

Lecturas basadas en patrones

wait_for bloquea hasta que una expresión regular coincide – sin tiempos de espera adivinados

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 rm -rf, DROP TABLE, curl|sh – requiere confirmación

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

session_create

Crear una sesión de terminal persistente

session_send

Enviar texto, teclas o caracteres de control

session_read

Leer la salida (modos: flujo, instantánea, auto, diferencias)

session_interact

Enviar + leer en una sola llamada

session_wait_for

Esperar un patrón regex en la salida

session_exec

Ejecución de comando único

session_close

Cerrar una sesión de forma ordenada

session_resize

Redimensionar las dimensiones de la terminal

session_list

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| Server

Cada 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

TERMINAL_MCP_MAX_SESSIONS

10

Tiempo de inactividad

TERMINAL_MCP_IDLE_TIMEOUT

1800 (30 min)

Puerta de seguridad

TERMINAL_MCP_SAFETY_GATE

on

Límite de búfer

TERMINAL_MCP_MAX_BUFFER_BYTES

1000000 (1 MB)

Truncamiento

TERMINAL_MCP_TRUNCATION_MODE

tail

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

Referencia de herramientas

API completa de las 9 herramientas MCP

Arquitectura

Cómo funciona terminal-mcp por dentro

Configuración

Todos los ajustes y variables de entorno

Seguridad

Detección de comandos peligrosos y puerta de seguridad

Casos de uso y ejemplos

Recetas y patrones del mundo real

Registro de cambios

Historial de versiones y notas de lanzamiento

Contribuir

Cómo contribuir


Clientes compatibles

Cliente

Estado

Instalación

Claude Code (CLI)

Compatible

~/.claude.json o .mcp.json

Claude Desktop

Compatible

Instalación con un clic

VS Code (Copilot Chat)

Compatible

Instalación con un clic o .vscode/mcp.json

Cursor

Compatible

Instalación con un clic o Configuración

Windsurf

Compatible

~/.codeium/windsurf/mcp_config.json


Ejecutar pruebas

pip install -e ".[dev]"
pytest tests/ -v

Contribuir

¡Las contribuciones son bienvenidas! Consulta docs/contributing.md para conocer las pautas.

Licencia

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
62dResponse time
6wRelease cycle
5Releases (12mo)
Commit activity
Issues opened vs closed

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

  • A
    license
    -
    quality
    C
    maintenance
    Provides AI agents with fully interactive terminal sessions, including TUI support, keyboard control, and screen capture across Windows, Linux, and Mac.
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Enables AI agents to have persistent, fully interactive SSH sessions into remote hosts, behaving like a local terminal.
    23
    1
    MIT

View all related MCP servers

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.

View all MCP Connectors

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/mkpvishnu/terminal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server