
工程师和人工智能代理的事件知识库:时间线、日志、根因、修复、运行手册 — Java/Spring Boot/PostgreSQL/MCP/React
概览
共享事件知识服务:工程师和AI代理搜索过往事件,阅读时间线,记录证据、验证的根本原因和修复方法,并重用运行手册,无需从头重新调查。Spring Boot + PostgreSQL API支持全文搜索事件调查;React界面为工程师提供可搜索的时间线视图;Python主控服务器暴露与工具相同的知识库,使AI代理(如Claude)能在事件中途执行经过验证的故障排除步骤。 - React UI(由nginx提供,后端代理/api/)调用Spring Boot REST API,该API读写PostgreSQL(通过生成的tsvector列+GIN索引进行全文搜索)。- MCP服务器通过stdio向代理传送MCP,向Spring Boot API传递纯HTTP——数据相同,合同相同,无界面。 每个工作流都有自己的 README(后端/README.md,mcp-server/README.md,前端/README.md),细节更详细。 - Java 21(Maven 封装程序。
概述(AI 翻译)
共享事件知识服务:工程师与人工智能代理事先搜索 事件,阅读时间表,记录证据,验证根本原因,以及 修复,并重复使用运行手册,而不是从头重新调查。一个春天 Boot + PostgreSQL API 提供全文搜索的事件调查记录; React界面为工程师提供了可搜索的时间线视图;Python的MCP服务器 它暴露的知识库与工具相同,因此 AI 代理(例如 Claude)能够 在事件中途拉取经过验证的故障排除步骤。
现场演示: incidentvault.vercel.app · API:incidentvault-wjvp.onrender.com
建筑
- 工程路径: React UI(由nginx服务,代理
/api/) 后端)调用 Spring Boot REST API,该 API 负责读写 PostgreSQL (通过生成的tsvector列+GIN索引进行全文搜索)。 - 代理路径: MCP服务器通过stdio向代理传达MCP,且 纯HTTP到Spring Boot API——数据相同,合同相同,没有界面。
仓库布局
每个工作流都有自己的 README(backend/README.md,
mcp-server/README.md, frontend/README.md))有更深入的细节。
先修条件
- Java 21(Maven 包装器
./mvnw包含在backend/中) - 节点24+,npm 10+
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
IncidentVault
A shared incident-knowledge service: engineers and AI agents search prior incidents, read their timelines, log evidence, validated root causes, and fixes, and reuse runbooks instead of re-investigating from scratch. A Spring Boot + PostgreSQL API stores incident investigations with full-text search; a React UI gives engineers a searchable timeline view; a Python MCP server exposes the same knowledge base as tools so an AI agent (e.g. Claude) can pull validated troubleshooting steps mid-incident.
Live demo: incidentvault.vercel.app · API: incidentvault-wjvp.onrender.com
Architecture
flowchart LR
Engineer["Engineer"] --> UI["React UI(frontend)"]
UI --> API["Spring Boot API(backend)"]
API --> DB[("PostgreSQL 16")]
Agent["AI agent (Claude)"] --> MCP["MCP server(Python, stdio)"]
MCP --> API
- Engineer path: the React UI (served by nginx, proxies
/api/to the backend) calls the Spring Boot REST API, which reads/writes PostgreSQL (full-text search via generatedtsvectorcolumns + GIN indexes). - Agent path: the MCP server speaks MCP over stdio to the agent and plain HTTP to the Spring Boot API — same data, same contract, no UI.
Repo layout
incidentvault/
├── backend/ # Spring Boot 3.3 / Java 21 REST API (Flyway migrations, 21 tests)
├── mcp-server/ # Python MCP server (stdio) exposing incident knowledge as tools
├── frontend/ # React 18 + TypeScript + Vite UI, nginx reverse-proxy Dockerfile
├── docker-compose.yml # Postgres 16 + backend + frontend (nginx)
└── README.md # this file
Each workstream has its own README (backend/README.md,
mcp-server/README.md, frontend/README.md) with deeper detail.
Prerequisites
- Java 21 (Maven wrapper
./mvnwis included inbackend/) - Node 24+, npm 10+
- Python 3.12+
- Docker + Docker Compose (for the compose path only)
Quickstart
Option A — Docker Compose (everything)
docker compose up --build
- App: http://localhost:3000
- API: http://localhost:8080/api
- Postgres: localhost:5432
Option B — run the pieces locally
Backend (needs Postgres at localhost:5432, e.g. via Docker):
docker run --name iv-postgres -e POSTGRES_USER=incidentvault \
-e POSTGRES_PASSWORD=incidentvault -e POSTGRES_DB=incidentvault \
-p 5432:5432 -d postgres:16
cd backend
./mvnw spring-boot:run # Flyway applies V1 schema + V2 seed data automatically
Frontend (needs the backend running):
cd frontend
npm install
npm run dev # serves at http://localhost:5173
MCP server setup
cd mcp-server
pip install -r requirements.txt
Then paste the incidentvault block from mcp-server/mcp.json.example into
the mcpServers object of your Claude Desktop config (macOS:
安装
docker run --name iv-postgres -e POSTGRES_USER=incidentvault \