For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
기본 탐색 메뉴
Theme
개요 ChatGPT 및 Codex 사용자 문서 활용 사례

플러그인 가이드라인

ChatGPT 디렉터리에 게시되는 모든 플러그인이 충족해야 하는 요건입니다.

이 가이드라인은 MCP 플러그인과 스킬만 포함하는 플러그인을 비롯해 ChatGPT 디렉터리에 등록된 모든 플러그인에 적용됩니다. MCP 서버, 도구, 선택 사항인 UI에 관한 요건은 해당 구성 요소를 포함하는 플러그인에만 적용됩니다. 스킬 제출부터 포털에서 진행하는 단계, 검토, 승인, 게시까지 전체 제출 절차는 플러그인 제출을 참고하세요.

개요

플러그인 생태계의 기반은 신뢰입니다. 사용자는 ChatGPT와 Codex에서 안전하고 유용한 기능을 이용하면서 개인정보도 보호받기를 기대합니다. 개발자는 공정하고 투명한 절차를 기대합니다. 이 가이드라인은 모든 플러그인 개발자가 숙지하고 따라야 할 정책을 제시합니다.

ChatGPT에서 좋은 사용자 경험을 만드는 요소에서도 관련 원칙을 확인할 수 있습니다.

아래 가이드라인은 게시된 플러그인이 ChatGPT와 Codex의 공용 디렉터리에 계속 등록되어 있으려면 충족해야 하는 최소 기준입니다. 실제 활용도가 높고 사용자 만족도가 높은 플러그인은 디렉터리 내 주요 위치에 노출되거나 사용자에게 선제적으로 추천되는 등 더 폭넓게 배포될 기회를 얻을 수 있습니다.

가이드라인 활용 방법

먼저 모든 플러그인에 적용되는 플러그인 기본 요건을 읽으세요. MCP 서버, 도구 또는 선택 사항인 UI가 있는 플러그인은 MCP 요건을, 스킬을 포함하는 플러그인은 스킬을 확인하세요. MCP 도구와 스킬을 모두 포함한다면 두 섹션을 모두 읽으세요.

플러그인 기본 요건

목적과 독창성

플러그인은 목적이 명확해야 하며 약속한 기능을 안정적으로 수행해야 합니다. 특히 제품의 기본 기능만으로는 지원되지 않는 기능이나 워크플로우를 제공하고, 사용자가 대화에서 자주 표현하는 요구를 충족하는 데 실질적인 도움이 되어야 합니다.

직접 소유하거나 사용 허가를 받은 지식재산만 사용하세요. 오해를 유도하거나 다른 제품을 모방한 디자인, 사칭, 스팸, 의미 있는 상호작용이 없는 정적 프레임은 사용하지 마세요. OpenAI가 플러그인을 제작하거나 보증한다는 인상을 주어서는 안 됩니다.

품질과 안정성

플러그인은 예측 가능하고 안정적으로 작동해야 합니다. 결과는 정확하고 사용자 입력과 관련이 있어야 합니다. 예상치 못한 오류를 포함해 오류가 발생하면 명확한 메시지를 표시하거나 대체 동작을 제공해야 합니다.

플러그인은 안정적이고 반응이 빨라야 하며 완성된 기능을 제공해야 합니다. 체험판이나 데모 플러그인은 승인되지 않습니다.

플러그인 이름, 설명, 프롬프트

플러그인의 이름과 설명은 명확하고 정확하며 이해하기 쉬워야 합니다. 사용자가 플러그인을 처음 사용할 때 참고할 수 있는 예시 프롬프트를 제공하세요.

  • 이름: 지나치게 일반적인 이름은 피하세요. 특히 브랜드와 명확한 관련이 없는 사전 단어 하나만으로 이름을 짓지 마세요. 회사명이나 제품명 뒤에 “MCP”, “MCP Server”, “Plugin”을 붙이지 마세요.
  • 부제와 설명: 다른 제품과 비교하거나 대안을 폄하하거나 검증할 수 없는 주장을 하지 말고 플러그인의 기능을 설명하세요. 가격, 구독, 무료 체험, 할인, 프로모션을 광고하지 마세요.

