플러그인을 공개하기 위한 심사에 대비해 원격 MCP 서버를 준비하세요. 플러그인에 UI가 있다면 함께 준비하세요.
플러그인 제출을 위한 원격 MCP 기능 준비
플러그인에 원격 MCP 서버가 포함된 경우 이 페이지에서 조직 인증, 관리 권한, 서버 요건, 심사에 사용하는 스냅샷, 버전 유지보수에 관한 요건을 확인하세요.
원격 MCP 서버가 ChatGPT에서 정상적으로 작동하면 플러그인 제출 포털에서 심사를 요청하세요. 이 페이지에서는 제출할 원격 MCP 서버와 선택 사항인 UI가 충족해야 할 요건을 설명합니다.
제출 과정에서 지정하는 국가에 플러그인을 공개하려는 경우에만 제출하세요. 비공개로 사용하거나 워크스페이스 내에서만 사용하려면 사용자 지정 MCP 서버 연결을 사용하세요.
플러그인을 제출하기 전에 플러그인 가이드라인에서 MCP 서버와 선택 사항인 UI에 적용되는 기준을 확인하세요. 플러그인 제출부터 승인, 게시까지의 전체 절차는 플러그인 제출을 참고하세요.
스킬로만 구성된 플러그인과 MCP 기반 플러그인의 심사, 승인, 게시를 포함한 전체 절차는 플러그인 제출을 참고하세요.
플러그인 제출 전 확인 사항
조직 인증
플러그인을 제출하기 전에 OpenAI 플랫폼 대시보드에서 디렉터리에 게시자로 표시할 이름으로 신원 인증을 완료하세요.
- 본인 이름으로 게시하려면 개인 인증을 완료하세요.
- 사업자명으로 게시하려면 사업자 인증을 완료하세요.
심사 과정에서 인증 여부를 확인합니다. 인증되지 않은 개인 이름이나 사업자명으로 게시를 요청하면 거절됩니다.
플러그인 제출 권한
플러그인 초안을 만들고 심사를 요청하려면 api.apps.write 권한이 필요합니다. 대시보드에서 초안과 심사 상태를 확인하려면 api.apps.read 권한이 필요합니다. 조직 소유자에게는 두 권한이 자동으로 부여됩니다. 소유자는 OpenAI 플랫폼 대시보드에서 역할을 통해 소유자가 아닌 구성원에게도 이 권한을 부여할 수 있습니다.
원격 MCP 서버 요건
- 누구나 접근할 수 있는 도메인에서 MCP 서버를 호스팅하세요.
- 로컬 엔드포인트나 테스트용 엔드포인트를 사용하지 마세요.
- 서버가 UI를 반환하는 경우, 컴포넌트가 리소스를 가져오는 도메인을 정확히 지정해 허용하는 콘텐츠 보안 정책(CSP)을 정의하세요.
템플릿 기반 MCP 서버 URL
대부분의 플러그인은 모든 사용자와 조직이 동일한 호스팅 엔드포인트에 연결할 수 있도록 공통 MCP 서버 URL 하나를 제출해야 합니다. 고객마다 별도의 테넌트, 워크스페이스 또는 관리형 MCP 엔드포인트가 있는 경우처럼 플러그인이 워크스페이스별 MCP 서버 URL을 사용하는 경우에만 템플릿을 선택하세요. OpenAI는 이미 협력 관계를 맺은 신뢰할 수 있는 개발자에게만 템플릿 기반 URL을 지원합니다.
템플릿을 사용해 제출할 때는 URL 값 두 개가 필요합니다.
- 예시 MCP 서버 URL: 심사와 자동 검사에 사용할 수 있는 실제 MCP 엔드포인트입니다.
- 템플릿 MCP 서버 URL: 고객 워크스페이스마다 MCP 엔드포인트의 어느 부분이 달라지는지 나타내는 URL 패턴입니다.
예시 MCP 서버 URL은 제출 심사 중에 OpenAI가 연결할 수 있는 실제 엔드포인트여야 합니다. 예시 MCP 서버 URL 필드에 자리표시자 URL을 입력하지 마세요.
템플릿 MCP 서버 URL에서 워크스페이스 관리자가 나중에 설정할 부분은 자리표시자로 표시하세요. 자리표시자는 {name} 형식이어야 합니다. 이름은 영문자로 시작해야 하며 영문자, 숫자, 밑줄만 사용할 수 있습니다. 각 자리표시자의 이름은 고유해야 합니다.
템플릿의 각 자리표시자를 실제 값으로 바꾼 결과가 예시 MCP 서버 URL과 일치하는지 확인하세요.
예시:
Example MCP Server URL: https://acme.example.com/mcp
Template MCP Server URL: https://{workspace}.example.com/mcp
심사 요청
사전 요건을 충족하면 플러그인 제출 포털에서 플러그인 심사를 요청할 수 있습니다.
심사 절차 시작
플러그인 제출 포털에서 다음 단계를 따르세요.
- MCP 서버 정보를 입력하세요. OAuth를 선택했다면 OAuth 자격 증명도 입력하세요. 그런 다음 도구 스캔을 선택하세요.
- 제출 양식의 필수 항목을 작성하고 확인란을 모두 선택하세요. 플러그인 이름, 로고, 설명, 회사 웹사이트 및 개인정보 보호 정책 URL, MCP 및 도구 정보, 테스트 프롬프트와 응답, 현지화 정보를 제공해야 합니다.
- 심사 요청을 선택하세요.
도구 스캔 시 저장되는 메타데이터
도구 스캔을 선택하면 대시보드가 MCP 엔드포인트에서 제공하는 메타데이터를 초안으로 가져옵니다. 여기에는 도구 이름, 제목, 설명, 입력 및 출력 스키마, 보안 체계, _meta 필드, 도구 어노테이션, CSP 설정을 비롯한 연결된 UI 리소스의 메타데이터, MCP 서버의 instructions가 포함됩니다. 대시보드에는 서버가 제공한 어노테이션 값이 표시됩니다.
제출 양식에는 서버가 제공한 어노테이션 값이 각 도구의 동작과 일치하는 이유를 설명하세요. 이 설명으로 어노테이션 값을 재정의할 수는 없습니다. 예를 들어 서버가 readOnlyHint: false를 제공한다면, 제출 양식에 도구가 “사실상 읽기 전용”이라고 설명해도 읽기 전용 도구로 취급되지 않습니다. 실제로 읽기 전용인 도구라면 서버의 어노테이션을 readOnlyHint: true로 변경해 배포하세요. 도구 스캔을 다시 선택하고 변경된 값을 확인한 후 제출하세요.
각 조직은 서로 다른 MCP 기반 플러그인을 여러 개 게시할 수 있습니다. MCP 서버 연동 하나당 게시 상태로 유지할 수 있는 버전은 한 번에 하나이며, 심사 중인 버전도 한 번에 하나만 허용됩니다. 제출 후 수정해야 한다면 심사 취소를 선택해 제출을 철회한 다음 같은 버전의 초안을 다시 제출하세요.
현재 EU 데이터 레지던시가 적용된 프로젝트에서는 MCP 서버가 포함된 플러그인의 심사를 요청할 수 없습니다. 글로벌 데이터 레지던시가 적용된 프로젝트를 사용하세요. 해당하는 프로젝트가 없다면 OpenAI 대시보드에서 현재 조직에 새 프로젝트를 만드세요.
심사 및 승인
제출한 플러그인은 심사 대기열에 추가됩니다. 대시보드에서 심사 상태를 확인할 수 있으며, 상태가 변경될 때마다 이메일로 알림을 받습니다.
심사 및 검사
OpenAI는 플러그인이 어떻게 작동하는지, 정책에 어긋날 소지가 있는지 확인하기 위해 자동 스캔이나 수동 심사를 진행할 수 있습니다.
승인, 거절 및 이의 제기
플러그인이 승인되면 이메일로 알려드립니다. 승인된 플러그인은 플러그인 제출 포털에서 게시할 수 있습니다.
MCP 서버, 도구 또는 UI 문제로 플러그인이 거절되거나 삭제되면 어떤 검사 항목을 통과하지 못했는지 안내해 드립니다. 필요한 부분을 수정한 후 플러그인 심사를 다시 요청할 수 있습니다. 결정에 이의를 제기하려면 받은 이메일에 답장해 명확한 근거와 심사에 도움이 될 새로운 정보를 알려주세요.
지원 문의
제출 전후 또는 제출 과정에서 궁금한 점이 있고 문서에서 답을 찾을 수 없다면 OpenAI 지원팀에 문의하세요. 지원팀이 플러그인을 식별할 수 있도록 플러그인 제출 포털에 표시된 ID를 함께 보내세요.
심사 및 승인 FAQ
심사는 얼마나 걸리나요?
심사 절차를 계속 개선하고 운영 규모를 확대하고 있어 소요 시간은 달라질 수 있습니다. 신속 심사 요청은 수용할 수 없으므로 지원팀에 심사를 앞당겨 달라고 요청하지 마세요.
자주 거절되는 사유는 무엇이며 어떻게 해결할 수 있나요?
- 제공된 MCP URL이나 테스트 자격 증명으로 MCP 서버에 연결할 수 없습니다.
- 인증이 필요한 서버라면 심사팀이 추가 설정 없이 데모 계정에 로그인할 수 있어야 합니다.
- 제공한 URL과 자격 증명이 정확한지 확인하세요. 로그인에 다중 인증(MFA)이 필요해서는 안 됩니다. 여기에는 SMS 코드 입력이나 SMS, 이메일 또는 기타 인증을 요구하는 시스템을 통한 로그인도 포함됩니다.
- 회사 네트워크, 근거리 통신망 또는 기타 내부 네트워크 밖에서 자격 증명을 테스트해 정상적으로 로그인할 수 있는지 확인하세요.
- 자격 증명이 만료되지 않았는지 확인하세요.
- 하나 이상의 테스트 케이스에서 올바른 결과가 나오지 않았습니다.
- 모든 테스트 케이스를 꼼꼼히 검토하고 하나씩 다시 실행해 출력이 예상 결과와 일치하는지 확인하세요. UI가 있다면 콘텐츠나 이미지가 로드되지 않는 문제를 비롯해 UI 오류가 없는지도 확인하세요.
- 반환되는 텍스트가 사용자의 요청에 충실한지 확인하세요. 개인 식별자를 비롯해 요청과 무관한 정보는 포함하지 마세요.
- 플러그인을 제공할 ChatGPT 및 Codex의 모든 지원 환경에서 테스트 케이스를 모두 통과하는지 확인하세요.
- 도구별로 기대하는 동작을 구체적으로 정의하고 실제 출력과 비교하세요. 차이가 있다면 수정해 사용자 입력에 맞는 결과가 나오고 플러그인이 설명한 대로 일관되게 작동하도록 하세요.
- 필요한 경우 다시 제출할 때 테스트 케이스와 예상 응답을 명확하게 수정해 해석의 여지가 없도록 하세요.
- 플러그인이 개인정보 보호 정책에 명시되지 않은 유형의 사용자 관련 데이터를 반환합니다.
- ChatGPT에서 실제 사용 상황에 가까운 예시 요청을 몇 가지 실행해 MCP 도구 응답을 점검하세요. 중첩 필드와 “디버그” 페이로드를 포함해 서버가 반환하는 모든 사용자 관련 필드를 목록으로 정리하세요. 도구는 사용자의 요청에 꼭 필요한 데이터만 반환해야 합니다. 불필요한 개인 식별 정보(PII), 텔레메트리 데이터 및 내부 식별자(예: 세션 ID, 추적 ID, 요청 ID, 타임스탬프, 내부 계정 ID, 로그)를 제거하고 토큰, 키, 비밀번호 등 인증에 사용하는 비밀 정보도 모두 제거하세요.
- 수집, 처리 또는 반환하는 개인정보의 모든 범주와 그 이유를 명시하도록 게시된 개인정보 보호 정책을 업데이트하는 것도 고려하세요. 실제로 필요하지 않은 필드는 정책에 추가하는 대신 제거하세요.
- 사용자 식별자가 꼭 필요하다면 사용자가 명시적으로 요청하고 그 의도와 직접 관련된 경우에만 제공하세요. 기본 동작으로 식별자를 “조회해 그대로 반환”하지 마세요.
- 도구 힌트 어노테이션이 도구의 실제 동작과 일치하지 않는 것으로 보입니다.
- readOnlyHint: 도구가 데이터를 가져오거나 조회, 나열, 검색하기만 하고 아무것도 변경하지 않는다면
true로 설정하세요. 도구가 무엇이든 생성, 업데이트 또는 삭제하거나 이메일·메시지 전송, 작업 실행, 대기열에 작업 추가, 로그 기록, 워크플로우 시작 등의 동작을 트리거하거나 그 밖의 방식으로 상태를 변경할 수 있다면false로 설정하세요. - 파괴적 동작 힌트: 도구가 삭제, 덮어쓰기, 취소할 수 없는 메시지 전송이나 거래, 접근 권한 회수, 파괴적인 관리자 작업 등 되돌릴 수 없는 결과를 초래할 수 있다면 파괴적 동작 어노테이션을
true로 설정하세요. 특정 모드에서만 발생하거나 기본 매개변수 또는 간접적인 사이드 이펙트로 발생하는 경우도 해당합니다. 제출 근거에는 어떤 결과를 어떤 조건에서 되돌릴 수 없는지 설명하고, 확인 단계, 모의 실행 옵션, 적용 범위 제한 등의 보호 조치도 명시하세요. 되돌릴 수 없는 결과가 발생하지 않는다면false로 설정하세요. - openWorldHint: 도구가 공개 인터넷에 접근하거나 상호작용하는 외부 대상의 범위가 정해져 있지 않다면
true로 설정하세요. 웹 검색 같은 읽기 전용 도구와 공개 플랫폼에 게시하거나, 외부 수신자에게 메시지를 보내거나, 콘텐츠를 공개하거나, 코드를 푸시하거나, 양식을 제출하는 쓰기 도구가 여기에 해당합니다. 도구의 접근 범위가 특정 비공개 계정이나 워크스페이스로 제한된다면 해당 서비스를 외부에서 호스팅하더라도false로 설정하세요.
- readOnlyHint: 도구가 데이터를 가져오거나 조회, 나열, 검색하기만 하고 아무것도 변경하지 않는다면
게시 및 배포
플러그인 게시
플러그인이 승인되면 플러그인 제출 포털에서 게시를 선택해 공개할 수 있습니다.
플러그인 찾기
게시가 완료되면 사용자는 다음 방법으로 ChatGPT와 Codex가 공유하는 통합 디렉터리에서 플러그인을 찾을 수 있습니다.
- 디렉터리의 플러그인 상세 페이지로 연결되는 직접 링크를 클릭합니다.
- 플러그인 이름으로 검색합니다.
실제 활용도가 높고 사용자 만족도가 높은 플러그인은 디렉터리 주요 영역에 노출되거나 사용자에게 먼저 추천되는 등 더 널리 배포될 기회를 얻을 수 있습니다. 다만 게시 시점부터 이런 혜택을 받는 플러그인은 소수입니다. 개발자가 추가 노출을 요청할 수는 없습니다.
게시 및 배포 FAQ
승인된 플러그인은 어떻게 되나요? 플러그인 디렉터리에 자동으로 등록되나요?
승인된 후 플러그인 제출 포털에서 게시 여부를 결정할 수 있습니다. 플러그인을 게시해야 통합 플러그인 디렉터리에 표시됩니다.
디렉터리에서 내 플러그인이 보이지 않는 이유는 무엇인가요?
디렉터리의 주요 페이지에는 OpenAI가 추가 노출 대상으로 선정한 플러그인만 표시됩니다. 게시 여부를 확인하려면 게시할 때 사용한 정확한 이름으로 검색하거나 플러그인 제출 포털에서 해당 플러그인의 디렉터리 URL을 여세요.
플러그인에 관한 보도 자료를 배포하거나 공개 발표를 하려면 어떻게 해야 하나요?
플러그인 출시와 관련해 보도 자료를 배포하거나 공개 발표를 하기 전에 press@openai.com으로 연락해 OpenAI 커뮤니케이션팀과 조율하세요.
지속적인 유지보수
게시된 MCP 메타데이터의 버전 관리 방식
MCP 서버가 제공하는 메타데이터는 버전별로 관리되는 플러그인의 API 계약으로 취급하세요. 플러그인 제출 포털에서 MCP 엔드포인트를 스캔하면 OpenAI가 스캔에서 확인한 메타데이터를 해당 초안 버전과 함께 저장합니다. 버전을 제출하면 저장된 스냅샷이 심사 대상이 됩니다. 게시 후에는 새 플러그인 버전을 만들지 않아도 지속적인 심사를 통해 도구 정의가 업데이트됩니다. 도구 호출과 UI 리소스는 계속해서 운영 중인 MCP 서버를 사용합니다.
지속적인 심사와 도구 업데이트
OpenAI는 주기적으로 MCP 서버에서 도구 정보를 가져와 설명, 스키마, 어노테이션을 비롯한 도구 정의를 게시된 정의와 비교합니다.
- 삭제된 도구: 스캔에서 삭제가 감지되면 자동 검사를 기다리지 않고 게시된 도구 목록에서 즉시 제거합니다.
- 새 도구: 자동 검사를 통과한 후 제공됩니다. 그전에는 사용자가 이용할 수 없습니다.
- 변경된 도구: 업데이트된 정의가 자동 검사를 통과하거나 스캔에서 도구 삭제가 감지될 때까지 기존 정의가 계속 적용됩니다. 업데이트가 검사를 통과하면 새 정의가 기존 정의를 자동으로 대체합니다.
각 도구의 통과 여부는 개별적으로 결정됩니다. 예를 들어 create_note를 추가하고, search가 folder 매개변수를 받도록 변경하고, archive_note를 삭제했다고 가정해 보세요. 다음 스캔에서 archive_note가 즉시 제거됩니다. create_note는 통과했지만 search 업데이트가 보류되면 사용자는 create_note를 사용할 수 있습니다. search에는 기존 정의가 계속 적용되므로 folder 매개변수를 사용할 수 없습니다.
업데이트가 보류되는 동안 서버가 현재 적용 중인 정의와 호환되도록 유지하세요. OpenAI는 도구 정의를 보관하며 서버 구현의 사본은 보관하지 않습니다. 검사에서 문제가 발견되지 않았더라도 검사가 완료되기 전에는 업데이트가 승인되지 않습니다.
기타 변경 사항
변경 사항별 배포 방법은 다음 표를 참고하세요.
| 변경 사항 | 필요한 조치 | 사용자에게 변경 사항이 반영되는 시점 |
|---|---|---|
도구 보안 체계, 도구의 _meta 필드, UI 리소스 참조 또는 콘텐츠 보안 정책(CSP) 설정을 포함한 연결된 리소스의 메타데이터 |
변경 사항을 배포하세요. 지속적인 심사 과정에서 이 필드를 도구 정의와 함께 검토합니다. | 업데이트된 도구 정의가 자동 검사를 통과한 후 |
MCP 서버의 instructions |
변경 사항을 배포하세요. 공통 지침은 영향을 받는 도구와 함께 심사합니다. | 기존 도구의 업데이트가 보류되지 않고 지침에서도 문제가 발견되지 않은 상태로 필수 검사가 완료된 후 |
| 게시된 기존 UI 리소스 URI에서 제공하는 하위 호환 콘텐츠 업데이트 | 콘텐츠 업데이트를 배포하세요. URI와 게시된 계약의 호환성이 유지된다면 스캔하거나 새 버전을 제출 또는 게시할 필요가 없습니다. | 배포 후. ChatGPT는 최대 1시간 동안 캐시된 리소스 콘텐츠를 계속 제공할 수 있습니다. |
서버에서만 이루어지는 수정, 운영 중인 도구의 결과(결과의 _meta 포함) 또는 비즈니스 데이터 변경 |
서버 변경 사항을 배포하세요. 게시된 계약이 유지된다면 스캔하거나 새 버전을 제출 또는 게시할 필요가 없습니다. | 배포 후 운영 중인 엔드포인트를 통해 반영됩니다. |
MCP 서버 오리진(scheme, hostname 또는 port) |
오리진을 변경하려면 새 플러그인을 만들고 스캔, 제출, 심사, 게시 절차를 완료하세요. 엔드포인트 경로만 변경하려면 일반적인 새 버전 제출 절차를 따르세요. | 새 플러그인 또는 승인된 버전을 게시한 후 |
서버 변경 사항은 스캔으로 감지하거나 승인하기 전에 적용됩니다. 그동안 기존 입력 스키마와 게시된 각 UI 리소스 URI가 계속 작동하도록 하세요. 배포로 인해 현재 적용 중인 계약이 깨지면 심사를 기다리지 말고 서버 변경 사항을 롤백하세요.
새 버전 심사 요청
제출한 플러그인 정보나 가져온 스킬을 변경하려면 기존 플러그인의 새 초안 버전을 만들어 심사를 다시 요청하세요. 지속적인 도구 심사가 이 절차를 대신하지는 않습니다. 다시 제출할 때마다 새 심사가 시작됩니다. 릴리스 노트에 변경 사항을 설명하세요.
버전 간에 MCP 서버 오리진(scheme, hostname 또는 port)을 변경할 수는 없습니다. 다른 오리진을 사용하려면 새 MCP 서버 오리진으로 새 플러그인을 제출하세요. 엔드포인트 경로는 기존 플러그인의 새 버전에서 변경할 수 있습니다.
OpenAI는 업데이트된 플러그인 메타데이터를 다시 심사하고 승인 또는 거절 여부를 이메일과 플러그인 제출 포털을 통해 알려드립니다. 거절된 경우 수정해 다시 제출하거나 결정에 이의를 제기할 수 있습니다.
다시 제출한 버전이 승인되면 업데이트를 게시할 수 있습니다. 게시하면 이전 플러그인 버전이 새 버전으로 대체됩니다.
제출 후 승인 전에 플러그인을 추가로 변경해 새 버전으로 심사를 요청하려면 플러그인 제출 포털에서 심사를 취소한 다음 다시 제출하세요.
게시된 메타데이터 버전 교체 및 플러그인 삭제
게시된 플러그인 버전을 교체하려면 플러그인 제출 포털에서 승인된 새 버전을 바로 게시하세요. 새 버전이 심사 중인 동안에는 현재 버전을 게시 상태로 유지하세요. 승인된 버전을 게시하면 현재 버전을 대체하므로 기존 버전의 게시를 먼저 중단할 필요가 없습니다.
플러그인을 더 이상 공개하지 않으려는 경우에만 현재 버전의 게시를 중단하세요. 대체 버전을 게시하지 않고 현재 버전의 게시를 중단하면 사용자가 플러그인을 이용할 수 없습니다.
조직과 ChatGPT 및 Codex에서 플러그인을 제거하려면 플러그인 제출 포털에서 삭제하세요.
유지보수 요건
플러그인이 비활성 상태이거나 불안정하거나 요건을 준수하지 않으면 삭제될 수 있습니다. OpenAI는 법적 문제, 보안 우려, 정책 위반 등을 포함한 어떠한 사유로든 언제든지 사전 통지 없이 플러그인을 거절하거나 서비스에서 삭제할 수 있습니다.
지속적인 유지보수 FAQ
사용자가 내 플러그인이 유해하거나 오해를 일으킨다고 신고하면 어떻게 되나요?
OpenAI는 사용자 신고를 검토하며, 플러그인과 그 MCP 서버, 도구, UI를 심사하거나 조사할 수 있습니다. 정책을 위반한 플러그인은 이용이 제한되거나 삭제될 수 있습니다. 삭제 또는 기타 제재 조치에 대해서는 이 페이지에 안내된 절차에 따라 이의를 제기할 수 있습니다. 정기적으로 피드백을 확인하고 답변하세요. 문제가 발견되면 플러그인을 업데이트하세요.
업데이트 심사는 얼마나 걸리나요?
신규 플러그인 심사와 마찬가지로 업데이트 심사도 예상 소요 시간을 안내해 드릴 수 없습니다.