Skip to main content
Glama

MCP Shell Server

README.md4.52 kB
# 📋 Sumário * [🔍 Visão Geral](#-visão-geral) * [🧪 Testes](#-testes) * [conftest.py](#conftestpy) * [test_command_validator.py](#test_command_validatorpy) * [test_directory_manager.py](#test_directory_managerpy) * [test_process_manager.py](#test_process_managerpy) * [test_server.py](#test_serverpy) * [test_shell_executor_error_cases.py](#test_shell_executor_error_casespy) * [test_shell_executor_new_tests.py](#test_shell_executor_new_testspy) * [test_shell_executor_pipe.py](#test_shell_executor_pipepy) * [test_shell_executor_pipeline.py](#test_shell_executor_pipelinepy) * [test_shell_executor_redirections.py](#test_shell_executor_redirectionspy) * [test_shell_executor_redirections.py.bak (backup)](#test_shell_executor_redirectionspybak-backup) * [⚙️ Instalação e Uso](#️-instalação-e-uso) ## 🔍 Visão Geral Este diretório contém uma suíte de testes abrangente para garantir a funcionalidade e robustez de um sistema de execução de comandos shell, incluindo validação, gerenciamento de diretórios, processos e tratamento de erros. Os testes utilizam o framework `pytest` e incluem fixtures para facilitar a configuração e simulação de diferentes cenários. ## 🧪 Testes ### conftest.py Este arquivo define fixtures reutilizáveis para os testes, incluindo mocks para arquivos, gerenciador de processos, executor de shell, diretório temporário e um loop de eventos assíncrono. Essas fixtures simplificam a configuração dos testes e promovem o isolamento. ### test_command_validator.py Valida a classe `CommandValidator`, que verifica comandos em relação a uma lista de comandos permitidos (definidos por variáveis de ambiente) e a presença de operadores de shell potencialmente perigosos. ```python # Exemplo: teste para verificar se um comando é permitido def test_allowed_command(valid_command): validator = CommandValidator() assert validator.validate(valid_command) is True ``` ### test_directory_manager.py Testa a classe `DirectoryManager`, responsável por validar e resolver caminhos de diretório. ```python # Exemplo: teste para verificar a resolução de um caminho relativo def test_relative_path_resolution(temp_dir): manager = DirectoryManager() resolved_path = manager.resolve_path("subfolder") assert resolved_path == os.path.join(temp_dir, "subfolder") ``` ### test_process_manager.py Testa a classe `ProcessManager`, que gerencia a execução de processos e pipelines, incluindo tratamento de timeouts e erros. ```python # Exemplo: teste para verificar o timeout na execução de um processo def test_process_timeout(process_manager): with pytest.raises(TimeoutExpired): process_manager.run_command("sleep 10", timeout=1) ``` ### test_server.py Testa um servidor que executa comandos shell, simulando diferentes cenários com mocks. ### test_shell_executor_error_cases.py Concentra-se nos cenários de erro da classe `ShellExecutor`, como comandos inválidos, timeouts e falhas na execução. ### test_shell_executor_new_tests.py Inclui testes adicionais para o `ShellExecutor`, focando em redirecionamentos de entrada/saída, validação de diretórios e timeouts. ### test_shell_executor_pipe.py Testa a execução de comandos com pipes (|) usando o `ShellExecutor`. ### test_shell_executor_pipeline.py Testa a execução de pipelines de comandos shell, verificando a divisão correta dos comandos e o tratamento de sucessos, erros e timeouts. ### test_shell_executor_redirections.py Testa o redirecionamento de entrada e saída (stdin, stdout) no `ShellExecutor`, simulando operações com arquivos. ### test_shell_executor_redirections.py.bak (backup) Um arquivo de backup contendo testes semelhantes aos de `test_shell_executor_redirections.py`. ## ⚙️ Instalação e Uso 1. **Clone o repositório:** ```bash git clone <URL_DO_REPOSITORIO> ``` 2. **Instale as dependências:** ```bash pip install -r requirements.txt # Certifique-se de ter um arquivo requirements.txt com as dependências, como pytest ``` 3. **Execute os testes:** ```bash pytest tests/ ``` Este README fornece uma visão geral dos testes presentes neste diretório. Cada arquivo de teste cobre aspectos específicos do sistema de execução de comandos, garantindo sua qualidade e confiabilidade. A utilização de fixtures e mocks facilita a manutenção e execução dos testes, permitindo simular diferentes cenários e isolar o código testado.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/diegofornalha/mcp-shell-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server