Loki MCP Server
让 MCP 客户端通过 LogQL 查询 Grafana Loki 日志。
- Star 数
- ★ 176
- 最近更新
- 1 年前
- 主语言
- Go
- FA 评分
- 41/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Claude.ai
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 运维工程师在 Claude Desktop 中用自然语言指定 LogQL,检查某个服务最近一小时的错误日志。
- 不适合
- 需要开箱即用日志后端的团队,本项目不提供 Loki 本身
- 需要标签发现、告警或规则管理功能的团队
- 希望免配置直接使用的用户,需自行部署 Loki 并配置端口与凭据
这个 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 当前 | 41 · 缺口较多 | MCP 服务器免费 | ★ 176 | 1 年前 | Go | Claude.ai |
| Agency Orchestrator:一句话组队 AI 专家团队 | 71 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 2.5k | 5 天前 | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
| OpenSandbox 运行时 | 74 · 存在缺口 | 代码库 / SDK免费 | ★ 17k | 今天 | Python | Codex · Claude Code |
| T3MP3ST 安全测试编排台 | 69 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 7k | 2 个月前 | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
代码显示服务提供 Loki 查询工具,并通过 URL、组织 ID 和认证环境变量连接 Loki;stdin/stdout、SSE 和 HTTP 端点在 README 与主程序中有说明,因此数据流部分较清楚。扣分原因:未见最小权限约束或用户确认机制,配置示例还包含 autoApprove;凭据处理仅有避免泄露的提醒,未见更具体的保护措施;HTTP 服务绑定所有接口且没有认证配置实现说明;没有回滚机制。模块路径和 CI 配置提供有限来源线索,但发布者身份与维护责任未得到验证。
README、go.mod 和 CI 文件说明了 Go 版本、依赖及预期构建和测试流程,代码也展示了三种 Loki 工具的注册。扣分原因:README 将 Go 1.16 列为前提,而 go.mod 和 CI 指向 Go 1.24.4;CI 的集成测试被注释;样本没有包含工具处理器实现,无法核对行为或错误处理。客户端有部分明确错误提示,但服务启动和查询失败时的端到端消息质量无法从样本确认。
文档面向 MCP 客户端、Claude Desktop、Cursor 和 n8n,提供查询参数、组织 ID、环境变量及多种运行方式,且工具调用意图集中于 Loki 查询。扣分原因:样本仅能确认查询工具注册,无法确认具体能力边界;服务端口说明与代码不一致,README 提到 SSE_PORT,代码使用 PORT;跨环境的认证与 HTTP 安全配置要求说明有限。
README 有项目结构、构建、运行、配置、示例、Docker 和许可章节,目录说明清楚,工具和环境变量命名较稳定。扣分原因:许可文件未随样本提供,只能看到 MIT 声明;未见变更日志或维护负责人;已知限制较少,且文档存在 Go 版本和端口配置不一致。
MCP 工具把 LogQL 查询带入兼容客户端,并暴露时间范围、条数和组织参数;文档举例说明了常见查询与多租户场景。扣分原因:README 承诺的查询参数之外没有展示返回格式或规模限制细节;当前样本未包含处理器实现,无法判断输出是否易于直接使用或其相对手动查询的收益;服务部署和凭据配置带来额外维护成本。
README 的工具名、参数和环境变量可与主程序的工具注册及客户端请求结构部分对应,依赖版本和 CI 步骤也有明确文本证据。扣分原因:处理器源码、测试源码及 LICENSE 文件不在样本中,CI 中集成测试又被注释;文档所称全面测试和覆盖范围没有在本次材料中得到独立佐证;材料未系统区分已实现事实与面向客户端的行为预期。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 部署前核实 README 与代码的 Go 版本及端口配置,并确认实际 HTTP 监听地址和访问控制策略。
- 样本未含处理器和测试源码;不要把 README 的全面测试或覆盖率描述视为本次审查已验证的结果。
- 配置示例包含 autoApprove,且服务支持携带凭据的 Loki 请求;应按实际客户端和网络环境审慎配置凭据及工具批准策略。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
What's Changed * support multiple results formats by @scottlepp in https://github.com/grafana/loki-mcp/pull/11 Full Changelog: https://github.com/grafana/loki-mcp/compare/v0.5.0...v0.6.0在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * add labels tools by @scottlepp in https://github.com/grafana/loki-mcp/pull/10 Full Changelog: https://github.com/grafana/loki-mcp/compare/v0.4.0...v0.5.0在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * add streamable by @scottlepp in https://github.com/grafana/loki-mcp/pull/9 Full Changelog: https://github.com/grafana/loki-mcp/compare/v0.3.0...v0.4.0在 GitHub 查看 ↗
常见问题
它会托管或采集日志吗?
是否支持多租户 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 配置一致。谢谢反馈,我们会据此改进页面。