BashTerm
vscode-terminal-mcp
Servidor MCP que ejecuta comandos en pestañas de terminal visibles de VSCode con captura completa de la salida. A diferencia de la ejecución en línea, cada comando se ejecuta en un terminal real que puedes ver, desplazarte e interactuar con él.
Características principales
Terminales visibles: Los comandos se ejecutan en pestañas de terminal reales de VSCode, no en procesos ocultos. Ves todo en tiempo real.
Reutilización de sesiones: La herramienta
runreutiliza automáticamente las sesiones inactivas, creando nuevos terminales solo cuando es necesario.Soporte para procesos de larga duración: Ejecución de tipo "dispara y olvida" con
waitForCompletion: false, y luego consulta la salida de forma incremental conread.Aislamiento de subagentes: Etiqueta las sesiones con
agentIdpara mantener separadas las cargas de trabajo de agentes paralelos.
Related MCP server: Terminal MCP
Requisitos
VS Code 1.93+ (para la API de integración de shell)
Node.js 20+
Primeros pasos
Claude Code
claude mcp add BashTerm -- npx vscode-terminal-mcp@latestVS Code / Copilot
Añade a tu .vscode/mcp.json:
{
"servers": {
"BashTerm": {
"type": "stdio",
"command": "npx",
"args": ["vscode-terminal-mcp@latest"]
}
}
}Añade a tu .cursor/mcp.json:
{
"mcpServers": {
"BashTerm": {
"command": "npx",
"args": ["-y", "vscode-terminal-mcp@latest"]
}
}
}Añade a tu claude_desktop_config.json:
{
"mcpServers": {
"BashTerm": {
"command": "npx",
"args": ["-y", "vscode-terminal-mcp@latest"]
}
}
}Tu primer prompt
Después de la instalación, prueba a preguntar:
Ejecuta
ls -laen el terminal
Deberías ver una nueva pestaña de terminal abrirse en VSCode con la salida del comando.
Capturas de pantalla
Ejecutando un comando con run

Diálogo de permisos para exec

Resultado de exec con salida limpia

