MCP server by hyperpolymath
= poly-observability-mcp :toc: :toc-placement!:
image:https://img.shields.io/badge/RSR-compliant-gold[RSR Compliant,link=https://github.com/hyperpolymath/rhodium-standard-repositories] image:https://img.shields.io/badge/MCP-server-blue[MCP Server,link=https://github.com/modelcontextprotocol] image:https://img.shields.io/badge/License-PMPL--1.0-blue.svg[License: PMPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"] // SPDX-License-Identifier: PMPL-1.0-or-later // SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
Unified MCP server for observability and monitoring. Provides Model Context Protocol tools for querying metrics, logs, and traces through Prometheus, Grafana, Loki, and Jaeger.
toc::[]
== Overview
poly-observability-mcp exposes observability capabilities through the Model Context Protocol (MCP), enabling AI assistants and other MCP clients to query metrics, search logs, analyze traces, and manage dashboards across the observability stack.
== Adapters
=== Prometheus (8 tools) Metrics querying and alerting:
prometheus_query- Execute an instant PromQL queryprometheus_query_range- Execute a range PromQL queryprometheus_series- List time series matching a selectorprometheus_labels- List all label namesprometheus_label_values- List values for a specific labelprometheus_targets- Get current scrape targets and their statusprometheus_alerts- Get current active alertsprometheus_rules- Get alerting and recording rules
=== Grafana (8 tools) Dashboard and visualization management:
grafana_search_dashboards- Search for dashboards by name or taggrafana_get_dashboard- Get a dashboard by UIDgrafana_list_datasources- List all configured data sourcesgrafana_get_datasource- Get data source details by namegrafana_list_folders- List all dashboard foldersgrafana_get_alert_rules- Get all alert rulesgrafana_get_annotations- Get annotations within a time rangegrafana_get_org- Get current organization info
=== Loki (7 tools) Log aggregation and querying:
loki_query- Execute an instant LogQL queryloki_query_range- Execute a range LogQL queryloki_labels- List all label namesloki_label_values- List values for a specific labelloki_series- List log streams matching a selectorloki_tail- Get recent logs (snapshot of tail)loki_index_stats- Get index statistics
=== Jaeger (5 tools) Distributed tracing:
jaeger_services- List all services in Jaegerjaeger_traces- Get traces for a servicejaeger_trace- Get a specific trace by IDjaeger_operations- Get operations for a servicejaeger_dependencies- Get service dependency graph
== Requirements
- https://deno.land/[Deno] runtime
- https://prometheus.io/[Prometheus] (for metrics tools)
- https://grafana.com/[Grafana] (for dashboard tools)
- https://grafana.com/oss/loki/[Loki] (for log tools)
- https://www.jaegertracing.io/[Jaeger] (for tracing tools)
== Configuration
=== Prometheus
[source,bash]
export PROMETHEUS_URL=http://localhost:9090
=== Grafana
[source,bash]
export GRAFANA_URL=http://localhost:3000 export GRAFANA_API_KEY=your-api-key
=== Loki
[source,bash]
export LOKI_URL=http://localhost:3100
=== Jaeger
[source,bash]
export JAEGER_URL=http://localhost:16686
== Installation
[source,bash]
git clone https://github.com/hyperpolymath/poly-observability-mcp cd poly-observability-mcp deno cache main.js
NOTE: This project uses Deno with npm: specifiers. No npm install required.
== Usage
Run as MCP server:
[source,bash]
deno run --allow-read --allow-env --allow-net main.js
Or use the systemd service:
[source,bash]
systemctl --user enable poly-observability-mcp systemctl --user start poly-observability-mcp
== Use Cases
- Query application metrics and performance data
- Search and analyze logs across services
- Trace requests through distributed systems
- Monitor and manage Grafana dashboards
- Investigate incidents using correlated telemetry
== License
MIT
== OPSM Link
[source]
OPSM Core | v poly-observability-mcp (observability telemetry for OPSM)