피드로 돌아가기
Dev.toFrontend
원문 읽기
MCP App 기반 DOOM 구현을 통한 LLM Client 내 인터랙티브 UI 렌더링 검증
DOOM corre dentro de ChatGPT y Claude gracias a MCP apps
AI 요약
Context
기존 MCP 서버는 텍스트와 이미지 중심의 데이터 전달에 국한되어 복잡한 UI 상호작용 구현에 한계 존재. LLM 호스트별로 상이한 Content Security Policy(CSP)와 iframe 제약으로 인해 일관된 인터랙티브 앱 배포가 어려운 환경임.
Technical Solution
- cloudflare/doom-wasm을 활용해 원본 C 엔진을 WebAssembly로 컴파일하여 브라우저 런타임 내 실행 구조 설계
- 서버-클라이언트 간 상태 유지 오버헤드 제거를 위해 Signed Token(JWT) 기반의 Stateless 인증 방식 도입
- Nested iframe 구조에서 발생하는 frame-src 오류 및 CSP 충돌 해결을 위해 Host iframe 내 직접 Canvas 마운트 방식으로 아키텍처 단순화
- UI 미지원 클라이언트를 위한 get_doom_launch_url Fallback 메커니즘을 통해 서비스 가용성 확보
- 라이선스 리스크 제거를 위해 id Software의 WAD 대신 Open Source 기반 Freedoom Phase 1 애셋 채택
실천 포인트
1. MCP App 설계 시 Nested iframe 사용을 지양하고 Host 제공 iframe 내 직접 렌더링 검토
2. 상태 유지 비용 절감을 위해 세션 토큰을 URL에 포함하는 Stateless 아키텍처 적용 고려
3. C/C++ 기반 레거시 라이브러리 도입 시 WASM 컴파일을 통한 브라우저 내 독립 실행 가능성 확인
4. 서비스 환경별 UI 지원 여부에 따른 단계적 Fallback 전략 수립