Prometheus MCP Server

Um servidor MCP para integração com Prometheus para consultar métricas.

Documentação

Servidor MCP do Prometheus

GitHub Container Registry Helm Chart GitHub Release Codecov Python License

Dê aos assistentes de IA o poder de consultar suas métricas do Prometheus.

Um servidor Model Context Protocol (MCP) que fornece acesso às suas métricas e consultas do Prometheus por meio de interfaces MCP padronizadas, permitindo que assistentes de IA executem consultas PromQL e analisem seus dados de métricas.

Começando

Pré-requisitos

  • Servidor Prometheus acessível a partir do seu ambiente
  • Cliente compatível com MCP (Claude Desktop, VS Code, Cursor, Windsurf, etc.)

Métodos de Instalação

Claude Desktop

Adicione à sua configuração do Claude Desktop:

{
  "mcpServers": {
    "prometheus": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "PROMETHEUS_URL",
        "ghcr.io/pab1it0/prometheus-mcp-server:latest"
      ],
      "env": {
        "PROMETHEUS_URL": "<your-prometheus-url>"
      }
    }
  }
}
Claude Code

Instale via CLI do Claude Code:

claude mcp add prometheus --env PROMETHEUS_URL=http://your-prometheus:9090 -- docker run -i --rm -e PROMETHEUS_URL ghcr.io/pab1it0/prometheus-mcp-server:latest
VS Code / Cursor / Windsurf

Adicione às suas configurações de MCP no IDE respectivo:

{
  "prometheus": {
    "command": "docker",
    "args": [
      "run",
      "-i",
      "--rm",
      "-e",
      "PROMETHEUS_URL",
      "ghcr.io/pab1it0/prometheus-mcp-server:latest"
    ],
    "env": {
      "PROMETHEUS_URL": "<your-prometheus-url>"
    }
  }
}
Docker Desktop

A maneira mais fácil de executar o servidor MCP do Prometheus é através do Docker Desktop:

Add to Docker Desktop
  1. Via Catálogo MCP: Visite o Servidor MCP do Prometheus no Docker Hub e clique no botão acima

  2. Via MCP Toolkit: Use a extensão MCP Toolkit do Docker Desktop para descobrir e instalar o servidor

  3. Configure sua conexão usando variáveis de ambiente (veja as Opções de Configuração abaixo)

Configuração Manual com Docker

Execute diretamente com Docker:

# With environment variables
docker run -i --rm \
  -e PROMETHEUS_URL="http://your-prometheus:9090" \
  ghcr.io/pab1it0/prometheus-mcp-server:latest

# With authentication
docker run -i --rm \
  -e PROMETHEUS_URL="http://your-prometheus:9090" \
  -e PROMETHEUS_USERNAME="admin" \
  -e PROMETHEUS_PASSWORD="password" \
  ghcr.io/pab1it0/prometheus-mcp-server:latest
Helm Chart (Kubernetes)

Implante no Kubernetes usando o Helm chart do registro OCI:

helm install prometheus-mcp-server \
  oci://ghcr.io/pab1it0/charts/prometheus-mcp-server \
  --version 1.1.1 \
  --set prometheus.url="http://prometheus:9090"

Com autenticação:

helm install prometheus-mcp-server \
  oci://ghcr.io/pab1it0/charts/prometheus-mcp-server \
  --version 1.1.1 \
  --set prometheus.url="http://prometheus:9090" \
  --set auth.username="admin" \
  --set auth.password="secret"

Com um arquivo de valores personalizado:

helm install prometheus-mcp-server \
  oci://ghcr.io/pab1it0/charts/prometheus-mcp-server \
  --version 1.1.1 \
  -f values.yaml

Consulte os valores do chart para todas as opções de configuração disponíveis.

Opções de Configuração

