Loki MCP Server如何自然语言查询Claude Desktop日志?

摘要:MCP定位,技术栈,架构,项目结构,基础框架搭建,开发部署及常见问题 # Loki MCP Server - CLAUDE.md > Go 实现的 MCP Server,集成 Grafana Loki 日志查询。支持
MCP定位,技术栈,架构,项目结构,基础框架搭建,开发部署及常见问题 # Loki MCP Server - CLAUDE.md > Go 实现的 MCP Server,集成 Grafana Loki 日志查询。支持 Claude Desktop / Claude Code / Cursor 等客户端通过自然语言查询日志。 --- ## 一、项目概述 ### 定位 将 Grafana Loki 的日志查询能力通过 MCP (Model Context Protocol) 暴露给 AI 助手,运维人员可以用自然语言代替 LogQL 查询日志。 ### 技术栈 | 层 | 技术 | 版本 | |---|------|------| | 语言 | Go | 1.24+ | | MCP SDK | github.com/mark3labs/mcp-go | v0.32.0 | | 日志存储 | Grafana Loki | 2.9.0 | | 日志采集 | Promtail | 2.9.0 | | 可视化 | Grafana | latest | | 容器化 | Docker + Compose | - | ### 核心能力(3 个 MCP Tool) | Tool | 用途 | Loki API | |------|------|----------| | `loki_query` | 执行 LogQL 查询 | `/loki/api/v1/query_range` | | `loki_label_names` | 获取所有标签名 | `/loki/api/v1/labels` | | `loki_label_values` | 获取标签值列表 | `/loki/api/v1/label/{name}/values` | --- ## 二、架构设计 ### 整体架构 ``` ┌─────────────────┐ ┌──────────────────┐ ┌──────────────┐ │ AI Client │ │ Loki MCP Server │ │ Grafana │ │ (Claude Code/ │─────→│ :8080 │─────→│ Loki │ │ Desktop/ │ MCP │ │ HTTP │ :3100 │ │ Cursor) │ │ 3 种传输协议: │ │ │ └─────────────────┘ │ - stdio │ └──────────────┘ │ - SSE (/sse) │ │ - HTTP (/stream)│ │ │ │ /healthz (K8s) │ └──────────────────┘ ``` ### 三种传输协议(同端口共存) | 协议 | 端点 | 场景 | |------|------|------| | stdio | 标准输入输出 | 本地 binary / Docker 集成,Claude Desktop 直接启动进程 | | SSE | `/sse` + `/mcp` | Server-Sent Events,远程连接(旧协议) | | Streamable HTTP | `/stream` | 新一代 MCP 远程协议(推荐) | **设计要点**:通过 `http.ServeMux` 将 SSE 和 Streamable HTTP 注册到同一端口,stdio 作为后台 goroutine 并行运行。
阅读全文