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 ejecutar
  • working_dir (cadena, opcional): Directorio de trabajo para la ejecución del comando
  • timeout (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_command
  • confirm (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

  1. Clona el repositorio
  2. Instala las dependencias:
pnpm install
  1. Compila el proyecto:
pnpm build
  1. Ejecuta en modo de desarrollo:
pnpm dev

Publicación

El proyecto utiliza changesets para la gestión de versiones. Para publicar:

  1. Crea un changeset:
pnpm changeset
  1. Versiona el paquete:
pnpm changeset version
  1. 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