안전

사용 정책

OpenAI 사용 정책에서 금지하는 활동을 하거나 이를 돕지 마세요. 플러그인은 사용자를 피해, 사기 또는 오용에 노출할 수 있는 고위험 동작을 피해야 합니다.

정책 요건의 변경 사항을 확인하고 지속적으로 준수하세요. 이미 승인된 플러그인도 나중에 위반 사실이 확인되면 삭제될 수 있습니다.

연령 적합성

플러그인은 만 13~17세 사용자를 포함한 일반 이용자에게 적합해야 합니다. 만 13세 미만 아동을 명시적으로 대상으로 삼아서는 안 됩니다. 성인용(만 18세 이상) 경험은 적절한 연령 확인 및 통제 수단이 마련된 후 지원될 예정입니다.

사용자 의도 존중

사용자의 요청을 직접 해결하는 경험을 제공하세요. 관련 없는 콘텐츠를 삽입하거나 상호작용을 다른 방향으로 유도하지 마세요. 데이터 수집은 사용자 요청을 처리하는 데 합리적으로 필요한 범위와 개인정보 보호 정책에서 정한 범위 안에서만 이루어져야 합니다.

사용자가 승인한 작업 범위 안에서만 동작하세요. 플러그인과 도구의 메타데이터로 비밀 정보나 보호된 컨텍스트를 요구하거나, 승인되지 않은 데이터 전송이나 작업을 지시하거나, 플랫폼 지침이나 보호 장치를 무력화하거나, 동작을 숨기거나, 다른 주체를 사칭해서는 안 됩니다. 인코딩하거나 난독화한 지침에도 같은 요건이 적용됩니다.

공정한 경쟁

도구나 플러그인 수준의 설명, 제목, 도구 어노테이션 등 모델이 읽을 수 있는 필드에 모델이 다른 플러그인이나 그 도구를 선택하고 사용하는 방식을 조작하거나 플러그인이 공정하게 발견될 기회를 방해하는 내용을 넣어서는 안 됩니다. 예를 들어 모델에 특정 플러그인을 다른 플러그인보다 우선하도록 지시해서는 안 됩니다. 모든 설명은 대안을 폄하하지 않고 플러그인의 가치를 정확히 전달해야 합니다.

타사 콘텐츠 및 연동

  • 승인된 접근: 적절한 승인을 받고 해당 업체의 서비스 약관을 준수하는 경우에만 외부 웹사이트를 스크래핑하거나, 쿼리를 중계하거나, 타사 API와 연동하세요.
  • 비공식 커넥터: 요청을 그대로 전달하는 중간 소프트웨어 계층을 포함해, 타사 서비스의 비공식 커넥터 역할을 주로 하는 플러그인은 승인할 수 없습니다.
  • 제한 우회: 타사가 설정한 API 제한, 요청 한도 또는 접근 제어를 우회하지 마세요.

개인정보 보호

개인정보 보호 정책

플러그인을 제출할 때는 공개된 개인정보 보호 정책을 함께 제출해야 합니다. 정책에는 최소한 수집하는 개인정보의 범주, 이용 목적, 데이터를 제공받는 대상의 범주, 데이터 보관 기간, 사용자에게 제공하는 통제 수단을 명확하게 설명해야 합니다. 이 정책을 항상 준수하세요. 사용자는 플러그인을 설치하기 전에 개인정보 보호 정책을 확인할 수 있습니다.

