日志搜索服务器

Loki MCP Server 是一个无需编写复杂 LogQL 查询即可轻松搜索和检索 Grafana Loki 日志的服务器。

  • by elad12390
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 elad12390/loki-mcp

使用说明

洛基MCP服务器

一 主控程序 服务器可以轻松搜索和检索Grafana Loki的日志,而无需编写复杂的LogQL查询。

快速开始

您可以直接使用以下命令运行此服务器 npx:

export LOKI_USERNAME="your-username"
export LOKI_PASSWORD="your-password"
export LOKI_URL="https://your-loki-instance.com"

npx @elad12390/loki-mcp

特性

此MCP服务器提供 7工具, 3资源,以及 3个提示 用于日志分析。AI助手会根据您的自然语言请求自动理解何时使用每种语言。

工具

🔍 loki_search_logs -您的主要日志搜索工具

  • 只需说:“检查日志”、“查找错误”、“在日志中搜索X”
  • 自动搜索所有服务(无需配置!)
  • 按应用程序、环境、服务等选择过滤器。

📊 loki_count_errors -获取数字和趋势

  • 只需说:“有多少错误”、“错误率”、“是错误在增加吗”
  • 返回图表和统计数据,而不是原始日志

🧩 loki_pattern_analysis -将类似错误分组

  • 只需说:“将类似错误分组”、“错误类型”、“对错误进行分类”
  • 事件必备-看看你是有1个问题还是100个不同的问题

🔎 loki_get_context -根本原因分析

  • 只需说:“在此错误之前发生了什么”,“显示上下文”
  • 显示特定错误之前/之后的日志

🔗 loki_scan_correlations -分布式跟踪

  • 只需说:“跟踪此ID”,“查找跟踪X的所有日志”,“跨服务跟踪此UUID”
  • 使用跟踪/关联ID跨微服务跟踪请求

🎯 loki_extract_field -数据提取

  • 拉出任何字段,查看频率分布
  • 示例:“哪些用户出现错误?”或“最常见的状态代码?”

📈 loki_show_metrics -使用情况分析

  • 查看您最常使用的工具

资源(只读数据)

资源提供AI助手可以读取的可发现数据:

loki://services -列出登录到Loki的所有服务/应用程序

  • 请先阅读此内容,了解可用内容

loki://labels -列出所有标签键(元数据字段)

  • 显示可以过滤的内容(应用程序、环境、命名空间等)

loki://labels/{label}/values -获取特定标签的值

  • 例子: loki://labels/app/values 显示所有应用程序名称

提示(引导式工作流)

提示是常见调试场景的预构建工作流:

debug-error -引导错误调试

  • 搜索错误,获取上下文,检查模式
  • 论据: error_text (必填), service, time_window

trace-request -跨服务跟踪请求

  • 通过分布式系统跟踪相关性/跟踪ID
  • 论据: trace_id (必填), time_window

health-check -快速生产健康检查

  • 列出服务、统计错误、识别模式
  • 论据: service, time_window

AI助手使用技巧

当用户说 “检查洛基” 或 “查看日志”,您应该:

  1. 阅读 loki://services 如果您不知道存在哪些服务,请提供资源
  2. 使用 loki_search_logs 作为您的主要搜索工具,它无需标签即可使用!
  3. 跟进 loki_get_context 如果你发现一个有趣的错误
  4. 使用 loki_count_errors 当他们问“有多少”
  5. 使用 loki_pattern_analysis 在事件期间对类似错误进行分组

对于复杂的调试,请使用 提示:

  • “调试此错误”->使用 debug-error 提示
  • “跟踪此请求ID”->使用 trace-request 提示
  • “生产健康吗?”->使用 health-check 提示

对话示例

用户: “检查loki支付服务中的错误” 人工智能: 用途 loki_search_logs 标签={“app”:“payment”},search_term=“error”

用户: “今天发生了多少错误?” 人工智能: 用途 loki_count_errors time_window=“24小时”

用户: “正在运行哪些服务?” 人工智能: 倒像 loki://services 资源

用户: “调试此错误:连接超时” 人工智能: 用途 debug-error 带有error_text=“连接超时”的提示

用户: “跨所有服务跟踪请求abc-123-def” 人工智能: 用途 trace-request 带有trace_id=“abc-123-def”的提示

配置

设置以下环境变量:

  • LOKI_URL:您的Loki实例的URL(默认值: http://localhost:3100)
  • LOKI_USERNAME:基本身份验证用户名(如果需要)
  • LOKI_PASSWORD:基本身份验证密码(如果需要)

发展

看 贡献.md 有关以下内容的详细信息:

  • 开发设置
  • 测试和CI/CD
  • 发布新版本
  • 部署流程
npm install
npm run build