Grafana

Official

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides access to Grafana dashboards, data sources, and ecosystem tools, enabling search and retrieval of dashboards, querying of data sources (Prometheus, Loki), incident management, alerting capabilities, and OnCall functionality.

  • Allows querying Prometheus data sources, retrieving metric metadata, listing metric names, and exploring label names and values to analyze time series data.

Grafana MCP 服务器

Grafana 的模型上下文协议(MCP) 服务器。

这可以访问您的 Grafana 实例和周围的生态系统。

特征

  • [x] 搜索仪表板
  • [x] 通过 UID 获取仪表板
  • [x] 列出并获取数据源信息
  • [ ] 查询数据源
    • [x] 普罗米修斯
    • [x] 洛基
      • [x] 日志查询
      • [x] 指标查询
    • [ ] 节奏
    • [ ] 火象仪
  • [x] 查询 Prometheus 元数据
    • [x] 指标元数据
    • [x] 指标名称
    • [x] 标签名称
    • [x] 标签值
  • [x] 查询 Loki 元数据
    • [x] 标签名称
    • [x] 标签值
    • [x] 统计数据
  • [x] 搜索、创建、更新和关闭事件
  • [ ] 开始 Sift 调查并查看结果
  • [ ] 警报
    • [x] 列出并获取警报规则信息
    • [x] 获取警报规则状态(触发/正常/错误/等)
    • [ ] 创建和更改警报规则
    • [x] 列出联系方式
    • [ ] 创建和更改接触点
  • [x] 访问 Grafana OnCall 功能
    • [x] 列出并管理日程安排
    • [x] 获取班次详情
    • [x] 获取当前值班用户
    • [x] 列出团队和用户
    • [ ] 列出警报组

工具列表是可配置的,因此您可以选择要向 MCP 客户端提供的工具。如果您不使用某些功能,或者不想占用太多上下文窗口空间,此功能非常有用。要禁用某个类别的工具,请在启动服务器时使用--disable-<category>标志。例如,要禁用 OnCall 工具,请使用--disable-oncall

工具

工具类别描述
search_dashboards搜索搜索仪表板
get_dashboard_by_uid仪表板通过 uid 获取仪表板
list_datasources数据源列出数据源
get_datasource_by_uid数据源通过 uid 获取数据源
get_datasource_by_name数据源通过名称获取数据源
query_prometheus普罗米修斯针对 Prometheus 数据源执行查询
list_prometheus_metric_metadata普罗米修斯列出指标元数据
list_prometheus_metric_names普罗米修斯列出可用的指标名称
list_prometheus_label_names普罗米修斯列出与选择器匹配的标签名称
list_prometheus_label_values普罗米修斯列出特定标签的值
list_incidents事件列出 Grafana 事件中的事件
create_incident事件在 Grafana 事件中创建事件
add_activity_to_incident事件在 Grafana 事件中向事件添加活动项
resolve_incident事件解决 Grafana 中的事件
query_loki_logs洛基使用 LogQL 查询和检索日志(日志或指标查询)
list_loki_label_names洛基列出日志中所有可用的标签名称
list_loki_label_values洛基列出特定日志标签的值
query_loki_stats洛基获取有关日志流的统计信息
list_alert_rules警报列出警报规则
get_alert_rule_by_uid警报通过UID获取报警规则
list_oncall_schedules值班列出 Grafana OnCall 的时间表
get_oncall_shift值班获取特定 OnCall 班次的详细信息
get_current_oncall_users值班获取当前按特定时间表值班的用户
list_oncall_teams值班列出 Grafana OnCall 中的团队
list_oncall_users值班列出 Grafana OnCall 中的用户

用法

  1. 在 Grafana 中创建一个服务帐号,并赋予其足够的权限来使用您想要的工具,生成服务帐号令牌,并将其复制到剪贴板以便在配置文件中使用。有关详细信息,请参阅Grafana 文档
  2. 发布页面下载mcp-grafana的最新版本并将其放在您的$PATH中。如果您已经安装了 Go 工具链,您也可以从源代码构建并安装它,使用GOBIN环境变量指定二进制文件的安装目录。该目录也应该在您的PATH中。
    GOBIN="$HOME/go/bin" go install github.com/grafana/mcp-grafana/cmd/mcp-grafana@latest
  3. 将服务器配置添加到客户端配置文件中。例如,对于 Claude Desktop:
    { "mcpServers": { "grafana": { "command": "mcp-grafana", "args": [], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }

注意:如果您在 Claude Desktop 中看到Error: spawn mcp-grafana ENOENT ,则需要指定mcp-grafana的完整路径。

调试模式

您可以通过在命令中添加-debug标志来启用 Grafana 传输的调试模式。这将提供 MCP 服务器和 Grafana API 之间 HTTP 请求和响应的详细日志记录,这有助于故障排除。

要将调试模式与 Claude Desktop 配置一起使用,请按如下方式更新您的配置:

{ "mcpServers": { "grafana": { "command": "mcp-grafana", "args": ["-debug"], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }

发展

欢迎贡献代码!如果您有任何建议或改进,请提交 issue 或 pull request。

该项目使用 Go 语言编写。请按照您平台的说明安装 Go。

要运行服务器,请使用:

make run

你也可以使用 Docker 内部的 SSE 传输来运行服务器。要构建镜像,请使用

make build-image

要运行图像,请使用:

docker run -it --rm -p 8000:8000 mcp-grafana:latest

测试

有三种类型的测试可用:

  1. 单元测试(无需外部依赖):
make test-unit

您还可以使用以下方式运行单元测试:

make test
  1. 集成测试(需要 Docker 容器启动并运行):
make test-integration
  1. 云测试(需要云 Grafana 实例和凭证):
make test-cloud

注意:云测试会在 CI 中自动配置。对于本地开发,您需要设置自己的 Grafana Cloud 实例和凭据。

更全面的集成测试需要在端口 3000 上本地运行 Grafana 实例;您可以使用 Docker Compose 启动一个实例:

docker-compose up -d

集成测试可以通过以下方式运行:

make test-all

如果您要添加更多工具,请为其添加集成测试。现有的测试应该是一个很好的起点。

代码检查

要检查代码,请运行:

make lint

这包含一个自定义的 linter,用于检查jsonschema结构体标签中未转义的逗号。 description字段中的逗号必须使用\\,以防止静默截断。您可以使用以下命令运行此 linter:

make lint-jsonschema

有关更多详细信息,请参阅JSONSchema Linter 文档

执照

该项目采用Apache 许可证 2.0 版授权。

-
security - not tested
A
license - permissive license
-
quality - not tested

Grafana 的模型上下文协议 (MCP) 服务器。

这可以访问您的 Grafana 实例和周围的生态系统。

  1. Features
    1. Tools
  2. Usage
    1. Debug Mode
  3. Development
    1. Testing
    2. Linting
  4. License
    ID: s29pkmp7d9