Executor Comando Shell
A secure server that implements the Model Context Protocol (MCP) to enable controlled execution of authorized shell commands with stdin support.
diegofornalha
README
MCP Shell Server
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.
Funcionalidades
- Execução Segura de Comandos: Apenas comandos autorizados podem ser executados
- Suporte para Entrada Padrão: Passa entrada para comandos via stdin
- Saída Abrangente: Retorna stdout, stderr, código de saída e tempo de execução
- Segurança com Operadores Shell: Valida comandos após operadores shell (;, &&, ||, |)
- Controle de Timeout: Define tempo máximo de execução para comandos
Configuração do cliente MCP no seu Claude.app
Versão publicada
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"
}
},
}
}
Versão local
Configuração
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"
}
},
}
}
Instalação
pip install mcp-shell-server
Uso
Iniciando o Servidor
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
Formato da Requisição
# 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
}
Formato da Resposta
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
}
Segurança
O servidor implementa várias medidas de segurança:
- Lista Branca de Comandos: Apenas comandos explicitamente permitidos podem ser executados
- Validação de Operadores Shell: Comandos após operadores shell (;, &&, ||, |) também são validados contra a lista branca
- Sem Injeção de Shell: Comandos são executados diretamente sem interpretação do shell
Desenvolvimento
Configurando o Ambiente de Desenvolvimento
- Clone o repositório
git clone https://github.com/yourusername/mcp-shell-server.git
cd mcp-shell-server
- Instale dependências incluindo requisitos de teste
pip install -e ".[test]"
Executando Testes
pytest
Referência da API
Argumentos da Requisição
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 |
Campos da Resposta
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) |
Requisitos
- Python 3.11 ou superior
- mcp>=1.1.0
Licença
Licença MIT - Veja o arquivo LICENSE para detalhes
Recommended Servers

E2B
Using MCP to run code via e2b.
AIO-MCP Server
🚀 All-in-one MCP server with AI search, RAG, and multi-service integrations (GitLab/Jira/Confluence/YouTube) for AI-enhanced development workflows. Folk from
React MCP
react-mcp integrates with Claude Desktop, enabling the creation and modification of React apps based on user prompts

Any OpenAI Compatible API Integrations
Integrate Claude with Any OpenAI SDK Compatible Chat Completion API - OpenAI, Perplexity, Groq, xAI, PyroPrompts and more.
Exa MCP
A Model Context Protocol server that enables AI assistants like Claude to perform real-time web searches using the Exa AI Search API in a safe and controlled manner.
MySQL Server
Allows AI assistants to list tables, read data, and execute SQL queries through a controlled interface, making database exploration and analysis safer and more structured.
Browser Use (used by Deploya.dev)
AI-driven browser automation server that implements the Model Context Protocol to enable natural language control of web browsers for tasks like navigation, form filling, and visual interaction.
Aindreyway Codex Keeper
Serves as a guardian of development knowledge, providing AI assistants with curated access to latest documentation and best practices.

OpenRouter MCP Server
Provides integration with OpenRouter.ai, allowing access to various AI models through a unified interface.
Supabase MCP Server (used by Deploya.dev)
Enables Cursor and Windsurf to safely interact with Supabase databases by providing tools for database management, SQL query execution, and Supabase Management API access with built-in safety controls.