Minishop Observability MCP Server
使用说明(Markdown 格式)
项目简介
该仓库的 mcp 目录实现了一个基于 MCP(Model Context Protocol)的服务器示例。服务器通过标准的 MCP 服务器端框架提供工具(Tools),目前实现了 prom_query 和 prom_targets 两个工具,用于查询 Prometheus 的指标数据与目标信息,便于 AI 客户端在观测、诊断与推理过程中获得系统上下文。
主要功能点
- MCP 服务器实现:使用 MCP 的服务端组件来处理请求、响应和工具注册,支持通过标准传输(stdio)与客户端通信。
- 工具(Tools)注册:提供 prom_query(执行 PromQL 查询)和 prom_targets(获取 Prometheus 目标信息)两项工具,返回结构化文本内容。
- Prometheus 集成:通过 HTTP 请求调用 Prometheus 的 API,返回查询结果。
- 传输模型:当前使用 StdioServerTransport 通过标准输入输出与客户端进行 JSON-RPC 交互,便于本地开发调试与嵌入式 AI 客户端使用。
安装步骤
- 前提条件:Node.js 环境(推荐 Node.js 18+),并具备对 mcp 目录的访问权限。
- 安装依赖:在项目根目录下执行并进入 mcp 目录安装依赖(如 pnpm 或 npm:示例为 pnpm)
- pnpm i
- 启动 MCP 服务器:在项目根目录执行以下(按仓库说明的脚本位置执行)
- pnpm -C mcp dev
- 运行后,服务器将以标准输入输出方式对接 MCP 客户端,等待连接与请求。
服务器配置
以下为 MCP 客户端需要的配置信息,描述服务器的名称、启动命令及参数等,JSON 形式,无需客户端额外配置。
{ "serverName": "minishop-observability-mcp", "command": "pnpm", "args": ["-C", "mcp", "dev"], "transport": "stdio" }
注释说明:
- serverName: MCP 服务器在客户端侧的识别名称,应与实现中的名称保持一致,便于日志及诊断追踪。
- command 与 args: 指示客户端如何启动 MCP 服务器的命令及参数,在本例中使用 pnpm 在 mcp 目录下执行 dev 脚本(按仓库提供的 Running MCP 说明)。
- transport: 指定通信传输方式,此实现使用标准输入输出(stdio)。
基本使用方法
- 客户端通过 JSON-RPC 调用 MCP 服务器暴露的工具,当前支持:
- 调用 prom_query:传入 query ,可选 time,服务器将返回 Prometheus 的查询结果文本。
- 调用 prom_targets:获取 Prometheus Targets 信息,服务器将返回文本化的 Prometheus targets 数据。
- 请求与响应遵循 MCP 约定的结构,开发者可在 AI 对话中通过这些工具获取系统观测数据以进行诊断、推理与建议。
备注:
- 该实现是一个可运行的 MCP 服务端示例,适合作为 AI 诊断与 observability 的上下文服务入口。实际部署时可在生产环境扩展更多工具、资源与提示模板以满足具体场景。