VariávelDescriçãoObrigatório
PROMETHEUS_URLURL do seu servidor PrometheusSim
PROMETHEUS_URL_SSL_VERIFYDefina como False para desabilitar a verificação SSLNão
PROMETHEUS_DISABLE_LINKSDefina como True para desabilitar links da interface do Prometheus nos resultados de consulta (economiza tokens de contexto)Não
PROMETHEUS_REQUEST_TIMEOUTTempo limite de solicitação em segundos para evitar solicitações pendentes (proteção contra DDoS)Não (padrão: 30)
PROMETHEUS_USERNAMENome de usuário para autenticação básicaNão
PROMETHEUS_PASSWORDSenha para autenticação básicaNão
PROMETHEUS_TOKENToken Bearer para autenticaçãoNão
PROMETHEUS_CLIENT_CERTCaminho para o arquivo de certificado do cliente para autenticação TLS mútuaNão
PROMETHEUS_CLIENT_KEYCaminho para o arquivo de chave privada do cliente para autenticação TLS mútuaNão
REQUESTS_CA_BUNDLECaminho para o arquivo de pacote CA para verificar o certificado TLS do servidor (variável de ambiente padrão da biblioteca requests)Não
ORG_IDID da organização para ambientes multi-tenantNão
PROMETHEUS_MCP_SERVER_TRANSPORTModo de transporte (stdio, http, sse)Não (padrão: stdio)
PROMETHEUS_MCP_BIND_HOSTHost para transporte HTTPNão (padrão: 127.0.0.1)
PROMETHEUS_MCP_BIND_PORTPorta para transporte HTTPNão (padrão: 8080)
PROMETHEUS_MCP_STATELESS_HTTPHabilite o modo HTTP sem estado para suporte a múltiplas réplicasNão (padrão: False)
PROMETHEUS_CUSTOM_HEADERSCabeçalhos personalizados como string JSONNão
TOOL_PREFIXPrefixo para todos os nomes de ferramentas (ex.: staging resulta em staging_execute_query). Útil para executar múltiplas instâncias direcionadas a diferentes ambientes no CursorNão

Ferramentas Disponíveis

FerramentaCategoriaDescrição
health_checkSistemaEndpoint de verificação de saúde para monitoramento de contêineres e verificação de status
execute_queryConsultaExecuta uma consulta instantânea PromQL contra o Prometheus
execute_range_queryConsultaExecuta uma consulta de intervalo PromQL com horário de início, horário de término e intervalo de passo
list_metricsDescobertaLista todas as métricas disponíveis no Prometheus com suporte a paginação e filtragem
get_metric_metadataDescobertaObtém metadados para uma métrica ou metadados em lote com filtragem opcional
get_targetsDescobertaObtém alvos de scrape, com filtragem state/scrape_pool no lado do servidor e paginação opcional

A lista de ferramentas é configurável, para que você possa escolher quais ferramentas deseja disponibilizar ao cliente MCP. Isso é útil se você não usa determinada funcionalidade ou se não deseja ocupar muito da janela de contexto.

Recursos

  • Executa consultas PromQL contra o Prometheus
  • Descobre e explora métricas
    • Lista métricas disponíveis
    • Obtém metadados para métricas específicas
    • Pesquisa metadados de métricas por nome ou descrição em uma única chamada
    • Visualiza resultados de consultas instantâneas
    • Visualiza resultados de consultas de intervalo com diferentes intervalos de passo
  • Suporte a autenticação
    • Autenticação básica a partir de variáveis de ambiente
    • Autenticação por token Bearer a partir de variáveis de ambiente
  • Suporte a conteinerização com Docker
  • Fornece ferramentas interativas para assistentes de IA

Desenvolvimento

Contribuições são bem-vindas! Consulte nosso Guia de Contribuição para informações detalhadas sobre como começar, padrões de codificação e o processo de pull request.

Este projeto usa uv para gerenciar dependências. Instale o uv seguindo as instruções para sua plataforma:

curl -LsSf https://astral.sh/uv/install.sh | sh

Você pode então criar um ambiente virtual e instalar as dependências com:

uv venv
source .venv/bin/activate  # On Unix/macOS
.venv\Scripts\activate     # On Windows
uv pip install -e .

Testes

O projeto inclui uma suíte de testes abrangente que garante a funcionalidade e ajuda a prevenir regressões.

Execute os testes com pytest:

# Install development dependencies
uv pip install -e ".[dev]"

# Run the tests
pytest

# Run with coverage report
pytest --cov=src --cov-report=term-missing

Ao adicionar novos recursos, adicione também os testes correspondentes.

Licença

MIT