Console Automation
Servidor MCP listo para producción para automatización y monitoreo de consola impulsado por IA. Más de 40 herramientas para gestión de sesiones, SSH, pruebas y trabajos en segundo plano.
Documentación
Servidor MCP de Automatización de Consola
Servidor de Protocolo de Contexto de Modelo (MCP) para interacción controlada con aplicaciones de consola locales y sesiones SSH remotas, incluyendo monitoreo de salida, detección de errores y flujos de trabajo de larga duración.
Estado de seguridad
Este servidor puede ejecutar comandos arbitrarios y abrir sesiones SSH remotas. Trátelo como una terminal privilegiada, no como un conector de documentación de bajo riesgo:
- mantenga habilitadas las aprobaciones de herramientas MCP para mutaciones de comandos/sesiones;
- prefiera claves SSH o referencias de credenciales mediante variables de entorno en lugar de secretos en línea;
- use una cuenta de despliegue restringida y un paso de aprobación de producción separado;
- deje
MCP_DEBUG_LOGyMCP_LOG_DIRsin establecer a menos que los diagnósticos sean explícitamente requeridos; - deje la persistencia de sesiones deshabilitada a menos que los metadatos de recuperación sean explícitamente requeridos;
- instale integraciones de nube, contenedores y seriales solo cuando sea necesario.
Características
🚀 Capacidades principales
- Control total de terminal: Cree y gestione hasta 50 sesiones de consola concurrentes
- Soporte multiprotocolo: Shells locales (cmd, PowerShell, pwsh, bash, zsh, sh) y conexiones SSH remotas
- Entrada interactiva: Envíe texto y secuencias de teclas especiales (Enter, Tab, Ctrl+C, etc.)
- Monitoreo de salida en tiempo real: Capture, filtre y analice la salida de consola con búsqueda avanzada
- Soporte de transmisión: Transmisión eficiente para procesos de larga duración con coincidencia de patrones
- Detección automática de errores: Patrones integrados para detectar errores, excepciones y trazas de pila en varios lenguajes
- Multiplataforma: Funciona en Windows, macOS y Linux sin dependencias nativas
🔐 Conexiones SSH y remotas
- Soporte SSH completo: Autenticación por contraseña y clave con soporte de frase de contraseña
- Opciones SSH: Puertos personalizados, tiempos de espera de conexión, configuraciones de keep-alive
- Perfiles de conexión: Guarde metadatos SSH reutilizables y referencias de credenciales mediante variables de entorno
- Soporte de plataformas en la nube: Conexiones Azure, AWS, GCP y Kubernetes mediante perfiles guardados
- Soporte de contenedores: Integración Docker y WSL para flujos de trabajo contenerizados
✅ Marco de automatización de pruebas
- Casos de prueba automatizados: Herramientas de aserción integradas para validación de salida de consola
- Aserciones de salida: Verifique que la salida contenga, coincida con expresiones regulares o sea igual a los valores esperados
- Validación de código de salida: Afirme los códigos de salida de comandos para detección de éxito/fallo
- Validación sin errores: Verifique automáticamente si hay errores en la salida de comandos
- Instantáneas de estado: Guarde y compare estados de sesión antes/después de operaciones
- Flujos de trabajo de prueba: Encadene aserciones para escenarios de prueba integrales
🔄 Ejecución de trabajos en segundo plano
- Ejecución asíncrona de comandos: Ejecute comandos de larga duración en segundo plano con captura completa de salida
- Sistema de cola de prioridad: Priorice trabajos (escala 1-10) para una utilización óptima de recursos
- Monitoreo de trabajos: Rastree estado, progreso y finalización de trabajos en segundo plano
- Control de trabajos: Cancele, pause o reanude operaciones en segundo plano
- Recuperación de resultados: Obtenga salida completa y códigos de salida de trabajos finalizados
- Gestión de recursos: Limpieza automática de trabajos finalizados con retención configurable
📊 Monitoreo empresarial y alertas
- Métricas de todo el sistema: Seguimiento de uso de CPU, memoria, disco y red
- Métricas de sesión: Monitoreo de rendimiento y consumo de recursos por sesión
- Paneles en tiempo real: Datos de monitoreo en vivo con vistas personalizables
- Sistema de alertas: Alertas de rendimiento, errores, seguridad y anomalías con niveles de severidad
- Monitoreo personalizado: Configure intervalos de monitoreo, métricas y umbrales por sesión
- Diagnósticos: Análisis de errores integrado y validación de salud de sesión
📁 Gestión de perfiles
- Perfiles de conexión: Guarde conexiones SSH, Docker, WSL y plataformas en la nube
- Perfiles de aplicación: Almacene configuraciones comunes de comandos (Node.js, Python, .NET, Java, Go, Rust)
- Conexión rápida: Conéctese instantáneamente usando perfiles guardados con soporte de anulación
- Variables de entorno: Almacene configuraciones de entorno por perfil
- Gestión de directorio de trabajo: Establezca directorios predeterminados para cada perfil
🔍 Procesamiento avanzado de salida
- Filtrado por expresiones regulares: Busque en la salida con expresiones regulares (sensible/insensible a mayúsculas)
- Búsqueda multipatrón: Combine múltiples patrones con lógica AND/OR
- Paginación: Obtenga rangos de líneas específicos, inicio o final de la salida
- Filtrado basado en tiempo: Filtre la salida por marca de tiempo (absoluta o relativa: '5m', '1h', '2d')
- Transmisión de salida: Captura de salida en tiempo real para procesos de larga duración
- Gestión de búfer: Limpie los búferes de salida para reducir el uso de memoria
Instalación 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
Instalación 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"
Configuración
Codex almacena la configuración MCP en ~/.codex/config.toml. Los instaladores usan codex mcp add y reemplazan de forma segura un registro existente de console-automation. Reinicie Codex después de la instalación y use /mcp para verificar la conexión.
Para otro cliente MCP, genere una nueva configuración JSON sin sobrescribir un archivo existente:
.\install.ps1 -Target custom -CustomPath C:\path\to\new-mcp-config.json
El paquete npm no se ha publicado, por lo que npx console-automation-mcp y @mcp/console-automation no son rutas de instalación válidas.
Credenciales SSH guardadas
console_save_profile rechaza contraseñas en línea, material de claves privadas y frases de contraseña. Use passwordEnvVar, privateKeyEnvVar o privateKeyPath, y passphraseEnvVar. Las respuestas de listado de perfiles nunca devuelven valores de credenciales, y los archivos de configuración se crean con permisos solo para el propietario donde el sistema operativo soporta modos POSIX.
Persistencia de sesiones
La persistencia de sesiones está deshabilitada por defecto porque los datos de recuperación de sesiones pueden incluir comandos, rutas y valores de entorno. Para optar por ella, establezca MCP_SESSION_PERSISTENCE=true. El archivo predeterminado es ~/.console-automation-mcp/sessions.json; anúlelo con MCP_SESSION_PERSISTENCE_PATH. Los datos de recuperación de comandos/entorno persistidos permanecen deshabilitados a menos que se habiliten mediante la configuración programática SessionManager.
Los instaladores de producción eliminan paquetes de desarrollo y protocolos opcionales. Las consolas locales y SSH permanecen disponibles. Instale solo los paquetes pares requeridos para Docker, nube, Kubernetes, serial u otros adaptadores opcionales.
Herramientas disponibles (40 en total)
Este servidor MCP proporciona 40 herramientas integrales organizadas en 6 categorías:
📚 Documentación completa
- Referencia completa de herramientas - Documentación detallada de las 40 herramientas
- Ejemplos prácticos - Ejemplos y patrones de uso en el mundo real
- Guía de publicación - Cómo listar este servidor en registros
Categorías de herramientas
🖥️ Gestión de sesiones (9 herramientas)
console_create_session- Cree sesiones de consola locales o SSHconsole_send_input- Envíe entrada de texto a sesionesconsole_send_key- Envíe teclas especiales (Enter, Ctrl+C, etc.)console_get_output- Obtenga salida filtrada/paginada con búsqueda avanzadaconsole_get_stream- Transmita salida de procesos de larga duraciónconsole_wait_for_output- Espere patrones específicosconsole_stop_session- Detenga sesionesconsole_list_sessions- Liste todas las sesiones activasconsole_cleanup_sessions- Limpie sesiones inactivas
⚡ Ejecución de comandos (6 herramientas)
console_execute_command- Ejecute comandos con captura de salidaconsole_detect_errors- Analice la salida en busca de erroresconsole_get_resource_usage- Obtenga estadísticas de recursos del sistemaconsole_clear_output- Limpie los búferes de salidaconsole_get_session_state- Obtenga el estado de ejecución de la sesiónconsole_get_command_history- Vea el historial de comandos
📊 Monitoreo y alertas (6 herramientas)
console_get_system_metrics- Métricas integrales del sistemaconsole_get_session_metrics- Métricas específicas de sesiónconsole_get_alerts- Alertas de monitoreo activasconsole_get_monitoring_dashboard- Datos de panel en tiempo realconsole_start_monitoring- Inicie monitoreo personalizadoconsole_stop_monitoring- Detenga el monitoreo
📁 Gestión de perfiles (4 herramientas)
console_save_profile- Guarde perfiles de conexión SSH/aplicaciónconsole_list_profiles- Liste perfiles guardadosconsole_remove_profile- Elimine perfilesconsole_use_profile- Conexión rápida con perfiles guardados
🔄 Trabajos en segundo plano (9 herramientas)
console_execute_async- Ejecute comandos asincrónicamenteconsole_get_job_status- Verifique el estado del trabajoconsole_get_job_output- Obtenga la salida del trabajoconsole_cancel_job- Cancele trabajos en ejecuciónconsole_list_jobs- Liste todos los trabajos en segundo planoconsole_get_job_progress- Monitoree el progreso del trabajoconsole_get_job_result- Obtenga resultados completos del trabajoconsole_get_job_metrics- Estadísticas de ejecución de trabajosconsole_cleanup_jobs- Limpie trabajos finalizados
✅ Automatización de pruebas (6 herramientas)
console_assert_output- Afirme que la salida coincide con criteriosconsole_assert_exit_code- Afirme códigos de salidaconsole_assert_no_errors- Verifique que no ocurrieron erroresconsole_save_snapshot- Guarde instantáneas de estado de sesiónconsole_compare_snapshots- Compare diferencias de estadoconsole_assert_state- Afirme el estado de la sesión
Ejemplos de inicio rápido
Cree una sesión local
const session = await console_create_session({
command: "npm",
args: ["run", "dev"],
detectErrors: true
});
Conéctese vía SSH
const session = await console_create_session({
command: "bash",
consoleType: "ssh",
sshOptions: {
host: "example.com",
username: "user",
privateKeyPath: "~/.ssh/id_rsa"
}
});
Ejecute pruebas con aserciones
const session = await console_create_session({
command: "npm",
args: ["test"]
});
await console_assert_output({
sessionId: session.sessionId,
assertionType: "contains",
expected: "All tests passed"
});
Ejecución de trabajos en 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 más ejemplos, consulte docs/EXAMPLES.md
Casos de uso
1. Ejecutar y monitorear un servidor de desarrollo
// 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. Sesión de depuración interactiva
// 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. Pruebas automatizadas con detección de errores
// 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. Automatización de herramientas CLI interactivas
// 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"
});
Patrones de detección de errores
El servidor incluye patrones integrados para detectar tipos comunes de errores:
- Errores genéricos (error:, ERROR:, Error:)
- Excepciones (Exception:, exception)
- Advertencias (Warning:, WARNING:)
- Errores fatales
- Operaciones fallidas
- Permiso/acceso denegado
- Tiempos de espera
- Trazas de pila (Python, Java, Node.js)
- Errores de compilación
- Errores de sintaxis
- Errores de memoria
- Errores de conexión
Desarrollo
Compilación desde el código fuente
npm install
npm run build
Ejecución en modo de desarrollo
npm run dev
Ejecución de pruebas
npm test
Verificación de tipos
npm run typecheck
Linting
npm run lint
Arquitectura
El servidor está construido con:
- Procesos secundarios de Node y ssh2: Para ejecución de comandos locales y sesiones SSH
- @modelcontextprotocol/sdk: Implementación del protocolo MCP
- TypeScript: Para seguridad de tipos y mejor experiencia de desarrollo
- Winston: Para registro estructurado
Componentes principales
- ConsoleManager: Gestiona sesiones de terminal, entrada/salida y ciclo de vida
- ErrorDetector: Analiza la salida en busca de errores y excepciones
- Servidor MCP: Expone la funcionalidad de consola a través de herramientas MCP
- Gestión de sesiones: Maneja múltiples sesiones de consola concurrentes
Requisitos
- Node.js >= 18.0.0
- Sistema operativo Windows, macOS o Linux
- Las integraciones opcionales de puerto serial pueden requerir herramientas de compilación de plataforma.
Pruebas
Ejecute validación estática, la compilación, pruebas de humo MCP y el conjunto de pruebas:
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
Solución de problemas
Problemas comunes
- Errores de permiso denegado: Asegúrese de que el servidor tenga permiso para generar procesos
- Errores de dependencias nativas opcionales: Instale herramientas de compilación de plataforma solo al habilitar integraciones de puerto serial
- Sesión que no responde: Verifique si el comando requiere interacción TTY
- Salida no capturada: Algunas aplicaciones pueden escribir directamente en la terminal, omitiendo stdout
Contribuciones
¡Las contribuciones son bienvenidas! No dude en enviar una Solicitud de Extracción (Pull Request).
- Haga un fork del repositorio
- Cree su rama de características (
git checkout -b feature/AmazingFeature) - Confirme sus cambios (
git commit -m 'Add some AmazingFeature') - Envíe a la rama (
git push origin feature/AmazingFeature) - Abra una Solicitud de Extracción
Licencia
Licencia MIT - consulte el archivo LICENSE para más detalles
Soporte
Para problemas, preguntas o sugerencias, abra un problema en GitHub: https://github.com/ooples/mcp-console-automation/issues
Hoja de ruta
- Añadir soporte para grabación y reproducción de terminal
- Implementar persistencia y recuperación de sesiones
- Añadir más patrones de detección de errores para lenguajes específicos
- Soporte para multiplexación de terminal (integración con tmux/screen)
- Visor de terminal basado en web
- Funciones de intercambio de sesiones y colaboración
- Herramientas de perfilado de rendimiento
- Integración con sistemas populares de CI/CD