Token导航 LogoToken导航TokenDH.com
MCP Log Reviewer logo
AI代理stdio官方级别未说明来源级核验

MCP Log Reviewer

MCP Server

一个自动化监控应用日志、检测错误并创建GitHub项目待办事项的系统,采用MCP协议和AI代理进行智能分析。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
Python自动化处理AI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Shirloin

提供方

Shirloin

最后核验

2026/5/17 20:23

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -i --rm \

详细介绍

日志监视器-自动错误检测和积压日志创建

一个全面的系统,可以自动监控应用程序日志、检测错误、分析代码,并使用MCP(模型上下文协议)和AI代理创建GitHub项目积压项。

目录

______________________________________________________________________

架构概述

Log Watcher系统构建在一个分层架构之上,该架构结合了日志聚合、智能分析和自动化任务管理。该系统以连续循环的方式运行,每5分钟监控一次日志,并在检测到错误时自动创建待办事项。

该架构遵循MCP(模型上下文协议)模式,其中:

  • MCP服务器 公开工具/功能
  • MCP客户端 (编排层)连接到多个服务器并协调工具使用
  • LLM代理 使用可用的MCP工具执行智能分析
┌─────────────────────────────────────────────────────────────┐
│                    Application Services                     │
│              (Generating logs with service labels)          │
└───────────────────────┬─────────────────────────────────────┘
                        │
                        ▼
┌─────────────────────────────────────────────────────────────┐
│                         Loki                                │
│              (Log Aggregation & Storage)                    │
│  - External log storage service                             │
│  - Provides LogQL query API                                 │
└───────────────────────┬─────────────────────────────────────┘
                        │
                        │ HTTP API (LogQL)
                        ▼
┌─────────────────────────────────────────────────────────────┐
│              MCP Servers (Tool Providers)                   │
│                                                             │
│  ┌──────────────────────┐      ┌──────────────────────┐     │
│  │ Loki Pooler          │      │ GitHub MCP Server    │     │
│  │ MCP Server           │      │ (Official)           │     │
│  │                      │      │                      │     │
│  │ Tool: log_query()    │      │ Tools:               │     │
│  │                      │      │ - search_code()      │     │
│  │ Queries Loki API     │      │ - get_file_contents()│     │
│  │ Returns log data     │      │ - list_projects()    │     │
│  │                      │      │ - create_issue()     │     │
│  └──────────────────────┘      └──────────────────────┘     │
└───────────────────────┬─────────────────────────────────────┘
                        │
                        │ MCP Protocol (stdio)
                        ▼
┌─────────────────────────────────────────────────────────────┐
│         Orchestration Layer (MCP Client + LLM Agent)        │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐    │
│  │              MCP Client                             │    │
│  │  - Connects to multiple MCP servers                 │    │
│  │  - Manages tool discovery and execution             │    │
│  │  - Handles communication protocol                   │    │
│  └───────────────────────┬─────────────────────────────┘    │
│                          │                                  │
│  ┌───────────────────────▼─────────────────────────────┐    │
│  │              LLM Agent (GPT-5.2)                    │    │
│  │                                                     │    │
│  │  Capabilities:                                      │    │
│  │  • LLM Review: Analyzes logs, investigates code     │    │
│  │  • Uses log_query() from Loki Pooler MCP Server     │    │
│  │  • Uses GitHub tools from GitHub MCP Server         │    │
│  │  • Creates/updates backlog items                    │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                             │
│  - Schedules execution (every 5 minutes)                    │
│  - Coordinates workflow between tools                       │
│  - Makes intelligent decisions                              │
└───────────────────────┬─────────────────────────────────────┘
                        │
                        │ GitHub API
                        ▼
              ┌─────────────────────┐
              │  GitHub Project     │
              │  Backlog Items      │
              │  (Created/Updated)  │
              └─────────────────────┘

为什么是这种架构?

该架构遵循 MCP(模型上下文协议) 模式,它提供了几个关键好处:

  1. 关注点分离:

- 每个MCP服务器都是专门的工具提供商 - 编排层侧重于协调,而不是实施 - 明确日志查询、代码访问和项目管理之间的界限

  1. 模块化和可扩展性:

- 易于添加新的MCP服务器(例如Jira、Slack、监控工具) - 每个服务器都可以独立开发、部署和更新 - 工具可通过MCP协议发现并自我记录

  1. 可重复使用性:

- Loki Pooler MCP服务器可供其他应用程序使用 - GitHub MCP Server是官方维护的工具 - 无需重新实现GitHub API集成

  1. 协议标准化:

- 所有工具通过MCP协议(stdio)进行通信 - 无论工具实现如何,界面都保持一致 - 易于交换的实现(例如,不同的日志查询服务器)

  1. AI代理灵活性:

