日志分析服务器

一个基于FastMCP框架的日志分析服务器,提供日志文件模式分析和详细分析功能,支持VS Code集成。

  • by antodavid
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 antodavid/Log-Analyzer-MCP-Server

使用说明

日志分析器MCP服务器

一个使用FastMCP框架分析日志文件的模型上下文协议(MCP)服务器。

特点/特性

  • 基于FastMCP 2.0的服务器实现
  • 日志文件模式分析与检测
  • 带有过滤功能的详细日志文件分析
  • 用于VS Code集成的STDIO传输
  • 异步工具执行

要求

  • Python 3.10+
  • FastMCP 2.0+
  • Loguru(注:这是一个专有名词,通常指一个日志库或日志记录工具的名称,在中文中直接保留原名,不进行翻译)

安装

# Clone the repository
git clone https://github.com/antodavid/Log-Analyzer-MCP-Server.git
cd Log-Analyzer-MCP-Server

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
pip install -e .[dev]

运行服务器

# Run directly
python src/log_analyzer_mcp_server/server.py

# Or with environment variables
FASTMCP_LOG_LEVEL=INFO PYTHONPATH=src python src/log_analyzer_mcp_server/server.py

配置

日志目录

日志目录可以通过环境变量进行配置:

export LOG_ANALYZER_LOG_DIR="/path/to/your/logs"

默认值: log_files/ 在项目根目录中

可用工具

分析日志模式

分析日志文件以识别常见模式并将相似消息归类。

支持使用通配符进行模式匹配!

参数:

  • log_file_path (str): 日志文件的路径或模式(支持 * 并且 ? 通配符)
    • 示例: "API_*.LOG", "app.log", "error_*.log"
  • min_frequency (int, 可选): 模式出现的最小次数(默认值:2)
  • max_patterns (int, 可选): 返回的最大模式数(默认值:10)

返回值:

  • 包含已识别模式及其频率、示例和文件列表的字典

示例:

# Analyze single file
result = await analyze_log_patterns(
    log_file_path="app.log",
    min_frequency=3,
    max_patterns=15
)

# Analyze all API logs
result = await analyze_log_patterns(
    log_file_path="API_*.LOG",
    max_patterns=20
)

分析日志文件

对日志文件进行详细分析,并可选择过滤。

支持使用通配符进行模式匹配!

参数:

  • log_file_path (str): 日志文件的路径或模式(支持 * 并且 ? 通配符
    • 示例: "API_*.LOG", "app.log", "server_*.log"
  • severity_filter (str, 可选): 通过严重程度级别(ERROR,WARNING,INFO,DEBUG)进行过滤
  • start_time (字符串,可选):日志分析的开始时间(ISO 格式)
  • end_time (字符串,可选):日志分析的结束时间(ISO 格式)

返回值:

  • 包含详细日志分析结果和文件列表的字典

示例:

# Analyze single file for errors
result = await analyze_log_file(
    log_file_path="app.log",
    severity_filter="ERROR"
)

# Analyze all API logs for warnings
result = await analyze_log_file(
    log_file_path="API_*.LOG",
    severity_filter="WARNING"
)

测试

pytest -q

扩展

在以下位置添加新的工具模块 log_analyzer_mcp_server/tools/ 并为它们注册在 server.py。

VS Code 集成

这个MCP服务器通过模型上下文协议与VS Code集成。

设置

  1. 在您的工作区中添加以下配置 .vscode/settings.json:
{
    "mcpServers": {
        "log-analyzer": {
            "command": "/absolute/path/to/.venv/bin/python",
            "args": [
                "/absolute/path/to/src/log_analyzer_mcp_server/server.py"
            ],
            "env": {
                "PYTHONPATH": "/absolute/path/to/src",
                "FASTMCP_LOG_LEVEL": "INFO"
            }
        }
    }
}
  1. 重启 VS Code 以使更改生效

  2. 当VS Code的Copilot需要时,MCP服务器将自动启动

与Copilot一起使用

现在你可以让Copilot分析你的日志文件:

  • “分析位于 /path/to/app.log 中的日志模式”
  • “在这个日志文件中显示常见的错误模式”
  • “服务器日志中最频繁出现的信息是什么?”
  • “分析过去一小时的错误”

服务器将利用其模式检测和分析能力来提供深入见解。

许可证

麻省理工学院(MIT)