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.

Version License Node

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_LOG y MCP_LOG_DIR sin 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

Categorías de herramientas

🖥️ Gestión de sesiones (9 herramientas)

  • console_create_session - Cree sesiones de consola locales o SSH
  • console_send_input - Envíe entrada de texto a sesiones
  • console_send_key - Envíe teclas especiales (Enter, Ctrl+C, etc.)
  • console_get_output - Obtenga salida filtrada/paginada con búsqueda avanzada
  • console_get_stream - Transmita salida de procesos de larga duración
  • console_wait_for_output - Espere patrones específicos
  • console_stop_session - Detenga sesiones
  • console_list_sessions - Liste todas las sesiones activas
  • console_cleanup_sessions - Limpie sesiones inactivas

⚡ Ejecución de comandos (6 herramientas)

  • console_execute_command - Ejecute comandos con captura de salida
  • console_detect_errors - Analice la salida en busca de errores
  • console_get_resource_usage - Obtenga estadísticas de recursos del sistema
  • console_clear_output - Limpie los búferes de salida
  • console_get_session_state - Obtenga el estado de ejecución de la sesión
  • console_get_command_history - Vea el historial de comandos

📊 Monitoreo y alertas (6 herramientas)

  • console_get_system_metrics - Métricas integrales del sistema
  • console_get_session_metrics - Métricas específicas de sesión
  • console_get_alerts - Alertas de monitoreo activas
  • console_get_monitoring_dashboard - Datos de panel en tiempo real
  • console_start_monitoring - Inicie monitoreo personalizado
  • console_stop_monitoring - Detenga el monitoreo

📁 Gestión de perfiles (4 herramientas)

  • console_save_profile - Guarde perfiles de conexión SSH/aplicación
  • console_list_profiles - Liste perfiles guardados
  • console_remove_profile - Elimine perfiles
  • console_use_profile - Conexión rápida con perfiles guardados

🔄 Trabajos en segundo plano (9 herramientas)

  • console_execute_async - Ejecute comandos asincrónicamente
  • console_get_job_status - Verifique el estado del trabajo
  • console_get_job_output - Obtenga la salida del trabajo
  • console_cancel_job - Cancele trabajos en ejecución
  • console_list_jobs - Liste todos los trabajos en segundo plano
  • console_get_job_progress - Monitoree el progreso del trabajo
  • console_get_job_result - Obtenga resultados completos del trabajo
  • console_get_job_metrics - Estadísticas de ejecución de trabajos
  • console_cleanup_jobs - Limpie trabajos finalizados

✅ Automatización de pruebas (6 herramientas)

  • console_assert_output - Afirme que la salida coincide con criterios
  • console_assert_exit_code - Afirme códigos de salida
  • console_assert_no_errors - Verifique que no ocurrieron errores
  • console_save_snapshot - Guarde instantáneas de estado de sesión
  • console_compare_snapshots - Compare diferencias de estado
  • console_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

  1. ConsoleManager: Gestiona sesiones de terminal, entrada/salida y ciclo de vida
  2. ErrorDetector: Analiza la salida en busca de errores y excepciones
  3. Servidor MCP: Expone la funcionalidad de consola a través de herramientas MCP
  4. 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

  1. Errores de permiso denegado: Asegúrese de que el servidor tenga permiso para generar procesos
  2. Errores de dependencias nativas opcionales: Instale herramientas de compilación de plataforma solo al habilitar integraciones de puerto serial
  3. Sesión que no responde: Verifique si el comando requiere interacción TTY
  4. 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).

  1. Haga un fork del repositorio
  2. Cree su rama de características (git checkout -b feature/AmazingFeature)
  3. Confirme sus cambios (git commit -m 'Add some AmazingFeature')
  4. Envíe a la rama (git push origin feature/AmazingFeature)
  5. 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