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 等“先决步骤”以确保结果可用。

服务器信息