Herramientas
Ejecución rápida
Herramienta | Descripción |
| Crea (o reutiliza) un terminal y ejecuta un comando en un solo paso. Devuelve una salida limpia con el código de salida. |
Gestión de sesiones
Herramienta | Descripción |
| Crea una nueva sesión de terminal visible. Devuelve un |
| Ejecuta un comando en una sesión existente y captura la salida. |
| Lee la salida de una sesión con paginación. Admite lecturas incrementales y modo cola ( |
| Envía texto a un terminal interactivo (prompts, REPLs, confirmaciones). |
| Lista las sesiones activas. Opcionalmente filtra por |
| Cierra una sesión de terminal y su pestaña de VSCode. |
Patrones de uso
Comando simple
La herramienta run se encarga de todo: crea un terminal si es necesario, ejecuta y devuelve una salida limpia:
> Run npm test$ npm test
PASS src/utils.test.ts (3 tests)
PASS src/index.test.ts (5 tests)
[exit: 0 | 1243ms | session-abc123]Proceso de larga duración
Para compilaciones, despliegues o cualquier comando que tarde un tiempo:
> Start `npm run build` without waiting, then check progressEl agente hará lo siguiente:
Llamar a
runconwaitForCompletion: false— devuelve inmediatamenteLlamar a
readconoffset: -10para comprobar las últimas 10 líneasRepetir hasta que el proceso se complete
Comandos interactivos
Para comandos que necesitan entrada del usuario:
> Run npm init and answer the promptsEl agente hará lo siguiente:
Llamar a
runconnpm initLlamar a
readpara ver el promptLlamar a
inputpara enviar la respuesta
Agentes paralelos
Los subagentes pueden trabajar en terminales aislados usando agentId:
> Have one agent run tests while another runs the linterCada subagente tiene su propio terminal etiquetado con su agentId, evitando que las salidas se mezclen.
Configuración
La extensión lee la configuración de los ajustes de VSCode bajo terminalMcp.*:
Ajuste | Tipo | Por defecto | Descripción |
| number | 10 | Número máximo de sesiones de terminal concurrentes |
| number | 30000 | Tiempo de espera por defecto del comando en ms |
| number | 5000 | Máximo de líneas conservadas en el buffer de salida por sesión |
| number | 1800000 | Cierra sesiones inactivas después de este número de ms (0 = desactivado) |
| string[] |
| Comandos que serán rechazados |
Recomendado: Configurar como herramienta preferida
Los agentes LLM como Claude Code tienen una herramienta Bash integrada que ejecuta comandos en línea dentro del chat. La salida queda incrustada en la conversación y es difícil de leer, especialmente para comandos con salida verbosa. Recomendamos indicar al agente que prefiera este MCP sobre su herramienta Bash integrada.
Añade lo siguiente al archivo CLAUDE.md de tu proyecto (o al archivo de instrucciones equivalente):
## Terminal Execution
Prefer the BashTerm MCP tools (`run`, `exec`, `read`, etc.) over the built-in Bash tool for executing commands.
BashTerm runs commands in visible VSCode terminal tabs where the user can see output in real time.
Only fall back to the built-in Bash tool for simple, non-interactive operations like reading environment variables.
For commands that may take longer than 30 seconds or produce large amounts of output (builds, test suites,
deployments, installs), use the pull mode pattern:
1. Call `run` with `waitForCompletion: false` to launch the command without blocking.
2. Call `read` with `offset: -10` to check the last 10 lines of output.
3. Repeat step 2 until you see the command has finished (look for exit messages, prompts, or "Done").
4. Report the final result to the user.
This prevents conversation timeouts and lets the user watch progress in the terminal in real time.Por qué es importante:
Bash integrado | BashTerm MCP | |
Visibilidad de salida | Incrustada en el chat, difícil de desplazar | Visible en la pestaña de terminal de VSCode |
Retroalimentación en tiempo real | El usuario no ve nada hasta que el comando termina | El usuario ve la salida en vivo |
Comandos de larga duración | Bloquea la conversación hasta el tiempo de espera | Dispara y olvida + sondeo |
Estado de sesión | Cada comando está aislado | Sesiones persistentes con historial |
Comandos interactivos | No soportados | Envía entrada a prompts/REPLs |
Desarrollo: Actualizar la extensión
VSCode almacena en caché las extensiones de forma agresiva en memoria. Cuando desarrollas localmente, code --install-extension e incluso "Developer: Reload Window" pueden no recargar tus cambios. Usa este flujo de trabajo:
Actualización rápida (sin necesidad de reiniciar)
Después de modificar los archivos fuente, compila y copia directamente al directorio de la extensión instalada:
cd /path/to/vscode-terminal-mcp
npm run build
cp dist/extension.js ~/.vscode/extensions/sirlordt.vscode-terminal-mcp-<version>/dist/extension.jsLuego ejecuta "Developer: Reload Window" (Ctrl+Shift+P).
Reinstalación completa (cuando la actualización rápida no funciona)
Si VSCode sigue usando código antiguo:
# 1. Uninstall and remove all copies
code --uninstall-extension sirlordt.vscode-terminal-mcp
rm -rf ~/.vscode/extensions/sirlordt.vscode-terminal-mcp-*
# 2. Check for ghost entries with old publisher names
# Look in ~/.vscode/extensions/extensions.json for stale entries
# Remove any entries with old publisher IDs (e.g., "terminal-mcp.vscode-terminal-mcp")
# 3. Close VSCode completely (not just reload)
# 4. Rebuild and install
npm run build
npx vsce package --allow-missing-repository
code --install-extension vscode-terminal-mcp-<version>.vsix --force
# 5. Open VSCodeVerifica que se ha cargado la versión correcta
# Check which extension directories exist
ls ~/.vscode/extensions/ | grep terminal
# Verify your changes are in the installed extension
grep "YOUR_UNIQUE_STRING" ~/.vscode/extensions/sirlordt.vscode-terminal-mcp-*/dist/extension.js
# Compare checksums
md5sum dist/extension.js ~/.vscode/extensions/sirlordt.vscode-terminal-mcp-*/dist/extension.jsManejo de salidas grandes
Cuando read devuelve una salida que supera el límite de tokens del cliente MCP, el sistema guarda automáticamente la salida completa en un archivo JSON temporal y devuelve la ruta del archivo en el mensaje de error.
Para extraer el contenido relevante:
# Get the last 50 lines (most relevant for status)
tail -50 /path/to/saved/file.txt
# Or parse the JSON to extract the text content
python3 -c "import json; data=json.load(open('/path/to/file.txt')); print(data[0]['text'][-2000:])"El formato del archivo es JSON: [{"type": "text", "text": "..."}]
Esto ocurre comúnmente con comandos que producen salida TUI pesada (barras de progreso, códigos de escape ANSI). Usa valores de offset más pequeños (por ejemplo, offset: -20 en lugar de offset: -100) para reducir el tamaño de la salida capturada.
Cómo funciona
La extensión de VSCode se activa e inicia un servidor IPC en un socket Unix
El punto de entrada MCP (
mcp-entry.js) es lanzado por el cliente MCP y hace de puente entre JSON-RPC stdio y el socket IPCLos comandos se ejecutan en terminales reales de VSCode usando la API de integración de shell para una captura fiable de la salida y detección del código de salida
La salida se almacena en buffers circulares con soporte de paginación para una lectura eficiente
Últimos cambios (0.1.6)
Capturas de pantalla en el README para el marketplace
Formato de salida limpio para todas las herramientas — sin JSON crudo
Corregido
waitForCompletion: falseque no funcionabaRecolector de inactividad desactivado — el usuario cierra las sesiones manualmente
Socket IPC único por espacio de trabajo (soporte multi-instancia)
Nombres de pestañas de terminal personalizados con formato de fecha
Documentación sobre manejo de salidas grandes
Consulta CHANGELOG.md para el historial completo.
Licencia
MIT
This server cannot be installed
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
- FlicenseNot gradedqualityDmaintenanceProvides 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
- AlicenseAqualityDmaintenanceEnables management of visible, interactive terminal sessions across platforms (macOS, Windows, Linux, WSL). Supports creating, executing commands, capturing output, and managing multiple terminal windows simultaneously.51MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to execute shell commands and manage long-running processes within persistent tmux sessions across isolated workspaces. It features a dual-window architecture to separate raw command execution from interactive terminal output.891MIT
- FlicenseNot gradedqualityDmaintenanceEnables interactive terminal sessions within Claude Code and Desktop, allowing users and AI to execute commands and manage multiple tabs.2
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Live browser debugging for AI assistants — DOM, console, network via MCP.
A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,
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/sirlordt/vscode-terminal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server