Loki MCP Server
让 MCP 客户端通过 LogQL 查询 Grafana Loki 日志。
- Star 数
- ★ 170
- 最近更新
- 8 天前
- 主语言
- Go
- FA 评分
- 56/100 · 缺口较多
30 秒速览
- 可在哪里用
- 通用 · 跨平台Claude.ai
- 开始前需要
- 典型场景
- 运维工程师在 Claude Desktop 中用自然语言指定 LogQL,检查某个服务最近一小时的错误日志。
- 主要局限
- 功能范围集中在单个
loki_query工具;材料未记录标签发现、规则管理、告警管理或写入生产日志等能力。
这个 Agent 能做什么,适合哪些场景?
Loki MCP Server 是一个用 Go 编写、面向 Grafana Loki 的 Model Context Protocol 服务。它提供 `loki_query` 工具,接收 LogQL、时间范围、结果数量和组织 ID,并返回 Loki 查询结果。服务既可通过标准输入/输出运行,也可启用带 `/sse` 和 `/mcp` 端点的 HTTP/SSE 模式。仓库还包含测试客户端、工具处理器、数据模型,以及用于本地启动 Loki、Grafana、示例日志生成器和 MCP 服务的 Docker Compose 环境。它适合希望让 Claude Desktop、Cursor、n8n 或其他 MCP 兼容客户端访问自托管 Loki 的团队,但并不是通用日志后端,也不提供 Loki 本身。
客户端调用 loki_query 并提交必需的 query LogQL 字符串;还可提交 url、start、end、limit 和 org。处理器向指定的 Grafana Loki 服务发出查询,其中 org 作为 X-Scope-OrgID 请求头发送,并把查询到的日志条目返回给 MCP 客户端。未显式提供参数时,服务可从 LOKI_URL、LOKI_ORG_ID、LOKI_USERNAME、LOKI_PASSWORD 和 LOKI_TOKEN 读取连接、租户及认证信息;默认 Loki 地址为 http://localhost:3100,默认时间范围为最近一小时,默认上限为 100 条。它可以作为 stdin/stdout MCP 进程运行,也能在 HTTP 模式下通过默认 8080 端口的 /sse 和 /mcp 提供服务。仓库中的 cmd/client 可直接测试查询,Docker Compose 环境则可生成示例日志并通过 Grafana 界面检查数据。
- 运维工程师在 Claude Desktop 中用自然语言指定 LogQL,检查某个服务最近一小时的错误日志。
- 使用多租户 Loki 的平台团队通过
org参数选择租户,并让服务发送对应的X-Scope-OrgID。 - n8n 工作流维护者通过
/sse连接 MCP Client Tools 节点,让 AI Agent 在自动化流程中查询日志。 - 开发者在本机用 Docker Compose 启动 Loki、Grafana、日志生成器和 MCP 服务,验证查询或集成配置。
- Cursor 用户通过 Docker 配置把 Loki 查询能力接入编辑器,在排查应用问题时检索日志。
如何安装或部署这个 Agent?
需要 Go 1.16 或更高版本,以及可访问的 Grafana Loki。源码构建:
go build -o loki-mcp-server ./cmd/server运行:
./loki-mcp-server也可以直接运行:
go run ./cmd/server如使用容器:
docker build -t loki-mcp-server .
docker run --rm -i loki-mcp-serverHTTP/SSE 模式需要映射默认端口:
docker run -p 8080:8080 --rm -i loki-mcp-server通过 LOKI_URL 配置 Loki 地址;多租户环境可设置 LOKI_ORG_ID,认证可使用 LOKI_USERNAME 与 LOKI_PASSWORD,或设置 LOKI_TOKEN。SSE_PORT 可修改 HTTP 服务端口。
如何使用这个 Agent?
先配置并执行一次查询:
export LOKI_URL="http://localhost:3100"
go build -o loki-mcp-client ./cmd/client
./loki-mcp-client loki_query "{job=\"varlogs\"}"指定时间范围和数量时可运行:
./loki-mcp-client loki_query "{job=\"varlogs\"}" "-1h" "now" 100本地完整测试环境可用 docker-compose up -d 启动,然后运行 ./test-loki-query.sh '{job="varlogs"} |= "ERROR"'。在 Claude Desktop 中,将构建后的二进制配置为 MCP server,设置所需的 LOKI_URL 和认证环境变量,重启客户端后即可调用 loki_query。HTTP 集成可连接 http://你的服务器地址:8080/sse,协议消息端点为 http://你的服务器地址:8080/mcp。
这个 Agent 有哪些优点和局限?
- 同时支持 stdin/stdout 和 HTTP/SSE,可覆盖桌面 MCP 客户端与 n8n 一类网络工作流。
loki_query暴露时间范围、结果上限和组织 ID,并明确支持通过X-Scope-OrgID查询多租户 Loki。- 支持基本认证和 bearer token,连接及认证默认值均可通过环境变量集中配置。
- 附带测试客户端、查询脚本、日志注入脚本及包含 Loki、Grafana和示例日志的 Docker Compose 测试环境。
- 功能范围集中在单个
loki_query工具;材料未记录标签发现、规则管理、告警管理或写入生产日志等能力。 - 必须运行或访问 Grafana Loki,HTTP/SSE 场景还需要网络连通性和端口配置。
- 环境变量可能包含用户名、密码或 token,部署者需要自行防止凭据进入日志和配置文件。
- 仓库元数据显示许可证未知,而 README 声称使用 MIT License;采用前应核对实际
LICENSE文件。 - Claude Desktop 使用
go run时可能需要额外设置HOME、GOPATH、GOMODCACHE和GOCACHE,因此文档将 Docker 描述为更可靠的方式。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|
| Loki MCP Server 当前 | 56 · 缺口较多 | ★ 170 | 8 天前 | Go | Claude.ai |
| Agency Orchestrator:一句话组队 AI 专家团队 | 61 · 存在缺口 | ★ 2.3k | 1 天前 | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
| Dokploy MCP 服务器 | 65 · 存在缺口 | ★ 383 | 5 天前 | TypeScript | Claude Code · Claude.ai |
| Stakpak | 57 · 缺口较多 | ★ 1.8k | 2 个月前 | Rust | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
该产品只公开一个以读取为主的 Loki 查询工具,并明确说明查询参数、目标 URL、租户头、认证环境变量以及 stdio/SSE 数据路径,因此最小权限、数据流透明度和外部影响有一定依据。扣分点是调用方可提供 URL、HTTP/SSE 暴露面未说明服务端访问控制,示例还将 loki_query 放入 autoApprove,未提供逐次用户确认。敏感凭据仅有避免泄露的笼统提醒,没有密钥存储、日志脱敏或传输安全措施。依赖版本固定且 CI 执行 go mod verify 和 govulncheck,但扫描工具使用 latest,且没有锁定 CI Action 提交。查询通常没有需要回滚的持久变更,但项目也没有明确的撤销或恢复说明。模块路径指向 scottlepp/loki-mcp,而对象标称 grafana/loki-mcp,维护者与归属关系未被解释,故来源归属仅得薄弱分。
README、go.mod 和 CI 对基本构建及测试流程形成部分一致证据,依赖也采用 Go 模块固定版本并在 CI 下载验证。明显扣分来自 README 要求 Go 1.16,而 go.mod 与 CI 要求 Go 1.24.4;工作流说明声称存在真实 Loki 集成测试,但 ci.yml 中该任务整体被注释;“综合单元测试和 CI/CD”之类表述也无法由所给测试源码验证。材料几乎没有展示运行时错误分类、面向用户的失败消息或重试/超时行为。
文档充分覆盖 Claude Desktop、Cursor、n8n、Docker、本地 Loki 和多租户场景,并提供多种自然语言与命令示例,受众和场景说明较强。工具边界和参数模式得到说明,但没有代码来确认参数验证、时间语法、限制范围或自然语言映射行为。环境变量与多平台配置较完整,不过 Go 版本矛盾、SSE 模式启动方式不够明确,且 HTTP 部署认证只以“选择适当认证”带过。
README 的结构、架构概览、安装方式、环境变量、Docker 及大量示例组织清楚,信息架构和示例质量较好。命名大致稳定,但 lokiserver、loki-mcp-server 和仓库/模块归属存在差异。已知限制几乎没有集中说明;README 声称 MIT,但给定材料没有 LICENSE 正文且许可证元数据未知,因此不能充分核验。没有版本、发布或变更日志证据。CI 更新路径可见,但维护责任人、支持渠道和归属关系不明确。
该工具把 Loki LogQL 查询、时间范围、结果上限、租户与认证接入 MCP,对已有 Loki 用户具有清晰的增量价值;文档中的客户端、容器和提示示例有助于产出可用结果。扣分是未提供实际响应样例、输出模式或大结果处理说明,也没有证据说明分页、截断、性能和资源成本;部署仍需 Go 或 Docker、Loki 连接和凭据配置,因此成本收益只能评为普通使用下适当。
部分声明可在 go.mod 与 ci.yml 间交叉核对,例如 Go 版本、依赖固定、测试/构建/漏洞扫描命令;README 的工具、环境和项目结构也提供了可追踪入口。扣分是未提供处理器、模型、测试和 LICENSE 内容,无法核实实际参数处理、认证优先级、输出格式、错误行为及测试覆盖。工作流说明把已注释的集成测试描述为现行流程,README 也将“综合测试”“自动理解自然语言”等推断或宣传性陈述呈现为事实,事实与推断分离不足。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- README 的 Go 1.16 前置条件与 go.mod/CI 的 Go 1.24.4 冲突;部署前应按实际工具链重新确认。
- HTTP/SSE 端点的服务端认证、网络绑定和 TLS 策略没有说明,不应未经额外隔离直接暴露到不可信网络。
- 可调用方提供 Loki URL,部署时应限制允许的目标地址,以降低访问内部服务或意外外传日志查询的风险。
- 示例启用 autoApprove,且 Loki 日志可能包含敏感数据;生产环境宜保留人工授权或施加严格的工具与租户策略。
- LOKI_PASSWORD 和 LOKI_TOKEN 的存储、脱敏及轮换机制未展示;不要把真实凭据提交到配置文件或日志。
- ci.yml 中的真实 Loki 集成测试已被注释,不能把工作流说明中的集成测试声明视为当前执行证据。
- MIT 许可仅由 README 声称,给定材料没有 LICENSE 正文;采用或再分发前应核验许可证文件及仓库归属。
常见问题
它会托管或采集日志吗?
是否支持多租户 Loki?
org 或 LOKI_ORG_ID 指定组织 ID,服务会把它作为 X-Scope-OrgID 请求头发送。可以怎样认证到 Loki?
LOKI_USERNAME 和 LOKI_PASSWORD 使用基本认证,也可通过 LOKI_TOKEN 使用 bearer token;材料建议尽可能选择 token,并避免泄露凭据。必须使用 Docker 吗?
go run ./cmd/server 运行;Docker 和 Docker Compose 是额外的部署及测试路径。出现查询失败时应先检查什么?
LOKI_URL 是否可达、LogQL 是否有效、时间范围是否包含数据,以及租户 ID和认证变量是否与目标 Loki 配置一致。