데이터 수집

  • 수집 최소화: 플러그인의 기능을 수행하는 데 필요한 최소한의 데이터만 수집하세요. 입력 항목은 구체적이고 범위가 좁아야 하며 작업과의 관련성이 명확해야 합니다. 혹시 필요할지 모른다는 이유로 필드를 추가하거나 광범위한 프로필 데이터를 수집하지 마세요.
  • 수집 제한 데이터: 다음 범주의 데이터는 수집하거나 제공을 요청하거나 처리하지 마세요.
    • 지불 카드 산업 데이터 보안 표준(PCI DSS)이 적용되는 정보
    • 보호 대상 건강 정보(PHI)
    • 정부가 부여한 식별 번호(예: 미국 사회보장번호)
    • 접근 자격 증명 및 인증용 비밀 정보(예: API 키, 다중 인증(MFA) 또는 일회용 비밀번호(OTP) 코드, 비밀번호)
  • 규제 대상 민감 정보: 데이터를 수집하는 관할권에서 ‘민감 정보’ 또는 ‘특별 범주’로 분류하는 개인정보는 다음 조건을 모두 충족할 때만 수집하세요. 수집이 플러그인에 명시된 기능을 수행하는 데 반드시 필요하고, 사용자가 법적 요건을 충족하는 동의를 했으며, 수집 시점 또는 그 이전에 수집 및 이용 사실을 명시적으로 눈에 잘 띄게 고지해야 합니다.

투명성과 사용자 통제

  • 데이터 처리 관행: 감시, 추적, 행동 프로파일링은 해당 활동을 명시적으로 고지하고, 범위를 좁게 한정하고, 사용자가 실질적으로 통제할 수 있으며, OpenAI 사용 정책을 준수하는 경우에만 허용됩니다. 여기에는 타임스탬프, IP 주소, 쿼리 패턴 등의 메타데이터 수집도 포함됩니다.

상거래 및 수익화

현재 플러그인에서는 실물 상품만 거래할 수 있습니다. 구독, 디지털 콘텐츠, 토큰, 크레딧 등 디지털 제품이나 서비스는 직접 판매하거나 간접적으로 판매할 수 없습니다. 무료 기능에서 유료 구매로 유도하는 방식도 여기에 포함됩니다.

사용자는 기존 유료 계정에 로그인해 이미 구독에 포함된 기능을 이용할 수 있습니다. 플러그인에서 구독 요금제를 표시하거나, 신규 구독 절차를 시작하거나, 업그레이드를 홍보해서는 안 됩니다.

특정 기능을 이용하는 데 사용자의 현재 요금제나 이용 권한과 다른 조건(예: 다른 구독 등급 또는 추가 크레딧)이 필요하다면 플러그인에서 이를 설명할 수 있습니다. 이 안내는 사용자가 해당 기능을 이용할 수 없는 이유를 이해하도록 도와야 하며 결제 또는 거래 플로우를 시작해서는 안 됩니다.

플러그인에서 허용되는 사항은 다음과 같습니다.

  • 사용자의 현재 요금제나 이용 권한으로 특정 기능을 이용할 수 없다고 설명합니다.
  • 선택 가능한 요금제나 이용 권한을 설명하는 안내 페이지로 연결합니다.

플러그인에서 금지되는 사항은 다음과 같습니다.

  • 결제 페이지나 기타 거래 페이지로 직접 연결합니다.
  • 업그레이드, 구독 또는 구매 완료 절차를 명시적으로 시작하는 페이지로 연결합니다.

플러그인은 ChatGPT에서 높은 품질의 사용자 경험을 제공해야 합니다. 외부 웹사이트나 애플리케이션에서도 같은 기능을 제공한다면 플러그인에서 품질이 떨어지는 버전을 제공해서는 안 됩니다. 사용자가 ChatGPT를 통해 서비스에 접근한다는 이유로 ChatGPT 전용 수수료나 추가 요금을 부과하거나 그 밖에 불리한 가격을 적용해서는 안 됩니다. 다른 플랫폼에서 일시적인 할인이나 프로모션 혜택을 제공하는 것은 허용됩니다.

또한 플러그인을 사용해 다음 상품이나 서비스를 판매 또는 홍보하거나, 그 거래를 돕거나 실질적으로 가능하게 해서는 안 됩니다.

