Shell MCP Server
Executa comandos shell seguros com validação configurável de diretório, shell e tempo limite.
GitHub
21
Experimente este MCPPatrocinadoDocumentação
🖥️ Shell MCP Server
🚀 Adicione capacidades seguras de execução de comandos shell às suas aplicações de IA com o Shell MCP Server! Construído para o Model Context Protocol.
✨ Recursos
- 🔒 Execução Segura - Comandos executam apenas em diretórios especificados
- 🐚 Múltiplos Shells - Suporte para bash, sh, cmd, powershell
- ⏱️ Controle de Timeout - Terminação automática de comandos de longa duração
- 🌍 Multiplataforma - Funciona em sistemas Unix e Windows
- 🛡️ Seguro por Padrão - Validação integrada de diretório e shell
🚀 Início Rápido
Instalação
# Using pip
pip install shell-mcp-server
# Using uv (recommended)
uv pip install shell-mcp-server
🔌 Integração com Claude Desktop
Adicione isto à sua configuração do Claude Desktop para habilitar a execução de comandos shell:
📝 Clique para ver a configuração
{
"mcpServers": {
"shell-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/shell-mcp-server",
"run",
"shell-mcp-server",
"/path/to/allowed/dir1",
"/path/to/allowed/dir2",
"--shell", "bash", "/bin/bash",
"--shell", "zsh", "/bin/zsh"
]
}
}
}
🎮 Exemplos de Uso
Operações Básicas de Arquivos
# List directory contents
result = execute_command(
command="ls -la",
shell="bash",
cwd="/path/to/project"
)
# Find files by pattern
result = execute_command(
command="find . -name '*.py'",
shell="bash",
cwd="/path/to/project"
)
Gerenciamento de Projetos
# Git operations
result = execute_command(
command="git status && git diff",
shell="bash",
cwd="/path/to/repo"
)
# Package management
result = execute_command(
command="pip list --outdated",
shell="bash",
cwd="/path/to/python/project"
)
Informações do Sistema
# Resource usage
result = execute_command(
command="df -h && free -h",
shell="bash",
cwd="/path/to/dir"
)
# Process monitoring
result = execute_command(
command="ps aux | grep python",
shell="bash",
cwd="/path/to/dir"
)
Processamento de Arquivos
# Search file content
result = execute_command(
command="grep -r 'TODO' .",
shell="bash",
cwd="/path/to/project"
)
# File manipulation
result = execute_command(
command="awk '{print $1}' data.csv | sort | uniq -c",
shell="bash",
cwd="/path/to/data"
)
Exemplos Específicos para Windows
# List processes
result = execute_command(
command="Get-Process | Where-Object {$_.CPU -gt 10}",
shell="powershell",
cwd="C:\\path\\to\\dir"
)
# System information
result = execute_command(
command="systeminfo | findstr /B /C:'OS'",
shell="cmd",
cwd="C:\\path\\to\\dir"
)
⚙️ Configuração
Configure o comportamento com argumentos de linha de comando:
| Argumento | Descrição |
|---|---|
directories | 📁 Lista de diretórios permitidos |
--shell name path | 🐚 Especificações de shell (nome e caminho) |
Variáveis de ambiente:
COMMAND_TIMEOUT: ⏱️ Tempo máximo de execução em segundos (padrão: 30)
🛡️ Recursos de Segurança
- 🔐 Isolamento de Diretório: Comandos só podem ser executados em diretórios especificados
- 🔒 Controle de Shell: Apenas shells configurados são permitidos
- ⏰ Proteção contra Timeout: Todos os comandos têm um timeout configurável
- 🛑 Validação de Caminho: A validação do diretório de trabalho previne ataques de traversal
- 👤 Isolamento de Permissões: Comandos executam com as mesmas permissões do processo do servidor
🛠️ Desenvolvimento
Configure seu ambiente de desenvolvimento:
# Create and activate virtual environment
uv venv
source .venv/bin/activate
# Install development dependencies
uv pip install -e ".[test]"
# Run tests
python -m pytest
# Run tests with coverage
python -m pytest --cov=shell_mcp_server
🤝 Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para:
- 🐛 Reportar bugs
- 💡 Sugerir recursos
- 🔧 Enviar pull requests
- 📚 Melhorar a documentação
📜 Licença
Licença MIT - veja LICENSE para detalhes.
🌟 Aprimore Sua IA com Acesso Seguro ao Shell! 🌟
Construído para o Model Context Protocol | Feito com ❤️ pela Comunidade MCP
🎉 Dê uma estrela no GitHub!
Se você achar esta ferramenta útil, considere dar uma estrela! Isso ajuda outras pessoas a descobrirem o projeto.