Skip to main content
Glama
pab1it0

Prometheus MCP Server

by pab1it0

프로메테우스 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 클라이언트에서 사용할 도구를 선택할 수 있습니다. 특정 기능을 사용하지 않거나 컨텍스트 창을 너무 많이 차지하고 싶지 않을 때 유용합니다.

Related MCP server: Prometheus MCP Server

용법

  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 이미지

이 프로젝트를 사용하는 가장 쉬운 방법은 GitHub Container Registry의 미리 빌드된 이미지를 사용하는 것입니다.

docker pull ghcr.io/pab1it0/prometheus-mcp-server:latest

태그를 사용하여 특정 버전을 사용할 수도 있습니다.

docker pull ghcr.io/pab1it0/prometheus-mcp-server:1.0.0

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 \
  ghcr.io/pab1it0/prometheus-mcp-server:latest

로컬로 빌드한 이미지로 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",
        "ghcr.io/pab1it0/prometheus-mcp-server:latest"
      ],
      "env": {
        "PROMETHEUS_URL": "http://your-prometheus-server:9090",
        "PROMETHEUS_USERNAME": "your_username",
        "PROMETHEUS_PASSWORD": "your_password"
      }
    }
  }
}

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

Docker 구현 관련 참고 사항 : Claude에서 정상적으로 작동하는 것으로 입증된 chess-mcp 프로젝트의 구조에 맞춰 Docker 설정이 업데이트되었습니다. 새로운 구현은 다단계 빌드 프로세스를 사용하며 중간 셸 스크립트 없이 진입점 스크립트를 직접 실행합니다. 이러한 접근 방식은 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


Available Tools

6 tools
execute_queryExecute PromQL QueryC
Read-onlyIdempotent

Execute a PromQL instant query against Prometheus

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
timeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds no behavioral context beyond what is in the schema and annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but overly terse. It could be improved with more structure while remaining short.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 0% schema coverage and no description of parameters, the tool is incomplete for an agent. The output schema exists, but the description does not mention it or the nature of the return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description does not explain the parameters. It fails to clarify that 'query' is the PromQL expression and 'time' is optional evaluation time.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Execute') and the resource ('PromQL instant query against Prometheus'). It distinguishes from the sibling tool 'execute_range_query' which handles range queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'execute_range_query'. There is no mention of typical use cases or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_range_queryExecute PromQL Range QueryB
Read-onlyIdempotent

Execute a PromQL range query with start time, end time, and step interval

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
startYes
endYes
stepYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds that it uses PromQL with time parameters, but does not disclose potential failures, pagination, or rate limits. For a tool with rich annotations, the description adds modest extra context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no extraneous words. It efficiently communicates the core action and key parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with an output schema and comprehensive annotations, the description provides adequate context. It names the parameters and states the tool's purpose. Minor gaps include lack of format details and error behavior, but overall it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description partially compensates by naming the parameters (start time, end time, step interval). However, it does not specify expected formats (e.g., Unix timestamps or RFC3339) or explain the query parameter beyond 'PromQL range query', leaving ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes a PromQL range query with start time, end time, and step interval. However, it does not distinguish this from the sibling tool 'execute_query', which likely handles instant queries, missing an opportunity for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description does not specify when to use this tool over alternatives (e.g., for time-range versus instant queries), nor does it mention prerequisites or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_metric_metadataGet Metric MetadataA
Read-onlyIdempotent

Get metadata (type, help, unit) for metrics. Returns all metric metadata when no metric name is provided. Use filter_pattern to search metric names and descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
metricNo
filter_patternNo
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description adds that it returns all metadata when no metric is given and how to use filter_pattern. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences with no redundancy. The first defines purpose, the second provides usage guidance. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present, description covers primary functionality. However, it omits explanation of pagination parameters (limit, offset), which could be important for large result sets. Otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. It explains metric (optional, returns all if null) and filter_pattern (search). But it does not cover limit/offset, leaving pagination behavior unclear. Adequate but not fully compensating.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves metadata (type, help, unit) for metrics. It specifies behavior when no metric name is provided (returns all) and mentions filter_pattern for searching. This distinguishes it from siblings like list_metrics and execute_query.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on using filter_pattern to search. However, it does not mention when not to use the tool or alternatives, but the context is clear enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_targetsGet Scrape TargetsA
Read-onlyIdempotent

Get information about all scrape targets

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description reinforces that it is a read operation. It adds that it returns information about all scrape targets, but does not detail what information is included. The output schema likely covers the return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 8 words, front-loaded with the key action and resource. Every word is meaningful with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and an existing output schema, the description is reasonably complete. It states the purpose and scope (all targets). A minor gap is the lack of mention of potential pagination or limits, but the output schema likely handles that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema description coverage is trivially 100%. The description does not need to add parameter details. The baseline for 0 parameters is 4, and no additional information is necessary.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'scrape targets', indicating it retrieves information on all scrape targets. It distinguishes from sibling tools like execute_query or get_metric_metadata which perform different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as when to use list_metrics or get_metric_metadata. It lacks explicit context or exclusions for sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

health_checkHealth CheckA
Read-onlyIdempotent

