Integrations
Provides a lightweight server implementation that exposes an endpoint to execute shell commands and stream their output in real-time.
Leverages Python 3.7+ to provide a Windows service that can execute commands with robust error handling, logging, and automatic process restart capabilities.
Enables remote execution of shell commands with streaming output, allowing for running and monitoring command-line operations through an authenticated API.
Servidor de terminales MCP
Un servidor FastAPI liviano que puede ejecutarse como un servicio de Windows y expone un punto final para ejecutar comandos de shell y transmitir su salida.
Características
- Ejecutar como un servicio de Windows o en modo de depuración
- Ejecutar comandos de shell y transmitir su salida en tiempo real
- Autenticación de clave API
- Limitación de velocidad
- Configurable mediante variables de entorno o archivo de configuración
- Manejo y registro de errores robustos
- Reinicio automático del proceso en caso de fallo
Instalación
Prerrequisitos
- Sistema operativo Windows
- Python 3.7 o superior
- Privilegios de administrador (para la instalación del servicio)
Pasos de instalación
- Clona este repositorio o descarga el código fuente
- Abra PowerShell como administrador
- Navegar al directorio del proyecto
- Ejecute el script de instalación:
Esto hará lo siguiente:
- Instalar las dependencias de Python necesarias
- Generar una clave API aleatoria (o utilizar la que proporciones)
- Crear un archivo de configuración
- Instalar e iniciar el servicio de Windows
Opciones de instalación
Puede personalizar la instalación con los siguientes parámetros:
Parámetros disponibles:
-ApiKey
: Clave API personalizada para autenticación-Port
: Número de puerto para el servidor (predeterminado: 8000)-Host
: Dirección de host a la que vincularse (predeterminado: 0.0.0.0)-LogLevel
: Nivel de registro (depuración, información, advertencia, error, crítico)-ConfigFile
: Ruta a un archivo de configuración personalizado
Configuración
El servidor se puede configurar a través de:
- Variables de entorno
- Archivo de configuración (config.json)
- Argumentos de la línea de comandos durante la instalación
Archivo de configuración
Se proporciona un archivo de configuración de ejemplo ( config.json.sample
). Puede copiarlo a config.json
y modificarlo:
Variables de entorno
También puedes configurar el servidor utilizando variables de entorno:
MCP_TERMINAL_API_KEY
: Clave API para autenticaciónMCP_HOST
: Dirección de host a la que vincularseMCP_PORT
: Número de puerto del servidorMCP_LOG_LEVEL
: Nivel de registroMCP_LOG_FILE
: Ruta al archivo de registroMCP_MAX_LOG_SIZE_MB
: Tamaño máximo del archivo de registro en MBMCP_LOG_BACKUP_COUNT
: Número de archivos de respaldo de registro a conservarMCP_RESTART_ON_FAILURE
: Si se debe reiniciar el servidor en caso de fallaMCP_MAX_RESTART_ATTEMPTS
: Número máximo de intentos de reinicioMCP_RESTART_DELAY_SECONDS
: Retraso entre intentos de reinicioMCP_SHUTDOWN_TIMEOUT_SECONDS
: Tiempo de espera para un apagado ordenadoMCP_WORKING_DIRECTORY
: Directorio de trabajo del servidor
Gestión de servicios
Comandos de servicio
El servicio se puede gestionar mediante los siguientes comandos:
Registros
Los registros se almacenan en el archivo de registro configurado (predeterminado: mcp_terminal_server.log
). Los registros incluyen:
- Eventos de inicio/parada de servicio
- Ejecución de comandos
- Errores y advertencias
- Resultados del control de salud
Uso de la API
Cliente de prueba
Se proporciona un cliente de prueba robusto para interactuar con el servidor con las siguientes características:
- Argumentos de línea de comandos para una mejor usabilidad
- Compatibilidad con autenticación de clave API
- Salida en color para una mejor legibilidad.
- Soporte para guardar la salida en un archivo
- Manejo y registro de errores robustos
- Modo interactivo con historial de comandos
- Funcionalidad de comprobación del estado del servidor
Uso básico
Archivo de configuración
El cliente de prueba se puede configurar mediante un archivo de configuración JSON. Cree un archivo client_config.json
basado en el ejemplo proporcionado:
Luego úsalo con:
Variables de entorno
El cliente de prueba también admite la configuración a través de variables de entorno:
MCP_TERMINAL_API_KEY
: Clave API para autenticaciónMCP_TERMINAL_SERVER_URL
: URL del servidor
Puntos finales de API
POST /run
: Ejecutar un comando- Requiere clave API en el encabezado
X-API-Key
- Cuerpo de la solicitud:
{"command": "your command"}
- Devuelve una respuesta de transmisión con salida de comando
- Requiere clave API en el encabezado
GET /health
: Verificar el estado del servidor- Devuelve
{"status": "healthy", "active_sessions": 0}
- Devuelve
Consideraciones de seguridad
- Cambie siempre la clave API predeterminada en producción
- Restrinja el host a
127.0.0.1
si el servidor solo debe ser accesible localmente - Considere usar HTTPS en producción
- El servidor bloquea comandos potencialmente peligrosos, pero pueden ser necesarias medidas de seguridad adicionales
Solución de problemas
- Compruebe el archivo de registro para ver si hay errores
- Ejecute en modo de depuración para ver la salida de la consola:
python service.py debug
- Verifique que el servicio se esté ejecutando:
Get-Service -Name "MCP_Terminal_Server"
- Compruebe el Visor de eventos de Windows para detectar errores relacionados con el servicio
Licencia
Instituto Tecnológico de Massachusetts (MIT)
This server cannot be installed
Un servidor FastAPI liviano que permite la ejecución remota de comandos de shell en Windows, con transmisión de salida en tiempo real y funciones de seguridad como autenticación de clave API y limitación de velocidad.
Related MCP Servers
- AsecurityAlicenseAqualityA secure shell command execution server implementing the Model Context Protocol (MCP). This server allows remote execution of whitelisted shell commands with support for stdin input.Last updated -168PythonMIT License
- AsecurityFlicenseAqualityA CLI command execution server that enables running shell commands with structured output, providing detailed execution results including stdout, stderr, exit code, and execution duration.Last updated -216TypeScript
- -securityAlicense-qualityA Model Context Protocol server that enables remote execution of shell commands across different operating systems, automatically handling platform-specific differences between Windows and Unix-like systems.Last updated -JavaScriptMIT License
- -securityAlicense-qualityAn MCP server that enables secure execution of shell commands across Windows, macOS, and Linux with built-in whitelisting and approval mechanisms for enhanced security.Last updated -13JavaScriptMIT License