Lilith Shell
Execute comandos de terminal através de uma interface de shell segura usando um assistente de IA.
Documentação
Lilith Shell
Servidor MCP experimental que expõe a execução local de comandos shell a um assistente de IA.
Status Atual
Este repositório deve ser tratado como um protótipo, não como um servidor shell seguro.
A implementação atual expõe uma ferramenta MCP, execute_command, que executa uma string de comando fornecida pelo chamador por meio de subprocess.run(..., shell=True). Ela possui um tempo limite fixo de cinco minutos, captura stdout e stderr, e aceita um diretório de trabalho opcional. Atualmente, não implementa os controles de segurança descritos anteriormente neste README.
Ação recomendada para o perfil: arquivar ou desafixar este repositório até que o modelo de segurança seja reconstruído e testado.
Aviso de Segurança
Não execute isso em um host, conta ou diretório que contenha credenciais, dados de produção, código-fonte privado, chaves SSH, tokens de nuvem ou outros materiais sensíveis.
Lacunas conhecidas no código atual:
- Sem aplicação de lista de permissões ou bloqueio de comandos
- Sem modos estrito, permissivo ou de bloqueio total
- Sem imposição de limite de diretório de trabalho
- Sem filtragem de ambiente
- Sem sanitização de saída
- Sem log de auditoria
- Sem seleção de shell via configuração
- Sem saída em streaming
- Sem caminho de execução específico para Windows
shell=Trueé usado com entrada de ferramenta não confiável
Essas lacunas tornam o projeto inadequado para uso em produção e arriscado até mesmo em uma estação de trabalho de desenvolvedor comum.
O Que Funciona Hoje
O servidor MCP registra uma ferramenta:
execute_command- entrada: string
command - entrada opcional: string
directory, com padrão~ - comportamento: executa o comando no diretório solicitado e retorna o código de saída, stdout e stderr
- entrada: string
O Que Foi Removido do Escopo
O README anterior afirmava suporte para lista de permissões de comandos, detecção de comandos perigosos, modos configuráveis, sanitização de saída, registro de auditoria, confinamento de diretório de trabalho, seleção de shell multiplataforma e saída em streaming. Essas capacidades não estão presentes na árvore de código atual.
Plano Mínimo de Correção Antes de Republicar
Antes de apresentar isso como um servidor MCP orientado à segurança:
- Substituir a execução de string
shell=Truepor execução baseada em argv. - Adicionar um modo estrito obrigatório por padrão, com listas de permissões de comandos explícitas.
- Canonicalizar e impor uma raiz de workspace configurada antes de cada comando.
- Construir testes para análise de comandos, comandos bloqueados, travessia de caminho, escapes de symlink, comportamento de tempo limite e limites de saída.
- Redigir padrões comuns de segredos da saída retornada.
- Adicionar tratamento de saída limitada para que comandos grandes não esgotem a memória ou inundem as respostas do MCP.
- Adicionar logs de comandos auditáveis com carimbos de data/hora, cwd, código de saída e motivo do bloqueio.
- Documentar exatamente quais shells, plataformas e limites de ameaças são suportados.
Desenvolvimento
pip install -e ".[dev]"
pytest
Licença
MIT