A secure server that implements the Model Context Protocol (MCP) to enable controlled execution of authorized shell commands with stdin support.
Um servidor seguro para execução de comandos shell que implementa o Protocolo de Contexto de Modelo (MCP). Este servidor permite a execução remota de comandos shell autorizados com suporte para entrada via stdin.
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{ "mcpServers": { "shell": { "command": "uvx", "args": [ "mcp-shell-server" ], "env": { "ALLOW_COMMANDS": "ls,cat,pwd,grep,wc,touch,find" } }, } }
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{ "mcpServers": { "shell": { "command": "uv", "args": [ "--directory", ".", "run", "mcp-shell-server" ], "env": { "ALLOW_COMMANDS": "ls,cat,pwd,grep,wc,touch,find" } }, } }
pip install mcp-shell-server
ALLOW_COMMANDS="ls,cat,echo" uvx mcp-shell-server # Ou usando o alias ALLOWED_COMMANDS="ls,cat,echo" uvx mcp-shell-server
A variável de ambiente ALLOW_COMMANDS
(ou seu alias ALLOWED_COMMANDS
) especifica quais comandos podem ser executados. Comandos podem ser separados por vírgulas com espaços opcionais ao redor deles.
Formatos válidos para ALLOW_COMMANDS ou ALLOWED_COMMANDS:
ALLOW_COMMANDS="ls,cat,echo" # Formato básico ALLOWED_COMMANDS="ls ,echo, cat" # Com espaços (usando alias) ALLOW_COMMANDS="ls, cat , echo" # Múltiplos espaços
# Execução básica de comando { "command": ["ls", "-l", "/tmp"] } # Comando com entrada stdin { "command": ["cat"], "stdin": "Hello, World!" } # Comando com timeout { "command": ["long-running-process"], "timeout": 30 # Tempo máximo de execução em segundos } # Comando com diretório de trabalho e timeout { "command": ["grep", "-r", "pattern"], "directory": "/path/to/search", "timeout": 60 }
Resposta de sucesso:
{ "stdout": "saída do comando", "stderr": "", "status": 0, "execution_time": 0.123 }
Resposta de erro:
{ "error": "Comando não permitido: rm", "status": 1, "stdout": "", "stderr": "Comando não permitido: rm", "execution_time": 0 }
O servidor implementa várias medidas de segurança:
git clone https://github.com/yourusername/mcp-shell-server.git cd mcp-shell-server
pip install -e ".[test]"
pytest
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
command | string[] | Sim | Comando e seus argumentos como elementos de array |
stdin | string | Não | Entrada a ser passada para o comando |
directory | string | Não | Diretório de trabalho para execução do comando |
timeout | integer | Não | Tempo máximo de execução em segundos |
Campo | Tipo | Descrição |
---|---|---|
stdout | string | Saída padrão do comando |
stderr | string | Saída de erro do comando |
status | integer | Código de status de saída |
execution_time | float | Tempo gasto para executar (em segundos) |
error | string | Mensagem de erro (presente apenas se falhou) |
Licença MIT - Veja o arquivo LICENSE para detalhes
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!