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 。
工具
工具 | 类别 | 描述 |
| 行政 | 列出所有球队 |
| 搜索 | 搜索仪表板 |
| 仪表板 | 通过 uid 获取仪表板 |
| 仪表板 | 更新或创建新的仪表板 |
| 仪表板 | 从仪表板获取面板标题、查询、数据源 UID 和类型 |
| 数据源 | 列出数据源 |
| 数据源 | 通过 uid 获取数据源 |
| 数据源 | 通过名称获取数据源 |
| 普罗米修斯 | 针对 Prometheus 数据源执行查询 |
| 普罗米修斯 | 列出指标元数据 |
| 普罗米修斯 | 列出可用的指标名称 |
| 普罗米修斯 | 列出与选择器匹配的标签名称 |
| 普罗米修斯 | 列出特定标签的值 |
| 事件 | 列出 Grafana 事件中的事件 |
| 事件 | 在 Grafana 事件中创建事件 |
| 事件 | 在 Grafana 事件中向事件添加活动项 |
| 事件 | 解决 Grafana 中的事件 |
| 洛基 | 使用 LogQL 查询和检索日志(日志或指标查询) |
| 洛基 | 列出日志中所有可用的标签名称 |
| 洛基 | 列出特定日志标签的值 |
| 洛基 | 获取有关日志流的统计信息 |
| 警报 | 列出警报规则 |
| 警报 | 通过UID获取报警规则 |
| 值班 | 列出 Grafana OnCall 的时间表 |
| 值班 | 获取特定 OnCall 班次的详细信息 |
| 值班 | 获取当前按特定时间表值班的用户 |
| 值班 | 列出 Grafana OnCall 中的团队 |
| 值班 | 列出 Grafana OnCall 中的用户 |
| 筛 | 通过 UUID 检索现有的 Sift 调查 |
| 筛 | 从 Sift 调查中检索特定分析 |
| 筛 | 检索具有可选限制的 Sift 调查列表 |
| 筛 | 在 Loki 日志中查找升高的错误模式。 |
| 筛 | 从相关节奏数据源中查找慢速请求。 |
Related MCP server: MCP Server
用法
在 Grafana 中创建一个服务帐号,并赋予其足够的权限来使用您想要的工具,生成服务帐号令牌,并将其复制到剪贴板以便在配置文件中使用。有关详细信息,请参阅Grafana 文档。
您有几种安装
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
将服务器配置添加到客户端配置文件中。例如,对于 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包含:
调试模式
您可以通过在命令中添加-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 版授权。