Files
vpd-permission-poc/docs/design/hmm-html-report-mcp/cookbook.md
2026-08-10 16:06:17 +09:00

3.0 KiB

적용·검증 절차

1. 준비

  • vpd-backoffice 배포본에 HTML 템플릿과 HMM CI 리소스가 포함되어야 한다.
  • 조회 도구 search_carrier_performance가 기존 HMM_CARRIER_FEDERATION_SEARCH를 가리켜야 한다.
  • 배포 환경의 BACKOFFICE_MCP_TOOLSAGENT_TOOL 도구 계약을 추가한다.

먼저 database/adb/83_hmm_carrier_html_report_tool.sql을 실행한 뒤 다음 명령으로 현재 승인 템플릿을 CLOB에 적재한다. 스크립트는 템플릿을 UTF-8 Base64로 복원한다.

./scripts/load-hmm-carrier-report-template.sh

2. 확인

  1. 동일 Bearer token으로 tools/list를 호출한다.
  2. render_hmm_carrier_report와 입력 속성 reportJson이 보이는지 확인한다.
  3. 먼저 search_carrier_performance를 호출한다. 현재 Agent Tool 응답의 실제 행은 response.result 안의 JSON 배열 문자열이다.
  4. 포털이 해당 배열을 행으로 구조화했는지 확인하고 질문·답변 근거·행을 reportJson으로 구성해 리포트 도구를 호출한다.
  5. 응답 response.html을 새 탭 또는 sandboxed iframe에서 연다.

성공 판정은 조회 원본 행 수와 reportJson.rows 수가 같고, 제목, 담당자별 막대 차트, 위험 분포, 상세 표가 rows와 일치하는 것이다. 템플릿 내부에 __REPORT_DATA__가 남지 않고, 검증 payload의 담당자·선사 식별자가 반환 HTML에 포함되는지도 확인한다.

3. 포털 순차 실행 확인

  1. 포털 MCP 설정의 endpoint를 https://hmm-backoffice.cloud-handson.com/mcp로 설정하고, 허용 목록에 조회 도구와 리포트 렌더링 도구를 모두 넣는다.
  2. 포털에서 예를 들어 E1001 팀의 선사 최신 실적을 HMM 리포트로 만들어줘라고 요청한다.
  3. 실행 상세에서 첫 단계가 데이터 조회이고 두 번째 단계가 HTML 렌더링인지 확인한다.
  4. 결과 영역에 생성된 리포트 iframe이 표시되고, 막대·상세 표가 첫 단계 items와 일치하는지 확인한다.
  5. 일반 답변에는 <table>, <div> 또는 Markdown 표가 반복되지 않고, 생성 완료·제목·조회 건수만 표시되는지 확인한다.
  6. 리포트 머리글이 질문 전체 문장이 아니라 출력 형식 문구를 제거한 짧은 업무 제목인지 확인한다.

대표 E1001 팀장 질의의 운영 회귀 기준은 현재 8건이다. 이 숫자는 검증 기준일 뿐 코드나 Tool 인수에 고정하지 않는다. 첫 단계 원본에 행이 있는데 reportJson.rows가 0건이면 순차 실행 성공이 아니며, 문제 해결의 중첩 응답 항목을 확인한다.

실패 시 문제 해결텍스트만 답하고 리포트가 생성되지 않음을 따른다.

4. 롤백

BACKOFFICE_MCP_TOOLS에서 리포트 도구 항목을 제거하고 서비스를 재기동하면 기존 조회 MCP에는 영향 없이 리포트 후속 호출만 중단된다. 템플릿은 DB나 사용자 데이터에 변경을 만들지 않는다.