TL;DR

  • OpenAI MCP Extensions를 사용하면 개발자가 플러그인을 ChatGPT의 사이드바, 작성창, 파일 뷰어 등 주요 사용자 경험에 연결할 수 있음.
  • 웹 플러그인 확장 기능은 ChatGPT Free와 Go 사용자에게 곧 제공될 예정이며, 기존 플러그인 기능에는 영향이 없고 작성창 멘션은 ChatGPT 데스크톱 앱에서만 이용 가능함.
  • Bits & Bolts 플러그인으로 확장 기능 예제를 살펴볼 수 있으며, 새 확장 기능이 출시될 때마다 최신 상태로 유지될 예정임.
  • TypeScript SDK, Python SDK, 프로토콜 명세를 통해 확장 기능을 구축하고, 서버 연결·테스트 후 배포용 패키지로 만들 수 있음.
  • 사이드바 앱, 대화 패널, 플러그인 설정, 파일 뷰어·편집기, 표시 모드, 딥 링크, 모델·앱 컨텍스트, 작성창 멘션, 리치 폼을 지원함.

시작하기

  • OpenAI MCP Extensions를 사용하면 개발자가 플러그인을 ChatGPT 사용자 경험의 주요 영역인 사이드바, 작성창, 파일 뷰어 등에 연결할 수 있음.
  • 웹용 플러그인 확장 기능은 ChatGPT Free와 Go 사용자에게 곧 제공될 예정임.
  • 기존 플러그인 기능에는 영향이 없음.
  • 작성창 멘션은 ChatGPT 데스크톱 앱에서만 이용 가능함.

직접 사용해 보기

  • 주방 싱크대처럼 다양한 기능을 담은 플러그인인 Bits & Bolts로 확장 기능을 살펴볼 수 있음.
  • 새로운 확장 기능이 출시되면 Bits & Bolts를 최신 상태로 유지할 예정임.
  • Bits & Bolts Remote를 설치해 ChatGPT에서 예제를 시험할 수 있음.

개발 시작

  • GitHub 저장소에서 설치 방법, SDK 예제, 전체 명세를 확인할 수 있음.
  • TypeScript SDK: MCP 서버와 앱 UI에 확장 기능을 추가함.
  • Python SDK: MCP Python SDK로 서버 측 확장 기능을 추가함.
  • 프로토콜 명세: MCP 및 MCP Apps 명세를 확장하는 언어 독립적인 정식 API를 정의함.
  • 서버가 준비되면 플러그인을 연결하고 테스트한 뒤 배포용으로 패키징함.

확장 기능 참고

  • 확장 기능은 ChatGPT 전반에서 사용자가 플러그인과 상호작용하는 새로운 방식을 제공함.
  • 확장 기능 지원 선언에는 SDK 코드 몇 줄이면 충분함.
  • 사이드바 앱: 사용자가 사이드바에서 앱을 열고 전체 화면으로 작업할 수 있는 공간을 제공함.
  • 대화 패널: 사용자가 대화 옆에서 앱을 열어 작업과 채팅을 함께 유지할 수 있음.
  • 플러그인 설정: 사용자가 ChatGPT 안에서 제품별 플러그인 설정을 구성할 수 있음.
  • 파일 뷰어 및 편집기: 지원 파일을 자체 인터페이스에서 열고, 읽기·실시간 업데이트·변경 사항 저장을 함께 처리함.
  • 표시 모드: 대화에서 앱이 표시되는 위치와 방식을 선택함.
  • 딥 링크: 사용자를 사이드바 앱의 특정 페이지나 항목으로 바로 이동시킴.
  • 모델·앱 컨텍스트: 양방향 컨텍스트 공유로 ChatGPT와 MCP 앱을 동기화함.
  • 작성창 멘션: 사용자가 ChatGPT 데스크톱 작성창에서 플러그인의 콘텐츠를 찾아 선택할 수 있음.
  • 리치 폼: 사용자에게 구조화된 입력을 요청하거나 이미지 중 하나를 선택하도록 한 뒤, 응답을 도구에 전달함.

사이드바 앱

  • 전역 사이드바에 항목을 추가해 MCP 앱을 전체 화면으로 실행할 수 있음.
  • MCP 앱 도구를 등록할 때 _meta로 메타데이터를 전달하며, ui://parts/library를 등록된 UI 리소스 URI로 바꿔야 함.
  • type: "global"은 전역 사이드바 진입점을 지정함.
  • type: "thread"를 사용하면 대화의 측면 패널에 진입점을 추가할 수 있음.
  • 전체 등록 예제는 진입점 가이드에서 확인할 수 있음.

파일 뷰어 및 편집기

  • 사용자가 지원되는 확장자의 파일을 열면 MCP 앱을 스레드 측면 패널에서 열 수 있음.
  • 도구의 _meta에 파일 진입점을 지정하고, 뷰어가 지원하는 확장자를 나열함. 예를 들어 stl을 지원 확장자로 지정할 수 있음.
  • ui://parts/viewer를 등록된 UI 리소스로 바꿔야 함.
  • 앱은 열린 파일의 리소스 URI를 전달받음.
  • 파일 핸들러 가이드에 따라 입력을 받고 앱 SDK로 리소스를 읽음.

리치 폼

  • 표준 MCP 폼을 ChatGPT 기본 제공 리치 컴포넌트로 확장할 수 있음.
  • 예시 스키마는 part라는 문자열 속성을 정의하고, parts 옵션 목록에서 선택하도록 구성하며 해당 속성을 필수 항목으로 지정함.
  • 이 스키마를 폼 요청의 requestedSchema로 전달함.
  • 각 옵션은 const와 title을 사용하며, 선택적으로 x-openai-thumbnail 아이콘을 지정할 수 있음.
  • OpenAI에 등록된 MCP 서버에는 다중 왕복 요청(MRTR)이 필요함.
  • SDK의 확장 폼 가이드에는 직접 MCP 연결을 위한 기존 elicitInput 헬퍼가 안내되어 있음.

실제 사용 사례

  • 기존에 알려진 플러그인들이 확장 기능을 활용하는 방식을 확인할 수 있음.
  • Canva: 사이드바 탭을 통해 Canva 사용자가 디자인을 만들고 ChatGPT의 기본 사이드바 기능으로 미리 볼 수 있음.
  • Figma: 작성창 멘션을 통해 Figma 사용자가 ChatGPT 데스크톱 앱에서 파일을 검색하고 직접 멘션할 수 있음.
  • Adobe: 파일 확장 핸들러를 통해 Adobe 사용자가 ChatGPT에서 Acrobat과 Photoshop으로 파일을 편집할 수 있음.