Skip to main content
Glama
marttinm

windows-terminal-mcp

by marttinm

windows-terminal-mcp

Un servidor MCP (Model Context Protocol) que permite a cualquier LLM ejecutar comandos en una terminal de Windows, incluyendo shells locales y conexiones SSH remotas.

Características

  • Ejecutar comandos mediante cmd, powershell o bash (Git Bash)

  • Ejecutar comandos remotos mediante SSH con autenticación basada en claves

  • Modelo de seguridad de 3 niveles (seguro / confirmar / bloqueado)

  • Tiempo de espera configurable por comando

  • Funciona con Claude Desktop y cualquier cliente compatible con MCP

Related MCP server: Windows CLI MCP Server

Instalación

git clone https://github.com/marttinm/windows-terminal-mcp.git
cd windows-terminal-mcp
pip install -e .

Requiere Python 3.11+ en Windows.

Configuración

Añade el servidor a tu archivo de configuración de Claude Desktop (%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "windows-terminal": {
      "command": "cmd",
      "args": ["/c", "python", "-m", "windows_terminal_mcp.server"]
    }
  }
}

O apunta directamente al script:

{
  "mcpServers": {
    "windows-terminal": {
      "command": "cmd",
      "args": ["/c", "python", "C:/path/to/windows-terminal-mcp/src/windows_terminal_mcp/server.py"]
    }
  }
}

Herramienta: execute_command

Parámetros

Parámetro

Tipo

Predeterminado

Descripción

command

string

requerido

Comando a ejecutar. Para SSH: user@host command

shell

string

cmd

Shell: cmd, powershell, bash, ssh

working_dir

string

—

Directorio de trabajo (solo comandos locales)

timeout_ms

integer

120000

Tiempo de espera en milisegundos

ssh_key

string

—

Ruta a la clave privada SSH (ej. ~/.ssh/id_rsa)

Respuesta

{
  "stdout": "...",
  "stderr": "...",
  "exit_code": 0,
  "execution_time": 0.42
}

Ejemplos de uso

Comandos locales

Run: dir C:\Users
Shell: cmd

Run: Get-Process | Select-Object -First 5
Shell: powershell

Run: git status
Shell: bash

Comandos SSH

Run: ubuntu@192.168.1.10 "df -h && uptime"
Shell: ssh
SSH key: ~/.ssh/id_rsa
Run: ubuntu@192.168.1.10 "docker ps"
Shell: ssh
SSH key: ~/.ssh/my_key
Timeout: 30000

Seguridad

Los comandos se clasifican en tres niveles:

Seguro — ejecutado directamente
echo, dir, type, git, npm, node, python, pip, curl y la mayoría de los comandos de solo lectura.

Peligroso — Claude avisará antes de ejecutar
del, rmdir, rm, taskkill, net stop, net start, sc delete, reg add, etc.

Bloqueado — siempre rechazado
format, del /s /q, rd /s /q, reg delete, regedit, shutdown, net user, rm -rf, mkfs, fdisk y operaciones destructivas similares.

Desarrollo

Estructura del proyecto

windows-terminal-mcp/
├── src/windows_terminal_mcp/
│   ├── __init__.py
│   ├── server.py      # MCP server (main entry point)
│   ├── executor.py    # subprocess execution
│   ├── main.py        # simple stdin/stdout handler
│   └── security.py    # command safety checks
├── tests/
│   └── test_windows_terminal_mcp.py
├── pyproject.toml
├── LICENSE
└── README.md

Ejecutar pruebas

pip install pytest
pytest tests/ -v

Usar como módulo de Python

from windows_terminal_mcp.server import execute_command

result = execute_command("echo hello", shell="cmd")
print(result)
# {'stdout': 'hello\n', 'stderr': '', 'exit_code': 0, 'execution_time': 0.02}

result = execute_command(
    "ubuntu@192.168.1.10 uptime",
    shell="ssh",
    ssh_key="~/.ssh/id_rsa",
    timeout_ms=10000,
)
print(result)

Registro de cambios

v0.2.0

  • Se añadió soporte SSH con autenticación basada en claves

  • Se corrigió la construcción de comandos SSH (el host y el comando remoto se pasan como argumentos separados)

  • Se corrigió la expansión de ~ en las rutas de claves SSH en Windows

  • Se corrigió la herencia de stdin que causaba que SSH se colgara dentro del proceso del servidor MCP

v0.1.0

  • Ejecución básica de comandos mediante cmd, powershell, bash

  • Captura de stdout/stderr/exit_code

  • Modelo de seguridad de 3 niveles

  • Pruebas unitarias

Licencia

MIT — ver LICENSE

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    A Model Context Protocol server that provides secure command-line access to Windows systems, allowing MCP clients like Claude Desktop to safely execute commands in PowerShell, CMD, and Git Bash shells with configurable security controls.
    9
    959 npm
    268
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    A local Model Context Protocol server that allows LLMs to securely execute shell commands on remote Linux and Windows systems via SSH connections.
    6
    6 npm
    2
    -
  • A
    license
    B
    quality
    A
    maintenance
    A secure MCP server for shell operations, terminal management, and process control, enabling AI assistants to safely execute commands and manage interactive sessions.
    13
    264 npm
    6
    MIT