AutoRCA MCP服务器🔍
日志、指标和事件的根本原因分析引擎。
AutoRCA是一种模型上下文协议(MCP)服务器,旨在帮助SRE团队和开发人员自动化系统事件的检测、分析和解决。它接收日志和指标,将其关联以检测异常,并使用概率逻辑生成根本原因分析(RCA)报告和修复建议。
🌟 特性
- 数据摄取:无缝摄取应用程序日志和标准指标(CPU、内存)。
- 事件相关性:通过分析最近的错误日志和峰值指标来自动检测事件。
- 概率RCA:根据发现的类型(例如,特定的错误模式或资源耗尽)生成根本原因报告。
- 可操作的修复:为检测到的事件提出具体的补救措施。
- 持久化存储:使用SQLite跨会话持久化数据。
- 查询和筛选:用于搜索日志、查看指标和列出过去事件的工具。
🏗️ 建筑
graph TD
User[Client / Claude] -->|MCP Protocol| Server[AutoRCA Server]
subgraph "AutoRCA MCP Server"
Ingest[Ingestion Tools]
Analyze[Analysis Engine]
Query[Query Tools]
DB[(SQLite Database)]
end
Server --> Ingest
Server --> Analyze
Server --> Query
Ingest -->|Write| DB
Analyze -->|Read/Write| DB
Query -->|Read| DB🔄 工作流程
sequenceDiagram
participant User
participant MCP as AutoRCA Server
participant DB as SQLite
User->>MCP: ingest_logs(...)
MCP->>DB: INSERT logs
User->>MCP: ingest_metrics(...)
MCP->>DB: INSERT metrics
User->>MCP: correlate_incident(window=15m)
MCP->>DB: SELECT recent data
MCP->>MCP: Check logic (Errors > 0 OR High Metrics)
alt Incident Detected
MCP->>DB: Log Incident
MCP-->>User: Incident ID (INC-123)
else Normal
MCP-->>User: No incidents found
end
User->>MCP: generate_rca(INC-123)
MCP->>DB: Read Incident Details
MCP-->>User: Probabilistic RCA Report
User->>MCP: suggest_fix(INC-123)
MCP-->>User: Suggested Remediation🛠️ 工具
| 工具 | 说明 |
|---|---|
ingest_logs | 存储日志行列表。 |
ingest_metrics | 存储度量(名称、值)。 |
correlate_incident | 分析最近的数据(默认15分钟)以发现问题。 |
generate_rca | 获取特定事件ID的根本原因报告 |
suggest_fix | 获取特定事件ID的修复建议 |
search_logs | 按关键字搜索日志。 |
get_metrics | 检索最近的指标,可选择按名称过滤。 |
list_incidents | 查看最近检测到的事件列表。 |
🚀 入门指南
先决条件
- Python 3.12+
uv(推荐)或pip
安装
- 克隆存储库:
git clone https://github.com/yourusername/AutoRCA.git
cd AutoRCA- 安装依赖项:
uv sync
# OR
pip install "mcp[cli]"用法
本地运行
uv run main.py与Claude Desktop一起使用
将以下内容添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"auto-rca": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/AutoRCA",
"run",
"main.py"
]
}
}
}🧪 测试
您可以使用MCP检查器交互式测试服务器:
npx @modelcontextprotocol/inspector uv run main.py