Bash MCP
Execute comandos shell sem solicitações de permissão.
Documentação
Here is the translated Markdown document:
bash-mcp
Um servidor MCP (Model Context Protocol) simples que permite ao Claude executar comandos de shell sem prompts de permissão.
⚠️ Aviso de Segurança: Este servidor executa comandos de shell arbitrários. Use com cautela e apenas em ambientes confiáveis.
Instalação
# Install globally
npm install -g bash-mcp
# Or use with npx
npx bash-mcp
Início Rápido
Para o Claude Desktop
Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"bash": {
"command": "npx",
"args": ["bash-mcp"]
}
}
}
Para o Claude Code (Cursor, VS Code)
- Abra a paleta de comandos (Cmd/Ctrl + Shift + P)
- Execute "MCP: Add Server"
- Selecione "NPM" como o tipo de servidor
- Digite:
bash-mcp
Ferramentas Disponíveis
run - Executa um comando
// Simple command
run("ls -la")
// With working directory
run("npm test", { cwd: "/path/to/project" })
// With timeout (milliseconds)
run("long-running-command", { timeout: 60000 })
run_background - Inicia um processo em segundo plano
// Start a dev server
run_background("npm run dev", "frontend")
// Start backend service with working directory
run_background("./gradlew bootRun", "backend", { cwd: "./backend" })
kill_background - Interrompe um processo em segundo plano
kill_background("frontend")
list_background - Lista todos os processos em segundo plano
list_background()
Exemplo de Uso
User: Start the development servers
Assistant: I'll start both frontend and backend servers for you.
[Uses run_background tool]
Started frontend server (PID: 12345)
Started backend server (PID: 12346)
User: Check if they're running
Assistant: [Uses list_background tool]
Both servers are running successfully!
Formato de Resposta
Todas as ferramentas retornam respostas formatadas em JSON:
{
"success": true,
"stdout": "command output",
"stderr": "error output if any",
"command": "executed command"
}
Para processos em segundo plano:
{
"success": true,
"name": "frontend",
"pid": 12345,
"command": "npm run dev",
"message": "Started background process 'frontend' (PID: 12345)"
}
Recursos
- Executa qualquer comando de shell sem prompts de permissão
- Executa processos de longa duração em segundo plano
- Gerencia processos em segundo plano (listar, encerrar)
- Captura stdout e stderr
- Define o diretório de trabalho para comandos
- Configura timeout para comandos
- Limpeza automática ao encerrar o servidor
- NOVO: Truncamento automático de saída com saída completa salva em arquivos temporários
- NOVO: Limites de tamanho de saída configuráveis e diretório temporário via variáveis de ambiente
Variáveis de Ambiente
BASH_MCP_MAX_OUTPUT_SIZE: Tamanho máximo de saída em bytes antes do truncamento (padrão: 51200/50KB)BASH_MCP_TEMP_DIR: Diretório para armazenar a saída completa quando truncada (padrão: diretório temporário do sistema)
Exemplo de Configuração
{
"mcpServers": {
"bash": {
"command": "npx",
"args": ["bash-mcp"],
"env": {
"BASH_MCP_MAX_OUTPUT_SIZE": "102400",
"BASH_MCP_TEMP_DIR": "/tmp/bash-mcp-outputs"
}
}
}
}
Tratamento de Estouro de Saída
Quando a saída do comando excede BASH_MCP_MAX_OUTPUT_SIZE:
- A saída é truncada até o limite especificado
- A saída completa é salva em um arquivo temporário
- A resposta inclui o caminho do arquivo onde a saída completa pode ser encontrada
- Se o diretório temporário personalizado falhar, ele volta para o diretório temporário do sistema
Considerações de Segurança
Este servidor MCP executa comandos de shell arbitrários com os mesmos privilégios do processo Node.js. Use apenas em ambientes de desenvolvimento ou contextos confiáveis.
Requisitos
- Node.js >= 16.0.0
- npm ou npx
Licença
MIT
Autor
tinywind tinywind0@gmail.com
Contribuição
Issues e pull requests são bem-vindos no GitHub.