Files
vpd-permission-poc/docs/design/699-hmm-mcp-demo-users

HMM MCP 데모 사용자 preset (#699)

상태: Implementing 추적: Redmine #699 / Git 브랜치: hmm-backoffice 대상: hmm.cloud-handson.com / /opt/hmm-poc4

목적

HMM AI 업무 에이전트에서 HMM 가상 HR 조직의 팀장·팀원을 선택해 같은 질문을 사용자 관점으로 시험한다. MCP 접속 토큰과 데모 사용자 정보를 분리하여 토큰 원문을 화면·JSON·Git에 남기지 않는다.

구성

vpd_token_presets.json (사용자 ID·역할·팀·테스트 문맥·mcp_token_env)
  → Streamlit 데모 사용자 선택
  → HMM MCP gateway bearer token (HMM_MCP_BEARER_TOKEN, 서버 .env 전용)
  → hmm-mcp.cloud-handson.com/mcp
  → HMM HR Select AI Agent Tool
  • JSON 파일명은 이전 배포 호환성을 위해 유지한다. 내용은 KB VPD 사용자가 아닌 HMM HR 데모 사용자다.
  • 각 preset은 mcp_token_env로 서버 환경변수만 참조한다. token 원문은 절대 JSON에 쓰지 않는다.
  • 선택한 사용자는 자연어의 ‘나’, ‘내’, ‘우리 팀’을 해석하는 데모 문맥이다. 현재 HMM MCP의 gateway token은 공용이므로 이 선택 자체가 DB 행 수준 권한을 강제한다고 표시하지 않는다.
  • HMM MCP 허용 도구는 resolve_hr_term, search_hr_data, search_hr_policy 세 개다.

런타임 구성

  • Streamlit은 requirements.txt의 OCI SDK를 /opt/hmm-poc4/.venv에 설치해 사용한다.
  • OCI Generative AI 인증은 /home/opc/.oci/configDEFAULT profile과 해당 private key를 사용한다.
  • OCI_AUTH_TYPE=config_file, OCI_CONFIG_FILE, OCI_PROFILE, OCI_GENAI_COMPARTMENT_ID는 배포 서버 /opt/hmm-poc4/.env에서 관리하고 저장소에는 값을 기록하지 않는다.
  • MCP 호출 상세 JSON/code 영역은 공통 presentation.py에서 배경·글자색을 함께 고정한다.

완료 기준

  1. 팀장 E1001과 팀원 preset이 사이드바에서 선택된다.
  2. MCP bearer token은 화면·대화 JSON·Git에 노출되지 않는다.
  3. E1001의 ‘우리 팀 대기 휴가’와 E1005/E1007의 ‘내 휴가’가 HMM MCP로 정상 호출된다.
  4. 기존 KB MCP·KB VPD 안내가 HMM HR 질문 생성 경로에 사용되지 않는다.
  5. OCI SDK가 DEFAULT profile로 GPT-5.4-mini를 실제 호출한다.
  6. MCP 호출 상세의 JSON·code가 밝은 테마에서 읽힌다.