Dash2Insight-MCP
使用说明内容(Markdown 格式)
项目简介
Dash2Insight-MCP 是一个面向 LLM 的 MCP 服务器实现。它从 Grafana Dashboard 读取变量与指标信息,并通过 PrometheusClient 与 Prometheus 交互,提供可被 MCP 客户端(如 Cursor、Claude Desktop 等)调用的资源、工具与提示(Prompts)。服务器通过标准的 MCP 接口暴露以下能力:
- 资源(Resource):Variables 与 Metrics,供 LLM 查询和协作分析。
- 工具(Tools):prometheus_query(即时查询)和 prometheus_range_query(范围查询),用于获取 PromQL 的查询结果。
- 提示模板(Prompts):metrics_query_guide,帮助用户正确地从资源中获取信息并构造查询。
主要功能点
- 自动加载 Grafana Dashboard,解析变量与指标,构建 VariablesResource 与 MetricsResource。
- 提供两个 Prometheus 相关工具:prometheus_query 和 prometheus_range_query,支持异步调用并返回 JSON 形式结果。
- 提供 prompts(metrics_query_guide)帮助引导用户的查询流程。
- 支持通过标准的 MCP JSON-RPC 方式与客户端通信,包含 list_resources、read_resource、list_prompts、get_prompt、list_tools、call_tool 等入口。
- 服务器端会话与初始化信息打印,支持通过 config.yaml 配置 Prometheus、Dashboard 路径等信息。
- 通过 CLI/脚本方式启动,支持通过虚拟环境或运行脚本启动。
安装步骤
- 环境要求
- Python 3.10 及以上
- 自动化设置(推荐)
- 运行 setup.sh,自动检测 Python 版本、创建虚拟环境、安装依赖并运行基础测试
- 手动安装(可选)
- 检查并安装 Python 3.10+
- 创建虚拟环境并激活
- 安装依赖:pip install -r requirements.txt
服务器配置(MCP 客户端连接所需)
以下为可在 MCP 客户端中使用的示例配置(请根据实际环境替换路径): { "mcpServers": { "Dash2Insight-MCP": { "name": "Dash2Insight-MCP", "command": "/path/to/Dash2Insight-MCP/venv/bin/python", // 启动服务器所用 Python 解释器的绝对路径 "args": [ "/path/to/Dash2Insight-MCP/src/server.py" // 服务器入口脚本的绝对路径 ], "cwd": "/path/to/Dash2Insight-MCP" // 服务器工作目录,通常为项目根目录 } // 如需外部传入配置文件,可在 args 中再添加 "-c" 或其他选项,并提供 config.yaml 的路径 } }
说明:
- 上述路径请替换为实际环境中的路径,例如 /home/user/projects/Dash2Insight-MCP/…
- config.yaml(根目录下)用于配置 Prometheus 地址、Dashboard 列表等,服务器启动时会加载该配置。
- 服务器启动后,LLM 客户端即可通过 Prometheus 查询工具、Variables 与 Metrics 资源等进行交互。
基本使用方法
- 启动服务器
- 在配置好 config.yaml 的前提下,通过 MCP 客户端的连接配置项,启动 Dash2Insight-MCP。
- 也可以直接在服务器端运行:python /path/to/Dash2Insight-MCP/src/server.py -c /path/to/config.yaml
- 使用资源与工具
- 读取资源:通过 MCP 的 list_resources / read_resource 访问 Variables 与 Metrics 的 JSON 内容。
- 调用工具:使用 prometheus_query 获取即时数据、使用 prometheus_range_query 获取时间序列数据。
- 使用 prompts:通过 list_prompts 获取可用的提示模板,并通过 get_prompt 获取具体的提示内容。
- 主要注意事项
- Dashboard 路径和 Prometheus 服务器地址需在 config.yaml 中正确配置。
- Prometheus 的身份认证(如需要)在 config.yaml 的 Prometheus 配置中填写。
- 变量查询可能依赖 Prometheus 的 label_values 等接口,需确保 Prometheus 可达且权限配置正确。
使用案例简述
- 将 Pulsar 集群的 Grafana Dashboard 导出后放入 dashboard/,配置 config.yaml 指向该 Dashboard。
- 启动 MCP 服务器后,LLM 客户端能通过 TCP/STDIO 等传输方式,请求指标、变量、以及 PromQL 查询结果,并基于返回内容进行分析与推理。