Console Automation
Servidor MCP pronto para produção, voltado para automação e monitoramento de console orientados por IA. Mais de 40 ferramentas para gerenciamento de sessões, SSH, testes e tarefas em segundo plano.
Documentação
Console Automation MCP Server
Servidor Model Context Protocol (MCP) para interação controlada com aplicativos de console locais e sessões SSH remotas, incluindo monitoramento de saída, detecção de erros e fluxos de trabalho de longa duração.
Status de Segurança
Este servidor pode executar comandos arbitrários e abrir sessões SSH remotas. Trate-o como um terminal privilegiado, não como um conector de documentação de baixo risco:
- mantenha as aprovações de ferramentas MCP habilitadas para mutações de comando/sessão;
- prefira chaves SSH ou referências de credenciais por variáveis de ambiente em vez de segredos inline;
- use uma conta de implantação restrita e uma etapa separada de aprovação de produção;
- deixe
MCP_DEBUG_LOGeMCP_LOG_DIRnão definidos, a menos que diagnósticos sejam explicitamente necessários; - deixe a persistência de sessão desabilitada, a menos que metadados de recuperação sejam explicitamente necessários;
- instale integrações de nuvem, contêineres e serial somente quando necessário.
Recursos
🚀 Capacidades Principais
- Controle Total do Terminal: Crie e gerencie até 50 sessões de console simultâneas
- Suporte Multi-Protocolo: Shells locais (cmd, PowerShell, pwsh, bash, zsh, sh) e conexões SSH remotas
- Entrada Interativa: Envie entrada de texto e sequências de teclas especiais (Enter, Tab, Ctrl+C, etc.)
- Monitoramento de Saída em Tempo Real: Capture, filtre e analise a saída do console com busca avançada
- Suporte a Streaming: Streaming eficiente para processos de longa duração com correspondência de padrões
- Detecção Automática de Erros: Padrões integrados para detectar erros, exceções e stack traces em várias linguagens
- Multiplataforma: Funciona em Windows, macOS e Linux sem dependências nativas
🔐 SSH e Conexões Remotas
- Suporte SSH Completo: Autenticação por senha e chave com suporte a passphrase
- Opções SSH: Portas personalizadas, timeouts de conexão, configurações de keep-alive
- Perfis de Conexão: Salve metadados SSH reutilizáveis e referências de credenciais por variáveis de ambiente
- Suporte a Plataformas de Nuvem: Conexões Azure, AWS, GCP, Kubernetes por meio de perfis salvos
- Suporte a Contêineres: Integração Docker e WSL para fluxos de trabalho conteinerizados
✅ Framework de Automação de Testes
- Casos de Teste Automatizados: Ferramentas de asserção integradas para validação de saída do console
- Asserções de Saída: Verifique se a saída contém, corresponde a regex ou é igual aos valores esperados
- Validação de Código de Saída: Afirme os códigos de saída do comando para detecção de sucesso/falha
- Validação Sem Erros: Verifique automaticamente erros na saída do comando
- Instantâneos de Estado: Salve e compare estados de sessão antes/depois das operações
- Fluxos de Trabalho de Teste: Encadeie asserções para cenários de teste abrangentes
🔄 Execução de Trabalhos em Segundo Plano
- Execução Assíncrona de Comandos: Execute comandos de longa duração em segundo plano com captura completa de saída
- Sistema de Fila de Prioridade: Priorize trabalhos (escala de 1 a 10) para utilização ideal de recursos
- Monitoramento de Trabalhos: Acompanhe status, progresso e conclusão de trabalhos em segundo plano
- Controle de Trabalhos: Cancele, pause ou retome operações em segundo plano
- Recuperação de Resultados: Obtenha saída completa e códigos de saída de trabalhos concluídos
- Gerenciamento de Recursos: Limpeza automática de trabalhos concluídos com retenção configurável
📊 Monitoramento e Alertas Empresariais
- Métricas de Todo o Sistema: Rastreamento de uso de CPU, memória, disco e rede
- Métricas de Sessão: Monitoramento de desempenho por sessão e consumo de recursos
- Painéis em Tempo Real: Dados de monitoramento ao vivo com visualizações personalizáveis
- Sistema de Alertas: Alertas de desempenho, erro, segurança e anomalias com níveis de gravidade
- Monitoramento Personalizado: Configure intervalos de monitoramento, métricas e limites por sessão
- Diagnósticos: Análise de erros integrada e validação de saúde da sessão
📁 Gerenciamento de Perfis
- Perfis de Conexão: Salve conexões SSH, Docker, WSL e plataformas de nuvem
- Perfis de Aplicação: Armazene configurações comuns de comandos (Node.js, Python, .NET, Java, Go, Rust)
- Conexão Rápida: Conecte-se instantaneamente usando perfis salvos com suporte a substituição
- Variáveis de Ambiente: Armazene configurações de ambiente por perfil
- Gerenciamento de Diretório de Trabalho: Defina diretórios padrão para cada perfil
🔍 Processamento Avançado de Saída
- Filtragem por Regex: Pesquise a saída com expressões regulares (sensível/insensível a maiúsculas/minúsculas)
- Busca Multi-Padrão: Combine vários padrões com lógica AND/OR
- Paginação: Obtenha intervalos específicos de linhas, início ou fim da saída
- Filtragem por Tempo: Filtre a saída por timestamp (absoluto ou relativo: '5m', '1h', '2d')
- Streaming de Saída: Captura de saída em tempo real para processos de longa duração
- Gerenciamento de Buffer: Limpe buffers de saída para reduzir o uso de memória
Instalação Rápida
Windows
git clone https://github.com/ooples/mcp-console-automation.git
cd mcp-console-automation
.\install.ps1 -Target codex
macOS/Linux
git clone https://github.com/ooples/mcp-console-automation.git
cd mcp-console-automation
chmod +x install.sh
./install.sh --target codex
Instalação Manual
git clone https://github.com/ooples/mcp-console-automation.git
cd mcp-console-automation
npm ci
npm run build
codex mcp add console-automation --env LOG_LEVEL=warn -- node "$PWD/dist/mcp/server.js"
Configuração
O Codex armazena a configuração MCP em ~/.codex/config.toml. Os instaladores usam codex mcp add e substituem com segurança um registro console-automation existente. Reinicie o Codex após a instalação e use /mcp para verificar a conexão.
Para outro cliente MCP, gere uma nova configuração JSON sem sobrescrever um arquivo existente:
.\install.ps1 -Target custom -CustomPath C:\path\to\new-mcp-config.json
O pacote npm não foi publicado, portanto npx console-automation-mcp e @mcp/console-automation não são caminhos de instalação válidos.
Credenciais SSH salvas
console_save_profile rejeita senhas inline, material de chave privada e passphrases. Use passwordEnvVar, privateKeyEnvVar ou privateKeyPath e passphraseEnvVar. As respostas de listagem de perfis nunca retornam valores de credenciais, e os arquivos de configuração são criados com permissões somente do proprietário onde o sistema operacional suporta modos POSIX.
Persistência de sessão
A persistência de sessão está desabilitada por padrão porque os dados de recuperação de sessão podem incluir comandos, caminhos e valores de ambiente. Para optar por ela, defina MCP_SESSION_PERSISTENCE=true. O arquivo padrão é ~/.console-automation-mcp/sessions.json; substitua-o com MCP_SESSION_PERSISTENCE_PATH. Os dados de recuperação de comando/ambiente persistidos permanecem desabilitados, a menos que sejam habilitados por meio da configuração programática SessionManager.
Os instaladores de produção removem pacotes de desenvolvimento e protocolos opcionais. Consoles locais e SSH permanecem disponíveis. Instale apenas os pacotes pares necessários para Docker, nuvem, Kubernetes, serial ou outros adaptadores opcionais.
Ferramentas Disponíveis (40 no Total)
Este servidor MCP fornece 40 ferramentas abrangentes organizadas em 6 categorias:
📚 Documentação Completa
- Referência Completa de Ferramentas - Documentação detalhada para todas as 40 ferramentas
- Exemplos Práticos - Exemplos e padrões de uso no mundo real
- Guia de Publicação - Como listar este servidor em registros
Categorias de Ferramentas
🖥️ Gerenciamento de Sessão (9 ferramentas)
console_create_session- Crie sessões de console locais ou SSHconsole_send_input- Envie entrada de texto para sessõesconsole_send_key- Envie teclas especiais (Enter, Ctrl+C, etc.)console_get_output- Obtenha saída filtrada/paginada com busca avançadaconsole_get_stream- Transmita saída de processos de longa duraçãoconsole_wait_for_output- Aguarde padrões específicosconsole_stop_session- Pare sessõesconsole_list_sessions- Liste todas as sessões ativasconsole_cleanup_sessions- Limpe sessões inativas
⚡ Execução de Comandos (6 ferramentas)
console_execute_command- Execute comandos com captura de saídaconsole_detect_errors- Analise a saída em busca de errosconsole_get_resource_usage- Obtenha estatísticas de recursos do sistemaconsole_clear_output- Limpe buffers de saídaconsole_get_session_state- Obtenha o estado de execução da sessãoconsole_get_command_history- Veja o histórico de comandos
📊 Monitoramento e Alertas (6 ferramentas)
console_get_system_metrics- Métricas abrangentes do sistemaconsole_get_session_metrics- Métricas específicas da sessãoconsole_get_alerts- Alertas de monitoramento ativosconsole_get_monitoring_dashboard- Dados de painel em tempo realconsole_start_monitoring- Inicie monitoramento personalizadoconsole_stop_monitoring- Pare o monitoramento
📁 Gerenciamento de Perfis (4 ferramentas)
console_save_profile- Salve perfis de conexão SSH/aplicativoconsole_list_profiles- Liste perfis salvosconsole_remove_profile- Remova perfisconsole_use_profile- Conexão rápida com perfis salvos
🔄 Trabalhos em Segundo Plano (9 ferramentas)
console_execute_async- Execute comandos de forma assíncronaconsole_get_job_status- Verifique o status do trabalhoconsole_get_job_output- Obtenha a saída do trabalhoconsole_cancel_job- Cancele trabalhos em execuçãoconsole_list_jobs- Liste todos os trabalhos em segundo planoconsole_get_job_progress- Monitore o progresso do trabalhoconsole_get_job_result- Obtenha resultados completos do trabalhoconsole_get_job_metrics- Estatísticas de execução de trabalhosconsole_cleanup_jobs- Limpe trabalhos concluídos
✅ Automação de Testes (6 ferramentas)
console_assert_output- Afirme que a saída corresponde aos critériosconsole_assert_exit_code- Afirme códigos de saídaconsole_assert_no_errors- Verifique se nenhum erro ocorreuconsole_save_snapshot- Salve instantâneos do estado da sessãoconsole_compare_snapshots- Compare diferenças de estadoconsole_assert_state- Afirme o estado da sessão
Exemplos de Início Rápido
Crie uma Sessão Local
const session = await console_create_session({
command: "npm",
args: ["run", "dev"],
detectErrors: true
});
Conecte-se via SSH
const session = await console_create_session({
command: "bash",
consoleType: "ssh",
sshOptions: {
host: "example.com",
username: "user",
privateKeyPath: "~/.ssh/id_rsa"
}
});
Execute Testes com Asserções
const session = await console_create_session({
command: "npm",
args: ["test"]
});
await console_assert_output({
sessionId: session.sessionId,
assertionType: "contains",
expected: "All tests passed"
});
Execução de Trabalho em Segundo Plano
const job = await console_execute_async({
sessionId: session.sessionId,
command: "npm run build",
priority: 8
});
const status = await console_get_job_status({
jobId: job.jobId
});
Para mais exemplos, veja docs/EXAMPLES.md
Casos de Uso
1. Executando e monitorando um servidor de desenvolvimento
// Create a session for the dev server
const session = await console_create_session({
command: "npm",
args: ["run", "dev"],
detectErrors: true
});
// Wait for server to start
await console_wait_for_output({
sessionId: session.sessionId,
pattern: "Server running on",
timeout: 10000
});
// Monitor for errors
const errors = await console_detect_errors({
sessionId: session.sessionId
});
2. Sessão de depuração interativa
// Start a Python debugging session
const session = await console_create_session({
command: "python",
args: ["-m", "pdb", "script.py"]
});
// Set a breakpoint
await console_send_input({
sessionId: session.sessionId,
input: "b main\n"
});
// Continue execution
await console_send_input({
sessionId: session.sessionId,
input: "c\n"
});
// Step through code
await console_send_key({
sessionId: session.sessionId,
key: "n"
});
3. Testes automatizados com detecção de erros
// Run tests
const result = await console_execute_command({
command: "pytest",
args: ["tests/"],
timeout: 30000
});
// Check for test failures
const errors = await console_detect_errors({
text: result.output
});
if (errors.hasErrors) {
console.log("Test failures detected:", errors);
}
4. Automação de ferramentas CLI interativas
// Start an interactive CLI tool
const session = await console_create_session({
command: "mysql",
args: ["-u", "root", "-p"]
});
// Enter password
await console_wait_for_output({
sessionId: session.sessionId,
pattern: "Enter password:"
});
await console_send_input({
sessionId: session.sessionId,
input: "mypassword\n"
});
// Run SQL commands
await console_send_input({
sessionId: session.sessionId,
input: "SHOW DATABASES;\n"
});
Padrões de Detecção de Erros
O servidor inclui padrões integrados para detectar tipos comuns de erros:
- Erros genéricos (error:, ERROR:, Error:)
- Exceções (Exception:, exception)
- Avisos (Warning:, WARNING:)
- Erros fatais
- Operações com falha
- Permissão/acesso negado
- Timeouts
- Stack traces (Python, Java, Node.js)
- Erros de compilação
- Erros de sintaxe
- Erros de memória
- Erros de conexão
Desenvolvimento
Compilando a partir do código-fonte
npm install
npm run build
Executando em modo de desenvolvimento
npm run dev
Executando testes
npm test
Verificação de tipos
npm run typecheck
Linting
npm run lint
Arquitetura
O servidor é construído com:
- Processos filhos do Node e ssh2: Para execução local de comandos e sessões SSH
- @modelcontextprotocol/sdk: Implementação do protocolo MCP
- TypeScript: Para segurança de tipos e melhor experiência do desenvolvedor
- Winston: Para registro estruturado de logs
Componentes Principais
- ConsoleManager: Gerencia sessões de terminal, entrada/saída e ciclo de vida
- ErrorDetector: Analisa a saída em busca de erros e exceções
- Servidor MCP: Expõe funcionalidades do console por meio de ferramentas MCP
- Gerenciamento de Sessão: Lida com múltiplas sessões de console simultâneas
Requisitos
- Node.js >= 18.0.0
- Sistema operacional Windows, macOS ou Linux
- Integrações opcionais de porta serial podem exigir ferramentas de compilação da plataforma.
Testes
Execute validação estática, o build, testes de fumaça MCP e a suíte de testes:
npm run lint
npm run typecheck
npm run build
npm run test:mcp
npm run test:logger
npm run test:installer
npm run test:package
npm test
Solução de Problemas
Problemas Comuns
- Erros de permissão negada: Garanta que o servidor tenha permissão para iniciar processos
- Erros opcionais de dependências nativas: Instale ferramentas de compilação da plataforma somente ao habilitar integrações de porta serial
- Sessão sem resposta: Verifique se o comando requer interação com TTY
- Saída não capturada: Alguns aplicativos podem gravar diretamente no terminal, ignorando o stdout
Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
- Faça um fork do repositório
- Crie sua branch de funcionalidade (
git checkout -b feature/AmazingFeature) - Faça commit das suas alterações (
git commit -m 'Add some AmazingFeature') - Envie para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes
Suporte
Para problemas, perguntas ou sugestões, abra uma issue no GitHub: https://github.com/ooples/mcp-console-automation/issues
Roadmap
- Adicionar suporte para gravação e reprodução de terminal
- Implementar persistência e recuperação de sessão
- Adicionar mais padrões de detecção de erros para linguagens específicas
- Suporte para multiplexação de terminal (integração com tmux/screen)
- Visualizador de terminal baseado na web
- Recursos de compartilhamento de sessão e colaboração
- Ferramentas de análise de desempenho
- Integração com sistemas populares de CI/CD