MCP System Monitor Server

Un servidor multiplataforma para la monitorización en tiempo real de información de CPU, GPU, memoria, disco, red y procesos.

Documentación

MCP System Monitor Server

Un servidor MCP (Model Context Protocol) multiplataforma que proporciona capacidades integrales de monitoreo del sistema en tiempo real para LLMs. Construido con FastMCP para una fácil integración con Claude Desktop y otros clientes compatibles con MCP.

Características

Monitoreo del Sistema

Monitoreo Básico del Sistema:

  • Monitoreo de CPU: Uso en tiempo real, estadísticas por núcleo, frecuencia, temperatura, información detallada del procesador (modelo, fabricante, arquitectura, tamaños de caché)
  • Monitoreo de GPU: Soporte multi-fabricante de GPU (NVIDIA con métricas completas, Apple Silicon con soporte integral que incluye memoria unificada y número de núcleos, AMD/Intel con información básica)
  • Monitoreo de Memoria: Uso de RAM y swap, estadísticas de disponibilidad
  • Monitoreo de Disco: Uso de espacio, información del sistema de archivos para todas las unidades montadas
  • Estadísticas de Red: Tráfico a nivel de interfaz y contadores de errores
  • Monitoreo de Procesos: Procesos principales por uso de CPU/memoria
  • Información del Sistema: Detalles del SO, nombre de host, tiempo de actividad, arquitectura

Monitoreo de Rendimiento Fase 1:

  • Rendimiento de E/S: Métricas detalladas de E/S de disco, tasas de lectura/escritura, estadísticas por disco, análisis de tiempo de ocupación
  • Carga del Sistema: Promedios de carga (1m, 5m, 15m), cambios de contexto, interrupciones, procesos en ejecución/bloqueados
  • Memoria Mejorada: Estadísticas detalladas de memoria que incluyen buffers, caché, memoria activa/inactiva, fallos de página, actividad de swap
  • Red Mejorada: Métricas de rendimiento de red con tasas de transferencia, errores, descartes, velocidad de interfaz y MTU

Herramientas MCP Disponibles

Monitoreo Básico del Sistema (9 herramientas):

  • get_current_datetime: Obtener la fecha y hora local actual en formato ISO
  • get_cpu_info: Obtener el uso y las estadísticas actuales de CPU
  • get_gpu_info: Obtener información de GPU para todas las GPU detectadas
  • get_memory_info: Obtener el uso de RAM y swap
  • get_disk_info: Obtener el uso de disco para todas las unidades montadas
  • get_system_snapshot: Obtener el estado completo del sistema en una sola llamada
  • monitor_cpu_usage: Monitorear el uso de CPU durante una duración especificada
  • get_top_processes: Obtener los procesos principales por uso de CPU o memoria
  • get_network_stats: Obtener estadísticas de interfaz de red

Monitoreo de Rendimiento Fase 1 (6 herramientas):

  • get_io_performance: Obtener métricas y tasas detalladas de rendimiento de E/S
  • get_system_load: Obtener promedios de carga del sistema y estadísticas de procesos
  • get_enhanced_memory_info: Obtener estadísticas detalladas de memoria con cachés/buffers
  • get_enhanced_network_stats: Obtener métricas mejoradas de rendimiento de red
  • get_performance_snapshot: Obtener una instantánea completa de monitoreo de rendimiento
  • monitor_io_performance: Monitorear el rendimiento de E/S durante una duración especificada con análisis de tendencias

Recursos MCP

Recursos Básicos del Sistema (3 recursos):

  • system://live/cpu: Datos de uso de CPU en vivo
  • system://live/memory: Datos de uso de memoria en vivo
  • system://config: Configuración del sistema e información de hardware

Recursos de Rendimiento Fase 1 (3 recursos):

  • system://performance/io: Datos de rendimiento de E/S en vivo
  • system://performance/load: Datos de carga del sistema en vivo
  • system://performance/network: Datos de rendimiento de red en vivo

Detalles de Soporte de GPU

GPUs NVIDIA:

  • Métricas completas: porcentaje de uso, memoria (usada/total), temperatura, consumo de energía
  • Soporta múltiples GPUs NVIDIA
  • Requiere controladores NVIDIA y bibliotecas NVML

