local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Provides access to Git Bash shell for executing Git commands and scripts on Windows, allowing repository management and version control operations.
Supports SSH connections to Raspberry Pi devices for remote command execution, configured through the SSH connection profiles.
Enables controlled execution of shell commands across PowerShell, CMD, and Git Bash with security restrictions, command blocking, and history tracking.
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"
- Formato de URI:
- 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
- URI:
- 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
- URI:
- 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
- URI:
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.
You must be authenticated.
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.