Compare commits

...

2 Commits

Author SHA1 Message Date
devmrko
c2e6ff2cc9 Clarify PoC4 AI Console audit document title 2026-07-14 14:33:27 +09:00
devmrko
7968ae73a0 Rename PoC4 MCP AI Console audit design doc 2026-07-14 14:33:13 +09:00

View File

@@ -1,13 +1,13 @@
# 설계서: PoC_4 MCP AI Console 소스 스냅샷 역설계 및 KB VPD MCP 연동 정비 (#654) # 설계서: PoC4 MCP AI Console 역설계 및 VPD/FGA 감사 운영 현행화 (#654)
> **상태**: Implemented snapshot documented · follow-up contract pending > **상태**: Implemented snapshot documented · follow-up contract pending
> **작성**: [AI] Architect · **최종수정**: 2026-07-14 > **작성**: [AI] Architect · **최종수정**: 2026-07-14
> **추적성** — Redmine: #654 · 관련 ADR: 없음 · 구현 커밋: `5bdd242`, `33399f9` > **추적성** — Redmine: #654 · 관련 ADR: 없음 · 구현 커밋: `5bdd242`, `33399f9`, `1f6d974`
> · 스냅샷: `poc4_active_source_20260714/` · 원본 archive: `poc4_active_source_20260714/poc4_active_source_20260714.tar.gz` · 현행 구현 파일: `apps/poc4/mcp_discovery_ui.py`, `src/mcp_tool_router.py`, `src/oci_genai_sdk.py`, `src/poc3/model_registry.py`, `config/mcp_servers.json` · 테스트: Python 3.11 `py_compile`, 기존 백오피스 `mvn -q test` > · 스냅샷: `poc4_active_source_20260714/` · 원본 archive: `poc4_active_source_20260714/poc4_active_source_20260714.tar.gz` · 현행 구현 파일: `apps/poc4/mcp_discovery_ui.py`, `src/mcp_tool_router.py`, `src/oci_genai_sdk.py`, `src/poc3/model_registry.py`, `config/mcp_servers.json` · 테스트: Python 3.11 `py_compile`, 기존 백오피스 `mvn -q test`
## 1. 목적 (Why) ## 1. 목적 (Why)
PoC_4의 MCP Discovery UI가 KB VPD MCP를 사용자별 Bearer 토큰으로 안전하게 호출하면서도, 환경별 URL·전송 방식·오류 처리를 하나의 명확한 계약으로 관리한다. PoC4 MCP AI Console이 KB VPD MCP를 사용자별 Bearer 토큰으로 안전하게 호출하면서도, 환경별 URL·전송 방식·오류 처리를 하나의 명확한 계약으로 관리한다.
현재 UI의 기본 호출 흐름은 동작한다. 다만 `kb_mcp` 설정에는 `endpoint_url``base_url_env`가 함께 있고, UI는 `endpoint_url`을 우선 사용한다. 따라서 `KB_MCP_BASE_URL`을 바꿔도 실제 호출 대상이 바뀌지 않는다. 또한 `custom_python`은 로컬 8500 MCP용 이름이므로 외부 KB VPD MCP의 통신 계약을 설명하지 못한다. 현재 UI의 기본 호출 흐름은 동작한다. 다만 `kb_mcp` 설정에는 `endpoint_url``base_url_env`가 함께 있고, UI는 `endpoint_url`을 우선 사용한다. 따라서 `KB_MCP_BASE_URL`을 바꿔도 실제 호출 대상이 바뀌지 않는다. 또한 `custom_python`은 로컬 8500 MCP용 이름이므로 외부 KB VPD MCP의 통신 계약을 설명하지 못한다.
@@ -142,13 +142,13 @@ SQLite 대화 이력 저장
## 5. 아키텍처 개요 ## 5. 아키텍처 개요
I/O는 Discovery UI의 HTTP transport와 VPD Backoffice `/mcp`에 한정한다. URL 결합, 허용 도구 검증, 요청·응답 검증, 안전한 오류 변환은 순수 함수로 분리해 네트워크 없이 테스트한다. I/O는 PoC4 MCP AI Console의 HTTP transport와 VPD Backoffice `/mcp`에 한정한다. URL 결합, 허용 도구 검증, 요청·응답 검증, 안전한 오류 변환은 순수 함수로 분리해 네트워크 없이 테스트한다.
``` ```
VPD 사용자 선택 / 토큰 입력 VPD 사용자 선택 / 토큰 입력
│ (원문은 요청 메모리에만 존재) │ (원문은 요청 메모리에만 존재)
PoC_4 MCP Discovery UI PoC4 MCP AI Console
├─ KB_MCP_BASE_URL + "/mcp" ├─ KB_MCP_BASE_URL + "/mcp"
├─ tool allowlist 검증 ├─ tool allowlist 검증
└─ Authorization: Bearer <current VPD token> └─ Authorization: Bearer <current VPD token>