Servidor MCP de la CLI de Windows
Servidor MCP para interacciones seguras de línea de comandos en sistemas Windows, lo que permite el acceso controlado a PowerShell, CMD, shells de Git Bash y sistemas remotos mediante SSH. Permite a los clientes MCP (como Claude Desktop ) realizar operaciones en el sistema, de forma similar a Open Interpreter .
[!IMPORTANTE] Este servidor MCP proporciona acceso directo a la interfaz de línea de comandos de su sistema y a sistemas remotos mediante SSH. Al habilitarse, otorga acceso a sus archivos, variables de entorno, funciones de ejecución de comandos y administración remota del servidor.
Revisar y restringir las rutas permitidas y las conexiones SSH
Habilitar restricciones de directorio
Configurar bloques de comandos
Considere las implicaciones de seguridad
Consulte Configuración para obtener más detalles.
Características
Compatibilidad con múltiples shells : ejecute comandos en PowerShell, Símbolo del sistema (CMD) y Git Bash
Compatibilidad con SSH : ejecute comandos en sistemas remotos a través de SSH
Exposición de recursos : ver conexiones SSH, directorio actual y configuración como recursos MCP
Controles de seguridad :
Bloqueo de comandos y comandos SSH (rutas completas, variaciones de mayúsculas y minúsculas)
Validación del directorio de trabajo
Límites máximos de longitud de comando
Registro de comandos y seguimiento del historial
Validación de argumentos inteligentes
Configurable :
Reglas de seguridad personalizadas
Configuraciones específicas del Shell
Perfiles de conexión SSH
Restricciones de ruta
Listas de comandos bloqueados
Consulte la sección API para obtener más detalles sobre las herramientas y recursos que el servidor proporciona a los clientes MCP.
Nota : El servidor solo permitirá operaciones dentro de directorios configurados, con comandos permitidos y en conexiones SSH configuradas.
Uso con Claude Desktop
Agregue esto a su claude_desktop_config.json
:
Para usar con un archivo de configuración específico, agregue el indicador --config
:
Después de la configuración, puedes:
Ejecutar comandos directamente utilizando las herramientas disponibles
Ver las conexiones SSH configuradas y la configuración del servidor en la sección Recursos
Administrar conexiones SSH a través de las herramientas proporcionadas
Configuración
El servidor utiliza un archivo de configuración JSON para personalizar su comportamiento. Puede especificar la configuración de los controles de seguridad, la configuración del shell y las conexiones SSH.
Para crear un archivo de configuración predeterminado, realice una de las siguientes acciones:
a) copiar config.json.example
a config.json
, o
b) ejecutar:
Luego, configure el indicador
--config
para que apunte a su archivo de configuración como se describe en la sección Uso con Claude Desktop .
Ubicaciones de configuración
El servidor busca la configuración en las siguientes ubicaciones (en orden):
Ruta especificada por el indicador
--config
./config.json en el directorio actual
~/.win-cli-mcp/config.json en el directorio de inicio del usuario
Si no se encuentra ningún archivo de configuración, el servidor utilizará una configuración predeterminada (restringida):
Configuración predeterminada
Nota : La configuración predeterminada está diseñada para ser restrictiva y segura. Encuentre más detalles sobre cada ajuste en la sección "Ajustes de configuración" .
Ajustes de configuración
El archivo de configuración se divide en tres secciones principales: security
, shells
y ssh
.
Configuración de seguridad
Configuración de Shell
Configuración de SSH
API
Herramientas
ejecutar_comando
Ejecutar un comando en el shell especificado
Entradas:
shell
(cadena): Shell a utilizar ("powershell", "cmd" o "gitbash")command
(cadena): Comando a ejecutarworkingDir
(cadena opcional): Directorio de trabajo
Devuelve la salida del comando como texto o un mensaje de error si falla la ejecución.
obtener_historial_de_comandos
Obtener el historial de comandos ejecutados
Entrada:
limit
(número opcional)Devuelve el historial de comandos con marca de tiempo y salidas
ssh_execute
Ejecutar un comando en un sistema remoto a través de SSH
Entradas:
connectionId
(cadena): ID de la conexión SSH a utilizarcommand
(cadena): Comando a ejecutar
Devuelve la salida del comando como texto o un mensaje de error si falla la ejecución.
Desconexión ssh
Desconectarse de un servidor SSH
Aporte:
connectionId
(cadena): ID de la conexión SSH que se desconectará
Devuelve un mensaje de confirmación
crear_conexión_ssh
Crear una nueva conexión SSH
Entradas:
connectionId
(cadena): ID de la nueva conexión SSHconnectionConfig
(objeto): Detalles de configuración de la conexión, incluidos host, puerto, nombre de usuario y contraseña o privateKeyPath
Devuelve un mensaje de confirmación
leer_conexiones_ssh
Leer todas las conexiones SSH configuradas
Devuelve una lista de todas las conexiones SSH de la configuración
actualizar_conexión_ssh
Actualizar una conexión SSH existente
Entradas:
connectionId
(cadena): ID de la conexión SSH a actualizarconnectionConfig
(objeto): nuevos detalles de configuración de la conexión
Devuelve un mensaje de confirmación
eliminar_conexión_ssh
Eliminar una conexión SSH
Aporte:
connectionId
(cadena): ID de la conexión SSH que se eliminará
Devuelve un mensaje de confirmación
obtener_directorio_actual
Obtener el directorio de trabajo actual del servidor
Devuelve la ruta del directorio de trabajo actual
Recursos
Conexiones SSH
Formato de URI:
ssh://{connectionId}
Contiene detalles de conexión con información confidencial enmascarada
Un recurso para cada conexión SSH configurada
Ejemplo:
ssh://raspberry-pi
muestra la configuración para la conexión "raspberry-pi"
Configuración de SSH
URI:
ssh://config
Contiene la configuración general de SSH y todas las conexiones (con contraseñas enmascaradas)
Muestra configuraciones como defaultTimeout, maxConcurrentSessions y la lista de conexiones
Directorio actual
URI:
cli://currentdir
Contiene el directorio de trabajo actual del servidor CLI
Muestra la ruta donde se ejecutarán los comandos de forma predeterminada
Configuración de CLI
URI:
cli://config
Contiene la configuración del servidor CLI (excluyendo datos confidenciales)
Muestra configuraciones de seguridad, configuraciones de shell y configuraciones de SSH
Consideraciones de seguridad
Funciones de seguridad integradas (siempre activas)
Las siguientes características de seguridad están codificadas en el servidor y no se pueden desactivar:
Bloqueo de comandos sin distinción entre mayúsculas y minúsculas : todos los bloqueos de comandos no distinguen entre mayúsculas y minúsculas (por ejemplo, "DEL.EXE", "del.cmd", etc. se bloquean si "del" está en blockingCommands)
Análisis de ruta inteligente : el servidor analiza las rutas de comandos completas para evitar intentos de omisión (bloqueando "C:\Windows\System32\rm.exe" si "rm" está bloqueado)
Inteligencia de análisis de comandos : se evitan los falsos positivos (por ejemplo, "warm_dir" no se bloquea solo porque "rm" está en blockingCommands)
Validación de entrada : todas las entradas del usuario se validan antes de la ejecución
Gestión de procesos de Shell : Los procesos se finalizan correctamente después de la ejecución o el tiempo de espera
Enmascaramiento de datos confidenciales : las contraseñas se enmascaran automáticamente en los recursos (se reemplazan con ********)
Funciones de seguridad configurables (activas de forma predeterminada)
Estas características de seguridad se pueden configurar a través del archivo config.json:
Bloqueo de comandos : los comandos especificados en la matriz
blockedCommands
se bloquean (el valor predeterminado incluye comandos peligrosos como rm, del, format)Bloqueo de argumentos : los argumentos especificados en la matriz
blockedArguments
se bloquean (el valor predeterminado incluye indicadores potencialmente peligrosos)Protección contra inyección de comandos : evita el encadenamiento de comandos (habilitado de forma predeterminada a través de
enableInjectionProtection: true
)Restricción del directorio de trabajo : limita la ejecución de comandos a directorios específicos (habilitado de manera predeterminada a través de
restrictWorkingDirectory: true
)Límite de longitud del comando : restringe la longitud máxima del comando (valor predeterminado: 2000 caracteres)
Tiempo de espera de comando : finaliza los comandos que se ejecutan durante demasiado tiempo (valor predeterminado: 30 segundos)
Registro de comandos : registra el historial de comandos (habilitado de forma predeterminada a través de
logCommands: true
)
Advertencias de seguridad importantes
Estas no son características sino consideraciones de seguridad importantes a tener en cuenta:
Acceso al entorno : Los comandos pueden tener acceso a variables de entorno, que podrían contener información confidencial
Acceso al sistema de archivos : los comandos pueden leer/escribir archivos dentro de las rutas permitidas; configure cuidadosamente
allowedPaths
para evitar el acceso a datos confidenciales
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
Un servidor de protocolo de contexto de modelo que proporciona acceso seguro a la línea de comandos de los sistemas Windows, lo que permite a los clientes MCP como Claude Desktop ejecutar comandos de forma segura en shells de PowerShell, CMD y Git Bash con controles de seguridad configurables.
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA secure shell command execution server implementing the Model Context Protocol (MCP). This server allows remote execution of whitelisted shell commands with support for stdin input.Last updated -1141MIT License
- -securityFlicense-qualityA Model Context Protocol server built with mcp-framework that allows users to create and manage custom tools for processing data, integrating with the Claude Desktop via CLI.Last updated -325
- AsecurityAlicenseAqualityModel Context Protocol server that enables Claude Desktop (or any MCP client) to fetch web content and process images appropriately.Last updated -1106MIT License
- AsecurityFlicenseAqualityA secure server that implements the Model Context Protocol (MCP) to enable controlled execution of authorized shell commands with stdin support.Last updated -1