About Obs MCP
Obs MCP is an MCP server published by rhobs in the AI category: mCP server to allow LLMs to interact with a running Prometheus instance via the API. It has been installed 0 times through Conduid.
The repository has 5 stars and 9 forks, with the last commit 6 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.
Install
npx obs-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Obs MCP
Powered by Claude · Grounded in docs
Security checks
- ·README presentNot checked yet.
- ·License declaredNot checked yet.
- ·Tests presentNot checked yet.
- ·Dependencies pinnedNot checked yet.
- ·No dynamic code executionNot checked yet.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
Releases
README
obs mcp server
obs-mcp is a mcp server to allow LLMs to interact with Prometheus or Thanos Querier instances via the API.
[!NOTE] This project is moved from jhadvig/genie-plugin preserving the history of commits.
Quickstart
Run make help to see all available commands.
1. Using Kubeconfig (OpenShift)
The easiest way to get the obs-mcp connected to the cluster is via a kubeconfig:
- Login into your OpenShift cluster
- Run the server with
make run
Or directly:
go run ./cmd/obs-mcp/ --listen 127.0.0.1:9100 --auth-mode kubeconfig --insecure
This will auto-discover the metrics backend in OpenShift. By default, it tries thanos-querier route first, then falls back to prometheus-k8s route. Use --metrics-backend to control which route is preferred.
[!WARNING]
kubeconfigauth mode requires a bearer token. Runoc whoami -tto verify you have one.If it fails, either:
- Re-login with:
oc login --token=<token>oroc login -u user -p password- Use port-forwarding with
--auth-mode headerinstead
Example using Prometheus as the preferred backend:
go run ./cmd/obs-mcp/ --listen 127.0.0.1:9100 --auth-mode kubeconfig --metrics-backend prometheus --insecure
Example using Thanos as the preferred backend:
[!NOTE]
Thanos versions before v0.40.0 do not expose the
/api/v1/status/tsdbendpoint, so guardrails that rely on TSDB stats (max-metric-cardinality,disallow-blanket-regexwithmax-label-cardinality > 0) will fail. Use--guardrails=noneor--guardrails='!tsdb'when using older Thanos versions. Thanos v0.40.0+ (#8484) added TSDB status support to the Query component, so guardrails should work if your cluster runs that version or later.
make run-no-guardrails
Or directly:
go run ./cmd/obs-mcp/ --listen 127.0.0.1:9100 --auth-mode kubeconfig --metrics-backend thanos --insecure --guardrails=none
[!IMPORTANT] How the Metrics Backend URL is Determined:
PROMETHEUS_URLenvironment variable (if set, always used)--metrics-backendflag route discovery (only inkubeconfigmode)- Default:
http://localhost:9090Example using explicit PROMETHEUS_URL:
PROMETHEUS_URL=https://thanos-querier.openshift-monitoring.svc.cluster.local:9091/ make run
2. Port-forwarding alternative
Port-forwards prometheus-k8s-0:9090 to localhost and starts obs-mcp with header auth. Requires oc login:
make run-openshift-pf-prometheus
3. Local Development with Kind (using E2E test infrastructure)
Use the E2E test infrastructure for a fully working local environment with Prometheus:
Setup Kind cluster with Prometheus
make test-e2e-setup
This creates a Kind cluster with:
- Prometheus Operator
- Prometheus (accessible at
prometheus-k8s.monitoring.svc.cluster.local:9090) - Alertmanager
Build and deploy obs-mcp
make test-e2e-deploy
Port forward obs-mcp
kubectl port-forward -n obs-mcp svc/obs-mcp 9100:9100
To connect an MCP client, use http://localhost:9100/mcp.
When done:
make test-e2e-teardown
See TESTING.md for more details.
4. Using prometheus helm chart in local Kubernetes cluster
# sets up Prometheus (and exporters) on your local single-node k8s cluster
helm install prometheus-community/prometheus --name-template <prefix>
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=alertmanager,app.kubernetes.io/instance=local" -o jsonpath="{.items[0].metadata.name}") && kubectl --namespace default port-forward $POD_NAME 9090
go run ./cmd/obs-mcp/ --auth-mode header --insecure --listen :9100
Testing with curl
You can test the MCP server using curl. The server uses JSON-RPC 2.0 over HTTP.
[!TIP] For formatted JSON output, pipe the response to
jq:curl ... | jq
List available tools:
curl -X POST http://localhost:9100/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'|jq
Call the list_metrics tool:
curl -X POST http://localhost:9100/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_metrics","arguments":{}}}' | jq
Execute a range query (e.g., get up metrics for the last hour):
curl -X POST http://localhost:9100/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"execute_range_query","arguments":{"query":"up{job=\"prometheus\"}","step":"1m","end":"NOW","duration":"1h"}}}' | jq
Testing with MCP Inspector
Use the MCP Inspector to visually test and debug obs-mcp tools.
Using container compose
Kind
-
Set up a Kind cluster with Prometheus and Alertmanager (if not already running):
make test-e2e-setup -
Port-forward Prometheus and Alertmanager from your Kind cluster:
kubectl port-forward -n monitoring pod/prometheus-k8s-0 9090:9090 &kubectl port-forward -n monitoring pod/alertmanager-main-0 9093:9093 &
OpenShift
-
Port-forward Prometheus and Alertmanager from your OpenShift cluster:
oc port-forward -n openshift-monitoring pod/prometheus-k8s-0 9090:9090 &oc port-forward -n openshift-monitoring pod/alertmanager-main-0 9093:9093 & -
Start obs-mcp and the Inspector (builds the obs-mcp container and starts both services via compose):
make inspectThis uses Docker by default. For podman, use:
CONTAINER_CLI=podman make inspect -
Open the Inspector URL from the logs (includes the auth token):
http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=<token> -
Connect using Streamable HTTP transport to
http://obs-mcp:8080/mcp
Documentation
| Document | Description |
|---|---|
| DEPLOYMENT.md | Authentication modes, in-cluster deployment, configuration |
| TOOLS.md | Available MCP tools |
| TESTING.md | Testing guide |
| RELEASE.md | Release process and versioning guidelines |
| CHANGELOG.md | Notable changes per release |
| MCPChecker Evals | Automated eval framework for tool verification |
License
README mirrored from the source repository 16 hours ago. The original is authoritative.