- LLM代理可以发现和使用任何可用的工具 - Agent根据上下文决定使用哪些工具 - 没有硬编码的工作流-代理适应可用功能

流程说明:

  • Loki → 洛基普尔MCP服务器:直接HTTP连接,因为Loki Pooler需要查询Loki的API
  • MCP服务器→ 业务流程层:MCP协议(stdio),因为这是MCP服务器通信的标准方式
  • 业务流程层:包含MCP客户端(工具路由器)和LLM代理(工具用户),因为它们协同工作-客户端在代理使用工具时管理连接

______________________________________________________________________

系统流量

高级工作流

  1. 日志收集:应用程序日志持续发送到Loki
  2. 预定投票:系统每5分钟向Loki查询一次最近的错误日志
  3. 错误检测:系统过滤并识别错误条目
  4. 代码分析:AI代理分析代码库以找到根本原因
  5. 待办事项列表创建:自动创建或更新GitHub项目待办事项列表项

详细的分步流程

┌─────────────────────────────────────────────────────────────────┐
│                    SYSTEM EXECUTION CYCLE                       │
└─────────────────────────────────────────────────────────────────┘

1. SCHEDULER TRIGGER (Every 5 minutes)
   │
   ├─> Orchestration Layer starts agent execution
   │
2. LOG QUERY PHASE
   │
   ├─> LLM Agent requests log data
   │   ├─> MCP Client routes call to Loki Pooler MCP Server
   │   ├─> Loki Pooler MCP Server queries Loki API (HTTP)
   │   ├─> Filters logs by service name
   │   ├─> Retrieves logs from last 5 minutes
   │   └─> Returns formatted log data to LLM Agent
   │
3. ERROR ANALYSIS PHASE (If errors found)
   │
   ├─> LLM Review Agent receives log data
   │   ├─> Analyzes error messages
   │   ├─> Extracts stack traces
   │   ├─> Identifies error patterns
   │   └─> Determines error context
   │
4. CODE INVESTIGATION PHASE (If errors found)
   │
   ├─> LLM Agent requests code investigation
   │   ├─> MCP Client routes calls to GitHub MCP Server
   │   ├─> Agent uses search_code() tool → Finds relevant files
   │   ├─> Agent uses get_file_contents() tool → Reads source code
   │   ├─> Agent analyzes code to identify file and line numbers
   │   └─> Agent extracts code snippets causing errors
   │
5. BACKLOG MANAGEMENT PHASE (If errors found)
   │
   ├─> LLM Agent requests backlog management
   │   ├─> MCP Client routes calls to GitHub MCP Server
   │   ├─> Agent uses list_projects() tool → Finds target project
   │   ├─> Agent uses list_issues() tool → Checks for duplicates
   │   ├─> Agent uses create_issue() tool → Creates new backlog OR
   │   └─> Agent updates existing backlog item if duplicate found
   │
6. COMPLETION
   │
   └─> Wait 5 minutes, then repeat from step 1

______________________________________________________________________

图层分解

1.洛基(原木)

目的:集中式日志聚合和存储系统

描述:

  • Loki是一个水平可扩展、高可用的日志聚合系统
  • 从应用程序服务收集日志
  • 存储带有标签的日志(例如。, service, environment, level)
  • 提供用于日志检索的LogQL查询接口

主要特点:

  • 高效的日志存储和索引
  • 基于标签的日志过滤
  • 时间范围查询
  • 高可用性和可扩展性

配置:

  • 需要一个正在运行的Loki实例
  • 服务日志必须标记为 service 标签
  • 可通过HTTP API端点访问

______________________________________________________________________

2.MCP服务器(工具提供商)

目的:通过MCP协议公开专用工具/功能

建筑:MCP服务器是公开工具的独立进程。编排层连接到多个MCP服务器以访问其工具。

2.1洛基普尔MCP服务器

目的:作为MCP工具提供日志查询功能

位置: mcp-server-log-query/

组件:

  • log_query.py:查询Loki API的核心函数
  • main.py:FastMCP服务器暴露 log_query 工具

功能:

  • 使用LogQL语法查询Loki
  • 按服务名称筛选日志
  • 检索过去5分钟的日志(可配置)
  • 返回带有日志条目、时间戳和元数据的格式化JSON

MCP工具: log_query()

  • 输入:无(使用环境变量)
  • 输出:带有日志结果的JSON字符串
  • 查询模式: {service=""}
  • 连接:对Loki的直接HTTP API调用

关键文件:

mcp-server-log-query/
├── log_query.py      # Loki query implementation
├── main.py           # MCP server with log_query tool
├── Dockerfile        # Container build configuration
└── docker-compose.yml # Docker deployment config

2.2 GitHub MCP服务器(官方)

目的:提供GitHub存储库和项目管理功能

描述:

  • GitHub上的官方GitHub MCP服务器
  • 展示全面的GitHub API工具
  • 处理身份验证和API通信