GPUs Apple Silicon:

  • Soporte integral para chips M1, M2 y M3
  • Detección del número de núcleos de GPU
  • Informe de memoria unificada (comparte la RAM del sistema)
  • Detección de soporte de la API Metal
  • Monitoreo de temperatura (cuando esté disponible)

GPUs AMD/Intel:

  • Detección e identificación básica
  • Métricas limitadas según la plataforma y los controladores

Requisitos

  • Python 3.10+
  • Windows, macOS o Linux
  • GPU (opcional): GPUs NVIDIA para métricas completas, GPUs Apple Silicon totalmente compatibles en macOS

Instalación

Desde GitHub

  1. Clonar el repositorio:

    git clone https://github.com/huhabla/mcp-system-monitor.git
    cd mcp-system-monitor
    
  2. Instalar las dependencias usando uv (recomendado):

    uv pip install -e .
    

    O usando pip:

    pip install -e .
    

Dependencias Opcionales

Para características específicas de Windows:

pip install mcp-system-monitor[win32]

Uso

Modo de Desarrollo

Probar el servidor con el MCP Inspector:

uv run mcp dev mcp_system_monitor_server.py

Integración con Claude Desktop

Instalar el servidor en Claude Desktop:

uv run mcp install mcp_system_monitor_server.py --name "System Monitor"

Ejecución Directa

Ejecutar el servidor directamente:

python mcp_system_monitor_server.py

Configuración JSON de Servidores MCP

Modifique la siguiente plantilla JSON para establecer la ruta al servidor MCP en su cliente MCP para Windows:

{
  "mcpServers": {
    "mpc-system-monitor": {
      "command": "cmd",
      "args": [
        "/c",
        "C:/Users/Sören Gebbert/Documents/GitHub/mcp-system-monitor/start_mpc_system_monitor.bat"
      ]
    }
  }
}

Modifique la siguiente plantilla JSON para establecer la ruta al servidor MCP en su cliente MCP para MacOS:

{
  "mcpServers": {
    "mpc-system-monitor": {
      "command": "/bin/zsh",
      "args": [
        "/Users/holistech/Documents/GitHub/mcp-system-monitor/start_mcp_system_monitor.sh"
      ]
    }
  }
}

Ejemplo de Uso de Herramientas

Una vez conectado a Claude Desktop u otro cliente MCP, puede usar lenguaje natural para interactuar con el monitor del sistema:

Monitoreo Básico del Sistema:

  • "Muéstrame el uso actual de CPU"
  • "¿Cuál es la temperatura de mi GPU?"
  • "¿Cuántos núcleos de GPU tiene mi Apple M1 Max?"
  • "Muéstrame el uso de memoria de la GPU y si es memoria unificada"
  • "¿Cuánto espacio de disco está disponible?"
  • "Monitorea el uso de CPU durante los próximos 10 segundos"
  • "Muéstrame los 5 procesos principales por uso de memoria"
  • "Obtén una instantánea completa del sistema"

Monitoreo de Rendimiento Fase 1:

  • "Muéstrame métricas detalladas de rendimiento de E/S"
  • "¿Cuál es el promedio de carga actual del sistema?"
  • "Monitorea el rendimiento de E/S durante los próximos 30 segundos"
  • "Muéstrame estadísticas de memoria mejoradas con información de caché"
  • "Obtén métricas detalladas de rendimiento de red"
  • "Dame una instantánea completa del rendimiento"

Arquitectura

El servidor utiliza una arquitectura modular basada en coleccionistas:

  • BaseCollector: Clase base abstracta que proporciona almacenamiento en caché y recopilación de datos asíncrona
  • Coleccionistas Especializados: Coleccionistas de CPU, GPU, Memoria, Disco, Red, Procesos y Sistema
  • Coleccionistas de Rendimiento Fase 1: Coleccionistas IOPerformance, SystemLoad, EnhancedMemory y EnhancedNetwork
  • Modelos Pydantic: Modelos de datos con seguridad de tipos para toda la información del sistema
  • Integración FastMCP: Decoradores simples para exponer herramientas y recursos

Estrategia de Caché

Todos los coleccionistas implementan caché inteligente para:

  • Reducir la sobrecarga del sistema por sondeos frecuentes
  • Proporcionar datos consistentes dentro de ventanas de tiempo
  • Permitir una expiración de caché configurable

Pruebas

