Prometheus MCP Server

by pab1it0
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides access to Prometheus metrics and queries, allowing execution of PromQL queries, metrics discovery and exploration, viewing instant and range query results, and retrieving target information from a Prometheus server.

프로메테우스 MCP 서버

Prometheus를 위한 MCP( Model Context Protocol ) 서버.

이를 통해 표준화된 MCP 인터페이스를 통해 Prometheus 메트릭과 쿼리에 액세스할 수 있으므로 AI 어시스턴트가 PromQL 쿼리를 실행하고 메트릭 데이터를 분석할 수 있습니다.

특징

  • [x] Prometheus에 대해 PromQL 쿼리 실행
  • [x] 메트릭을 발견하고 탐색하세요
    • [x] 사용 가능한 메트릭 나열
    • [x] 특정 메트릭에 대한 메타데이터 가져오기
    • [x] 즉시 쿼리 결과 보기
    • [x] 다양한 단계 간격으로 범위 쿼리 결과 보기
  • [x] 인증 지원
    • [x] 환경 변수의 기본 인증
    • [x] 환경 변수에서 Bearer 토큰 인증
  • [x] Docker 컨테이너화 지원
  • [x] AI 어시스턴트를 위한 대화형 도구 제공

도구 목록은 구성 가능하므로 MCP 클라이언트에서 사용할 도구를 선택할 수 있습니다. 특정 기능을 사용하지 않거나 컨텍스트 창을 너무 많이 차지하고 싶지 않을 때 유용합니다.

용법

  1. 이 MCP 서버를 실행할 환경에서 Prometheus 서버에 액세스할 수 있는지 확인하세요.
  2. .env 파일이나 시스템 환경 변수를 통해 Prometheus 서버의 환경 변수를 구성합니다.

지엑스피1

  1. 클라이언트 설정 파일에 서버 설정을 추가하세요. 예를 들어, Claude Desktop의 경우:
{ "mcpServers": { "prometheus": { "command": "uv", "args": [ "--directory", "<full path to prometheus-mcp-server directory>", "run", "src/prometheus_mcp_server/main.py" ], "env": { "PROMETHEUS_URL": "http://your-prometheus-server:9090", "PROMETHEUS_USERNAME": "your_username", "PROMETHEUS_PASSWORD": "your_password" } } } }

참고: Claude Desktop에서 Error: spawn uv ENOENT 표시되면 uv 에 대한 전체 경로를 지정하거나 구성에서 환경 변수 NO_UV=1 설정해야 할 수 있습니다.

Docker 사용법

이 프로젝트에는 쉬운 배포와 격리를 위한 Docker 지원이 포함되어 있습니다.

Docker 이미지 빌드

다음을 사용하여 Docker 이미지를 빌드합니다.

docker build -t prometheus-mcp-server .

Docker로 실행

Docker를 사용하여 여러 가지 방법으로 서버를 실행할 수 있습니다.

docker run을 직접 사용:

docker run -it --rm \ -e PROMETHEUS_URL=http://your-prometheus-server:9090 \ -e PROMETHEUS_USERNAME=your_username \ -e PROMETHEUS_PASSWORD=your_password \ prometheus-mcp-server

docker-compose 사용:

Prometheus 자격 증명으로 .env 파일을 만든 다음 다음을 실행합니다.

docker-compose up

Claude Desktop에서 Docker 실행

Claude Desktop과 함께 컨테이너화된 서버를 사용하려면 환경 변수와 함께 Docker를 사용하도록 구성을 업데이트하세요.

{ "mcpServers": { "prometheus": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "PROMETHEUS_URL", "-e", "PROMETHEUS_USERNAME", "-e", "PROMETHEUS_PASSWORD", "prometheus-mcp-server" ], "env": { "PROMETHEUS_URL": "http://your-prometheus-server:9090", "PROMETHEUS_USERNAME": "your_username", "PROMETHEUS_PASSWORD": "your_password" } } } }

이 구성은 -e 플래그와 변수 이름만 사용하여 Claude Desktop에서 Docker 컨테이너로 환경 변수를 전달하고, env 객체에 실제 값을 제공합니다.

Docker 구현 관련 참고 사항 : Docker 설정이 Claude에서 정상적으로 작동하는 것으로 입증된 chess-mcp 프로젝트의 구조에 맞춰 업데이트되었습니다. 새로운 구현은 다단계 빌드 프로세스를 사용하며 중간 셸 스크립트 없이 진입점 스크립트를 직접 실행합니다. 이러한 접근 방식은 MCP 통신을 위한 stdin/stdout의 적절한 처리를 보장합니다.

개발

기여를 환영합니다! 제안이나 개선 사항이 있으시면 이슈를 개설하거나 풀 리퀘스트를 제출해 주세요.

이 프로젝트는 uv 사용하여 종속성을 관리합니다. 플랫폼에 맞는 지침에 따라 uv 설치하세요.

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

그런 다음 가상 환경을 만들고 다음을 사용하여 종속성을 설치할 수 있습니다.

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

프로젝트 구조

이 프로젝트는 src 디렉토리 구조로 구성되었습니다.

prometheus-mcp-server/ ├── src/ │ └── prometheus_mcp_server/ │ ├── __init__.py # Package initialization │ ├── server.py # MCP server implementation │ ├── main.py # Main application logic ├── Dockerfile # Docker configuration ├── docker-compose.yml # Docker Compose configuration ├── .dockerignore # Docker ignore file ├── pyproject.toml # Project configuration └── README.md # This file

테스트

이 프로젝트에는 기능성을 보장하고 회귀를 방지하는 데 도움이 되는 포괄적인 테스트 모음이 포함되어 있습니다.

pytest로 테스트를 실행합니다.

# Install development dependencies uv pip install -e ".[dev]" # Run the tests pytest # Run with coverage report pytest --cov=src --cov-report=term-missing

테스트는 다음과 같이 구성됩니다.

  • 구성 검증 테스트
  • 서버 기능 테스트
  • 오류 처리 테스트
  • 주요 응용 프로그램 테스트

새로운 기능을 추가할 때, 해당 테스트도 추가해 주세요.

도구

도구범주설명
execute_query질문Prometheus에 대해 PromQL 인스턴트 쿼리 실행
execute_range_query질문시작 시간, 종료 시간 및 단계 간격으로 PromQL 범위 쿼리 실행
list_metrics발견Prometheus에서 사용 가능한 모든 메트릭 나열
get_metric_metadata발견특정 메트릭에 대한 메타데이터 가져오기
get_targets발견모든 스크래핑 대상에 대한 정보를 얻으세요

특허

MIT


-
security - not tested
A
license - permissive license
-
quality - not tested

표준화된 모델 컨텍스트 프로토콜 인터페이스를 통해 Prometheus 메트릭 및 쿼리에 대한 액세스를 제공하여 AI 어시스턴트가 PromQL 쿼리를 실행하고 메트릭 데이터를 분석할 수 있도록 합니다.

  1. Features
    1. Usage
      1. Docker Usage
        1. Building the Docker Image
        2. Running with Docker
        3. Running with Docker in Claude Desktop
      2. Development
        1. Project Structure
          1. Testing
          2. Tools
        2. License

          Appeared in Searches

          ID: rwxokujcu0