使用的关键MCP工具:

  • search_code():搜索存储库代码
  • get_file_contents():读取源代码文件
  • list_projects():列出GitHub项目
  • create_issue():创建待办事项
  • list_issues():检查重复项
  • 还有更多的GitHub操作

整合:

  • 通过MCP协议(stdio)连接
  • 使用GitHub个人访问令牌进行身份验证
  • 作为Docker容器运行

______________________________________________________________________

3.编排层(MCP客户端+LLM代理)

目的:协调所有MCP工具并管理智能代理工作流程

位置: mcp-client/

组件:

  • mcp_agent.py:主编排脚本
  • config.json:MCP服务器配置

建筑: 编排层由两个协同工作的主要组件组成:

  1. MCP客户端:管理与MCP服务器的连接
  2. LLM代理:使用MCP服务器提供的工具

MCP客户责任:

  • 从加载MCP服务器配置 config.json
  • 建立与多个MCP服务器的连接:

- log:洛基普尔MCP服务器 - github:GitHub MCP服务器(官方)

  • 发现每台服务器上的可用工具
  • 代表代理执行工具调用
  • 处理MCP协议通信(stdio)

LLM代理人职责:

  • 基于OpenAI的GPT-5.2模型
  • 通过提示接收工作流指令
  • 对使用哪些工具做出明智的决定
  • 分析日志数据和代码
  • 协调多步骤工作流程

工作流执行:

步骤1:查询日志

  • 客服电话 log_query() 来自Loki Pooler MCP服务器的工具
  • MCP客户端将呼叫路由到相应的服务器
  • Loki Pooler查询Loki API并返回格式化日志
  • 代理接收过去5分钟的错误日志

步骤2:错误分析 (如果发现错误)

  • 代理使用LLM功能分析日志数据
  • 提取错误消息、堆栈跟踪和上下文
  • 识别错误类型和模式
  • 确定错误严重程度和影响

步骤3:代码调查 (如果发现错误)

  • 代理调用GitHub MCP工具(search_code, get_file_contents)
  • MCP客户端将调用路由到GitHub MCP服务器
  • 代理接收源代码文件并确定根本原因
  • 提取文件路径、行号和代码段

步骤4:待办事项管理 (如果发现错误)

  • 代理调用GitHub MCP工具(list_projects, list_issues)
  • 检查现有积压项目以防止重复
  • 使用创建新的待办事项列表项 create_issue 工具
  • 如果错误仍然存在,则更新现有项目

调度:

  • 启动后立即运行
  • 每5分钟执行一次(可配置)
  • 优雅地处理错误并继续运行

主要特点:

  • 多服务器工具协调
  • 智能工作流编排
  • 错误处理和日志
  • 可配置的执行间隔

______________________________________________________________________

4.LLM评审(能力,而不是单独的一层)

备注:LLM Review不是一个单独的架构层。这是一个 能力 业务流程层中的LLM代理。

目的:智能日志分析和代码调查功能

描述:

  • 这是LLM代理执行的智能分析
  • 使用GPT-5.2模型来理解和分析数据
  • 决定何时使用哪些工具
  • 综合来自多个来源的信息

能力:

  • 错误模式识别
  • 代码上下文理解
  • 根本原因分析
  • 重复检测逻辑
  • 自然语言理解

______________________________________________________________________

5.GitHub项目待办列表创建者(功能,而不是单独的层)

备注GitHub项目待办列表创建器不是一个单独的架构层。这是一个 能力 由GitHub MCP Server工具提供,由LLM代理使用。

目的:自动化积压项目创建和管理能力

描述:

  • 此功能由LLM代理使用GitHub MCP Server工具实现
  • 代理智能地决定何时创建/更新待办事项
  • 协同使用多个GitHub工具

工具使用:

  • list_projects():查找目标项目
  • list_issues():检查现有项目
  • create_issue():创建新的待办事项
  • get_file_contents():包括代码引用

待办事项结构:

  • 标题:简要错误描述(由代理生成)
  • 描述:错误详细信息、代码片段、文件路径(由代理合成)
  • 标签:自动分类
  • 参考文献:源代码文件和行号的链接

______________________________________________________________________

入门指南

先决条件

  • 码头工人:用于运行MCP服务器
  • Python 3.12+:适用于MCP客户端
  • 洛基实例:运行和可访问
  • GitHub账号:使用个人访问令牌
  • OpenAI API密钥:LLM代理

所需的环境变量

