피드로 돌아가기
Dev.toBackend
원문 읽기
Notion MCP를 활용한 에이전트로 SEV1/SEV2 인시던트 감지 시 전쟁실 페이지를 자동 생성
I Built an Agent That Assembles Incident War Rooms in Notion Through MCP
AI 요약
Context
긴급 인시던트 발생 시 엔지니어들이 런북, 온콜 일정, 서비스 의존성 정보를 여러 도구에서 찾아야 했다. 이 정보들이 산재되어 있어 대응 초기 단계에서 소중한 시간을 낭비했다.
Technical Solution
- Notion MCP를 통해 4개 데이터베이스(Incidents, Services, Runbooks, On-Call) 간 관계 추적: 인시던트 감지 → 영향받는 서비스 조회 → 런북 매핑 → 담당자 정보 병합
- 관계 속성 정규화로 ID 불일치 해결: Notion MCP가 URL 형식으로 반환하는 관계를 파싱하고 대시 제거 후 16진 문자열로 통일
- Markdown 형식의 전쟁실 페이지 작성: 처리 테이블, 온콜 연락처, 전체 런북 단계, 의존 서비스, 타임라인, 체크박스가 포함된 단일 문자열을 notion-create-pages로 생성
- Gemini 2.5 Flash를 활용한 AI 포스트모템 자동 생성: 인시던트 종료 시 MTTR 계산 후 발생 세부사항 및 타임라인으로 포스트모템 생성
- 연결 재사용 패턴으로 폴링 효율화: 30초마다 폴링하는 감시 모드에서 단일 MCP 클라이언트를 유지하고 재사용하여 프로세스 생성 오버헤드 제거
Key Takeaway
복잡한 관계형 데이터를 단일 프로토콜(MCP)로 조율할 때 정규화 단계의 중요성이 매우 높으며, 선택형 아키텍처에서 연결 재사용이 폴링 기반 에이전트의 리소스 효율성을 크게 좌우한다.
실천 포인트
다중 데이터베이스를 조합하는 에이전트 구현 시 외부 API가 반환하는 ID 형식과 내부 저장소의 ID 형식이 다를 수 있으므로, 수집 단계에서 정규화 함수를 먼저 구현하면 이후 매칭 로직의 버그를 30~50% 줄일 수 있다.