{"id":28526745,"url":"https://github.com/sailingcoder/grafana-mcp-analyzer","last_synced_at":"2025-10-23T23:56:44.822Z","repository":{"id":296216519,"uuid":"992679611","full_name":"SailingCoder/grafana-mcp-analyzer","owner":"SailingCoder","description":"让AI助手直接分析你的Grafana监控数据 - A Model Context Protocol server for Grafana data analysis","archived":false,"fork":false,"pushed_at":"2025-07-04T12:35:36.000Z","size":381,"stargazers_count":7,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-04T12:55:51.299Z","etag":null,"topics":["ai","analyzer","chatgpt","claude","cursor","grafana","mcp","model-context-protocol","monitoring","mysql","query","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SailingCoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-29T14:41:44.000Z","updated_at":"2025-07-04T12:35:40.000Z","dependencies_parsed_at":"2025-07-04T13:00:47.952Z","dependency_job_id":"22ce3fd6-f297-4144-a723-c56cd6acf66e","html_url":"https://github.com/SailingCoder/grafana-mcp-analyzer","commit_stats":null,"previous_names":["sailingcoder/grafana-mcp-analyzer"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/SailingCoder/grafana-mcp-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SailingCoder%2Fgrafana-mcp-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SailingCoder%2Fgrafana-mcp-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SailingCoder%2Fgrafana-mcp-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SailingCoder%2Fgrafana-mcp-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SailingCoder","download_url":"https://codeload.github.com/SailingCoder/grafana-mcp-analyzer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SailingCoder%2Fgrafana-mcp-analyzer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263784608,"owners_count":23510938,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","analyzer","chatgpt","claude","cursor","grafana","mcp","model-context-protocol","monitoring","mysql","query","typescript"],"created_at":"2025-06-09T12:01:27.450Z","updated_at":"2025-10-23T23:56:44.814Z","avatar_url":"https://github.com/SailingCoder.png","language":"TypeScript","readme":"# Grafana MCP Analyzer 🤖\n\n![Version](https://img.shields.io/npm/v/grafana-mcp-analyzer) ![License](https://img.shields.io/npm/l/grafana-mcp-analyzer) \n\n**让 AI 直接读懂你的监控数据，成为你的专属智能运维助手！**\n\n[English](https://github.com/SailingCoder/grafana-mcp-analyzer/blob/main/README_EN.md) | [中文文档](https://github.com/SailingCoder/grafana-mcp-analyzer/blob/main/README.md)\n\n## ✨ 项目简介\n\n想象一下这样的场景：\n\n* 您问AI：\"我的服务器现在怎么样？\"\n* AI直接查看您的Grafana监控，回答：\"CPU使用率偏高，建议检查这几个进程...\"\n\n繁杂的监控图表，AI 辅助你一键解读。你无需再逐图筛查，真正实现从 **图表到洞察** 的闭环分析体验！\n\n## 🚀 核心特性\n\nGrafana MCP Analyzer 基于 **MCP (Model Context Protocol)** 协议，赋能Claude、ChatGPT等AI助手具备以下超能力：\n\n-   **自然语言查询** - 轻松访问监控数据，AI 一键输出专业分析\n-   **多轮对话支持** - 支持复杂的多轮对话分析，能够基于上下文进行深入分析\n-   **curl支持** - 直接使用浏览器 copy 的 curl 合成查询\n-   **全数据源支持** - Prometheus、MySQL、ES 等通通支持\n-   **专业 DevOps 建议** - 不只是展示数据，更提供可执行的优化方案，提升DevOps效率\n\n\u003e 💡 **架构新模式**：会话缓存 → 逐步获取数据 → 渐进式深入分析 → 缓存复用，让AI分析更准确、更高效。\n\n\n## 🛠️ 快速开始\n\n### 第一步：极速安装（30秒）\n\n```bash\nnpm install -g grafana-mcp-analyzer\n```\n\n\u003e **环境要求**：Node.js 18+ | [安装指南](https://blog.csdn.net/qq_37834631/article/details/148457021?spm=1001.2014.3001.5501)\n\n### 第二步：AI 助手集成（30秒）\n\nCursor设置 → “MCP” → 服务配置（以Cursor为例）:\n\n```json\n{\n  \"mcpServers\": {\n    \"grafana\": {\n      \"command\": \"grafana-mcp-analyzer\",\n      \"env\": {\n        \"CONFIG_PATH\": \"https://raw.githubusercontent.com/SailingCoder/grafana-mcp-analyzer/main/config/grafana-config-play.js\",\n        \"MAX_CHUNK_SIZE\": \"100\"\n      }\n    }\n  }\n}\n```\n\n注：`CONFIG_PATH`支持绝对路径、远程路径，推荐使用远程路径快速体验。\n\n### 第三步：编写配置文件（1分钟）\n\n如需连接自有数据，可在 `CONFIG_PATH` 路径下创建配置文件：（grafana-config-play.js 示例 👉 [点此查看](https://github.com/SailingCoder/grafana-mcp-analyzer/blob/main/config/grafana-config-play.js) ）\n\n\u003e 如果你只想快速体验示例，可跳过此步骤，直接执行第四步。\n\n\u003cdetails\u003e\n\u003csummary\u003e点击展开查看示例\u003c/summary\u003e\n\n```javascript\n/**\n * 基于Grafana Play演示实例的配置文件\n * 以下配置文件内容来源：https://raw.githubusercontent.com/SailingCoder/grafana-mcp-analyzer/main/config/grafana-config-play.js\n * Request 配置方式：支持 http api 和 curl\n */\nconst config = {\n  // Grafana服务器地址\n  baseUrl: 'https://play.grafana.org',\n  \n  // 默认请求头\n  defaultHeaders: {\n    'Content-Type': 'application/json',\n    'Accept': 'application/json, text/plain, */*'\n  },\n\n  // 健康检查配置\n  healthCheck: {\n    url: 'api/health'\n  },\n\n  // 查询定义\n  queries: {\n    // Price Only, Hollow Candles\n    // 使用HTTP API格式\n    // 数据源：https://play.grafana.org/d/candlestick/candlestick?orgId=1\u0026from=2021-07-13T22:13:30.740Z\u0026to=2021-07-13T22:46:18.921Z\u0026timezone=utc\u0026viewPanel=panel-7\n    candlestick_priceOnly_hollowCandles: {\n      url: 'api/ds/query',\n      method: 'POST',\n      params: {\n        ds_type: 'grafana-testdata-datasource',\n        requestId: 'SQR279'\n      },\n      headers: {\n        'accept': 'application/json, text/plain, */*',\n        'accept-language': 'zh-CN,zh;q=0.9',\n        'cache-control': 'no-cache',\n        'content-type': 'application/json',\n        'origin': 'https://play.grafana.org',\n        'pragma': 'no-cache',\n        'priority': 'u=1, i',\n        'referer': 'https://play.grafana.org/d/candlestick/candlestick?orgId=1\u0026from=2021-07-13T22:13:30.740Z\u0026to=2021-07-13T22:46:18.921Z\u0026timezone=utc\u0026viewPanel=panel-7',\n        'sec-ch-ua': '\"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Google Chrome\";v=\"138\"',\n        'sec-ch-ua-mobile': '?0',\n        'sec-ch-ua-platform': '\"macOS\"',\n        'sec-fetch-dest': 'empty',\n        'sec-fetch-mode': 'cors',\n        'sec-fetch-site': 'same-origin',\n        'traceparent': '00-f0f1243b82acf0e362fd1f836565154a-fc3a173d3190c9df-01',\n        'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',\n        'x-dashboard-title': 'Candlestick',\n        'x-dashboard-uid': 'candlestick',\n        'x-datasource-uid': 'PD8C576611E62080A',\n        'x-grafana-device-id': '49c7d4ecdeee88ab5dde64deffa8ea2e',\n        'x-grafana-org-id': '1',\n        'x-panel-id': '7',\n        'x-panel-plugin-id': 'candlestick',\n        'x-panel-title': 'Price Only, Hollow Candles',\n        'x-plugin-id': 'grafana-testdata-datasource'\n      },\n      data: {\n        queries: [{\n          csvFileName: \"ohlc_dogecoin.csv\",\n          refId: \"A\",\n          scenarioId: \"csv_file\",\n          datasource: {\n            type: \"grafana-testdata-datasource\",\n            uid: \"PD8C576611E62080A\"\n          },\n          datasourceId: 454,\n          intervalMs: 2000,\n          maxDataPoints: 1180\n        }],\n        from: \"1626214410740\",\n        to: \"1626216378921\"\n      },\n      systemPrompt: `您是狗狗币K线图分析专家。\n\n**分析重点**：\n1. 价格趋势识别 - 识别主要趋势方向(上涨/下跌/横盘)\n2. 关键价位分析 - 找出支撑位和阻力位\n3. 交易机会评估 - 基于K线形态识别入场时机\n4. 风险评估 - 提供风险提示和投资建议\n\n**输出格式**：\n## 图表概览\n- 时间范围：[具体时间]\n- 价格范围：[最高价-最低价] \n- 主要趋势：[上涨/下跌/横盘]\n\n## 技术分析\n- 支撑位：[价格水平]\n- 阻力位：[价格水平]\n- 关键行为：[重要价格行为]\n\n## 交易建议\n- 短期方向：[看涨/看跌/中性]\n- 关键价位：[关注价位]\n- 风险提示：[重要提醒]`\n    },\n    // faro-shop-control-plane - Overall CPU Utilization\n    // 使用 cUrl 格式\n    // 数据源：https://play.grafana.org/d/cNMLIAFK/cpu-utilization-details-cores?var-interval=$__auto\u0026orgId=1\u0026from=now-3h\u0026to=now\u0026timezone=browser\u0026var-host=faro-shop-control-plane\u0026var-cpu=$__all\u0026viewPanel=panel-22\n    overall_cpu_utilization: {\n      curl: `curl 'https://play.grafana.org/api/ds/query?ds_type=prometheus\u0026requestId=SQR112' \\\n  -H 'accept: application/json, text/plain, */*' \\\n  -H 'accept-language: zh-CN,zh;q=0.9' \\\n  -H 'cache-control: no-cache' \\\n  -H 'content-type: application/json' \\\n  -b '_ga=GA1.2.1909983567.1753671369; _gid=GA1.2.532774264.1753671369; rl_page_init_referrer=RudderEncrypt%3AU2FsdGVkX1%2B2lASJjXBqxv6%2FOpvlv5ClRT5vw%2BELHuE%3D; rl_page_init_referring_domain=RudderEncrypt%3AU2FsdGVkX19MSXh%2BQbiHW5f9mLAaP3ghy%2FcJZIk9zhI%3D; intercom-id-agpb1wfw=219eac14-cc23-4ca5-aa16-c299fab8c0ab; intercom-session-agpb1wfw=; intercom-device-id-agpb1wfw=fd9a6df6-d6c8-4b40-958b-568fc7f30ae2; rl_group_id=RudderEncrypt%3AU2FsdGVkX196IBi0ppflecKuY9333Hf3E8fCWy4xJNU%3D; rl_group_trait=RudderEncrypt%3AU2FsdGVkX19%2Fc4msmFb6pg0d4rM%2BpLKI9zqEnxxFrPE%3D; rl_anonymous_id=RudderEncrypt%3AU2FsdGVkX186iymdvmvCOhwF2sff5XEHniCdK0idYHYA4P%2BUpg8hnPVqFbQpqF%2Fn5dfeDz3BxORb9hPn8cIvwQ%3D%3D; rl_user_id=RudderEncrypt%3AU2FsdGVkX1%2B7qEm%2BjVUpWQfQIZgdXaAXNAGDqx%2ByBo3qzXCeyxQWfQNHP9CFM4cX; rl_trait=RudderEncrypt%3AU2FsdGVkX19zSSOXFUxzg3KWR6VQOAkavGgxHg9JdbDKn6hPh3%2BBm3nDBP%2F6tM0wl0b6r0f1A2MZ2SeB6p9f%2FeeaUcrUzR%2FQDfqJHZGhOCdpwmOXZVVQncG%2Ff3ITY6GU%2BvGu9sfYHNgcpS5UHphpBA%3D%3D; _ga_Y0HRZEVBCW=GS2.2.s1753671369$o1$g1$t1753671728$j23$l0$h0; rl_session=RudderEncrypt%3AU2FsdGVkX18BkXGTwuY7KtE7Zr6WjpDFDtkvh9%2Btz4dc8BJeXT1%2FrqgdzGnXydN9EMwRRVR%2FQzGVBtyZ%2FNhg27pvhkbqL2QVLD%2F79GRtbxM8qDKCDo4c%2FfokCEdeF8AoiuRXQzPkAC7UEy7g1swC9w%3D%3D' \\\n  -H 'origin: https://play.grafana.org' \\\n  -H 'pragma: no-cache' \\\n  -H 'priority: u=1, i' \\\n  -H 'referer: https://play.grafana.org/d/cNMLIAFK/cpu-utilization-details-cores?var-interval=$__auto\u0026orgId=1\u0026from=now-3h\u0026to=now\u0026timezone=browser\u0026var-host=faro-shop-control-plane\u0026var-cpu=$__all\u0026viewPanel=panel-22\u0026inspect=panel-22\u0026inspectTab=query' \\\n  -H 'sec-ch-ua: \"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Google Chrome\";v=\"138\"' \\\n  -H 'sec-ch-ua-mobile: ?0' \\\n  -H 'sec-ch-ua-platform: \"macOS\"' \\\n  -H 'sec-fetch-dest: empty' \\\n  -H 'sec-fetch-mode: cors' \\\n  -H 'sec-fetch-site: same-origin' \\\n  -H 'traceparent: 00-fea7a897de47671f57a42d15b26043a5-578babdc8cb152e0-01' \\\n  -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36' \\\n  -H 'x-dashboard-title: CPU Utilization Details (Cores)' \\\n  -H 'x-dashboard-uid: cNMLIAFK' \\\n  -H 'x-datasource-uid: grafanacloud-prom' \\\n  -H 'x-grafana-device-id: 49c7d4ecdeee88ab5dde64deffa8ea2e' \\\n  -H 'x-grafana-org-id: 1' \\\n  -H 'x-panel-id: 22' \\\n  -H 'x-panel-plugin-id: timeseries' \\\n  -H 'x-panel-title: $host - Overall CPU Utilization' \\\n  -H 'x-plugin-id: prometheus' \\\n  --data-raw $'{\"queries\":[{\"calculatedInterval\":\"2s\",\"datasource\":{\"type\":\"prometheus\",\"uid\":\"grafanacloud-prom\"},\"datasourceErrors\":{},\"errors\":{},\"expr\":\"clamp_max((avg by (mode) ( (clamp_max(rate(node_cpu_seconds_total{instance=\\\\\"faro-shop-control-plane\\\\\",mode\\u0021=\\\\\"idle\\\\\"}[1m]),1)) or (clamp_max(irate(node_cpu_seconds_total{instance=\\\\\"faro-shop-control-plane\\\\\",mode\\u0021=\\\\\"idle\\\\\"}[5m]),1)) )),1)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"1m\",\"intervalFactor\":1,\"legendFormat\":\"{{mode}}\",\"metric\":\"\",\"refId\":\"A\",\"step\":300,\"exemplar\":false,\"requestId\":\"22A\",\"utcOffsetSec\":28800,\"scopes\":[],\"adhocFilters\":[],\"datasourceId\":171,\"intervalMs\":60000,\"maxDataPoints\":1180},{\"datasource\":{\"type\":\"prometheus\",\"uid\":\"grafanacloud-prom\"},\"expr\":\"clamp_max(max by () (sum  by (cpu) ( (clamp_max(rate(node_cpu_seconds_total{instance=\\\\\"faro-shop-control-plane\\\\\",mode\\u0021=\\\\\"idle\\\\\",mode\\u0021=\\\\\"iowait\\\\\"}[1m]),1)) or (clamp_max(irate(node_cpu_seconds_total{instance=\\\\\"faro-shop-control-plane\\\\\",mode\\u0021=\\\\\"idle\\\\\",mode\\u0021=\\\\\"iowait\\\\\"}[5m]),1)) )),1)\",\"format\":\"time_series\",\"hide\":false,\"interval\":\"1m\",\"intervalFactor\":1,\"legendFormat\":\"Max Core Utilization\",\"refId\":\"B\",\"exemplar\":false,\"requestId\":\"22B\",\"utcOffsetSec\":28800,\"scopes\":[],\"adhocFilters\":[],\"datasourceId\":171,\"intervalMs\":60000,\"maxDataPoints\":1180}],\"from\":\"1753660994019\",\"to\":\"1753671794019\"}'`,\n      systemPrompt: `您是系统性能分析专家，专注于CPU使用率历史趋势分析。\n\n**数据特点**：这是总体CPU使用率的历史时间序列数据，包含：\n- **user**: 用户模式CPU使用率\n- **system**: 系统模式CPU使用率  \n- **iowait**: I/O等待时间\n- **softirq**: 软件中断\n- **Max Core Utilization**: 单核最大使用率\n\n**分析重点**：\n1. **历史趋势分析** - 识别CPU使用率的变化趋势和模式\n2. **性能瓶颈识别** - 分析哪个CPU模式占用最多资源\n3. **峰值分析** - 识别CPU使用率的峰值时间和原因\n4. **系统健康评估** - 基于历史数据评估系统整体健康状况\n5. **容量规划建议** - 基于趋势预测未来资源需求\n\n**输出要求**：\n- 提供具体的时间范围和数据统计\n- 识别关键的性能指标和异常模式\n- 分析不同CPU模式的使用情况\n- 给出基于历史数据的优化建议\n\n请提供详细的CPU性能趋势分析报告。`\n    },\n  }\n};\n\nmodule.exports = config;\n```\n\u003c/details\u003e\n\n### 第四步：开始使用！\n\n修改完配置后，重启 Cursor 即可开始使用：\n\n![在这里插入图片描述](https://github.com/SailingCoder/grafana-mcp-analyzer/blob/main/docs/image(1).png)\n\n\u003e ⚠️ **注意：** 修改 `mcp.json` 或配置文件后，都需要重启 Cursor。\n\n然后，体验 AI 智能分析：\n\n**1、你想了解**：狗狗币最近的价格走势怎么样？\n\n**对话示例**：\n\n```text\n👤 你：帮我分析一下candlestick_priceOnly_hollowCandles的数据\n🤖 AI：好的，我来获取狗狗币的K线数据并分析...\n\n👤 你：这个分析太简单了，能详细说说支撑位和阻力位吗？\n🤖 AI：基于刚才的数据，我来深入分析技术指标...\n\n👤 你：现在看看candlestick_price_volume数据\n🤖 AI：切换到价格成交量数据，分析市场活跃度...\n\n👤 你：candlestick_priceOnly_hollowCandles和candlestick_price_volume这两个数据结合起来看，市场怎么样？\n🤖 AI：综合两个数据源，市场目前...\n```\n\n**2、你想了解**：系统CPU整体运行状况如何？\n\n**对话示例**：\n\n```\n👤 您：分析overall_cpu_utilization的数据\n🤖 AI：提供CPU分析报告\n\n👤 您：CPU使用率的变化趋势如何？\n🤖 AI：基于刚才的数据，分析CPU使用率变化趋势\n\n👤 您：这个峰值是什么时候出现的？\n🤖 AI：基于我们之前的分析，识别CPU峰值时间\n\n👤 您：需要扩容吗？扩容的成本是多少？\n🤖 AI：基于历史数据，提供扩容建议和成本评估\n```\n\n一句话总结：**AI 不再只是“聊天”，现在它也能读懂你的监控图表了。**\n\n\n## MCP工具清单\n\n| 工具 | 功能 | 使用场景 |\n|------|------|----------|\n| `analyze_query` | 查询+AI分析 | 首次获取数据并分析 |\n| `analyze_existing_data` | 基于已有数据分析 | 多轮对话深入分析 |\n| `chunk_workflow` | 分块数据工作流 | 大数据量自动分块处理 |\n| `manage_cache` | 缓存管理 | 缓存统计、清理和优化 |\n| `list_queries` | 查询列表 | 查看可用数据源 |\n| `check_health` | 健康检查 | 系统状态监控 |\n| `list_data` | 数据列表 | 查看存储的历史数据 |\n| `server_status` | 服务器状态 | 服务器运行信息 |\n\n\u003e **说明**：系统采用会话缓存管理，支持渐进式分析和多轮对话，比传统的聚合分析更加灵活高效。\n\n#### 工具使用方式\n\n```javascript\n// AI助手会自动选择合适的工具\n👤 \"分析CPU使用情况\" → 🤖 调用 analyze_query\n👤 \"基于刚才的数据深入分析\" → 🤖 调用 analyze_existing_data\n👤 \"查看缓存状态\" → 🤖 调用 manage_cache\n👤 \"分析大数据量\" → 🤖 调用 chunk_workflow\n\n// 缓存管理操作\n👤 \"查看缓存\" → 🤖 调用 manage_cache\n👤 \"删除overall_cpu_utilization缓存\" → 🤖 调用 manage_cache\n👤 \"清空所有缓存\" → 🤖 调用 manage_cache\n```\n\n## 高级配置\n\n以下内容适用于需要自定义数据源或进行更高级使用场景的用户。\n\n\u003cdetails\u003e\n\u003csummary\u003e如何获取 Request 配置？\u003c/summary\u003e\n\n#### 方式一：HTTP API（如 `candlestick_priceOnly_hollowCandles`）\n\n1.  获取 Data 传参：进入图表 → \"Query Inspector\" → \"JSON\"解析 → 拷贝请求体(request)\n2.  获取 Url 和 Headers Token：通过 Network 面板查看请求参数，手动构造 HTTP 配置。\n\n#### 方式二：curl（推荐，适用于所有面板，如`overall_cpu_utilization`）：\n\n1.  在Grafana中执行查询\n2.  按F12打开开发者工具 → Network标签页\n3.  找到查询请求 → 右键点击 → Copy as cURL\n4.  将复制的 curl 粘贴至配置文件中即可\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e配置建议（MAX_CHUNK_SIZE）\u003c/summary\u003e\n\n```json\n\"env\": {\n  \"MAX_CHUNK_SIZE\": \"100\"\n}\n```\n受限于目前市场 AI 模型的上下文处理能力，为提高分析的准确性和效率，系统会自动将大数据量按 100KB 分块处理。\n\n- 100KB - 保守策略，兼容所有模型\n- 150KB - 平衡策略，推荐设置\n- 200KB - 激进策略，仅限新模型\n\n**推荐设置**：\n\n- **Claude 3.5 Sonnet / GPT-4 Turbo**: `MAX_CHUNK_SIZE=150`\n- **GPT-4 (8K)**: `MAX_CHUNK_SIZE=100`\n- **Claude 3**: `MAX_CHUNK_SIZE=200`\n\n建议分析的数据最大体积控制在 500KB 以内（可根据模型能力做适当调整），分析效果最佳。您可以通过调整查询的时间范围、数据源等参数来控制总数据量。\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003e环境变量说明\u003c/summary\u003e\n\n```json\n{\n  \"mcpServers\": {\n    \"grafana\": {\n      \"command\": \"grafana-mcp-analyzer\",\n      \"env\": {\n        \"CONFIG_PATH\": \"https://raw.githubusercontent.com/SailingCoder/grafana-mcp-analyzer/main/config/grafana-config-play.js\",\n        \"MAX_CHUNK_SIZE\": \"100\",\n        \"DATA_EXPIRY_HOURS\": \"24\",\n        \"CONFIG_MAX_AGE\": \"300\",\n        \"SESSION_TIMEOUT_HOURS\": \"24\"\n      }\n    }\n  }\n}\n```\n\n| 环境变量名 | 类型 | 默认值 | 说明 |\n| --------- | ---- | ------ | ---- |\n| `MAX_CHUNK_SIZE` | number | `100` | 单块最大数据体积（KB），影响数据切片大小，可根据AI模型上下文窗口调整 |\n| `CONFIG_PATH` | string | 必填 | 配置文件路径（本地或 HTTPS 远程地址），支持GitHub Raw、云存储等 |\n| `CONFIG_MAX_AGE` | number | `300` | 远程配置文件缓存时间（秒），设为 `0` 则禁用 |\n| `DATA_EXPIRY_HOURS` | number | `24` | 数据过期时间（小时），避免频繁网络请求，控制缓存自动清理 |\n| `SESSION_TIMEOUT_HOURS` | number | `24` | 会话超时时间（小时），控制会话管理，过期会话会被自动清理 |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e支持配置类型：本地绝对路径 / 远程路径\u003c/summary\u003e\n    \n#### 1. 远程路径\n    \n支持通过HTTPS URL访问远程配置文件，适用于团队协作和多环境部署：\n\n```json\n{\n  \"env\": {\n    \"CONFIG_PATH\": \"https://raw.githubusercontent.com/SailingCoder/grafana-mcp-analyzer/main/config/grafana-config-play.js\"\n  }\n}\n```\n\n支持的远程存储：\n\n*   GitHub Raw: `https://raw.githubusercontent.com/SailingCoder/grafana-mcp-analyzer/main/config/grafana-config-play.js`\n*   阿里云OSS: `https://bucket.oss-cn-hangzhou.aliyuncs.com/config.js`\n*   腾讯云COS: `https://bucket-123.cos.ap-shanghai.myqcloud.com/config.js`\n*   AWS S3: `https://bucket.s3.amazonaws.com/config.js`\n\n注意：\n- ❌ 不支持 GitHub 网页路径，如 https://github.com/SailingCoder/grafana-mcp-analyzer/blob/main/config/grafana-config-play.js,\t返回的是 HTML 页面\n- ✅ 必须使用 GitHub Raw 格式获取原始 JS 文件，如 https://raw.githubusercontent.com/SailingCoder/grafana-mcp-analyzer/main/config/grafana-config-play.js\n\n\n#### 2. 本地路径\n    \n支持传入本地绝对路径，适用于快速测试分析：\n    \n```json\n{\n  \"mcpServers\": {\n    \"grafana\": {\n      \"command\": \"grafana-mcp-analyzer\",\n      \"env\": {\n        \"CONFIG_PATH\": \"/Users/your-username/project/grafana-config.js\"\n      }\n    }\n  }\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e命令行选项\u003c/summary\u003e\n\n```bash\n# 显示版本信息\ngrafana-mcp-analyzer -v\ngrafana-mcp-analyzer --version\n\n# 显示帮助信息\ngrafana-mcp-analyzer -h\ngrafana-mcp-analyzer --help\n```\n\n\u003c/details\u003e\n\n## 配置示例\n\n\u003cdetails\u003e\n\u003csummary\u003e电商业务分析\u003c/summary\u003e\n\n**用户问题**：\"我的电商转化率怎么样？如何提升销售额？\"\n\n```javascript\n// 电商转化率分析\necommerce_conversion: {\n  curl: `curl 'api/ds/query' \\\\\n    -X POST \\\\\n    -H 'Content-Type: application/json' \\\\\n    -d '{\"queries\":[{\"refId\":\"A\",\"expr\":\"rate(orders_total[5m]) / rate(page_views_total[5m]) * 100\",\"range\":{\"from\":\"now-24h\",\"to\":\"now\"}}]}'`,\n  systemPrompt: `您是电商业务分析专家。请分析转化率数据并回答以下关键问题：\n\n**核心分析问题**：\n1. 当前转化率是多少？与行业标准对比如何？\n2. 转化率在一天中的高峰和低谷时段是什么时候？\n3. 哪些因素可能影响转化率下降？\n4. 具体建议如何提升转化率？预期能带来多少收益？\n\n**输出格式**：\n- 数据概览：当前转化率数值和趋势\n- 问题诊断：识别转化率瓶颈\n- 优化建议：3-5个可执行的改进方案\n- 收益预测：预期提升效果和ROI\n\n请用通俗易懂的语言，给出可操作的具体建议。`\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e金融风控分析\u003c/summary\u003e\n**用户问题**：\"我的交易系统有风险吗？如何预防欺诈？\"\n\n```javascript\n// 交易风控分析\nfinance_risk_analysis: {\n  curl: `curl 'api/ds/query' \\\\\n    -X POST \\\\\n    -H 'Content-Type: application/json' \\\\\n    -d '{\"queries\":[{\"refId\":\"A\",\"expr\":\"sum(rate(transaction_amount_total[5m]))\",\"range\":{\"from\":\"now-7d\",\"to\":\"now\"}}]}'`,\n  systemPrompt: `您是金融风控专家。请分析交易数据并回答以下关键问题：\n\n**核心分析问题**：\n1. 当前交易量是否异常？与历史对比如何？\n2. 是否存在可疑的交易模式？\n3. 哪些交易需要重点关注？\n4. 如何优化风控策略？\n\n**输出格式**：\n- 风险等级：低/中/高风险\n- 异常指标：具体异常数据点\n- 风险分析：潜在风险原因\n- 防护建议：具体风控措施\n- 紧急行动：需要立即处理的事项\n\n请用红色标记高风险，黄色标记中风险，绿色标记低风险。`\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e用户行为分析\u003c/summary\u003e\n\n**用户问题**：\"我的用户活跃度怎么样？如何提高用户留存？\"\n\n```javascript\n// 用户活跃度分析\nuser_engagement: {\n  curl: `curl 'api/ds/query' \\\\\n    -X POST \\\\\n    -H 'Content-Type: application/json' \\\\\n    -d '{\"queries\":[{\"refId\":\"A\",\"expr\":\"count(increase(user_sessions_total[1h]))\",\"range\":{\"from\":\"now-30d\",\"to\":\"now\"}}]}'`,\n  systemPrompt: `您是用户行为分析专家。请分析用户活跃度数据并回答以下关键问题：\n\n**核心分析问题**：\n1. 用户活跃度趋势如何？是否在增长？\n2. 用户使用习惯有什么特点？\n3. 哪些用户群体最活跃？\n4. 如何提高用户留存率？\n\n**输出格式**：\n- 用户画像：活跃用户特征\n- 趋势分析：活跃度变化趋势\n- 目标用户：最有价值的用户群体\n- 留存策略：提高用户粘性的方法\n- 预期效果：实施建议后的预期改善\n\n请结合用户生命周期，给出个性化的运营建议。`\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e服务器性能监控\u003c/summary\u003e\n\n**用户问题**：\"我的服务器性能怎么样？需要扩容吗？\"\n\n```javascript\n// 服务器性能分析\nserver_performance: {\n  curl: `curl 'api/ds/query' \\\\\n    -X POST \\\\\n    -H 'Content-Type: application/json' \\\\\n    -d '{\"queries\":[{\n      \"refId\":\"A\",\n      \"expr\":\"node_cpu_seconds_total{mode=\\\"user\\\"} / node_cpu_seconds_total * 100\",\n      \"range\":{\"from\":\"now-2h\",\"to\":\"now\"}\n    }]}'`,\n  systemPrompt: `您是系统性能专家。请分析服务器性能数据并回答以下关键问题：\n\n**核心分析问题**：\n1. CPU使用率是否正常？是否接近瓶颈？\n2. 内存使用情况如何？是否存在泄漏？\n3. 磁盘I/O是否成为瓶颈？\n4. 是否需要扩容或优化？\n\n**输出格式**：\n- 性能评分：优秀/良好/一般/差\n- 关键指标：CPU、内存、磁盘使用率\n- 瓶颈分析：性能问题原因\n- 优化建议：具体改进方案\n- 告警建议：需要立即关注的问题\n\n请用颜色标记不同严重程度：正常 注意 危险`\n}\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e应用错误监控\u003c/summary\u003e\n\n**用户问题**：\"我的应用有错误吗？影响用户体验吗？\"\n\n```javascript\n// 应用错误分析\napp_error_analysis: {\n  url: \"api/ds/es/query\",\n  method: \"POST\",\n  data: {\n    es: {\n      index: \"app-logs-*\",\n      query: {\n        \"query\": {\n          \"bool\": {\n            \"must\": [\n              {\"term\": {\"level\": \"ERROR\"}},\n              {\"range\": {\"@timestamp\": {\"gte\": \"now-1h\"}}}\n            ]\n          }\n        }\n      }\n    }\n  },\n  systemPrompt: `您是应用监控专家。请分析错误日志并回答以下关键问题：\n\n**核心分析问题**：\n1. 错误频率如何？是否在增加？\n2. 哪些错误最严重？影响多少用户？\n3. 错误集中在哪些功能模块？\n4. 如何快速修复和预防？\n\n**输出格式**：\n- 错误等级：严重/中等/轻微\n- 错误统计：错误数量、影响用户数\n- 错误分类：按模块和类型分类\n- 修复建议：具体修复步骤\n- 预防措施：避免类似错误的方法\n\n请按严重程度排序，优先处理影响用户最多的错误。`\n}\n```\n\u003c/details\u003e\n\n\n\n## 常见问题\n\n\u003cdetails\u003e\n\u003csummary\u003e无法连接到Grafana服务\u003c/summary\u003e\n\n*   检查Grafana地址格式：必须包含`https://`或`http://`\n*   验证API密钥有效性：确保未过期且有足够权限\n*   测试网络连通性和防火墙设置\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eAI提示找不到MCP工具\u003c/summary\u003e\n\n*   完全退出Cursor并重新启动\n*   检查配置文件路径是否正确\n*   确保Node.js版本 ≥ 18\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e查询执行失败或超时\u003c/summary\u003e\n\n*   增加timeout设置\n*   检查数据源连接状态\n*   数据量过大时，缩小时间范围\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e多轮对话中数据混淆\u003c/summary\u003e\n\n*   确保使用正确的queryName，不同查询使用不同的名称\n*   系统会自动缓存不同查询的数据，避免混淆\n*   如果遇到数据混淆，可以重新调用analyze_query获取新数据\n*   使用analyze_existing_data进行基于缓存数据的深入分析\n*   系统支持会话隔离，不同会话的数据相互独立\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e缓存管理问题\u003c/summary\u003e\n\n*   查看缓存统计：使用manage_cache工具查看缓存状态 \n    👤 你：获取缓存\n    🤖 AI：我来为您获取当前的缓存信息\n*   清理过期缓存：定期清理过期缓存释放存储空间 \n    👤 你：清除所有缓存\n    🤖 AI：我来尝试清除所有缓存。\n*   缓存性能优化：系统会自动进行智能缓存优化 \n*   缓存冲突处理：相同queryName不同配置会自动去重\n\n\u003c/details\u003e\n\n## 文章推荐\n\n*   [grafana-mcp-analyzer：基于 MCP 的轻量 AI 分析监控图表的运维神器！](https://blog.csdn.net/qq_37834631/article/details/148473620?spm=1001.2014.3001.5501) - CSDN技术博客深度解析\n\n## 许可证\n\nMIT 开源协议。详见 [LICENSE](LICENSE) 文件。","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsailingcoder%2Fgrafana-mcp-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsailingcoder%2Fgrafana-mcp-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsailingcoder%2Fgrafana-mcp-analyzer/lists"}