取证日志MCP服务器
高性能 模型上下文协议 用于日志分析的(MCP)服务器,由 波拉斯 以及定制的SIMD加速解析器。
赋予Claude分析海量日志文件(千兆字节数据)的能力,这些文件永远无法放入其上下文窗口。
 
特性
- 快速聚合:在GROUP BY操作上比awk快5-50x
- SIMD加速:使用自定义解析器
memchr用于结构化查询 - 多格式:Apache、Nginx、Syslog、JSON行、CSV/TSV
- 流媒体:通过延迟求值处理大于RAM的文件
- 人工智能原生:通过MCP协议为Claude集成而设计
演出
MCP擅长 集合查询 对于大文件(1M行,125MB Apache日志):
| 操作 | awk | MCP | 加速 |
|---|---|---|---|
| 按IP分组 | 0.26秒 | 0.048秒 | 速度提高5倍 |
| 按方法分组 | 1.31s | 0.047s | 速度提高28倍 |
| 按用户_代理分组 | 2.40s | 0.049s | 快50倍 |
| 按推荐人分组 | 1.14s | 0.046s | 快25倍 |
| 总和大小 | 0.37s | 0.047s | 快8倍 |
| JSON分组方式(vs jq) | 1.65s | 0.16s | 快11倍 |
诚实评价:
- MCP主导GROUP BY/聚合查询(速度快5-50x)
- 对于简单的行计数,grep的速度快了约24倍(
grep -c) - MCP的Python/MCP开销约为57ms,在大文件上可以忽略不计
看 benchmark/benchmark.md 详细的方法论和诚实的比较。
快速开始
安装
# Clone the repository
git clone https://github.com/TLinvest/forensic-log-mcp.git
cd forensic-log-mcp
# Build the MCP server
cd mcp
cargo build --release二进制文件将位于 mcp/target/release/forensic-log-mcp.
配置
添加到您的Claude Code项目 .mcp.json:
{
"mcpServers": {
"forensic-logs": {
"type": "stdio",
"command": "/path/to/forensic-log-mcp",
"args": []
}
}
}或在全球范围内添加 ~/.claude.json.
使用示例
配置后,Claude可以直接分析您的日志:
"Find all 500 errors in my nginx access log"
→ Uses analyze_logs with filter_status="500"
"Count requests by IP address"
→ Uses aggregate_logs with group_by="ip"
"Search for timeout errors in the last hour"
→ Uses search_pattern with regex matching
"Show me the error rate by hour"
→ Uses time_analysis with bucket="hour"可用工具
| 工具 | 说明 |
|---|---|
get_log_schema | 从日志文件中发现列和示例数据 |
analyze_logs | 筛选、分组和排序日志数据 |
aggregate_logs | 执行统计聚合(计数、求和、平均值、最小值、最大值) |
search_pattern | 搜索正则表达式模式 |
time_analysis | 使用bucketing分析随时间变化的日志 |
支持格式
| 格式 | 自动检测 | SIMD快速路径 |
|---|---|---|
| Apache/Nginx组合 | 是 | 是 |
| 系统日志(RFC 3164/5424) | 是 | 是 |
| JSON行(NDJSON) | 是 | Polars原生 |
| CSV/TSV | 是 | Polars原生 |
项目结构
forensic-log-mcp/
├── mcp/ # MCP server source code
│ ├── src/
│ │ ├── main.rs # Entry point
│ │ ├── tools/ # MCP tool implementations
│ │ ├── parsers/ # Log format parsers
│ │ │ ├── apache_simd.rs # SIMD Apache parser
│ │ │ ├── syslog_simd.rs # SIMD Syslog parser
│ │ │ └── ...
│ │ └── engine/ # Query engine
│ ├── Cargo.toml
│ └── README.md # Detailed MCP documentation
├── benchmark/ # Performance benchmarks
│ ├── BENCHMARK.md # Detailed results
│ ├── run_benchmark.sh # Benchmark runner
│ └── scripts/ # Benchmark utilities
├── LICENSE
├── CONTRIBUTING.md
└── README.md # This file怎么这么快
- SIMD加速解析:用途
memchr用于矢量场检测 - 零拷贝处理:直接使用内存映射字节片
- 并行块处理:将文件拆分为4MB块,通过以下方式处理
rayon - 惰性字段提取:仅解析查询所需的字段
- 谓词下推:扫描过程中的过滤器,而不是加载后的过滤器
需求
- 锈蚀1.75+(用于建筑)
- Claude Code或任何兼容MCP的客户端
贡献
看 贡献.md 作为指导方针。
许可证
MIT许可证-请参阅 许可证 了解详情。
