AI Sparkup

복잡한 AI 세상을 읽는 힘 ⚡

MCP Apps Extension: AI 대화에 인터랙티브 UI가 온다

AI에게 데이터 분석을 요청했는데 차트를 바로 보여주거나, 복잡한 설정을 텍스트가 아닌 폼으로 입력할 수 있다면 어떨까요?

사진 출처: Model Context Protocol Blog

MCP(Model Context Protocol) 공식 팀이 MCP Apps Extension(SEP-1865) 제안을 발표했습니다. MCP 서버가 대화형 UI를 제공할 수 있도록 하는 표준화 명세입니다. 이는 커뮤니티에서 가장 많이 요청된 기능이자, 이미 MCP-UI와 OpenAI Apps SDK를 통해 검증된 패턴을 공식 표준으로 통합한 것입니다.

출처: MCP Apps: Extending servers with interactive user interfaces – Model Context Protocol Blog

왜 지금 필요한가

현재 MCP 서버는 텍스트와 구조화된 데이터만 주고받을 수 있습니다. 차트 데이터를 JSON으로 반환하면 클라이언트가 알아서 시각화해야 하고, 여러 관련 설정을 입력받으려면 어색한 텍스트 대화를 이어가야 했죠.

커뮤니티는 창의적으로 이 한계를 우회해왔지만, 각자 다른 방식을 쓰다 보니 서버가 클라이언트마다 일관되게 작동하지 않는 문제가 생겼습니다. 생태계 분열의 위험이 커지고 있었던 거죠.

커뮤니티와 함께 만든 표준

이번 제안의 특별한 점은 협업 과정입니다. Ido Salomon과 Liad Yosef가 만든 MCP-UI 프로젝트는 이미 Postman, Shopify, Hugging Face 같은 기업들이 채택했고, OpenAI의 Apps SDK는 ChatGPT에서 리치 UI의 필요성을 입증했습니다.

Anthropic과 OpenAI의 MCP 핵심 관리자들이 MCP-UI 커뮤니티와 함께 이 경험들을 하나의 공식 확장 표준으로 정리했습니다. 각자 다른 길을 가던 프로젝트들이 상호 운용 가능한 하나의 표준으로 모인 것입니다.

핵심 설계 원칙

사전 선언된 리소스
UI 템플릿은 ui:// 스킴을 가진 리소스로 등록되고, 도구 메타데이터에서 참조됩니다. 호스트는 도구 실행 전에 템플릿을 미리 가져와 검토할 수 있어 성능과 보안이 모두 개선됩니다.

MCP 전송 재사용
UI 컴포넌트는 새로운 프로토콜을 만드는 대신 기존 MCP JSON-RPC를 postMessage로 활용합니다. 표준 @modelcontextprotocol/sdk를 그대로 사용할 수 있고, 모든 통신이 구조화되고 감사 가능하며, 향후 MCP 기능이 자동으로 UI 확장과도 작동합니다.

보안 우선
인터랙티브 콘텐츠 호스팅은 신중한 보안 고려가 필요합니다. 모든 UI는 제한된 권한을 가진 샌드박스 iframe에서 실행되고, 호스트는 HTML 콘텐츠를 렌더링 전에 검토할 수 있습니다. UI에서 호스트로 가는 모든 통신은 로깅 가능한 JSON-RPC를 거치며, 호스트는 UI가 시작한 도구 호출에 대해 명시적 승인을 요구할 수 있습니다.

하위 호환성
MCP Apps는 선택적 확장입니다. 기존 구현은 변경 없이 계속 작동하고, 호스트는 자신의 속도에 맞춰 UI 지원을 점진적으로 채택할 수 있습니다. 서버는 UI 가능 도구에 대해 텍스트 전용 대체안을 제공해야 하므로, UI 지원 여부와 관계없이 모든 호스트를 지원할 수 있습니다.

표준화가 가져올 변화

이번 표준화는 단순히 기술 명세를 정의하는 것을 넘어섭니다. MCP가 “에이전트 앱 런타임”으로 진화하는 첫 걸음이죠. AI 모델, 사용자, 애플리케이션 간의 새로운 상호작용 방식을 만드는 기반입니다.

개발자 입장에서는 한 번 구현하면 여러 클라이언트에서 작동하는 UI를 만들 수 있습니다. Claude, ChatGPT, 그리고 다양한 MCP 호스트에서 일관된 경험을 제공할 수 있다는 뜻입니다.

현재 UI Community Working Group에서 피드백을 받고 있으며, 초기 SDK도 공개되었습니다. 명세는 의도적으로 핵심 패턴만 담았고, 시간이 지나며 확장될 예정입니다.

참고자료:

Fediverse reactions

AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다