Prometheus

Interaja com sua infraestrutura de monitoramento Prometheus usando linguagem natural.

Documentação

Prometheus MCP Logo
Prometheus MCP Server

npm Docker codecov Node.js Version License: MIT

Um servidor Model Context Protocol (MCP) que oferece integração perfeita entre assistentes de IA e o Prometheus, permitindo interações em linguagem natural com sua infraestrutura de monitoramento. Este servidor permite consulta, descoberta e análise de métricas sem esforço por meio do Visual Studio Code, Cursor, Windsurf, Claude Desktop e outros clientes MCP.

Principais Recursos

  • Rápido e leve. Integração direta com a API do Prometheus, sem necessidade de parsing complexo.
  • Amigável para LLMs. Respostas JSON estruturadas e otimizadas para consumo por assistentes de IA.
  • Capacidades configuráveis. Ative/desative categorias de ferramentas com base em seus requisitos de segurança e operacionais.
  • Suporte a transporte duplo. Funciona com transportes stdio e HTTP para máxima compatibilidade.

Requisitos

  • Node.js 20.19.0 ou mais recente
  • Acesso a um servidor Prometheus
  • VS Code, Cursor, Windsurf, Claude Desktop ou qualquer outro cliente MCP

Primeiros Passos

Primeiro, instale o servidor MCP do Prometheus com seu cliente. Uma configuração típica é assim:

{
  "mcpServers": {
    "prometheus": {
      "command": "npx",
      "args": ["prometheus-mcp@latest", "stdio"],
      "env": {
        "PROMETHEUS_URL": "http://localhost:9090"
      }
    }
  }
}
Instalar no 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"}}'

Após a instalação, o servidor MCP do Prometheus estará disponível para uso com seu agente GitHub Copilot no VS Code.

Instalar no Cursor

Vá para Cursor Settings → MCP → Add new MCP Server. Dê um nome de sua preferência, use o tipo command com o comando npx prometheus-mcp. Você também pode verificar a configuração ou adicionar argumentos de comando clicando em Edit.

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

Siga a documentação MCP do Windsurf. Use a seguinte configuração:

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

O Claude Desktop suporta dois métodos de instalação:

Opção 1: Extensão DXT

A maneira mais fácil de instalar é usando a extensão DXT pré-compilada:

  1. Baixe o arquivo .dxt mais recente da página de releases
  2. Clique duas vezes no arquivo baixado para instalar automaticamente
  3. Configure sua URL do Prometheus nas configurações da extensão

Opção 2: Configurações do Desenvolvedor

Para usuários avançados ou configurações personalizadas, configure manualmente o servidor MCP:

  1. Abra as configurações do Claude Desktop
  2. Navegue até a seção Developer
  3. Adicione a seguinte configuração do servidor MCP:
{
  "mcpServers": {
    "prometheus": {
      "command": "npx",
      "args": ["prometheus-mcp@latest", "stdio"],
      "env": {
        "PROMETHEUS_URL": "http://localhost:9090"
      }
    }
  }
}

Configuração

O servidor MCP do Prometheus suporta os seguintes argumentos. Eles podem ser fornecidos na configuração JSON acima, como parte da 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]

Variáveis de Ambiente

Você também pode configurar o servidor usando variáveis de ambiente:

  • PROMETHEUS_URL - URL do servidor Prometheus
  • ENABLE_DISCOVERY_TOOLS - Defina como "false" para desativar as ferramentas de descoberta (padrão: true)
  • ENABLE_INFO_TOOLS - Defina como "false" para desativar as ferramentas de informação (padrão: true)
  • ENABLE_QUERY_TOOLS - Defina como "false" para desativar as ferramentas de consulta (padrão: true)

Servidor MCP Autônomo

Ao executar em ambientes de servidor ou quando precisar de transporte HTTP, execute o servidor MCP com o comando http:

npx prometheus-mcp@latest http --port 3000

E então, na configuração do seu cliente MCP, defina o url para o endpoint HTTP:

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

Docker

Execute o servidor MCP do 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"
      ]
    }
  }
}

Ferramentas

