observability-mcp

observability-mcp

MCP server that enables AI assistants to query Grafana/Loki logs and Thanos/Prometheus metrics directly from MCP-compatible clients like Cursor or Claude Desktop.

Category
访问服务器

README

observability-mcp

MCP (Model Context Protocol) servers that let AI assistants query your observability stack — Grafana/Loki for logs and Thanos/Prometheus for metrics — directly from Cursor, Claude Desktop, or any MCP-compatible client.

Packages

Package Entry-point What it does
grafana_mcp grafana-mcp Query Loki logs via Grafana datasource proxy
thanos_mcp thanos-mcp Query Prometheus/Thanos metrics (PromQL)
observability_mcp observability-mcp Combined server — all tools in one connection

Requirements

  • Python 3.10+
  • Access to a running Grafana instance (for grafana_mcp)
  • Access to a Thanos or Prometheus instance (for thanos_mcp)

Installation

From GitHub (recommended)

Install directly from the repo without cloning:

pip install "observability-mcp @ git+https://github.com/ThainaJardim/observability-mcp.git"

# With browser-cookie support for Grafana SSO:
pip install "observability-mcp[browser-cookie] @ git+https://github.com/ThainaJardim/observability-mcp.git"

After installation, the grafana-mcp, thanos-mcp, and observability-mcp commands are available.

From source (local clone)

git clone https://github.com/ThainaJardim/observability-mcp.git
cd observability-mcp

pip install .

# For automatic Grafana SSO login via browser cookies (macOS/Linux):
pip install ".[browser-cookie]"

Quick start

Grafana / Loki

export GRAFANA_URL=https://grafana.example.com
export LOKI_DATASOURCE_ID=1          # numeric datasource ID in Grafana
export OIDC_ISSUER=https://keycloak.example.com/auth/realms/myrealm

grafana-mcp

Thanos / Prometheus

export THANOS_URL=https://thanos.example.com
export OIDC_ISSUER=https://keycloak.example.com/auth/realms/myrealm

thanos-mcp

Combined (both in one server)

# Set all env vars from above, then:
observability-mcp

Authentication

Grafana MCP

Auth mode is auto-detected from environment variables (or forced with GRAFANA_AUTH_MODE):

Mode How it works Variables needed
browser-cookie (default) Reads Keycloak SSO cookies from Chrome, follows the Grafana OAuth flow automatically, caches grafana_session locally OIDC_ISSUER, GRAFANA_URL
token Grafana service-account token GRAFANA_BEARER_TOKEN
cookie Static grafana_session cookie GRAFANA_SESSION_COOKIE
kubeconfig OIDC id-token from kubectl kubeconfig OIDC_ISSUER

browser-cookie mode requires browser-cookie3 (pip install ".[browser-cookie]"). On first use it reads Chrome's cookie store — you may be prompted to allow macOS Keychain access. You must be logged into Grafana in Chrome at least once.

Thanos MCP

Auth mode is auto-detected (or forced with THANOS_AUTH_MODE):

Mode How it works Variables needed
kubeconfig (default) OIDC id-token from kubectl kubeconfig, auto-refreshed OIDC_ISSUER, kubectl on PATH
token Static Bearer token THANOS_ACCESS_TOKEN
cookie oauth2-proxy session cookie THANOS_SESSION_COOKIE

Cursor MCP configuration

Create or edit .cursor/mcp.json in your project:

{
  "mcpServers": {
    "grafana": {
      "command": "python",
      "args": ["-m", "grafana_mcp.server"],
      "env": {
        "GRAFANA_URL": "https://grafana.example.com",
        "LOKI_DATASOURCE_ID": "1",
        "OIDC_ISSUER": "https://keycloak.example.com/auth/realms/myrealm",
        "PATH": "/usr/local/bin:/usr/bin:/bin"
      }
    },
    "thanos": {
      "command": "python",
      "args": ["-m", "thanos_mcp.server"],
      "env": {
        "THANOS_URL": "https://thanos.example.com",
        "OIDC_ISSUER": "https://keycloak.example.com/auth/realms/myrealm",
        "PATH": "/usr/local/bin:/usr/bin:/bin"
      }
    }
  }
}

Tip: Use an absolute Python interpreter path (e.g. /usr/local/bin/python3) if Cursor cannot find python in its PATH.

Combined server (one entry)

{
  "mcpServers": {
    "observability": {
      "command": "python",
      "args": ["-m", "observability_mcp.server"],
      "env": {
        "GRAFANA_URL": "https://grafana.example.com",
        "LOKI_DATASOURCE_ID": "1",
        "THANOS_URL": "https://thanos.example.com",
        "OIDC_ISSUER": "https://keycloak.example.com/auth/realms/myrealm",
        "PATH": "/usr/local/bin:/usr/bin:/bin"
      }
    }
  }
}

Available MCP tools

Grafana/Loki tools (grafana_mcp)

Tool Description
query_loki_logs Run a LogQL range query and return matching log streams
query_loki_instant Run a LogQL instant query
list_loki_labels List all available Loki label names
list_loki_label_values List values for a specific Loki label

Thanos/Prometheus tools (thanos_mcp)

Tool Description
query_metrics Run an instant PromQL query
query_metrics_range Run a PromQL range query
list_labels List all metric label names
list_series List time-series matching a selector

Development

# Install in editable mode with dev extras
pip install -e ".[dev,browser-cookie]"

# Run tests
pytest

# Run a specific server locally
python -m grafana_mcp.server
python -m thanos_mcp.server
python -m observability_mcp.server

Environment variable reference

Variable Default Description
GRAFANA_URL (required) Grafana base URL
LOKI_DATASOURCE_ID (required) Numeric Loki datasource ID in Grafana
GRAFANA_AUTH_MODE auto Force Grafana auth mode
GRAFANA_BEARER_TOKEN — Grafana service-account token
GRAFANA_SESSION_COOKIE — grafana_session cookie value
GRAFANA_SESSION_CACHE ~/.cache/grafana-mcp/session.json Path to session cache file
THANOS_URL (required) Thanos/Prometheus base URL
THANOS_AUTH_MODE auto Force Thanos auth mode
THANOS_ACCESS_TOKEN — Static Bearer token
THANOS_SESSION_COOKIE — oauth2-proxy cookie value
OIDC_ISSUER — OIDC issuer URL (Keycloak realm URL)
REQUEST_TIMEOUT_SECONDS 30 HTTP timeout for all requests
LOG_LEVEL INFO Logging level

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选