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 中的用户 |
用法
- 在 Grafana 中创建一个服务帐号,并赋予其足够的权限来使用您想要的工具,生成服务帐号令牌,并将其复制到剪贴板以便在配置文件中使用。有关详细信息,请参阅Grafana 文档。
- 从发布页面下载
mcp-grafana
的最新版本并将其放在您的$PATH
中。如果您已经安装了 Go 工具链,您也可以从源代码构建并安装它,使用GOBIN
环境变量指定二进制文件的安装目录。该目录也应该在您的PATH
中。Copy - 将服务器配置添加到客户端配置文件中。例如,对于 Claude Desktop:Copy
注意:如果您在 Claude Desktop 中看到
Error: spawn mcp-grafana ENOENT
,则需要指定mcp-grafana
的完整路径。
调试模式
您可以通过在命令中添加-debug
标志来启用 Grafana 传输的调试模式。这将提供 MCP 服务器和 Grafana API 之间 HTTP 请求和响应的详细日志记录,这有助于故障排除。
要将调试模式与 Claude Desktop 配置一起使用,请按如下方式更新您的配置:
发展
欢迎贡献代码!如果您有任何建议或改进,请提交 issue 或 pull request。
该项目使用 Go 语言编写。请按照您平台的说明安装 Go。
要运行服务器,请使用:
你也可以使用 Docker 内部的 SSE 传输来运行服务器。要构建镜像,请使用
要运行图像,请使用:
测试
有三种类型的测试可用:
- 单元测试(无需外部依赖):
您还可以使用以下方式运行单元测试:
- 集成测试(需要 Docker 容器启动并运行):
- 云测试(需要云 Grafana 实例和凭证):
注意:云测试会在 CI 中自动配置。对于本地开发,您需要设置自己的 Grafana Cloud 实例和凭据。
更全面的集成测试需要在端口 3000 上本地运行 Grafana 实例;您可以使用 Docker Compose 启动一个实例:
集成测试可以通过以下方式运行:
如果您要添加更多工具,请为其添加集成测试。现有的测试应该是一个很好的起点。
代码检查
要检查代码,请运行:
这包含一个自定义的 linter,用于检查jsonschema
结构体标签中未转义的逗号。 description
字段中的逗号必须使用\\,
以防止静默截断。您可以使用以下命令运行此 linter:
有关更多详细信息,请参阅JSONSchema Linter 文档。
执照
该项目采用Apache 许可证 2.0 版授权。