금지 상품

  • 성인 콘텐츠 및 성적 서비스
    • 음란물, 노골적인 성적 미디어, 성인 라이브캠 서비스, 성인 콘텐츠 구독
    • 성인용 장난감, 섹스 돌, BDSM 용품, 페티시 제품
  • 도박
    • 실제 돈을 거는 도박 서비스, 카지노 크레딧, 스포츠 베팅, 암호화폐 카지노 토큰
  • 불법 약물 또는 규제 대상 약물
    • 대마 또는 THC 제품, 실로시빈, 불법 물질
    • 법정 THC 함량 한도를 초과하는 CBD 제품
  • 약물 사용 도구
    • 대마 흡연용 물담뱃대, 대마 농축액 흡입 기구, 약물 계량용 저울, 약물 생산용으로 홍보하는 대마 재배 장비
  • 처방 의약품 및 연령 제한 의약품
    • 처방전이 필요한 의약품(예: 인슐린, 항생제, 오젬픽, 오피오이드)
    • 연령 제한이 있는 처방 의약품(예: 테스토스테론, 인간 성장호르몬, 난임 치료용 호르몬)
  • 불법 상품
    • 위조품 또는 모조품
    • 도난품 또는 출처가 불분명한 물품
    • 금융 사기 도구(카드 정보 복제기, 위조 POS 단말기)
    • 불법 복제 도구 또는 복제 방지 기능을 무력화한 소프트웨어
    • 야생생물 또는 환경 관련 밀수품(상아, 멸종 위기종으로 만든 제품)
  • 악성코드, 스파이웨어 및 감시 장비
    • 악성코드, 랜섬웨어, 키로거, 스토커웨어
    • 은밀한 감시 장치(몰래카메라, IMSI 캐처, 숨겨진 추적기)
  • 담배 및 니코틴
    • 담배 제품
    • 니코틴 제품(전자담배, 전자담배 액상, 니코틴 파우치)
  • 무기 및 유해 물질
    • 총기, 탄약, 총기 부품
    • 폭발물, 폭죽, 폭탄 제조 재료
    • 불법 무기 또는 연령 제한 무기(자동 개폐식 칼, 너클, 금지 지역에서의 석궁)
    • 호신용 무기(후추 스프레이, 전기 충격기, 테이저건)
    • 극단주의 관련 상품 또는 선전물

금지되는 사기성·기만적·고위험 서비스

  • 위조 신분증, 위조 문서 또는 문서 위조 서비스
  • 채무 탕감, 신용 기록 복구 또는 신용 점수 조작을 내세운 사기 수법
  • 규제를 받지 않거나, 이용자를 기만하거나, 착취하는 금융 서비스
  • 사용자를 착취하도록 설계된 대출, 선납 수수료 또는 신용 이력 쌓기 수법
  • 투기, 소비자 기만 또는 금융 착취가 수반되는 암호화폐나 NFT 상품
  • 송금, 암호화폐 이체 또는 투자 매매의 실행
  • 정부 서비스 악용, 사칭 또는 급여·지원금 부정 조작
  • 신원 도용, 사칭 또는 오용을 가능하게 하는 신원 모니터링 서비스
  • 사기, 의무 회피 또는 허위 진술을 돕는 일부 법률 또는 유사 법률 서비스
  • 사용자가 거부하지 않으면 요금을 청구하는 방식, 텔레마케팅 또는 동의 절차를 우회하는 수법
  • 결제 취소 분쟁이 잦거나 사기 위험이 높거나 이용자를 착취하는 여행 서비스

결제

플러그인은 외부 결제를 사용하고 사용자가 개발자 소유 도메인에서 구매를 완료하도록 안내해야 합니다.

현재 베타 버전인 즉시 결제는 일부 마켓플레이스 파트너만 이용할 수 있습니다. 향후 다른 마켓플레이스와 소매업체로 확대될 수 있습니다.

그때까지는 표준 외부 결제 방식을 사용해야 합니다. 플러그인 UI에 다른 타사 결제 솔루션을 임베드하거나 호스팅해서는 안 됩니다. 자세한 내용은 에이전트 기반 상거래 문서를 참고하세요.

광고

플러그인은 광고를 게재해서는 안 되며 광고를 주된 목적으로 삼아서도 안 됩니다. 모든 플러그인은 그 자체로 사용자에게 가치가 있는 명확하고 정당한 기능을 제공해야 합니다.

개발자 확인

신원 확인

