Servidor MCP de Super Windows CLI
Una bifurcación mejorada del servidor MCP de Windows CLI que proporciona acceso sin restricciones al sistema de entornos Windows a través de una interfaz de línea de comandos (MCP).
Basado en: win-cli-mcp-server por SimonB97.
⚠️ ADVERTENCIA DE SEGURIDAD CRÍTICA ⚠️
Este servidor está diseñado para ejecutarse con privilegios de sistema en Windows. Esto le otorga acceso completo y sin restricciones a todo el sistema operativo, incluyendo todos los archivos, procesos y configuraciones.
NO instale ni ejecute este servidor a menos que comprenda completamente las implicaciones de otorgar acceso a nivel de SISTEMA.
Utilice este servidor SÓLO en entornos de alta confianza donde tenga control total sobre el acceso a la red.
LA SEGURIDAD DE LA RED ES PRINCIPAL: dado que las restricciones a nivel de aplicación son mínimas por diseño, confíe en gran medida en firewalls, segmentación de red y listas de control de acceso estrictas (ACL) para proteger la máquina que ejecuta este servidor.
REVISE LA CONFIGURACIÓN CUIDADOSAMENTE: Preste mucha atención a
allowedPaths,blockedCommandsy otras configuraciones de seguridad enconfig.json. Una configuración incorrecta puede exponer fácilmente su sistema.
Utilice este software de forma responsable y bajo su propio riesgo. Los responsables del mantenimiento no se responsabilizan del mal uso ni de las brechas de seguridad derivadas de su uso.
Características
Acceso completo a entornos de shell de Windows (PowerShell, CMD, Git Bash - configurable).
Ejecución de comandos sin restricciones (configurable mediante
config.json).Acceso completo al sistema de archivos (configurable a través de
config.json).Instalación de servicios a nivel de SISTEMA a través de NSSM para persistencia y recuperación automática.
Funciones de recuperación automática del servicio proporcionadas por NSSM.
Controles de enlace de red (previstos, pero gestionados principalmente a nivel de red/firewall).
Se deshabilitó la telemetría de PowerShell para mejorar la privacidad.
Reutilización de procesos para mejorar el rendimiento (para shells).
Tiempos de espera extendidos para operaciones de larga duración (configurables).
Prerrequisitos
Antes de comenzar, asegúrese de tener instalado lo siguiente:
Node.js: Versión 18.0.0 o posterior. Descargar desde nodejs.org . (Incluye npm).
NSSM (Administrador de Servicios No Succionador): Necesario para una instalación fiable del servicio. Descargue la última versión desde nssm.cc.
Instalación (usando NSSM - Recomendado)
Este método instala el servidor como un servicio persistente de Windows que se ejecuta con privilegios de SISTEMA y se inicia automáticamente.
Clonar o descargar:
Clonar este repositorio:
git clone <repository-url>O descargue el código fuente
.zipy extráigalo a una ubicación adecuada (p. ej.,C:\Servers\SuperWinCLIServer). Evite las carpetas de perfil de usuario.
Lugar NSSM:
Descargue NSSM desde nssm.cc .
Extraiga el archivo zip.
Copie el archivo
nssm.exede la carpeta de arquitectura adecuada (win32owin64) al directorio raíz de este proyecto (la misma carpeta queinstall-service.ps1).
Instalar dependencias y compilar:
Abra una terminal (PowerShell o CMD) en el directorio raíz del proyecto.
Ejecutar:
npm installEste comando instala los paquetes Node.js necesarios y ejecuta automáticamente
npm run buildpara compilar el código TypeScript en la carpetadist.
Configurar
Copiar: haga una copia de
config.sample.jsony nómbrelaconfig.jsonen el directorio raíz del proyecto.Editar: Abra
config.jsony revise y modifique cuidadosamente la configuración:security.allowedPaths: ¡CRÍTICO! Cambie las rutas de ejemplo a los directorios a los que el servidor necesita acceder. Por seguridad, sea lo más específico posible. Si no está seguro, comience con el directorio del proyecto (p. ej.,"C:\\Servers\\SuperWinCLIServer"; recuerde las barras invertidas dobles\\). El servicio se ejecuta como SYSTEM, por lo que las rutas deben ser válidas para esa cuenta.security.blockedCommands/blockedArguments: Revisa las listas predeterminadas. Agrega o elimina comandos/argumentos según tu política de seguridad.shells: habilitar/deshabilitar shells (PowerShell, CMD, Git Bash) y verificar la rutacommand(especialmente para Git Bash).ssh: configure si desea utilizar la función de ejecución SSH (deshabilitada de manera predeterminada).
Guarde el archivo
config.json.
Ejecutar script de instalación:
Abra PowerShell como administrador .
Navegue al directorio raíz del proyecto (
cd C:\Servers\SuperWinCLIServer).Ejecute el script de instalación:
.\install-service.ps1Este script utiliza NSSM para instalar y configurar el servicio
MCPServerpara ejecutarnode.exe dist/index.jscomoLocalSystemy comenzar automáticamente.
Verificar el estado del servicio:
En la misma ventana administrativa de PowerShell, ejecute:
Get-Service MCPServerEl estado debe ser
Running. Si está "Stopped, revise los registros de NSSM o el Visor de eventos de Windows (registros de aplicación y del sistema) para detectar errores.
Detalles de configuración ( config.json )
security:maxCommandLength: Máximo de caracteres permitidos en una cadena de comando.blockedCommands: Matriz de nombres de comandos (sin extensión) para bloquear (sin distinción entre mayúsculas y minúsculas).blockedArguments: Matriz de argumentos exactos a bloquear (sin distinguir entre mayúsculas y minúsculas).allowedPaths: Configuración crucial. Matriz de rutas absolutas. SirestrictWorkingDirectoryes verdadero, los comandos solo se pueden ejecutar si su directorio de trabajo comienza con una de estas rutas. Las rutas se comparan sin distinción entre mayúsculas y minúsculas después de la normalización. Use barras invertidas dobles (p. ej.,"C:\\Tools\\Scripts").restrictWorkingDirectory: Booleano. Si es verdadero, se aplica la comprobación deallowedPathspara el directorio de trabajo. Se recomienda mantenerlotrue.logCommands: Booleano. Si es verdadero, los comandos ejecutados y su salida (truncada) se almacenan en memoria (hastamaxHistorySize").maxHistorySize: Número máximo de comandos que se mantendrán en el historial en memoria.commandTimeout: Segundos antes de que un comando en ejecución se elimine automáticamente.enableInjectionProtection: Booleano. Si es verdadero, intenta bloquear los operadores de shell (&,|,;, etc., definidos por shell) en los comandos.
shells: configura los shells locales disponibles (powershell, cmd, gitbash).enabled: Booleano. Permite el uso de este shell.command: Ruta al ejecutable del shell.args: Matriz de argumentos predeterminados pasados al shell antes del comando del usuario.blockedOperators: Matriz de cadenas/caracteres para bloquear dentro de los comandos para este shell específico (se usa sienableInjectionProtectiones verdadero).
ssh: configura la ejecución remota de comandos a través de SSH.enabled: Booleano. Habilita las herramientasssh_executeyssh_disconnect.connections: Objeto que contiene configuraciones de conexión con nombre (host, puerto, nombre de usuario, contraseña/privateKeyPath).
Fusión de la configuración: Al cargar
config.json, si contiene una secciónsecurityoshells, dicha sección reemplaza la configuración predeterminada. No se fusionan campos individuales dentro de las seccionessecurityoshells. La secciónsshse fusiona de forma más granular. Asegúrese de que suconfig.jsonincluya todos los campos necesarios para estas secciones si las personaliza.
Gestión de servicios (NSSM)
Una vez instalado a través de install-service.ps1 , puede administrar el servicio utilizando herramientas estándar de Windows o comandos NSSM desde un PowerShell/CMD administrativo en el directorio del proyecto:
Inicio:
Start-Service MCPServero.\nssm.exe start MCPServerDetener:
Stop-Service MCPServero.\nssm.exe stop MCPServerReiniciar:
Restart-Service MCPServero.\nssm.exe restart MCPServerEstado:
Get-Service MCPServero.\nssm.exe status MCPServerEditar configuración (avanzado):
.\nssm.exe edit MCPServer(abre el editor de GUI de NSSM)Ver configuración:
.\nssm.exe dump MCPServer
Desinstalación (NSSM)
Abra PowerShell como administrador .
Navegue hasta el directorio raíz del proyecto.
Ejecute el script de desinstalación:
.\uninstall-service.ps1Esto utiliza NSSM para detener y eliminar el servicio
MCPServer.
Ejecución alternativa (manual/depuración)
Puede ejecutar el servidor directamente sin instalarlo como un servicio para fines de prueba o depuración:
Asegúrese de haber ejecutado
npm install.Asegúrese de que
config.jsonexista y esté configurado.Abra una terminal normal (PowerShell/CMD) en la raíz del proyecto.
Ejecutar:
npm run startEl servidor se ejecutará en primer plano. Presione
Ctrl + Cpara detenerlo.
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.
Un servidor de interfaz de línea de comandos que proporciona acceso irrestricto al sistema en entornos Windows con privilegios de nivel de SISTEMA, lo que permite un control total sobre archivos, procesos y configuraciones.
Related MCP Servers
- -security-license-qualityA Windows control server built using nut.js and Model Context Protocol (MCP), providing programmatic control over Windows system operations including mouse, keyboard, window management, and screen capture functionality.Last updated -33248MIT License
 - Asecurity-licenseAqualityAn enhanced Windows CLI MCP server providing unrestricted system access capabilities, designed for trusted environments with full system access requirements.Last updated -42156MIT License
 - -security-license-qualityThis server provides an interface for performing basic file system operations such as navigation, reading, writing, and file analysis, allowing users to manage directories and files efficiently.Last updated -4
 - Asecurity-licenseAqualityA Model Context Protocol server that provides programmatic access to the Windows terminal, enabling AI models to interact with the Windows command line through standardized tools for writing commands, reading output, and sending control signals.Last updated -3MIT License