mcp-prometheus
A Model Context Protocol (MCP) server for Prometheus monitoring
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"mcp-prometheus": {
"args": [
"mcp-prometheus@2.1.1"
],
"command": "npx"
}
}
}
可用工具 (5 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
tavily_search 14 个参数 需填 1 项
Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.
必填参数:query
tavily_extract 6 个参数 需填 1 项
Extract content from URLs. Returns raw page content in markdown or text format.
必填参数:urls
tavily_crawl 11 个参数 需填 1 项
Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.
必填参数:url
tavily_map 8 个参数 需填 1 项
Map a website's structure. Returns a list of URLs found starting from the base URL.
必填参数:url
tavily_research 2 个参数 需填 1 项
Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources to answer a question or complete a task. Returns a detailed response based on the research findings.
必填参数:input
服务介绍
Prometheus MCP Server (Go)
A Model Context Protocol (MCP) server for Prometheus integration. Native Go binary with built-in Kubernetes connectivity via client-go.
# Installation
# # npx
npx -y mcp-prometheus@latest
# # MCP Client Configuration
Add to your MCP client configuration (VS Code, Cursor, Windsurf, etc.):
{
"mcpServers": {
"prometheus": {
"command": "npx",
"args": ["-y", "mcp-prometheus@latest"],
"env": {
"PROMETHEUS_URL": "http://localhost:9090"
}
}
}
}
# # VS Code
code - -add-mcp '{"name":"prometheus","command":"npx","args":["-y","mcp-prometheus@latest"],"env":{"PROMETHEUS_URL":"http://localhost:9090"}}'
# # Kubernetes Auto-Connect
Automatically connects to Prometheus running in OpenShift/Kubernetes via the K8S API service proxy. Uses native kubeconfig/in-cluster config via client-go. No kubectl or port-forwarding required.
Default: openshift-monitoring/prometheus-operated:9090
{
"mcpServers": {
"prometheus": {
"command": "npx",
"args": ["-y", "mcp-prometheus@latest"]
}
}
}
# # Binary
Download from GitHub Releases or build from source:
make build
./mcp-prometheus
# Configuration
# # Environment Variables
| Variable | Description |
|- -- -- -- -- -|- -- -- -- -- -- --|
| PROMETHEUS_URL | Direct Prometheus API URL (overrides K8S auto-connect) |
# # CLI Flags
| Flag | Description | Default |
|- -- -- -|- -- -- -- -- -- --|- -- -- -- --|
| - -url | Direct Prometheus URL | - |
| - -namespace | Kubernetes namespace | openshift-monitoring |
| - -service | Kubernetes service name | prometheus-operated |
| - -service-port | Kubernetes service port | 9090 |
| - -service-scheme | Service scheme (http/https) | https |
| - -kubeconfig | Path to kubeconfig file | auto-detect |
Precedence: - -url / PROMETHEUS_URL > K8S auto-connect
Connection strategy:
- Direct URL (if
- -urlorPROMETHEUS_URLis set) - K8S API proxy (auto-detect kubeconfig or in-cluster config)
# Tools (11)
# # Basic Queries
| Tool | Description |
|- -- -- -|- -- -- -- -- -- --|
| query | Execute a PromQL instant query |
| queryRange | Execute a PromQL range query over time |
| getTargets | Get scrape targets status |
| getRules | Get alerting and recording rules |
| getPrometheusStatus | Get server version and runtime info |
# # Cluster Diagnostics
| Tool | Description |
|- -- -- -|- -- -- -- -- -- --|
| getClusterHealthOverview | Comprehensive cluster health overview |
| diagnoseNode | Diagnose a specific node's health |
| diagnoseNamespace | Diagnose a namespace's health |
# # Resource Analysis
| Tool | Description |
|- -- -- -|- -- -- -- -- -- --|
| getTopResourceConsumers | Top CPU/memory/network consumers |
| investigatePod | Deep investigation of a specific pod |
| compareTimeRanges | Compare metrics between two time periods |
# Example Prompts
"What's the current CPU usage across all nodes?"
"Show me the cluster health overview"
"Which pods are using the most memory?"
"Diagnose node worker-1"
"Are all scrape targets healthy?"
"Compare CPU usage now vs 24 hours ago"
"Investigate pod my-app in namespace production"
"What alerting rules are defined?"
# Development
# # Build
make build # Build for current platform
make build-all-platforms # Cross-compile for all platforms
# # Container
podman build -f Containerfile -t mcp-prometheus .
# Kubernetes / OpenShift Deployment
# # Container Image
The container image is available on GitHub Container Registry:
ghcr.io/jeanlopezxyz/mcp-prometheus:latest
# # Helm Chart
Deploy using the included Helm chart:
# Add the chart repository (or use local chart)
helm upgrade - -install mcp-prometheus ./charts/mcp-prometheus \
- -namespace mcp-servers \
- -create-namespace \
- -set openshift=true
# # # Helm Values
| Parameter | Description | Default |
|- -- -- -- -- --|- -- -- -- -- -- --|- -- -- -- --|
| image.registry | Container registry | ghcr.io |
| image.repository | Image repository | jeanlopezxyz/mcp-prometheus |
| image.version | Image tag | latest |
| openshift | Enable OpenShift Routes | false |
| service.port | Service port | 8080 |
| prometheus.namespace | Prometheus namespace | openshift-monitoring |
| prometheus.service | Prometheus service name | prometheus-operated |
| rbac.useClusterReader | Use cluster-reader role | true |
# # # Example with custom Prometheus
helm upgrade - -install mcp-prometheus ./charts/mcp-prometheus \
- -namespace mcp-servers \
- -set openshift=true \
- -set prometheus.url=http://prometheus.monitoring:9090