Prometheus

Interactúa con tu infraestructura de monitoreo Prometheus usando lenguaje natural.

Documentación

Prometheus MCP Logo
Servidor MCP de Prometheus

npm Docker codecov Node.js Version License: MIT

Un servidor de Model Context Protocol (MCP) que proporciona una integración perfecta entre asistentes de IA y Prometheus, permitiendo interacciones en lenguaje natural con tu infraestructura de monitoreo. Este servidor permite consultar, descubrir y analizar métricas sin esfuerzo a través de Visual Studio Code, Cursor, Windsurf, Claude Desktop y otros clientes MCP.

Características principales

  • Rápido y ligero. Integración directa con la API de Prometheus, sin necesidad de análisis complejos.
  • Amigable con LLM. Respuestas JSON estructuradas optimizadas para el consumo de asistentes de IA.
  • Capacidades configurables. Habilita/deshabilita categorías de herramientas según tus requisitos de seguridad y operativos.
  • Soporte de transporte dual. Funciona con transportes stdio y HTTP para máxima compatibilidad.

Requisitos

  • Node.js 20.19.0 o superior
  • Acceso a un servidor de Prometheus
  • VS Code, Cursor, Windsurf, Claude Desktop o cualquier otro cliente MCP

Primeros pasos

Primero, instala el servidor MCP de Prometheus con tu cliente. Una configuración típica se ve así:

{
  "mcpServers": {
    "prometheus": {
      "command": "npx",
      "args": ["prometheus-mcp@latest", "stdio"],
      "env": {
        "PROMETHEUS_URL": "http://localhost:9090"
      }
    }
  }
}
Instalar en VS Code
# For VS Code
code --add-mcp '{"name":"prometheus","command":"npx","args":["prometheus-mcp@latest","stdio"],"env":{"PROMETHEUS_URL":"http://localhost:9090"}}'

# For VS Code Insiders
code-insiders --add-mcp '{"name":"prometheus","command":"npx","args":["prometheus-mcp@latest","stdio"],"env":{"PROMETHEUS_URL":"http://localhost:9090"}}'

Después de la instalación, el servidor MCP de Prometheus estará disponible para usarse con tu agente de GitHub Copilot en VS Code.

Instalar en Cursor

Ve a Cursor Settings → MCP → Add new MCP Server. Ponle el nombre que prefieras, usa el tipo command con el comando npx prometheus-mcp. También puedes verificar la configuración o agregar argumentos de comando haciendo clic en Edit.

{
  "mcpServers": {
    "prometheus": {
      "command": "npx",
      "args": ["prometheus-mcp@latest", "stdio"],
      "env": {
        "PROMETHEUS_URL": "http://localhost:9090"
      }
    }
  }
}
Instalar en Windsurf

Sigue la documentación de MCP de Windsurf. Usa la siguiente configuración:

{
  "mcpServers": {
    "prometheus": {
      "command": "npx",
      "args": ["prometheus-mcp@latest", "stdio"],
      "env": {
        "PROMETHEUS_URL": "http://localhost:9090"
      }
    }
  }
}
Instalar en Claude Desktop

Claude Desktop admite dos métodos de instalación:

Opción 1: Extensión DXT

La forma más fácil de instalar es usando la extensión DXT precompilada:

  1. Descarga el archivo .dxt más reciente desde la página de versiones
  2. Haz doble clic en el archivo descargado para instalarlo automáticamente
  3. Configura tu URL de Prometheus en la configuración de la extensión

Opción 2: Configuración de desarrollador

Para usuarios avanzados o configuraciones personalizadas, configura manualmente el servidor MCP:

  1. Abre la configuración de Claude Desktop
  2. Navega a la sección Developer
  3. Agrega la siguiente configuración del servidor MCP:
{
  "mcpServers": {
    "prometheus": {
      "command": "npx",
      "args": ["prometheus-mcp@latest", "stdio"],
      "env": {
        "PROMETHEUS_URL": "http://localhost:9090"
      }
    }
  }
}

Configuración

El servidor MCP de Prometheus admite los siguientes argumentos. Se pueden proporcionar en la configuración JSON anterior, como parte de la lista "args":

> npx prometheus-mcp@latest --help

Commands:
  stdio  Start Prometheus MCP server using stdio transport
  http   Start Prometheus MCP server using HTTP transport

Options:
  --help     Show help                          [boolean]
  --version  Show version number                [boolean]

Variables de entorno

También puedes configurar el servidor usando variables de entorno:

  • PROMETHEUS_URL - URL del servidor de Prometheus
  • ENABLE_DISCOVERY_TOOLS - Establecer en "false" para deshabilitar las herramientas de descubrimiento (predeterminado: true)
  • ENABLE_INFO_TOOLS - Establecer en "false" para deshabilitar las herramientas de información (predeterminado: true)
  • ENABLE_QUERY_TOOLS - Establecer en "false" para deshabilitar las herramientas de consulta (predeterminado: true)

Servidor MCP independiente