适用于MCP服务器(Loki Pooler)

  • LOKI_URL:指向您的Loki实例的URL(例如。, http://localhost:3100)
  • SERVICE_NAME:要监视的服务的名称(例如。, my-app)

用于MCP客户端(编排)

  • GITHUB_REPOSITORY:存储库名称(例如。, my-org/my-repo)
  • GITHUB_OWNER:GitHub用户名或组织
  • GITHUB_PROJECT:积压项目的项目名称
  • GITHUB_PERSONAL_ACCESS_TOKEN:具有仓库和项目权限的GitHub PAT
  • OPENAI_API_KEY:LLM的OpenAI API密钥

______________________________________________________________________

配置指南

步骤1:配置MCP服务器(Loki Pooler)

1.1构建Docker镜像

导航到MCP服务器目录:

cd mcp-server-log-query

构建Docker镜像:

docker build -t mcp-log-query:latest .

或者使用docker compose:

docker-compose build

1.2配置环境变量

创建 .env 文件在 mcp-server-log-query/:

LOKI_URL=http://your-loki-instance:3100
SERVICE_NAME=your-service-name

1.3测试MCP服务器

在本地运行服务器进行测试:

docker run -i --rm \
  -e LOKI_URL=http://your-loki-instance:3100 \
  -e SERVICE_NAME=your-service-name \
  mcp-log-query:latest

服务器应启动并等待stdio输入。

1.4推送到容器注册表(可选)

如果使用远程Docker镜像:

docker tag mcp-log-query:latest your-registry/mcp-log-query:latest
docker push your-registry/mcp-log-query:latest

更新 docker-compose.ymlconfig.json 使用您的图像名称。

______________________________________________________________________

步骤2:配置MCP客户端(编排层)

2.1安装依赖项

导航到MCP客户端目录:

cd mcp-client

创建虚拟环境:

python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

安装所需的软件包:

pip install mcp-use langchain-openai python-dotenv

2.2配置环境变量

创建 .env 文件在 mcp-client/:

# GitHub Configuration
GITHUB_REPOSITORY=your-org/your-repo
GITHUB_OWNER=your-org
GITHUB_PROJECT=Your Project Name
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token_here

# OpenAI Configuration
OPENAI_API_KEY=sk-your-openai-key-here

2.3配置MCP服务器

复制示例配置:

cp config.example.json config.json

编辑 config.json:

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN=${GITHUB_PERSONAL_ACCESS_TOKEN}",
        "-e",
        "GITHUB_TOOLSETS=all",
        "-e",
        "GITHUB_TOOLS=all",
        "ghcr.io/github/github-mcp-server"
      ]
    },
    "log": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--pull",
        "always",
        "-e",
        "LOKI_URL",
        "-e",
        "SERVICE_NAME",
        "your-registry/mcp-log-query:latest"
      ],
      "env": {
        "LOKI_URL": "${LOKI_URL}",
        "SERVICE_NAME": "${SERVICE_NAME}"
      }
    }
  }
}

重要配置说明:

  1. Docker镜像名称:替换 your-registry/mcp-log-query:latest 使用您的实际图像名称
  2. 环境变量:The ${VARIABLE} 语法将从您的 .env 文件
  3. GitHub 令牌:确保您的令牌具有以下权限:

- repo (完全控制) - read:org (如果使用组织项目) - project (完全控制)

2.4验证配置

通过运行快速检查来测试配置:

# test_config.py
import json
import os
from dotenv import load_dotenv

load_dotenv()

with open("config.json", "r") as f:
    config = json.load(f)

print("MCP Servers configured:")
for server_name in config["mcpServers"]:
    print(f"  - {server_name}")

print("\nEnvironment variables:")
print(f"  GITHUB_REPOSITORY: {os.getenv('GITHUB_REPOSITORY')}")
print(f"  GITHUB_OWNER: {os.getenv('GITHUB_OWNER')}")
print(f"  GITHUB_PROJECT: {os.getenv('GITHUB_PROJECT')}")
print(f"  LOKI_URL: {os.getenv('LOKI_URL')}")
print(f"  SERVICE_NAME: {os.getenv('SERVICE_NAME')}")

______________________________________________________________________

用法

运行系统

启动MCP客户端

mcp-client/ 目录:

python mcp_agent.py

该系统将:

  1. 初始化与两台服务器的MCP连接
  2. 启动AI代理
  3. 启动后立即运行
  4. 继续每5分钟跑步一次

期望输出

[2024-01-15 10:00:00] Initializing agent...
[2024-01-15 10:00:01] Agent initialized. Starting scheduler. Running every 5 minutes.
Press Ctrl+C to stop.
--------------------------------------------------------------------------------
[2024-01-15 10:00:01] Starting agent run...
[2024-01-15 10:00:05] Agent run completed.
[Agent response with log analysis and backlog creation details]
--------------------------------------------------------------------------------
[2024-01-15 10:05:01] Starting agent run...
...

停止系统

Ctrl+C 优雅地停止代理调度程序。

______________________________________________________________________

目录标签

目录标签

Python自动化处理AI代理日志监控本地部署错误检测GitHub集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP