grafana-log-mcp
Provides read-only log querying and aggregation for Grafana/Loki, enabling tools to list data sources and projects, query raw logs, retrieve full log lines, detect slow logs, summarize errors, analyze log volume trends, trace request contexts, compare baselines, inspect fields, trace flows, diagnose issues, and generate Explore deep links.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@grafana-log-mcp diagnose why the checkout service shows a spike in 500 errors since 2pm"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
grafana-log-mcp
grafana-log-mcp is a generic, reusable log-querying layer for Grafana/Loki, exposed as a read-only stdio MCP server. It talks to Grafana's API and returns raw logs plus aggregated views — slow queries, error fingerprints, and volume trends — filtered by time window, project, keyword, or duration threshold.
It deliberately ships no business-specific logic or heuristics. Once the logs are in hand, correlating them with source code and explaining why something happened is left to your AI IDE and the skills/rules of the business project being debugged — the server just makes the data available.
中文定位:这是一个通用的日志查询层(仅做取数、聚合、返回日志,跨业务复用),不内置任何业务分析与根因归因;具体原因分析由调用方的 AI 结合业务项目源码及项目自身的 skill/经验完成。
安装
# 方式一:npm 全局安装(推荐)
npm install -g grafana-log-mcp全局安装后提供两个命令:grafana-log-mcp(启动 MCP Server)、grafana-log-mcp-login(交互登录)。
也可不安装、用 npx 一次性运行:npx -y grafana-log-mcp / npx -y grafana-log-mcp-login。
Related MCP server: quickwit-mcp
快速开始
npm 已安装(消费方)
# 1. 登录(交互输入 Grafana 地址与用户名密码,写入 ~/.grafana-log-mcp/credentials.json,0600)
grafana-log-mcp-login
# 2. 校验凭证(排查"MCP 突然查不了")
grafana-log-mcp-login --check
# 3. 启动 MCP Server(stdio)
grafana-log-mcp源码开发(clone 仓库后)
# 1. 安装依赖(node >= 18)
npm install
# 2. 登录
node bin/login.js
# 3. 校验凭证
node bin/login.js --check
# 4. 启动 MCP Server(stdio)
npm start # 即 node src/index.js接入 AI IDE(Trae/Claude 等)
在 MCP 配置中添加(按各 IDE 的配置格式):
{
"mcpServers": {
"grafana-log": {
"command": "npx",
"args": ["-y", "grafana-log-mcp"],
"env": { "GRAFANA_URL": "https://your-grafana.example.com" }
}
}
}推荐全局启用:排障时打开的是业务项目源码仓库,把 MCP 配置加为全局,即可在任意仓库直接"提问 → 查日志 → 读代码 → 给原因"。
工具(15 个)
层 | 工具 | 用途 |
发现 |
| 多数据源枚举、项目发现(含未登记的 app/group) |
元数据 |
| 标签与取值 |
查询 |
| 原始日志(优先 requestId + 窄时间窗控制数据量) |
查询 |
| 取回单条日志完整原文(单行 500 截断时,按该行 time 作 timestamp 查询) |
查询 |
| 按耗时阈值抓慢日志(如 >30s 的慢 SQL),自动配对回捞 SQL 语句原文;命中超 30 条(循环任务)时自动按操作聚合 |
有报错 |
| 错误归并分级、量级突增、单请求链路 |
无报错 |
| 消失的日志模板、空值字段、流程断点 |
编排 |
| 排障首选:一次调用出诊断报告 + codeHints |
辅助 |
| 生成 Grafana Explore 深链供人工核对 |
数据量三道硬上限:limit ≤ 1000、单行 500 字符、响应 25k 字符(超出保头尾省中段并标注)。单行被截断时可用 get_full_line 按该行 time 取回完整内容。
项目登记(projects.json)
登记文件按以下优先级定位(list_projects 返回的 summary.configFile 会显示当前实际生效位置):
GRAFANA_CONFIG_PATH环境变量指定的文件包内
config/projects.json(源码仓库内)~/.grafana-log-mcp/projects.json(与凭证同目录,npm 安装后的默认位置)
参考格式见 config/projects.example.json,每项含 key / datasourceUid / labels{app,group} / aliases(中文别名) / repoPath。repoPath 仅供 AI IDE 定位代码用,MCP 自身不读源码。故障知识库在 config/failure-patterns.json,遇到新故障类型追加条目即可。
环境变量(可选)
GRAFANA_URL= # Grafana 地址:作为 grafana-log-mcp-login 的默认地址,并覆盖凭证文件中的地址
GRAFANA_ORG_ID=1 # 可选:仅影响 build_explore_url 生成的 Explore 深链的 orgId 参数(默认 1);不参与实际日志查询
GRAFANA_CREDENTIALS_PATH= # 自定义凭证文件位置
GRAFANA_CONFIG_PATH= # 自定义项目登记文件(projects.json)位置
GRAFANA_MOCK=1 # 本地 mock 模式:不连真实 Grafana、无需登录(2500 条合成日志,验证翻页/截断/慢日志)说明:MCP 不内置任何 Grafana 默认地址与项目配置(通用化),地址来自登录时输入(凭证文件)或 GRAFANA_URL 环境变量;实例相关配置(项目登记、数据源 uid)在 projects.json 维护(见上节定位规则)。
测试
node test/unit.mjs # 纯逻辑单测(合成日志,无网络依赖):59 通过
node test/integration.mjs # 编排器端到端(mock client + 独立 fixture 配置):20 通过Available Tools
15 toolsbuild_explore_urlC
生成 Grafana Explore 深链:AI 给出结论后,人可一键跳到 Grafana 亲自核对原始日志。
Inputs: end, level, range, start, +5 more.
compare_baselineA
与基线窗对比("日志都正常但结果不对"时的首选):找出消失的日志模板(静默跳过信号)、新出现的模板、数值偏离(逻辑 bug 信号)、字段取值分布突变。默认对比前一天同时段。
Inputs: end, range, start, labels, +4 more.
diagnose_issueA
【排障首选】一次调用完成完整根因分析:量级趋势→异常定位→双路径探测(错误突增归并分类 + 无报错基线对比/空值探测/流程断点)→候选原因打分。返回带证据链的诊断报告 + codeHints(供在当前代码仓库中检索定位)。不传 project 则跨全部数据源扫描找疑似源头。
Inputs: end, range, start, project, +2 more.
get_full_lineA
取回日志完整原始行(不做单行截断):query_logs/trace_context 返回的行带"(截断 N 字符)"标记时,把该行的 time 作为 timestamp(配合 keyword)调本工具取回完整内容。
Inputs: end, start, labels, keyword, +5 more.
inspect_fieldsA
字段取值与空值探测("变量没设置"时的首选):统计字段空值率、命中"使用默认值/未配置/fallback"的日志样本。
Inputs: end, range, start, fields, +4 more.
list_datasourcesA
列出该 Grafana 实例上全部 Loki 日志数据源(uid/名称/是否默认),以及各数据源已登记的项目数。多数据源环境下先用它确认要查哪个数据源。
Inputs: no named parameters.
list_labelsB
列出某数据源(或某项目)在时间窗内可用的日志标签名(如 app/group/host/level)。
Inputs: range, labels, project, datasourceUid.
list_label_valuesC
列出指定标签在时间窗内的全部取值(如 labelName=app 列出所有服务名)。
Inputs: labelName (required), range, labels, project, +1 more.
list_projectsA
列出全部可查项目:已登记项目(含中文别名)+ 遍历各 Loki 数据源实时发现的 app/group 组合(默认查最近 24h,标注归属数据源与登记状态)。不知道项目叫什么时先调这个。
Inputs: no named parameters.
logs_volumeC
日志量级趋势与突增检测:分桶计数 + 相对基线的突增倍数 + 异常起始时刻。回答"什么时候开始出问题"。
Inputs: end, range, start, labels, +4 more.
query_logsA
查询原始日志。数据量控制:优先用 requestId 精确到单次请求;配合窄时间窗(默认 15m);行数/单行长度/总响应均有硬上限,超出会标注省略。排查线上问题建议优先用 diagnose_issue(自动聚合分析),本工具适合按线索精确取证。
Inputs: end, level, limit, range, +9 more.
query_slow_logsA
按耗时阈值抓取慢日志(如执行超过 30s 的慢 SQL)。支持三个维度:sql(每条 SQL 的 queryRows/updateRows Nms)、request(请求级 utime)、connection(连接级 release)。慢 SQL 自动按连接号-序号配对回捞语句原文;命中超 30 条(如循环任务)时自动按操作聚合统计(count/totalMs/maxMs/avgMs),明细仅保留最慢样本。
Inputs: end, kind, level, limit, +10 more.
summarize_errorsA
错误聚合归并:把窗口内错误按模板指纹压缩成少量模式,区分首发错误(可能的原因)与级联噪声(后果),并给出故障类型分类、堆栈业务帧、高频 requestId。比直接翻错误日志高效得多。
Inputs: end, topN, range, start, +4 more.
trace_contextA
按 requestId/traceId 还原单次请求的完整日志链路(时间正序)。定位具体一次失败请求时用它,返回量小且完整。
Inputs: end, range, start, labels, +4 more.
trace_flowA
流程完整性检查("流程走一半没了但不报错"时的首选):取一条链路的日志模板序列,与成功样本序列对比,定位流程在哪一步中断。
Inputs: range, labels, project, traceId, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
工具职责整体清晰,但 query_logs 与 trace_context 都涉及查询日志,且 summarize_errors 与 diagnose_issue 有功能重叠;不过描述中给出明确适用场景(如 query_logs 用于按线索取证,trace_context 用于请求链路还原),可有效区分。
所有工具名均为 snake_case 的动词+名词形式,如 list_datasources、query_slow_logs、diagnose_issue,模式统一,无混合风格,易于预测。
15 个工具覆盖日志查询、聚合、诊断、对比、链路追踪等核心场景,每个工具都有明确用途,无明显冗余,规模适中。
工具集覆盖日志排障的完整生命周期:发现数据源、探索项目与标签、查询原始日志、聚合错误、趋势检测、链路追踪、基线对比、字段检查、流程断点、综合诊断,并生成 Explore 深链,无关键缺口。
Maintenance
Related MCP Connectors
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Hosted MCP server for PostgreSQL diagnostics: slow queries, missing indexes, connection pressure.
Analytics for MCP servers. Query your tool calls, first-call success, retries and schema cost.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server for querying Grafana Loki directly with a discovery-first workflow — labels, values, series, and LogQL queries without requiring Grafana.58MIT
- AlicenseNot gradedqualityFmaintenanceA read-only MCP server that exposes Quickwit log search and aggregations to LLM clients, enabling natural language log investigation.Apache 2.0
- AlicenseAqualityDmaintenanceA read-only MCP server for querying Sumo Logic logs, enabling AI assistants to search and investigate application logs with opinionated tools and secure credential handling.525 npm1MIT
- FlicenseAqualityCmaintenanceRead-only MCP server for searching migrated Papertrail logs via SolarWinds Observability API. Provides tools to list environments and perform bearer-authenticated log queries through stdio.215 npm-