Cuando se ejecuta en entornos de servidor o cuando necesitas transporte HTTP, ejecuta el servidor MCP con el comando http:

npx prometheus-mcp@latest http --port 3000

Y luego en la configuración de tu cliente MCP, establece el url al endpoint HTTP:

{
  "mcpServers": {
    "prometheus": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:3000/mcp"]
    }
  }
}

Docker

Ejecuta el servidor MCP de Prometheus usando Docker:

{
  "mcpServers": {
    "prometheus": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--init",
        "--pull=always",
        "-e",
        "PROMETHEUS_URL=http://host.docker.internal:9090",
        "ghcr.io/idanfishman/prometheus-mcp",
        "stdio"
      ]
    }
  }
}

Herramientas

El servidor MCP de Prometheus proporciona 10 herramientas organizadas en tres categorías configurables:

Descubrimiento

Herramientas para explorar tu infraestructura de Prometheus:

  • prometheus_list_metrics

    • Descripción: Lista todas las métricas de Prometheus disponibles
    • Parámetros: Ninguno
    • Solo lectura: true
  • prometheus_metric_metadata

    • Descripción: Obtiene metadatos para una métrica específica de Prometheus
    • Parámetros:
      • metric (string): Nombre de la métrica para obtener metadatos
    • Solo lectura: true
  • prometheus_list_labels

    • Descripción: Lista todas las etiquetas de Prometheus disponibles
    • Parámetros: Ninguno
    • Solo lectura: true
  • prometheus_label_values

    • Descripción: Obtiene todos los valores para una etiqueta específica de Prometheus
    • Parámetros:
      • label (string): Nombre de la etiqueta para obtener valores
    • Solo lectura: true
  • prometheus_list_targets

    • Descripción: Lista todos los objetivos de scrape de Prometheus
    • Parámetros: Ninguno
    • Solo lectura: true
  • prometheus_scrape_pool_targets

    • Descripción: Obtiene objetivos para un pool de scrape específico
    • Parámetros:
      • scrapePool (string): Nombre del pool de scrape
    • Solo lectura: true
Información

Herramientas para acceder a la información del servidor de Prometheus:

  • prometheus_runtime_info

    • Descripción: Obtiene información de tiempo de ejecución de Prometheus
    • Parámetros: Ninguno
    • Solo lectura: true
  • prometheus_build_info

    • Descripción: Obtiene información de compilación de Prometheus
    • Parámetros: Ninguno
    • Solo lectura: true
Consulta

Herramientas para ejecutar consultas de Prometheus:

  • prometheus_query

    • Descripción: Ejecuta una consulta instantánea de Prometheus
    • Parámetros:
      • query (string): Expresión de consulta de Prometheus
      • time (string, opcional): Parámetro de tiempo para la consulta (formato RFC3339)
    • Solo lectura: true
  • prometheus_query_range

    • Descripción: Ejecuta una consulta de rango de Prometheus
    • Parámetros:
      • query (string): Expresión de consulta de Prometheus
      • start (string): Marca de tiempo de inicio (RFC3339 o timestamp unix)
      • end (string): Marca de tiempo de fin (RFC3339 o timestamp unix)
      • step (string): Ancho del paso de resolución de la consulta
    • Solo lectura: true

Ejemplo de uso

Aquí hay algunos ejemplos de interacciones que puedes tener con tu asistente de IA:

Consultas básicas

  • "Muéstrame todas las métricas disponibles en Prometheus"
  • "¿Cuál es el uso actual de CPU en todas las instancias?"
  • "Obtén el uso de memoria de la última hora"

Descubrimiento y exploración

  • "Lista todos los objetivos de scrape y su estado"
  • "¿Qué etiquetas están disponibles para la métrica http_requests_total?"
  • "Muéstrame todas las métricas relacionadas con 'cpu'"

Análisis avanzado

  • "Compara el uso de CPU entre los entornos de producción y staging"
  • "Muéstrame los 10 servicios principales por consumo de memoria"
  • "¿Cuál es la tendencia de la tasa de errores para el servicio API en las últimas 24 horas?"

Consideraciones de seguridad

  • Acceso a la red: El servidor requiere acceso de red a tu instancia de Prometheus
  • Uso de recursos: Las consultas de rango pueden consumir muchos recursos; monitorea la carga de tu servidor de Prometheus

Solución de problemas

Problemas de conexión

  • Verifica que tu servidor de Prometheus sea accesible en la URL configurada
  • Revisa la configuración del firewall y la conectividad de red
  • Asegúrate de que la API de Prometheus esté habilitada (predeterminado en el puerto 9090)

Errores de permisos

  • Verifica que el servidor MCP tenga acceso de red a Prometheus
  • Revisa si se requiere autenticación para tu configuración de Prometheus

Disponibilidad de herramientas

  • Si faltan ciertas herramientas, verifica si han sido deshabilitadas mediante la configuración

Licencia

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

Soporte

Construido con ❤️ para las comunidades de Prometheus y MCP