Skip to main content
Glama

Grafana

Official
by grafana

Grafana MCP 服务器

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

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

特征

  • [x] 搜索仪表板

  • [x] 仪表板

    • [x] 通过 UID 获取仪表板

    • [x] 更新或创建仪表板(免责声明:使用上下文窗口时请小心。详情请参阅https://github.com/grafana/mcp-grafana/issues/101

    • [x] 从仪表板中的每个面板获取标题、查询字符串和数据源信息(包括 UID 和类型,如果可用)

  • [x] 列出并获取数据源信息

  • [ ] 查询数据源

    • [x] 普罗米修斯

    • [x] 洛基

      • [x] 日志查询

      • [x] 指标查询

    • [ ] 节奏

    • [ ] 火象仪

  • [x] 查询 Prometheus 元数据

    • [x] 指标元数据

    • [x] 指标名称

    • [x] 标签名称

    • [x] 标签值

  • [x] 查询 Loki 元数据

    • [x] 标签名称

    • [x] 标签值

    • [x] 统计数据

  • [x] 搜索、创建、更新和关闭事件

  • [x] 开始 Sift 调查并查看结果

    • [x] 创建调查

    • [x] 列出具有限制参数的调查

    • [x] 开始调查

    • [x] 获取分析

    • [x] 使用 Sift 查找日志中的错误模式

    • [x] 使用 Sift 查找慢速请求

    • [ ] 在其他 Sift Checks 上添加工具

  • [ ] 警报

    • [x] 列出并获取警报规则信息

    • [x] 获取警报规则状态(触发/正常/错误/等)

    • [ ] 创建和更改警报规则

    • [x] 列出联系方式

    • [ ] 创建和更改接触点

  • [x] 访问 Grafana OnCall 功能

    • [x] 列出并管理日程安排

    • [x] 获取班次详情

    • [x] 获取当前值班用户

    • [x] 列出团队和用户

    • [ ] 列出警报组

  • [x] 管理功能

    • [ ] 列出用户

    • [x] 列出球队

    • [ ] 列出角色

    • [ ] 列出角色分配

    • [ ] 调试角色分配

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

工具

工具

类别

描述

list_teams

行政

列出所有球队

search_dashboards

搜索

搜索仪表板

get_dashboard_by_uid

仪表板

通过 uid 获取仪表板

update_dashboard

仪表板

更新或创建新的仪表板

get_dashboard_panel_queries

仪表板

从仪表板获取面板标题、查询、数据源 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 中的用户

get_investigation

通过 UUID 检索现有的 Sift 调查

get_analysis

从 Sift 调查中检索特定分析

list_investigations

检索具有可选限制的 Sift 调查列表

find_error_pattern_logs

在 Loki 日志中查找升高的错误模式。

find_slow_requests

从相关节奏数据源中查找慢速请求。

Related MCP server: MCP Server

用法

  1. 在 Grafana 中创建一个服务帐号,并赋予其足够的权限来使用您想要的工具,生成服务帐号令牌,并将其复制到剪贴板以便在配置文件中使用。有关详细信息,请参阅Grafana 文档

  2. 您有几种安装mcp-grafana选项:

    • Docker 镜像:使用 Docker Hub 中预先构建的 Docker 镜像:

      docker pull mcp/grafana docker run -p 8000:8000 -e GRAFANA_URL=http://localhost:3000 -e GRAFANA_API_KEY=<your service account token> mcp/grafana
    • 下载二进制文件:从发布页面下载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>" } } } }

    如果使用 Docker:

    { "mcpServers": { "grafana": { "command": "docker", "args": [ "run", "--rm", "-p", "8000:8000", "-e", "GRAFANA_URL", "-e", "GRAFANA_API_KEY", "mcp/grafana" ], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }

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

使用 VSCode 和远程 MCP 服务器

确保您的.vscode/settings.json包含:

"mcp": { "servers": { "grafana": { "type": "sse", "url": "http://localhost:8000/sse" } } }

调试模式

您可以通过在命令中添加-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>" } } } }

如果使用 Docker:

{ "mcpServers": { "grafana": { "command": "docker", "args": [ "run", "--rm", "-p", "8000:8000", "-e", "GRAFANA_URL", "-e", "GRAFANA_API_KEY", "mcp/grafana", "-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
-
license - not tested
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/grafana/mcp-grafana'

If you have feedback or need assistance with the MCP directory API, please join our Discord server