신원 확인을 마친 개인이나 조직만 플러그인을 제출할 수 있습니다. OpenAI 플랫폼 대시보드의 일반 설정에서 본인의 신원과 플러그인을 대신 게시하려는 기업과의 관계를 확인할 수 있습니다. 허위 진술, 동작 은폐 또는 제도 악용을 시도하면 프로그램에서 제외될 수 있습니다.

고객 지원 연락처

최종 사용자가 도움을 요청할 수 있는 고객 지원 연락처를 제공해야 합니다. 연락처를 정확하고 최신 상태로 유지하세요.

MCP 요건

이 요건은 MCP 서버, 도구 또는 선택 사항인 UI를 포함하는 플러그인에 적용됩니다.

도구

MCP 도구는 ChatGPT와 Codex에 서버의 기능을 사용하는 방법을 알려 줍니다. 도구를 명확하고 정확하게 정의하면 플러그인이 더 안전해지고, 모델은 기능을 쉽게 이해하며, 사용자는 플러그인을 신뢰하기 쉬워집니다.

명확하고 정확한 도구 이름

도구 이름은 사람이 읽고 이해할 수 있어야 하며 도구가 실제로 하는 일을 구체적으로 나타내야 합니다.

  • 도구 이름은 MCP 서버 내에서 고유해야 합니다.
  • 동작을 직접 나타내는 쉬운 표현을 사용하고, 가능하면 동사로 이름을 지으세요(예: get_order_status).
  • 오해를 유발하거나 지나치게 홍보하거나 비교하는 표현은 피하세요(예: pick_me, best, official).
  • 내부 용어, 설명 없는 약어, 의미를 알기 어려운 식별자는 피하세요.

동작과 일치하는 설명

각 도구의 설명은 비워 둘 수 없습니다. 목적과 동작, 사용 시점, 관련 제한 사항이나 사이드 이펙트를 명시적으로 정확하게 설명해야 합니다. 설명은 도구의 스키마 및 실제 동작과 일치해야 합니다. 설명만으로 도구의 동작을 명확하게 파악할 수 없거나 동작에 관한 정보가 불완전하면 플러그인이 거부될 수 있습니다.

설명에서 다른 플러그인이나 서비스를 편들거나 폄하해서는 안 되며, 모델이 다른 플러그인의 도구보다 해당 도구를 우선 선택하도록 유도해서도 안 됩니다. 사용자가 명시한 의도와 플러그인이 수행하는 목적을 넘어 지나치게 광범위한 상황에서 도구를 호출하도록 권장해서는 안 됩니다.

도구의 독립성과 공개 범위

공개 도구는 각각 독립적으로 작동해야 합니다. 작업을 완료하기 위해 모델에 다른 플러그인이나 커넥터를 호출하도록 지시하지 마세요. 필요한 종속성은 플러그인 안에 구현하세요.

모델이 호출할 수 있는 작업은 각각 별도의 도구로 공개하고 명확한 설명, 입력 스키마, 어노테이션을 제공하세요. 검토를 위해 개별적으로 공개하지 않은 작업을 실행할 수 있도록 범용 실행기에 작업 탐색, 작업 선택 또는 스키마 조회 기능을 결합하지 마세요.

올바른 어노테이션 설정

readOnlyHint, destructiveHint, openWorldHint를 명시적인 불리언 값(true 또는 false)으로 설정하세요. 이 설정은 각 도구의 annotations 객체에 지정합니다. 어노테이션 설정 근거는 더 이상 제출할 필요가 없습니다. 자동 검토에서 어노테이션 문제가 발견되면 설명이나 추가 정보를 첨부해 이의를 제기할 수 있습니다.

  • readOnlyHint: 환경을 변경하지 않는 조회, 계산, 미리보기에는 true를 사용하세요. 외부 상태 변경, 결과물의 영구 저장, 상태를 유지하는 작업이나 워크플로우 시작, 대기열에 작업 추가, 메시지 게시·이메일 발송·파일 업로드처럼 외부에 데이터를 쓰는 동작에는 false를 사용하세요.
  • destructiveHint: 읽기 전용 도구에는 false를 사용하세요. 쓰기 작업이 파괴적이거나 되돌릴 수 없는 결과를 초래할 수 있다면 true를 사용하세요. 예를 들어 삭제, 덮어쓰기, 취소, 접근 권한 철회 또는 되돌릴 수 없는 전송이나 거래가 이에 해당합니다. false는 기존 내용에 추가만 하며 파괴적이거나 되돌릴 수 없는 결과가 없는 쓰기 작업에만 사용하세요. 작업을 되돌릴 수 있다는 사실만으로 destructiveHint를 false로 설정할 수 있는 것은 아닙니다.
  • openWorldHint: 읽기 전용 웹 검색이나 임의의 목적지처럼 대상이 공개되어 있거나 범위가 정해져 있지 않으면 true를 사용하세요. 특정 비공개 계정, 워크스페이스 또는 카탈로그 안에서만 작동하는 도구는 외부에서 호스팅하더라도 false를 사용할 수 있습니다. 외부 연결 여부만으로 이 값이 결정되지는 않습니다.

