WSL Exec
Execute comandos de forma segura no Subsistema Windows para Linux (WSL).
Documentação
mcp-wsl-exec
Um servidor Model Context Protocol (MCP) para usuários de Windows + Claude Desktop interagirem com o Windows Subsystem for Linux (WSL). Oferece capacidades de coleta de informações somente leitura e execução segura de comandos.
⚠️ Importante: Quem Deve Usar Isto?
✅ Você DEVE usar isto se:
- Você está usando Claude Desktop no Windows
- Você precisa interagir com seu ambiente WSL
- Você quer fornecer contexto WSL ao Claude (informações do sistema, processos, arquivos, etc.)
❌ Você NÃO precisa disto se:
- Você está usando Claude Code (ele tem acesso nativo ao bash)
- Você está em Linux/macOS (use ferramentas nativas em vez disso)
- Você só precisa de Windows PowerShell/CMD (use um servidor MCP diferente)
Recursos
📊 Coleta de Informações (Somente Leitura)
- 🖥️ Obter informações do sistema (SO, kernel, hostname)
- 📁 Navegar pelo conteúdo de diretórios
- 💾 Verificar uso de disco
- ⚙️ Listar variáveis de ambiente
- 🔄 Monitorar processos em execução
🔧 Execução de Comandos (Com Segurança)
- 🔒 Execução segura de comandos em ambientes WSL
- ⚡ Recursos de segurança integrados:
- Detecção de comandos perigosos
- Sistema de confirmação de comandos
- Prevenção de travessia de caminho
- Sanitização de comandos
- 📁 Suporte a diretório de trabalho
- ⏱️ Funcionalidade de timeout de comando
- 🛡️ Proteção contra injeção de shell
Configuração
Este servidor requer configuração através do seu cliente MCP. Aqui estão exemplos para diferentes ambientes:
Configuração do Cline
Adicione isto às configurações MCP do Cline:
{
"mcpServers": {
"mcp-wsl-exec": {
"command": "npx",
"args": ["-y", "mcp-wsl-exec"]
}
}
}
Configuração do Claude Desktop
Adicione isto à configuração do Claude Desktop:
{
"mcpServers": {
"mcp-wsl-exec": {
"command": "npx",
"args": ["-y", "mcp-wsl-exec"]
}
}
}
API
O servidor fornece 7 ferramentas MCP:
Coleta de Informações (Somente Leitura) 📊
Estas ferramentas fornecem contexto sobre seu ambiente WSL sem fazer alterações:
get_system_info
Obter informações do sistema (versão do SO, kernel, hostname).
Parâmetros: Nenhum
get_directory_info
Obter conteúdo de diretório e informações de arquivos.
Parâmetros:
path(string, opcional): Caminho do diretório (padrão é o diretório atual)details(boolean, opcional): Mostrar informações detalhadas (permissões, tamanhos, etc.)
get_disk_usage
Obter informações de espaço em disco.
Parâmetros:
path(string, opcional): Caminho específico para verificar (padrão é todos os sistemas de arquivos)
get_environment
Obter variáveis de ambiente.
Parâmetros:
filter(string, opcional): Padrão de filtro para buscar variáveis específicas
list_processes
Listar processos em execução.
Parâmetros:
filter(string, opcional): Filtrar por nome do processo
Execução de Comandos (Potencialmente Destrutiva) 🔧
Use estas ferramentas quando precisar fazer alterações ou executar comandos personalizados:
execute_command
Executar um comando no WSL com verificações de segurança e validação.
Parâmetros:
command(string, obrigatório): Comando a ser executadoworking_dir(string, opcional): Diretório de trabalho para execução do comandotimeout(number, opcional): Timeout em milissegundos
Nota: Comandos perigosos exigirão confirmação via
confirm_command.
confirm_command
Confirmar a execução de um comando perigoso que foi sinalizado pelas verificações de segurança.
Parâmetros:
confirmation_id(string, obrigatório): ID de confirmação recebido de execute_commandconfirm(boolean, obrigatório): Se deve prosseguir com a execução do comando
Recursos de Segurança
Detecção de Comandos Perigosos
O servidor mantém uma lista de comandos potencialmente perigosos que exigem confirmação explícita antes da execução, incluindo:
- Operações de sistema de arquivos (rm, rmdir, mv)
- Comandos do sistema (shutdown, reboot)
- Gerenciamento de pacotes (apt, yum, dnf)
- Redirecionamentos de arquivo (>, >>)
- Alterações de permissão (chmod, chown)
- E mais...
Validação de Comandos
Os comandos são executados através de bash -c, portanto a
sintaxe normal do shell, como pipes, aspas, redirecionamentos e
encadeamento de comandos, é preservada. O servidor valida entradas
vazias/com byte nulo, cita argumentos usados por ferramentas integradas
e exige confirmação para comandos potencialmente perigosos.
Desenvolvimento
Configuração
- Clone o repositório
- Instale as dependências:
pnpm install
- Compile o projeto:
pnpm build
- Execute em modo de desenvolvimento:
pnpm dev
Publicação
O projeto usa changesets para gerenciamento de versão. Para publicar:
- Crie um changeset:
pnpm changeset
- Versione o pacote:
pnpm changeset version
- Publique no npm:
pnpm release
Contribuições
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.
Agradecimentos
- Construído sobre o Model Context Protocol
- Projetado para execução segura de comandos WSL