Grafana自助托管服务器

一个自助托管的Grafana服务器,通过环境变量配置并设计用于Docker部署,支持多种数据源查询和监控功能。

  • by Pyda-AI
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 Pyda-AI/mcp-grafana-self-host

使用说明

MCP Grafana自托管服务器

自托管 模型上下文协议 Grafana的(MCP)服务器,通过环境变量配置,专为Docker部署而设计。

可用工具

类别 工具 描述
搜索 search_dashboards 按查询字符串搜索仪表板
search_folders 按查询字符串搜索文件夹
数据来源 list_datasources 列出可用数据源,可选择按类型筛选
get_datasource_by_uid 按UID获取数据源详细信息
get_datasource_by_name 按名称获取数据源详细信息
仪表盘 get_dashboard_by_uid 按UID获取完整的仪表板JSON
get_dashboard_summary 获取紧凑型仪表板概览(推荐)
get_dashboard_property 通过JSONPath提取特定数据
get_dashboard_panel_queries 从仪表板获取所有面板查询
普罗米修斯 query_prometheus 执行PromQL查询(即时或范围)
list_prometheus_metric_names 使用正则表达式过滤列出度量名称
list_prometheus_metric_metadata 获取度量元数据
list_prometheus_label_names 列出标签名称
list_prometheus_label_values 获取特定标签的值
洛基 query_loki_logs 执行LogQL查询
query_loki_stats 获取选择器的流统计信息
list_loki_label_names 列出可用标签名称
list_loki_label_values 获取特定标签的值
节奏 search_tempo_traces 按服务、跨度、标签、持续时间搜索跟踪
get_tempo_trace 通过跟踪ID获取完整跟踪
query_tempo_traceql 执行TraceQL查询
list_tempo_tag_names 列出可用标签名称
list_tempo_tag_values 获取特定标记的值
告警 list_alert_rules 列出带有状态和标签的警报规则
get_alert_rule_by_uid 获取完整的警报规则配置
list_contact_points 列出通知联系人
list_alert_groups 列出IRM警报组
get_alert_group 获取警报组详细信息
事件 list_incidents 列出事件(活动、已解决、演习)
get_incident 按ID获取事件详细信息
随时待命 list_oncall_schedules 列出OnCall计划
get_oncall_shift 获取班次详细信息
get_current_oncall_users 获取当前处于通话状态的用户
list_oncall_teams 列出OnCall团队
list_oncall_users 列出OnCall用户
筛选 list_sift_investigations 列出筛选调查
get_sift_investigation 通过UUID获取调查
get_sift_analysis 从调查中获得具体分析
管理员 list_teams 搜索团队
list_users_by_org 列出当前组织中的用户
导航 generate_deeplink 为仪表板、面板、浏览生成URL
注释 get_annotations 使用过滤器获取注释
get_annotation_tags 获取注释标签

需求

  • Grafana 9.0或更高版本 实现完整功能
  • Docker(推荐)或Go 1.24+
  • 具有适当权限的Grafana服务帐户令牌

配置

所需的环境变量

变量 描述
GRAFANA_URL Grafana实例的URL
GRAFANA_SERVICE_ACCOUNT_TOKEN 用于身份验证的Grafana服务帐户令牌
MCP_AUTH_TOKEN MCP客户端身份验证的承载令牌

可选环境变量

变量 默认值 描述
MCP_SERVER_PORT 8443 MCP服务器的端口
MCP_LOG_LEVEL info 日志级别:调试、信息、警告、错误

TLS客户端配置(用于连接Grafana)

变量 描述
MCP_TLS_CERT_FILE 客户端身份验证的TLS证书文件路径
MCP_TLS_KEY_FILE 客户端身份验证的TLS私钥文件路径
MCP_TLS_CA_FILE 用于服务器验证的TLS CA证书文件的路径

TLS服务器配置(适用于HTTPS服务器)

变量 描述
MCP_SERVER_TLS_CERT_FILE HTTPS服务器的TLS证书文件路径
MCP_SERVER_TLS_KEY_FILE HTTPS服务器的TLS私钥文件路径

认证

MCP客户端必须包括 MCP_AUTH_TOKEN 在 Authorization 头球

Authorization: Bearer <your-mcp-auth-token>

注: 这 /healthz 端点是公共的,不需要身份验证。

健康检查

curl http://localhost:8443/healthz
# Response: ok (200 OK)

发展

启动服务器

docker-compose up -d --build grafana-mcp-server

停止服务器

docker-compose down

重新启动服务器

docker-compose restart grafana-mcp-server

查看日志

docker-compose logs -f grafana-mcp-server

许可证

该项目根据 Apache许可证,版本2.0.