WSL Exec
Ejecuta comandos de forma segura en el Subsistema de Windows para Linux (WSL).
Documentación
mcp-wsl-exec
Un servidor de Model Context Protocol (MCP) para usuarios de Windows + Claude Desktop que deseen interactuar con Windows Subsystem for Linux (WSL). Proporciona capacidades tanto de recopilación de información de solo lectura como de ejecución segura de comandos.
⚠️ Importante: ¿Quién debería usar esto?
✅ DEBERÍAS usar esto si:
- Estás usando Claude Desktop en Windows
- Necesitas interactuar con tu entorno WSL
- Quieres proporcionar contexto WSL a Claude (información del sistema, procesos, archivos, etc.)
❌ NO necesitas esto si:
- Estás usando Claude Code (tiene acceso nativo a bash)
- Estás en Linux/macOS (usa herramientas nativas en su lugar)
- Solo necesitas Windows PowerShell/CMD (usa un servidor MCP diferente)
Características
📊 Recopilación de Información (Solo Lectura)
- 🖥️ Obtén información del sistema (SO, kernel, nombre de host)
- 📁 Explora el contenido de directorios
- 💾 Verifica el uso de disco
- ⚙️ Lista variables de entorno
- 🔄 Monitorea procesos en ejecución
🔧 Ejecución de Comandos (Con Seguridad)
- 🔒 Ejecución segura de comandos en entornos WSL
- ⚡ Funciones de seguridad integradas:
- Detección de comandos peligrosos
- Sistema de confirmación de comandos
- Prevención de traversal de rutas
- Saneamiento de comandos
- 📁 Soporte de directorio de trabajo
- ⏱️ Funcionalidad de tiempo de espera de comandos
- 🛡️ Protección contra inyección de shell
Configuración
Este servidor requiere configuración a través de tu cliente MCP. Aquí hay ejemplos para diferentes entornos:
Configuración de Cline
Añade esto a tu configuración MCP de Cline:
{
"mcpServers": {
"mcp-wsl-exec": {
"command": "npx",
"args": ["-y", "mcp-wsl-exec"]
}
}
}
Configuración de Claude Desktop
Añade esto a tu configuración de Claude Desktop:
{
"mcpServers": {
"mcp-wsl-exec": {
"command": "npx",
"args": ["-y", "mcp-wsl-exec"]
}
}
}
API
El servidor proporciona 7 herramientas MCP:
Recopilación de Información (Solo Lectura) 📊
Estas herramientas proporcionan contexto sobre tu entorno WSL sin realizar cambios:
get_system_info
Obtén información del sistema (versión del SO, kernel, nombre de host).
Parámetros: Ninguno
get_directory_info
Obtén el contenido del directorio e información de archivos.
Parámetros:
path(cadena, opcional): Ruta del directorio (por defecto, el directorio actual)details(booleano, opcional): Mostrar información detallada (permisos, tamaños, etc.)
get_disk_usage
Obtén información del espacio en disco.
Parámetros:
path(cadena, opcional): Ruta específica a verificar (por defecto, todos los sistemas de archivos)
get_environment
Obtén variables de entorno.
Parámetros:
filter(cadena, opcional): Patrón de filtro para buscar variables específicas
list_processes
Lista los procesos en ejecución.
Parámetros:
filter(cadena, opcional): Filtrar por nombre de proceso
Ejecución de Comandos (Potencialmente Destructiva) 🔧
Usa estas herramientas cuando necesites realizar cambios o ejecutar comandos personalizados:
execute_command
Ejecuta un comando en WSL con verificaciones de seguridad y validación.
Parámetros:
command(cadena, requerido): Comando a ejecutarworking_dir(cadena, opcional): Directorio de trabajo para la ejecución del comandotimeout(número, opcional): Tiempo de espera en milisegundos
Nota: Los comandos peligrosos requerirán confirmación a través de
confirm_command.
confirm_command
Confirma la ejecución de un comando peligroso que fue marcado por las verificaciones de seguridad.
Parámetros:
confirmation_id(cadena, requerido): ID de confirmación recibido de execute_commandconfirm(booleano, requerido): Si se debe proceder con la ejecución del comando
Funciones de Seguridad
Detección de Comandos Peligrosos
El servidor mantiene una lista de comandos potencialmente peligrosos que requieren confirmación explícita antes de la ejecución, incluyendo:
- Operaciones del sistema de archivos (rm, rmdir, mv)
- Comandos del sistema (shutdown, reboot)
- Gestión de paquetes (apt, yum, dnf)
- Redirecciones de archivos (>, >>)
- Cambios de permisos (chmod, chown)
- Y más...
Validación de Comandos
Los comandos se ejecutan a través de bash -c, por lo que la sintaxis
normal de shell como tuberías, comillas, redirecciones y encadenamiento
de comandos se conserva. El servidor valida entradas vacías/con bytes
nulos, cita argumentos utilizados por herramientas integradas y requiere
confirmación para comandos potencialmente peligrosos.
Desarrollo
Configuración
- Clona el repositorio
- Instala las dependencias:
pnpm install
- Compila el proyecto:
pnpm build
- Ejecuta en modo de desarrollo:
pnpm dev
Publicación
El proyecto utiliza changesets para la gestión de versiones. Para publicar:
- Crea un changeset:
pnpm changeset
- Versiona el paquete:
pnpm changeset version
- Publica en npm:
pnpm release
Contribuciones
¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request.
Licencia
Licencia MIT - consulta el archivo LICENSE para más detalles.
Agradecimientos
- Construido sobre el Model Context Protocol
- Diseñado para la ejecución segura de comandos WSL