Files
vpd-permission-poc/docs/design/hmm-html-report-mcp

HMM HTML 리포트 MCP

목적

선사 실적 Federation 조회의 구조화 결과를 HMM 기업 리포트 HTML로 표현한다. 리포트 도구는 DB를 다시 조회하거나 자연어를 해석하지 않는다.

결정사항

  • 기준 MCP endpoint는 https://hmm-backoffice.cloud-handson.com/mcp 하나이며, 별도 호환성 시험 endpoint로 교체하지 않는다.
  • 기존 조회 route search_carrier_performance는 DB Agent Tool HMM_CARRIER_FEDERATION_SEARCH를 그대로 호출한다. 이 경로가 자연어를 Select AI Federation으로 처리한다.
  • MCP 도구 render_hmm_carrier_reportreportJson 문자열 하나를 입력으로 받는다.
  • 입력은 질문·답변 근거·조회 행으로 구성된 허용 JSON 계약이며, Oracle DB 함수는 템플릿에만 매핑한다.
  • 선사 실적 조회 MCP가 VPD를 적용한 데이터 접근 경계이고, 리포트 MCP는 표현 경계다.
  • 승인된 HTML 템플릿은 DB CLOB으로 버전 관리하고, 생성 HTML은 MCP 응답의 html 속성으로만 반환한다.
  • 제목은 질문 전체 문장을 복사하지 않는다. 포털의 제목 생성 지침이 요청 대상과 업무 범위만 남긴 짧은 보고서 제목을 만들고 renderer에 전달한다.
  • HTML artifact가 반환되면 일반 답변은 HTML 표나 코드를 반복하지 않고 생성 완료와 조회 건수만 안내한다. 실제 표현은 생성된 리포트 영역 하나에서 담당한다.
  • 포털은 사용자 질문을 그대로 두 Tool에 재사용하지 않는다. 첫 조회에는 데이터 조건만 남긴 질문을 전달하고, HTML로 보여줘 같은 표현 요청은 renderer 선택과 제목 생성에만 사용한다.

전체 흐름

HMM 포털 → `https://hmm-backoffice.cloud-handson.com/mcp` → 데이터 조회 도구
→ 포털의 범용 결과 정규화 → 이전 결과 입력형 렌더링 도구 → HTML 미리보기

리포트에 보이는 값은 조회 결과 행에서 계산되므로, 자연어 답변과 별개로 재해석되지 않는다.

문서 지도

현재 상태

Oracle DB의 custom Agent Tool과 템플릿 CLOB은 적용됐다. 포털은 리포트·차트·HTML 요청에서 도구 이름을 고정하지 않고, 발견한 도구의 설명·입력 스키마를 기준으로 데이터 조회 뒤 렌더링을 순차 호출하도록 운영 배포한다.

2026-08-10 운영 검증에서 같은 endpoint와 Bearer 문맥으로 기존 Select AI 조회 8건, renderer 입력 8건, HTML 18,670자를 연속 호출해 확인했다. 조회 응답은 response.result 안의 JSON 배열 문자열로 반환되므로 포털이 이를 범용적으로 구조화한다. HTML 템플릿에는 업무 샘플 행을 저장하지 않으며, 호출 시 전달된 reportrows만 표시한다.