obs-mcp
使用说明(Markdown 格式)
-
项目简介
- obs-mcp 是一个基于 MCP 的后端服务器,设计目标是向大语言模型(LLM)客户端提供 Prometheus/Thanos 数据访问、工具执行以及提示模板等能力,便于在对话中进行监控数据查询、告警分析等操作。
-
主要功能点
- 资源、工具与提示模板的托管与管理:提供对 Prometheus/Thanos 的数据访问、可调用工具(如查询、标签获取、系列查询等)以及可渲染的提示模板。
- JSON-RPC 通信:服务器通过 MCP 的 JSON-RPC 规范处理请求并返回结果。
- HTTP 与 STDIO/版本化传输:支持基于 HTTP 的 MCP 服务,以及通过 STDIO 等传输方式进行通信。
- 安全与灵活性:支持多种认证模式(kubeconfig、serviceaccount、header),并具备守护规则(Guardrails)以提高查询安全性。
- 集成能力:对 Prometheus 客户端、Alertmanager 客户端进行封装,方便在 MCP 服务端进行查询、告警获取与影像化输出。
- 健康与部署:提供健康端点,包含快速启动与本地开发的快速入口。
-
安装步骤
- 需要 Go 语言环境,克隆仓库后在项目根目录执行构建与运行。
- 构建与运行(示例命令,实际可根据环境微调):
- 运行在 HTTP 模式并监听端口:go run ./cmd/obs-mcp/ --listen 127.0.0.1:9100 --auth-mode kubeconfig --insecure
- 也可在本地通过 STDIO 启动:无 --listen 时,服务器以 STDIO 模式启动
- 部署与对接 MCP 客户端时,请参考 README 中关于各认证模式、端点与 curl 测试的说明。
-
服务器配置(MCP 客户端所需配置,JSON 格式示例;MCP 客户端不直接需要此信息) 说明:以下配置用于 MCP 客户端连接并使用 obs-mcp 服务器的必要参数描述。包括服务器名称、启动命令及参数等信息。 示例 JSON(仅供参考,不是代码块): { "server_name": "obs-mcp", "command": "go", "args": ["run", "./cmd/obs-mcp/", "--listen", "127.0.0.1:9100", "--auth-mode", "kubeconfig", "--insecure"] } 配置项说明:
- server_name:服务器的唯一标识名称,定位到 ObsMCP 服务。
- command:启动服务器的命令,可以是运行语言的解释器或二进制。
- args:启动命令所需的参数数组,包含监听地址、认证模式、是否跳过 TLS 校验等选项。
-
基本使用方法
- 启动后,客户端通过 MCP 的 /mcp 接口发送 JSON-RPC 请求来调用 tools、读取资源、执行 PromQL 查询等操作。
- 使用 curl 示例(需部署在可访问环境中,URL 根据实际部署地址调整):
- 列出工具:POST http://<obs-mcp-host>/mcp,参数包含 method: "tools/list"。
- 调用工具示例(如 list_metrics、execute_range_query 等)同 README 的示例。
- 常见注意点:遵循工具的参数约定,确保在调用前执行 list_metrics 等“先决步骤”以确保结果可用。