클라이언트는 어노테이션을 참고해 보호 조치를 적용합니다. 어노테이션 자체가 권한을 부여하지는 않으며 인증, 권한 및 권한 범위 확인, 입력 검증, 되돌릴 수 없는 작업에 대한 사람의 확인을 대신할 수 없습니다.

목적에 맞는 최소한의 입력

도구는 작업을 완료하는 데 필요한 최소한의 정보만 요청해야 합니다.

  • 입력 필드는 도구에 명시된 목적과 직접 관련되어야 합니다.
  • 혹시 필요할지 모른다는 이유로 전체 대화 기록, 가공하지 않은 채팅 전문 또는 광범위한 컨텍스트 필드를 요청하지 마세요. 작업에 한정된 짧은 사용자 의도 필드는 실행을 실질적으로 개선하고, 수집 범위가 사용자 요청에 응답하고 개인정보 보호 정책에 명시된 목적을 달성하는 데 합리적으로 필요한 수준을 넘지 않을 때만 요청할 수 있습니다.
  • 누적된 대화 컨텍스트나 이전 대화 턴을 담은 배열을 요청하지 마세요.
  • 위치가 필요하면 시스템이 공유하는 대략적인 지리적 위치를 사용하세요. GPS 좌표나 주소처럼 사용자의 정확한 위치를 나타내는 데이터는 요청하지 마세요.

예측 가능하고 감사할 수 있는 동작

도구는 이름, 설명, 입력 항목이 나타내는 대로 정확하게 작동해야 합니다.

  • 사이드 이펙트를 숨기거나 암묵적으로 처리해서는 안 됩니다.
  • 가능하면 안전하게 재시도할 수 있도록 설계하세요. 재시도로 같은 결과가 중복 발생할 수 있다면 그 조건을 명시하세요.

도구를 세심하게 설계하면 예상치 못한 동작을 줄이고 사용자를 보호하며 검토 절차를 단축할 수 있습니다.

도구의 데이터 처리

선택적인 컨텍스트까지 폭넓게 수집하는 대신, 기본적으로 데이터 수집 범위를 제한하도록 입력 스키마를 설계하세요.

  • 응답 최소화: 도구 응답에는 사용자 요청 및 도구에 명시된 목적과 직접 관련된 데이터만 포함해야 합니다. 사용자 질의를 처리하는 데 반드시 필요한 경우가 아니면 진단 정보, 텔레메트리 또는 내부 식별자를 포함하지 마세요. 예를 들면 세션 ID, 트레이스 ID, 요청 ID, 타임스탬프, 로깅 메타데이터가 있습니다.
  • 데이터 경계:
    • 입력 스키마에서 도시나 좌표 같은 위치 필드를 직접 요청하지 마세요. 위치가 필요하면 환경 메타데이터나 참조된 리소스처럼 클라이언트가 통제하는 별도 채널을 통해 가져오세요. 그러면 적절한 정책과 동의 절차를 적용할 수 있습니다. 이 방식은 개인 식별 정보가 의도치 않게 수집될 가능성을 줄이고, 최소 권한 원칙을 적용하며, 위치 정보의 처리를 감사하고 접근 권한을 철회할 수 있게 합니다.
    • MCP 서버는 클라이언트나 다른 출처에서 전체 채팅 기록을 가져오거나 재구성하거나 추론해서는 안 됩니다. 클라이언트나 모델이 명시적으로 선택해 보낸 발췌문과 리소스만 처리하세요. 이렇게 범위를 분리하면 사용자 모르게 데이터 범위가 확대되는 일을 막고 의도적으로 공유한 콘텐츠로 분석을 한정하는 데 도움이 됩니다.
  • 작업 보호 조치: 쓰기 작업과 파괴적 작업의 표시, 확인 절차, 외부 전송 데이터 보호 조치는 올바른 어노테이션 설정을 따르세요.