O servidor MCP do Prometheus fornece 10 ferramentas organizadas em três categorias configuráveis:

Descoberta

Ferramentas para explorar sua infraestrutura Prometheus:

  • prometheus_list_metrics

    • Descrição: Lista todas as métricas Prometheus disponíveis
    • Parâmetros: Nenhum
    • Somente leitura: true
  • prometheus_metric_metadata

    • Descrição: Obtém metadados de uma métrica Prometheus específica
    • Parâmetros:
      • metric (string): Nome da métrica para obter metadados
    • Somente leitura: true
  • prometheus_list_labels

    • Descrição: Lista todos os rótulos (labels) Prometheus disponíveis
    • Parâmetros: Nenhum
    • Somente leitura: true
  • prometheus_label_values

    • Descrição: Obtém todos os valores de um rótulo Prometheus específico
    • Parâmetros:
      • label (string): Nome do rótulo para obter valores
    • Somente leitura: true
  • prometheus_list_targets

    • Descrição: Lista todos os alvos de coleta (scrape targets) do Prometheus
    • Parâmetros: Nenhum
    • Somente leitura: true
  • prometheus_scrape_pool_targets

    • Descrição: Obtém os alvos de um pool de coleta específico
    • Parâmetros:
      • scrapePool (string): Nome do pool de coleta
    • Somente leitura: true
Informações

Ferramentas para acessar informações do servidor Prometheus:

  • prometheus_runtime_info

    • Descrição: Obtém informações de runtime do Prometheus
    • Parâmetros: Nenhum
    • Somente leitura: true
  • prometheus_build_info

    • Descrição: Obtém informações de build do Prometheus
    • Parâmetros: Nenhum
    • Somente leitura: true
Consulta

Ferramentas para executar consultas Prometheus:

  • prometheus_query

    • Descrição: Executa uma consulta instantânea no Prometheus
    • Parâmetros:
      • query (string): Expressão de consulta Prometheus
      • time (string, opcional): Parâmetro de tempo para a consulta (formato RFC3339)
    • Somente leitura: true
  • prometheus_query_range

    • Descrição: Executa uma consulta de intervalo no Prometheus
    • Parâmetros:
      • query (string): Expressão de consulta Prometheus
      • start (string): Timestamp de início (RFC3339 ou timestamp unix)
      • end (string): Timestamp de fim (RFC3339 ou timestamp unix)
      • step (string): Largura do passo de resolução da consulta
    • Somente leitura: true

Exemplos de Uso

Aqui estão alguns exemplos de interações que você pode ter com seu assistente de IA:

Consultas Básicas

  • "Mostre-me todas as métricas disponíveis no Prometheus"
  • "Qual é o uso atual de CPU em todas as instâncias?"
  • "Obtenha o uso de memória da última hora"

Descoberta e Exploração

  • "Liste todos os alvos de coleta e seus status"
  • "Quais rótulos estão disponíveis para a métrica http_requests_total?"
  • "Mostre-me todas as métricas relacionadas a 'cpu'"

Análise Avançada

  • "Compare o uso de CPU entre os ambientes de produção e staging"
  • "Mostre-me os 10 principais serviços por consumo de memória"
  • "Qual é a tendência da taxa de erros do serviço de API nas últimas 24 horas?"

Considerações de Segurança

  • Acesso à Rede: O servidor requer acesso de rede à sua instância do Prometheus
  • Uso de Recursos: Consultas de intervalo podem consumir muitos recursos; monitore a carga do seu servidor Prometheus

Solução de Problemas

Problemas de Conexão

  • Verifique se o seu servidor Prometheus está acessível na URL configurada
  • Verifique as configurações de firewall e a conectividade de rede
  • Certifique-se de que a API do Prometheus esteja habilitada (padrão na porta 9090)

Erros de Permissão

  • Verifique se o servidor MCP tem acesso de rede ao Prometheus
  • Verifique se a autenticação é necessária para sua configuração do Prometheus

Disponibilidade de Ferramentas

  • Se algumas ferramentas estiverem ausentes, verifique se elas foram desativadas via configuração

Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Suporte

Feito com ❤️ para as comunidades Prometheus e MCP