日志智能MCP服务器
 
基于AI的日志分析服务器 模型上下文协议(MCP)它从多个来源获取结构化日志,检测异常,对类似错误进行聚类,总结重复出现的故障,并识别部署后的回归。
特性
- 多源摄入 --Serilog JSON/CREF、Elasticsearch转储、SQLite数据库、纯文本日志文件
- 指纹识别错误 --自动对类似的错误消息进行标准化和聚类
- 异常检测 --基于时间跳跃错误率的z-score分析的统计尖峰检测
- 回归检测 --比较部署日期之前/之后的错误模式
- 全文搜索 --搜索所有摄入的日志条目
- 时间线可视化 --使用ASCII条形图随时间变化的错误频率
安装
# From npm (recommended)
npm install -g log-intelligence-mcp
# Or run without installing
npx log-intelligence-mcp快速入门(来源)
# Install dependencies
npm install
# Build
npm run build
# Run (stdio transport for MCP clients)
npm startMCP客户端配置
光标(推荐:npx)
添加到您的 .cursor/mcp.json:
{
"mcpServers": {
"log-intelligence": {
"command": "npx",
"args": ["log-intelligence-mcp"]
}
}
}游标(全局安装)
如果您使用全局安装 npm install -g log-intelligence-mcp:
{
"mcpServers": {
"log-intelligence": {
"command": "log-intelligence-mcp"
}
}
}光标(本地开发)
从源代码开发时:
{
"mcpServers": {
"log-intelligence": {
"command": "node",
"args": ["path/to/log-intelligence-mcp/dist/index.js"]
}
}
}克劳德桌面版
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"log-intelligence": {
"command": "npx",
"args": ["log-intelligence-mcp"]
}
}
}工具
| 工具 | 说明 |
|---|---|
ingest_logs | 从源加载日志(serilog、elastic、sql、flatfile) |
summarise_errors | 对错误级别条目进行聚类和总结 |
detect_new_error_pattern | 在没有基线的比较窗口中查找错误 |
regression_after_date | 比较部署前后的错误模式 |
search_logs | 对所有摄入的条目进行全文搜索 |
get_error_timeline | 随时间变化的错误频率,可选异常检测 |
资源
| URI | 描述 |
|---|---|
logs://sources | 列出所有摄入的日志源及其条目计数 |
logs://summary | 总体统计数据:总条目、错误计数、独特模式 |
提示
| 提示 | 描述 |
|---|---|
analyse-logs | 引导式工作流程:摄取、总结、检测异常 |
investigate-error | 深入了解特定的错误模式 |
日志来源
Serilog JSON(clef)
倒像 精简日志事件格式 files——每行一个JSON对象 @t, @l, @mt, @m, @x 领域。还支持标准的Serilog JSON输出。
# Example: ingest a Serilog file
ingest_logs(source="serilog", path="./logs/app.clef")Elasticsearch转储
接受JSON数组 _source 文件,完整的ES响应格式(hits.hits[]._source)或NDJSON。还可以查询实时Elasticsearch端点。
# File dump
ingest_logs(source="elastic", path="./dumps/errors.json")
# Live query
ingest_logs(source="elastic", endpoint="http://localhost:9200", index="app-logs", filter="level:error")SQLite调试表
从SQLite数据库文件读取。按惯例自动映射列(Timestamp, Level, Message, Exception).
ingest_logs(source="sql", path="./debug.db", table="Logs", filter="Level = 'Error'")平面文件
使用ISO时间戳、日志级别和消息解析常见格式。处理多行堆栈跟踪。支持自定义正则表达式模式。
ingest_logs(source="flatfile", path="./logs/app.log")配置
可选择放置a log-intelligence.config.json 在您的工作目录中预配置源代码:
{
"sources": [
{ "name": "app-logs", "type": "serilog", "path": "./logs/app.clef" },
{ "name": "db-errors", "type": "sql", "path": "./debug.db", "table": "Logs", "filter": "Level = 'Error'" }
],
"defaults": {
"bucketMinutes": 60,
"anomalyThreshold": 2.0,
"maxSamples": 3
}
}服务器启动时,会自动接收预配置的源。
运作原理
指纹错误
消息通过剥离变量令牌(UUID、数字、时间戳、路径、URL、IP、引号字符串)进行标准化,然后进行SHA-256散列以生成16个字符的指纹。共享指纹的条目被分组到错误簇中。
异常检测
错误条目被分组到时间窗口中。计算基线平均值和标准偏差,并计算其中的桶 count > mean + threshold * stddev 被标记为异常。每个桶都有一个z分数用于排名。
回归检测
给定一个部署日期,检测器将日志拆分为前后窗口,在每个窗口中独立地对错误进行聚类,然后执行一组diff来识别:
- 新错误 --仅在部署后出现
- 错误增加 --以前存在,但增长率>2倍
- 已解决的错误 --部署后消失
样品数据
这 samples/ 目录包含用于测试的示例日志文件:
app.clef--Serilog CLEF格式,模拟部署+Redis中断webserver.log--带Java堆栈跟踪的平面文件格式elastic-dump.json--Elasticsearch JSON转储log-intelligence.config.json--配置为自动摄取所有样本
要使用示例数据进行测试,请将配置复制到您的工作目录中:
cp samples/log-intelligence.config.json .
npm start发展
# Run in dev mode with hot reload
npm run dev
# Type-check without emitting
npx tsc --noEmit许可证
麻省理工学院