인증 및 권한

MCP 서버에 인증이 필요하다면 인증 플로우를 투명하고 명확하게 제공해야 합니다. 요청하는 모든 권한을 사용자에게 알리고, 플러그인이 작동하는 데 필요한 권한만 요청하세요.

UI

세부 사항을 살펴보기 전에 선택 사항인 UI의 가이드라인을 확인하세요. ChatGPT 안에서 직관적이고 신뢰할 수 있으며 일관된 플러그인 UI를 만드는 데 도움이 되는 상호작용, 레이아웃, 디자인 패턴을 설명합니다.

iframe 및 임베드된 페이지

UI가 있는 플러그인은 기존 편집기나 관리자 인터페이스 전체를 포함해 MCP 서버와 등록 가능 도메인이 같은 페이지를 임베드할 수 있습니다. 예를 들어 https://api.example.com/mcp에 있는 서버는 https://app.example.com을 임베드할 수 있습니다. 두 주소의 등록 가능 도메인은 모두 example.com입니다. 공유 호스팅 서비스에서 서로 다른 테넌트는 별개 도메인으로 간주합니다. 같은 호스팅 제공업체를 사용한다는 사실만으로 도메인 소유권이 입증되지는 않습니다.

리소스 CSP에서 _meta.ui.csp.frameDomains(또는 기존 _meta["openai/widgetCSP"].frame_domains)를 사용해 필요한 iframe 출처를 각각 선언하세요. 타사 도메인의 페이지는 해당 경험이 플러그인에 필수적인 경우에만 iframe으로 임베드하세요.

iframe을 사용하는 플러그인을 제출할 때는 여전히 사용 근거를 제시해야 합니다. 임베드하는 각 페이지가 어떤 기능을 하는지, 플러그인에 임베드하는 이유가 무엇인지, 누가 해당 도메인을 관리하는지 설명하세요. iframe을 사용하면 추가 검토나 상위 단계의 심사가 필요할 수 있습니다. 콘텐츠를 평가할 수 없으면 승인이 늦어지거나 거부될 수 있습니다. MCP 서버와 도메인이 같더라도 승인이 보장되지는 않습니다.

임베드된 페이지에도 결제 및 개인정보 보호 요건을 비롯한 다른 모든 플러그인 요건이 그대로 적용됩니다.

테스트

플러그인을 제출하기 전에 다양한 시나리오에서 MCP 서버, 도구, 선택 사항인 UI를 철저히 테스트하세요.

플러그인은 UI 구성 요소를 포함해 데스크톱과 모바일의 ChatGPT에서 모두 안정적으로 작동해야 합니다.

테스트용 자격 증명

인증이 필요한 MCP 서버를 포함하는 플러그인을 제출할 때는 샘플 데이터가 있고 모든 기능을 사용할 수 있는 데모 계정의 로그인 ID와 비밀번호를 제공하세요. 새 계정 가입이나 접근할 수 없는 계정을 통한 2단계 인증처럼 추가 로그인 단계가 필요한 플러그인은 거부됩니다.

스킬

스킬은 자동 검사를 거치며 OpenAI의 보안, 개인정보 보호 및 사용 정책을 준수해야 합니다. 스킬만 포함하는 플러그인도 위의 메타데이터 및 등록 요건을 모두 충족해야 합니다. 이러한 플러그인을 디렉터리에 등록할 때는 추가 자격 요건이 적용될 수 있습니다.