Health check endpoint for container monitoring and status verification

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds context about container monitoring and status verification, which aligns with annotations and provides additional behavioral clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with key information, no wasted words. Highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and an existing output schema (indicated by 'has output schema: true'), the description is complete enough to understand the tool's purpose and basic behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters are defined, and schema coverage is 100%. Baseline score of 4 applies since the description does not need to compensate for missing parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a health check endpoint for container monitoring and status verification. Specific verb and resource, and it clearly distinguishes from sibling tools like execute_query and list_metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking system status but does not provide explicit guidance on when to use versus alternatives or when not to use. Usage is implied by the tool's purpose and sibling context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_metricsList Available MetricsA
Read-onlyIdempotent

List all available metrics in Prometheus with optional pagination support

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
filter_patternNo
refresh_cacheNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the description's note about pagination adds minor behavioral context but is not necessary for safety awareness. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 10 words, directly stating the purpose and key feature. No unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not cover the purpose of filter_pattern or refresh_cache, nor how pagination behaves (defaults, total count). Given 4 undocumented parameters, the description is incomplete for a full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description only hints at pagination (limit/offset) but does not explain filter_pattern or refresh_cache. It fails to compensate for missing schema descriptions on 4 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all available metrics in Prometheus', specifying the exact resource and action. It distinguishes itself from sibling tools like execute_query and get_metric_metadata by focusing on enumeration of metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions optional pagination, indicating when to use pagination parameters. However, it lacks explicit guidance on when to use this tool versus alternatives like get_metric_metadata for detailed metric information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.2.2
    • Changedexecute_query3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / query / title
        Removed value: -"Query"
      • removedInput schema / properties / time / title
        Removed value: -"Time"
    • Changedexecute_range_query5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / end / title
        Removed value: -"End"
      • removedInput schema / properties / query / title
        Removed value: -"Query"
      • removedInput schema / properties / start / title
        Removed value: -"Start"
      • removedInput schema / properties / step / title
        Removed value: -"Step"
    • Changedget_metric_metadata14 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / filter_pattern
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / properties / metric / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / metric / default
        Added value: +null
      • removedInput schema / properties / metric / title
        Removed value: -"Metric"
      • removedInput schema / properties / metric / type
        Removed value: -"string"
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "type": "integer"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "metric"
        -]
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties / result / items
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / properties / result / type
        Removed value: -"array"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • Changedget_targets1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhealth_check1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedlist_metrics5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / filter_pattern / title
        Removed value: -"Filter Pattern"
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / offset / title
        Removed value: -"Offset"
      • addedInput schema / properties / refresh_cache
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
  2. 6 tool updatesv1.0.0
    • Changedexecute_query2 fields changed
      • removedInput schema / title
        Removed value: -"execute_queryArguments"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
    • Changedexecute_range_query2 fields changed
      • removedInput schema / title
        Removed value: -"execute_range_queryArguments"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
    • Changedget_metric_metadata2 fields changed
      • removedInput schema / title
        Removed value: -"get_metric_metadataArguments"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "_WrappedResult",
        +  "type": "object",
        +  "x-fastmcp-wrap-result": true
        +}
    • Changedget_targets2 fields changed
      • removedInput schema / title
        Removed value: -"get_targetsArguments"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "type": "object"
        +}
    • Addedhealth_check
    • Changedlist_metrics5 fields changed
      • addedInput schema / properties / filter_pattern
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Filter Pattern"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Limit"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "title": "Offset",
        +  "type": "integer"
        +}
      • removedInput schema / title
        Removed value: -"list_metricsArguments"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
  3. 5 tool updates
    • First observedexecute_query
    • First observedexecute_range_query
    • First observedget_metric_metadata
    • First observedget_targets
    • First observedlist_metrics

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: query types (instant vs range), metadata retrieval, target info, health check, and metric listing. No overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., execute_query, get_metric_metadata). No deviations.

Tool Count5/5

Six tools cover the essential Prometheus operations without being excessive or insufficient. Well-scoped for the server's purpose.

Completeness4/5

Core CRUD-like operations for queries and metadata are present. Minor gaps like alert management or rule configuration are missing but not critical for the primary use case.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Related MCP Connectors

  • Query application logs, traces, and metrics from your AI coding assistant via Foam's MCP server.

  • The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • The Google GKE MCP server is a managed Model Context Protocol server that provides AI applications with tools to manage Google Kubernetes Engine (GKE) clusters and Kubernetes resources. It exposes a structured, discoverable interface that allows AI agents to interact with GKE and Kubernetes APIs, enabling them to inspect cluster configurations, retrieve Kubernetes resource YAMLs, monitor operations like cluster upgrades, diagnose issues, and optimize costs—all without needing to parse text output or use complex kubectl commands.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A tool that enables access to Prometheus metrics data through a Model Context Protocol server, allowing interaction with monitoring data using natural language.
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    A Model Context Protocol server that enables AI assistants to query Prometheus metrics, discover available data, and analyze system performance through natural language interactions.
    5
    103 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to query Prometheus metrics, monitor alerts, and analyze system health through read-only access to your Prometheus server with built-in query safety and optional AI-powered metric analysis.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to execute PromQL queries and discover metrics across multiple Prometheus tenants using the Model Context Protocol. It supports single and multi-tenant configurations with secure authentication for instant and range query analysis.
    MIT

Appeared in Searches