An open API service indexing awesome lists of open source software.

https://github.com/hyperpolymath/poly-observability-mcp

Unified MCP server for observability and monitoring. Tools for Prometheus, Grafana, Loki, and Jaeger.
https://github.com/hyperpolymath/poly-observability-mcp

analytics automation deno grafana jaeger loki mcp mcp-server metrics model-context-protocol monitoring my-coolest-projects observability operations orchestration poly-mcp prometheus telemetry

Last synced: 2 months ago
JSON representation

Unified MCP server for observability and monitoring. Tools for Prometheus, Grafana, Loki, and Jaeger.

Awesome Lists containing this project

README

          

= 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:[License,link="https://github.com/hyperpolymath/palimpsest-license"]

// SPDX-License-Identifier: PMPL-1.0
// 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 query
* `prometheus_query_range` - Execute a range PromQL query
* `prometheus_series` - List time series matching a selector
* `prometheus_labels` - List all label names
* `prometheus_label_values` - List values for a specific label
* `prometheus_targets` - Get current scrape targets and their status
* `prometheus_alerts` - Get current active alerts
* `prometheus_rules` - Get alerting and recording rules

=== Grafana (8 tools)
Dashboard and visualization management:

* `grafana_search_dashboards` - Search for dashboards by name or tag
* `grafana_get_dashboard` - Get a dashboard by UID
* `grafana_list_datasources` - List all configured data sources
* `grafana_get_datasource` - Get data source details by name
* `grafana_list_folders` - List all dashboard folders
* `grafana_get_alert_rules` - Get all alert rules
* `grafana_get_annotations` - Get annotations within a time range
* `grafana_get_org` - Get current organization info

=== Loki (7 tools)
Log aggregation and querying:

* `loki_query` - Execute an instant LogQL query
* `loki_query_range` - Execute a range LogQL query
* `loki_labels` - List all label names
* `loki_label_values` - List values for a specific label
* `loki_series` - List log streams matching a selector
* `loki_tail` - Get recent logs (snapshot of tail)
* `loki_index_stats` - Get index statistics

=== Jaeger (5 tools)
Distributed tracing:

* `jaeger_services` - List all services in Jaeger
* `jaeger_traces` - Get traces for a service
* `jaeger_trace` - Get a specific trace by ID
* `jaeger_operations` - Get operations for a service
* `jaeger_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