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 | 筛 | 从相关节奏数据源中查找慢速请求。 |
用法
- 在 Grafana 中创建一个服务帐号,并赋予其足够的权限来使用您想要的工具,生成服务帐号令牌,并将其复制到剪贴板以便在配置文件中使用。有关详细信息,请参阅Grafana 文档。
- 您有几种安装
mcp-grafana
选项:- Docker 镜像:使用 Docker Hub 中预先构建的 Docker 镜像:
- 下载二进制文件:从发布页面下载
mcp-grafana
的最新版本并将其放在您的$PATH
中。 - 从源代码构建:如果您已经安装了 Go 工具链,您也可以从源代码构建和安装它,使用
GOBIN
环境变量指定二进制文件的安装目录。该目录也应该在您的PATH
中。
- Docker 镜像:使用 Docker Hub 中预先构建的 Docker 镜像:
- 将服务器配置添加到客户端配置文件中。例如,对于 Claude Desktop:如果使用二进制文件:如果使用 Docker:
注意:如果您在 Claude Desktop 中看到
Error: spawn mcp-grafana ENOENT
,则需要指定mcp-grafana
的完整路径。
使用 VSCode 和远程 MCP 服务器
确保您的.vscode/settings.json
包含:
调试模式
您可以通过在命令中添加-debug
���志来启用 Grafana 传输的调试模式。这将提供 MCP 服务器和 Grafana API 之间 HTTP 请求和响应的详细日志记录,这有助于故障排除。
要将调试模式与 Claude Desktop 配置一起使用,请按如下方式更新您的配置:
如果使用二进制文件:
如果使用 Docker:
发展
欢迎贡献代码!如果您有任何建议或改进,请提交 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 版授权。
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Grafana 的模型上下文协议 (MCP) 服务器。
这可以访问您的 Grafana 实例和周围的生态系统。
Related MCP Servers
- AsecurityFlicenseAqualityA Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.Last updated -88427JavaScript
- AsecurityAlicenseAqualityA beginner-friendly Model Context Protocol (MCP) server that helps users understand MCP concepts, provides interactive examples, and lists available MCP servers. This server is designed to be a helpful companion for developers working with MCP. Also comes with a huge list of servers you can install.Last updated -3936JavaScriptApache 2.0
- -securityAlicense-qualityMCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.Last updated -43TypeScriptMIT License
- -securityAlicense-qualityMCP Server provides a simpler API to interact with the Model Context Protocol by allowing users to define custom tools and services to streamline workflows and processes.Last updated -132TypeScriptMIT License