Suite de Pruebas Integral

El proyecto incluye una suite de pruebas integral con 100% de cobertura de todas las herramientas MCP, recursos y coleccionistas:

Organización de Pruebas:

  • test_mcp_system_monitor_server.py - Pruebas originales de coleccionistas básicos
  • test_mcp_system_monitor_server_comprehensive.py - Pruebas integrales de herramientas/recursos MCP
  • test_mcp_server_integration.py - Pruebas de integración para el cumplimiento del protocolo del servidor MCP
  • test_architecture_agnostic.py - Pruebas multiplataforma centradas en contratos de datos
  • conftest.py - Configuración de pruebas, fixtures y utilidades de simulación

Ejecución de Pruebas

Ejecutar todas las pruebas:

pytest

Ejecutar pruebas por categoría:

pytest -m unit              # Fast unit tests only
pytest -m integration       # Integration tests only
pytest -m agnostic          # Architecture/OS agnostic tests
pytest -m "not slow"        # Exclude slow tests
pytest -m "unit and not slow"  # Fast unit tests for CI

Ejecutar suites de pruebas específicas:

pytest tests/test_mcp_system_monitor_server_comprehensive.py  # All MCP endpoints
pytest tests/test_mcp_server_integration.py                  # Integration tests
pytest tests/test_architecture_agnostic.py                   # Cross-platform tests

Ejecutar con cobertura:

pytest --cov=mcp_system_monitor_server --cov-report=html

Cobertura de Pruebas

Cobertura Completa:

  • 15 Herramientas MCP (9 básicas + 6 de rendimiento Fase 1)
  • 6 Recursos MCP (3 básicos + 3 de rendimiento Fase 1)
  • 11 Coleccionistas (7 básicos + 4 de rendimiento Fase 1)
  • Pruebas de compatibilidad multiplataforma
  • Evaluación comparativa de rendimiento y pruebas de estrés
  • Manejo de errores y validación de casos límite

Evaluaciones Comparativas de Rendimiento:

  • Recopilación de instantánea del sistema: < 5 segundos
  • Llamadas de herramientas individuales: < 1 segundo cada una
  • Operaciones concurrentes: 20 llamadas paralelas < 10 segundos

Soporte de Plataformas

CaracterísticaWindowsmacOSLinux
Monitoreo de CPU
Monitoreo de GPU (NVIDIA)
Monitoreo de GPU (AMD)⚠️⚠️
Monitoreo de GPU (Intel)⚠️⚠️
Monitoreo de GPU (Apple)
Monitoreo de Memoria
Monitoreo de Disco
Estadísticas de Red
Monitoreo de Procesos
Temperatura de CPU⚠️⚠️

⚠️ = Soporte limitado, depende del hardware/controladores

Solución de Problemas

El Monitoreo de GPU No Funciona

GPUs NVIDIA:

  • Asegúrese de que los controladores NVIDIA estén instalados
  • Verifique si el comando nvidia-smi funciona
  • El servidor manejará correctamente la ausencia de bibliotecas de GPU

GPUs Apple Silicon:

  • Compatible con macOS con chips M1, M2 y M3
  • Proporciona información integral que incluye memoria unificada y número de núcleos de GPU
  • Utiliza el comando system_profiler (disponible por defecto en macOS)

Errores de Permisos

  • Alguna información del sistema puede requerir privilegios elevados
  • El servidor maneja los errores de permisos correctamente y omite los recursos inaccesibles

Alto Uso de CPU

  • Ajuste la frecuencia de monitoreo modificando los intervalos de actualización del coleccionista
  • Use métodos de datos en caché para reducir las llamadas al sistema
  • La expiración de caché predeterminada es de 2 segundos para la mayoría de los coleccionistas
  • Considere aumentar el parámetro max_age en las llamadas a get_cached_data() para actualizaciones menos frecuentes

Consideraciones de Rendimiento

  • El servidor utiliza caché inteligente para minimizar las llamadas al sistema
  • Cada coleccionista mantiene su propia caché con expiración configurable
  • Las herramientas de monitoreo continuo (como monitor_cpu_usage) omiten la caché para datos en tiempo real
  • Para sondeos de alta frecuencia, considere usar los endpoints de recursos que aprovechan la caché

Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar un Pull Request.

Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENSE para más detalles.

Agradecimientos