使用说明
Grafana MCP服务器
可用工具
以下工具可通过MCP服务器获得:
- test_连接:验证与Grafana实例和配置的连接。
- grafana_promql_query:对Grafana的Prometheus数据源执行PromQL查询。使用PromQL表达式获取指标数据,优化时间序列响应以减少令牌大小。
- grafanaloki_query:向Grafana Loki查询日志数据。获取指定持续时间(例如“5m”、“1h”、“2d”)的日志,将相对时间转换为绝对时间戳。
- grafana_get-dashboard_config:从数据库中检索仪表板配置详细信息。查询connectors_connectors元数据模型存储表以获取仪表板元数据。
- grafana_query_dashboard_panels:执行特定仪表板面板的查询。一次最多可以查询4个面板,支持模板变量,优化指标数据。
- grafana_fetch_label_values:从Prometheus数据源获取仪表板变量的标签值。检索特定标签的可用值(例如,“实例”、“作业”)。支持可选的度量过滤。
- grafana_fetch_dashboard_变量:从Grafana仪表板获取所有变量及其值。检索仪表板模板变量及其当前值。
- grafana_etch_all_dashboards:从Grafana获取所有仪表板,包括标题、UID、文件夹、标签等基本信息。
- grafana_fetch_数据来源:从Grafana获取所有数据源及其配置详细信息。
- grafana_fetch_folders:从Grafana获取所有文件夹及其元数据和权限。
🚀 使用和要求
1.获取您的Grafana API端点和服务帐户令牌
- 确保您有一个正在运行的Grafana实例(自托管或云)。
- 从Grafana UI生成服务帐户令牌:
- 创建服务帐户:在Grafana仪表板中,导航到管理>>用户和访问>>服务帐户>>创建具有查看器权限的服务帐户
- 生成服务帐户密钥:在服务帐户中,创建一个新的服务帐户令牌。
- 复制服务帐户令牌(以开头
glsa_)
2.安装和运行选项
2A。安装并运行uv(建议用于本地开发)
2A.1。使用uv安装依赖项
uv venv .venv
source .venv/bin/activate
uv sync
2A.2。使用uv运行服务器
uv run -m src.grafana_mcp_server.mcp_server
- 您还可以使用
uv根据需要运行任何其他入口点脚本。 - 确保你的
config.yaml与位于同一目录中mcp_server.py或设置所需的环境变量(请参阅配置部分)。
2B。使用Docker Compose运行(推荐用于生产/容器化环境)
- 编辑
grafana-mcp-server/src/grafana_mcp_server/config.yaml使用您的Grafana详细信息(主机,API密钥)。 - 启动服务器:
docker compose up -d- 默认情况下,服务器将在端口8000上以HTTP(SSE)模式运行。
- 您可以使用环境变量覆盖配置(见下文)。
3.配置
服务器按照以下优先级顺序加载配置:
- 环境变量 (推荐用于Docker/CI):
GRAFANA_HOST:Grafana实例URL(例如。https://your-grafana-instance.com)GRAFANA_API_KEY:Grafana服务帐户令牌(必填)GRAFANA_SSL_VERIFY:true或false(默认值:true)MCP_SERVER_PORT:运行服务器的端口(默认值:8000)MCP_SERVER_DEBUG:true或false(默认值:true)
- YAML文件回退 (
config.yaml):grafana: host: "https://your-grafana-instance.com" api_key: "your-grafana-api-key-here" ssl_verify: "true" server: port: 8000 debug: true
4.与人工智能助手(如Claude Desktop、Cursor)集成
您可以将此MCP服务器与支持MCP协议的任何工具集成。以下是主要选项:
4A。使用Docker(带环境变量)
{
"mcpServers": {
"grafana": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"GRAFANA_HOST",
"-e",
"GRAFANA_API_KEY",
"-e",
"GRAFANA_SSL_VERIFY",
"drdroidlab/grafana-mcp-server",
"-t",
"stdio"
],
"env": {
"GRAFANA_HOST": "https://your-grafana-instance.com",
"GRAFANA_API_KEY": "your-grafana-api-key-here",
"GRAFANA_SSL_VERIFY": "true"
}
}
}
}
- 这
-t stdio为了与Docker MCP客户端兼容,支持该参数(强制stdio握手模式)。 - 根据部署需要调整卷路径或环境变量。
4B。连接到已运行的MCP服务器(HTTP/SSE)
如果你已经有一个MCP服务器在运行(例如,在远程主机、云VM或Kubernetes上),你可以将你的AI助手或工具直接连接到它的HTTP端点。
{
"mcpServers": {
"grafana": {
"url": "http://your-server-host:8000/mcp"
}
}
}
- 替换
your-server-host使用您的MCP服务器运行的实际主机。 - 对于本地设置,请使用
localhost作为服务器主机(即。,http://localhost:8000/mcp). - 使用
http用于本地或不安全的部署,以及https用于生产或安全部署。 - 确保服务器可以从您的客户端计算机访问(检查防火墙、安全组等)。
健康检查
curl http://localhost:8000/health
默认情况下,服务器在端口8000上运行。
5.项目结构
grafana-mcp-server/
│ └── src/
│ └── grafana_mcp_server/
│ ├── __init__.py
│ ├── config.yaml # Configuration file
│ ├── mcp_server.py # Main MCP server implementation
│ ├── stdio_server.py # STDIO server for MCP
│ └── processor/
│ ├── __init__.py
│ ├── grafana_processor.py # Grafana API processor
│ └── processor.py # Base processor interface
├── tests/
├── Dockerfile
├── docker-compose.yml
├── pyproject.toml
└── README.md
6.故障排除
常见问题
-
连接失败:
- 验证您的Grafana实例是否正在运行且可访问
- 检查您的API密钥是否具有正确的权限
- 确保SSL验证设置与您的设置匹配
-
身份验证错误:
- 验证您的API密钥是否正确且未过期
- 检查您的Grafana实例是否需要额外的身份验证
-
查询失败:
- 确保数据源UID正确
- 验证PromQL/Loki查询语法
- 检查数据源是否可以使用API密钥访问
调试模式
启用调试模式以获取更详细的日志:
export MCP_SERVER_DEBUG=true
7.贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
8.许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
9.支持
- 需要帮忙吗?加入我们 不和谐频道 以及#mcp频道上的消息。
- 想要一键式MCP服务器吗?加入同一个社区,让我们知道。
- 对于问题和疑问,请在GitHub上打开问题或联系维护人员。
