OpenAI DevDay 2025 핵심정리(2) - MCP 편
1편에서 이야기한 것 처럼 ChatGPT가 외부 앱과 도구를 실행할 수 있는 '플랫폼'으로 전환된다면
우리가 할 수 있는 일의 범위 자체가 달라진다.
이전에는 우리가 링크를 눌러서 앱으로 이동다면, 이제는 앱이 ChatGPT 안으로 들어오게 된다.
음악을 찾고, 여행을 예약하고, 비디오 학습을 함께하는 일까지도 더 이상 외부 서비스로 나가는 과정이 아니게 될 수 있다.
여기서 중요한 변화는 기능이 늘어났다는 게 아니라, 사용자 경험의 ‘위치’가 이동 했다는 점이다.
사용자는 이제 “어디로 가야 하지?”를 고민할 필요가 없이 그냥 대화 안에서 일을 끝낼 수 있다.
그리고 이 변화를 가능하게 만든 구조가 바로 Apps SDK와 MCP이다
이번 글에서는 OpenAI 블로그와 DevDay 발표 자료를 바탕으로
MCP가 무엇인지
MCP의 구조와 역할은 어떻게 되는지
왜 Apps SDK의 기반 표준이 되었는지
그리고 Apps SDK 흐름 안에서 어떤 역할을 하는지(ChatGPT ↔ MCP Server ↔ UI 기술 구조 요약)
정리해보겠다.
MCP(Model Context Protocol)는
대형 언어 모델(LLM)과 외부 도구·리소스를 연결하기 위한 개방형 표준 프로토콜이다.
쉽게 말하면, MCP는 ChatGPT가 외부 앱과 데이터를 주고받을 때 사용하는 표준 통신 언어다.
이 프로토콜을 통해 모델은 단순히 텍스트를 생성하는 것을 넘어, 외부 도구 호출에 대한 구조화된 요청을 전송하고 그 실행 결과를 바탕으로 다음 행동을 판단할 수 있는 기반을 갖게 된다.
MCP는 새로운 API 형식이 아니다.
OpenAI는 MCP를 “모델이 외부 세계를 이해하기 위한 표준”으로 정의한다.
기존 Tool Calling 구조에는 명확한 한계가 있었다.
모델은 외부 API를 호출할 수는 있었다
하지만 호출 결과는 단순 텍스트였다
UI 상태, 사용자 선택, 작업 흐름은 추론에 반영되지 않았다
이 구조에서는 모델이 “지금 무엇을 해야 하는지”를 판단하기 어렵다.
OpenAI는 이 문제를 도구 호출이 아니라 Context 자체를 구조화하고 표준화하는 방식으로 해결했다.
MCP에서 Context는 단순 입력값이 아니다. OpenAI가 정의한 Context는 다음 요소를 포함한다.
사용자의 의도(Intent)
현재 작업의 상태(State)
가능한 행동(Action) 목록
각 행동의 입력·출력 스키마
결과를 어떻게 보여줄지에 대한 UI 메타데이터
즉, MCP는
모델이 외부 도구를 ‘이해하고 선택’하기 위해 필요한 모든 정보를 하나의 구조로 묶은 프로토콜이다.
이 덕분에 모델은 단순 실행이 아니라 다음을 판단할 수 있다.
지금 이 도구를 호출해야 하는가
어떤 파라미터가 필요한가
결과를 어떤 UI로 보여줄 것인가
이 지점에서 MCP는 기존 API 호출이나 플러그인 구조와 명확히 구분된다.
구조는 생각보다 단순하다.
모델은 MCP 클라이언트로서 요청을 보내고(ChatGPT), MCP 서버가 이를 받아 외부 데이터 소스나 도구와 통신한다. 이때 요청과 응답은 모두 표준화된 방식으로 오간다.
MCP 서버는 모델 관점에서 보면 “이 앱은 무엇을 할 수 있는지 설명하는 인터페이스”다.
MCP 서버는 모델에게 다음 정보를 제공한다.
기능 정의(Capabilities)
입력 스키마와 제약 조건
출력 스키마
상태 변화 규칙
UI 렌더링을 위한 힌트(_meta)
왜 Apps SDK는 MCP를 표준으로 채택했을까?
OpenAI의 Apps SDK가 MCP를 표준으로 채택한 이유는 연결 방식을 표준화했기 때문이다.
MCP는 흔히 AI 앱의 USB-C 포트로 설명된다.
MCP의 핵심 가치
이 표준화가 가져온 핵심 변화는 네 가지다.
첫째, 탐색 통합(Discovery integration)
모델이 모든 도구를 동일한 기준으로 이해하고 선택할 수 있게 한다.
그래서 사용자는 별도의 UI를 탐색하지 않아도, 자연어 요청만으로 모델이 적절한 앱과 기능을 선택할 수 있다.
둘째, 대화 맥락 인식(Conversation Awareness)
앱 실행 결과와 상태가 대화 맥락 안에 유지됩니다.
그 결과, 이전 결과를 다시 참조하거나 같은 컴포넌트를 이어서 렌더링하는 것이 가능해진다.
셋째, 멀티클라이언트 지원
하나의 MCP 프로토콜만으로 웹, 모바일 등 모든 클라이언트 환경에서 동일하게 동작한다.
넷째, 확장 가능한 인증 체계(Extensible Auth)
인증과 권한을 표준 방식으로 통합 관리할 수 있어
기업이나 공공 데이터 연동 시 보안·컴플라이언스 부담이 크게 줄어들 수 있다.
MCP가 표준화한 이 구조 덕분에 ChatGPT는 외부 앱을 내장된 도구처럼 추론하고 실행할 수 있게 되었다.
Apps SDK에 대한 내용으로 넘어가기 전에,
ChatGPT - MCP 서버 - UI가 하나의 실행 흐름으로 어떻게 연결되는지를 먼저 도식화해서 정리해본다.
1. 먼저 사용자가 자연어로 요청하면, ChatGPT가 의도를 파악한다.
2. MCP 서버가 노출한 도구 목록을 기준으로 적절한 앱과 기능을 선택한다.
3. 선택된 도구는 call_tool 요청 형태로 MCP 서버에 전달된다.
4&5. 서버는 외부 시스템의 비즈니스 로직을 실행한 뒤 실행 결과 데이터와 UI 컴포넌트 정보를 함께 반환한다.
6. Apps SDK는 이 결과를 ChatGPT 안에서 바로 위젯 형태로 렌더링한다.
결과적으로 사용자는 외부 앱으로 이동하지 않고, ChatGPT 안에서 앱을 실행하는 경험을 할 수 있게 된다.
UI 구조는 전적으로 MCP가 반환한 메타데이터를 기준으로 결정된다
MCP 구조에서 앱 설계의 중심은 화면이 아닌 맥락(Context)와 행동(Action) 설계다.
AI 앱에서 UX는 "어떻게 화면을 보여줄 것인가"가 아니라 "어떤 맥락에서 어떤 결과를 반환할 것인가"로 정의된다.
MCP는 Apps SDK의 기반이자 AI 앱의 공용 언어이다.
다음 글에서는 MCP 위에서 Apps SDK가 어떻게 사용자 인터랙션과 UX를 만들어내는지를
Discovery, Display Mode, Entry Point 관점에서 정리할 예정이다.