Shell Executor

Execute comandos shell com segurança em um servidor remoto.

Documentação

Servidor MCP Shell Executor

Um servidor Model Context Protocol (MCP) que fornece capacidades seguras de execução de comandos shell para agentes de IA e ferramentas como o VS Code Copilot.

Recursos

  • Execução Segura de Comandos: Filtragem de comandos baseada em lista de permissões
  • Conjunto Abrangente de Ferramentas: Suporte para operações de arquivos, processamento de texto, ferramentas de desenvolvimento e utilitários do sistema
  • Compatível com MCP: Suporte completo ao Model Context Protocol
  • Integração Fácil: Interface JSON-RPC simples via stdio

Instalação

Opção 1: Uso Direto

git clone https://github.com/yourusername/shell-executor-mcp.git
cd shell-executor-mcp
pip install -e .

Opção 2: Instalar a partir do PyPI (quando publicado)

pip install shell-executor-mcp

Integração com VS Code

1. Configuração Global

Adicione ao seu settings.json do VS Code ou à configuração do MCP:

{
  "mcpServers": {
    "shell-executor": {
      "command": "python",
      "args": ["/path/to/shell-executor-mcp/src/mcp_server.py"],
      "env": {
        "MCP_API_TOKEN": "your-secret-token"
      }
    }
  }
}

2. Configuração do Workspace

Crie .vscode/mcp_servers.json no seu workspace:

{
  "shell-executor": {
    "command": "python",
    "args": ["${workspaceFolder}/path/to/mcp_server.py"],
    "env": {
      "MCP_API_TOKEN": "your-secret-token"
    }
  }
}

3. Usando com o VS Code Copilot

Uma vez configurado, o Copilot pode descobrir e usar o executor de shell através do MCP:

@shell-executor execute ls -la
@shell-executor execute git status
@shell-executor execute cargo build

Testes Manuais

Inicie o servidor:

python src/mcp_server.py

Envie solicitações de teste:

  1. Inicializar:
{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0.0"}}}
  1. Listar ferramentas:
{"jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {}}
  1. Executar comando:
{"jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": {"name": "execute_command", "arguments": {"command": "echo", "args": ["Hello World"]}}}

Comandos Suportados

Sistema de Arquivos

  • ls, cat, head, tail, find, tree, wc, du, df
  • file, stat, pwd

Processamento de Texto

  • grep, sed, awk, sort, uniq, cut, tr

Desenvolvimento

  • git, npm, yarn, pip, python, node, cargo, make
  • rustc, go, java, javac

Informações do Sistema

  • ps, uptime, whoami, id, uname, which

Rede

  • curl, wget, ping, dig, nslookup

Arquivos Compactados

  • tar, zip, unzip, gzip, gunzip

Utilitários

  • echo, date, cal, bc, expr, basename, dirname
  • Ferramentas de hash: md5, sha256sum, shasum

Segurança

  • Os comandos são filtrados através de uma lista de permissões
  • Tempo limite de execução de 30 segundos
  • Nenhuma operação destrutiva (rm, mv, cp) é permitida
  • Nenhuma elevação de privilégio (sudo, su) é permitida
  • As variáveis de ambiente podem ser controladas

Configuração

Defina as variáveis de ambiente:

  • MCP_API_TOKEN: Token de autenticação (padrão: "MYSECRET")

Licença

Licença MIT - consulte o arquivo LICENSE para obter detalhes.