プラグインを申請する¶
プラグインを一般公開する準備ができたら、プラグイン申請ポータルを使用して審査に提出します。
プラグインは、アプリ、スキル、またはその両方です。次のものを申請できます。
- 再利用可能なワークフローをパッケージ化した、スキルのみのプラグイン。
- MCP サーバーをバックエンドとする、アプリのみのプラグイン。カスタム UI は任意です。
- MCP をバックエンドとするアプリと、同梱スキルを組み合わせた、アプリとスキルのプラグイン。
申請フォームでは、掲載情報、MCP サーバーの詳細、同梱スキル、スタータープロンプト、テストケース、利用可能な国、ポリシーへの同意を収集します。入力するフィールドは、プラグインにスキル、アプリ、またはその両方が含まれるかによって異なります。
ローカル開発、パッケージ化、マーケットプレイスの設定については、プラグインを構築するを参照してください。
プラグインのアプリ部分については、アプリを構築するを参照してください。
申請前の準備¶
既存のアプリ参照ではなく、MCP サーバーを申請する¶
既存の、すでに公開されている ChatGPT アプリを参照するプラグインは申請できません。プラグインに ChatGPT にすでに存在するアプリが含まれている場合は、そのアプリの MCP サーバーをポータルから新しい MCP ベースのプラグイン申請として最初から提出してください。ポータルはその MCP サーバーをスキャンし、ツールのメタデータを検証し、審査中に提出されたサーバーの詳細を使用します。
プラグイン申請へのアクセス権を取得する¶
プラグインの下書きを作成または申請するには、アプリ管理への書き込みアクセス権を持つ組織ロールが必要です。
- OpenAI Platform のロール設定を開きます。
- プラグインを所有する組織を選択します。
- 申請者に割り当てられたロールを開くか、新しいロールを作成します。
- ロールの権限で、Apps Management を Write に設定します。
- ロールを保存し、プラグインの下書きを作成、編集、または申請する必要がある各ユーザーに割り当てます。
- プラグイン申請ポータルを再読み込みします。

組織の所有者は、すでにアプリ管理権限を持っています。所有者ではない申請者が下書きを作成または申請するには書き込みアクセス権が必要であり、下書きと審査ステータスを表示するには読み取りアクセス権が必要です。
開発者または企業の本人確認を行う¶
すべての一般公開申請では、OpenAI Platform で確認済みの開発者または企業の本人確認情報を使用する必要があります。審査担当者はこの情報を使用して、申請内容が一般公開される掲載情報の名前、Web サイト、サポート連絡先、プライバシーポリシー、利用規約と一致することを確認します。
本人確認を行うには、次の手順に従います。
- OpenAI Platformにサインインします。
- プラグインを公開する組織を選択します。
- 組織設定を開きます。
- 自分の名前で公開する場合は個人の本人確認を、企業名で公開する場合は企業の本人確認を完了します。
- プラグイン申請フォームに戻り、Developer Identity フィールドで確認済みの本人確認情報を選択します。
確認されていない、または一致しない公開者の本人確認情報を使用した申請は、審査担当者によって却下される場合があります。基礎となる審査ルールについては、Apps SDK の組織の本人確認要件を参照してください。
Platform では開発者または企業の本人確認が完了していると表示されるのに、プラグイン申請フォームで認識されない場合は、本人確認を行ったのと同じ組織およびプロジェクトから申請していることを確認してください。申請者には、その組織に対する Apps Management の書き込みアクセス権も必要です。組織の所有者または管理者に申請者のロールを更新してもらい、プラグイン申請ポータルを再読み込みしてください。
必要な資料を準備する¶
フォームを開く前に、次のものを準備してください。
| 資料 | 準備するもの |
|---|---|
| 掲載情報 | プラグイン名、短い説明、長い説明、ロゴ、カテゴリ、Web サイト、サポート URL、プライバシーポリシー URL、利用規約 URL。 |
| 開発者の本人確認情報 | OpenAI Platform で確認済みの個人または企業の本人確認情報。 |
| MCP サーバー | アプリを含むプラグインの場合:パブリック MCP サーバー URL、ドメイン確認へのアクセス権、認証の詳細、必要に応じたデモ用認証情報、コンテンツセキュリティポリシー、正確なツールメタデータ。 |
| ツールのアノテーション | アプリを含むプラグインの場合:すべての MCP ツールに対する readOnlyHint、openWorldHint、destructiveHint の値。 |
| スキル | スキルのプラグインの場合:最終的なスキルのファイルツリーを含むスキルバンドルまたは ZIP。 |
| プロンプト | 有用で現実的なワークフローを示すスタータープロンプト。 |
| テストケース | 期待される動作が明確な、5 件の肯定的なテストケースと 3 件の否定的なテストケース。 |
| 利用可能地域 | プラグインを利用可能にする国または地域。 |
| リリースノート | 申請内容と、以前のバージョンからの変更点の短い概要。 |
プラグイン申請を作成する¶
- プラグイン申請ポータルを開きます。
- Create plugin を選択します。
- 申請タイプを選択します。
- Skills only:スキルのみをパッケージ化するプラグインの場合。
- With MCP:MCP サーバーをバックエンドとするアプリのみのプラグインの場合。
- With MCP:MCP をバックエンドとするアプリと、同梱スキルを組み合わせたアプリとスキルのプラグインの場合。

フォームへの入力中、ポータルは申請内容を下書きとして保存します。
フォームに入力する¶
Info¶
一般公開される掲載情報と公開者のフィールドに入力します。
- Plugin name: 顧客向けの製品名またはワークフロー名を使用します。
- Descriptions: プラグインでユーザーができることを説明します。短い説明は簡潔にし、長い説明ではワークフローの詳細を記載します。
- Developer Identity: 公開者の確認済みの個人または企業の本人確認情報を選択します。
- Logo and category: 本番環境で使用できるブランドアセットを使用します。
- Website, support, privacy, and terms URLs: 公開者と一致し、関連するデータ処理について開示する公開 URL を使用します。


申請前に、MCP のレスポンスをプライバシーポリシーと照合してください。不要な個人データ、認証シークレット、デバッグペイロード、内部識別子、開示されていないユーザー関連フィールドをツールのレスポンスから削除します。
MCP¶
アプリまたは MCP の申請の場合は、次の手順に従います。
- 本番 MCP サーバーの URL を入力します。
- 認証を設定し、サーバーにサインインが必要な場合は、審査担当者が使用できるデモ用認証情報を提供します。
- アプリが取得する正確なドメインを許可するコンテンツセキュリティポリシーを定義します。
- ポータルに Domain not verified のチャレンジが表示された場合は、ドメイン確認を完了します。MCP ホスト名または親ホスト名で HTTPS オリジンを使用し、
/.well-known/openai-apps-challengeに正確なトークンをホストします。 - Scan Tools を選択します。
- 検出されたツール、ドメイン、検証結果、ツールメタデータを確認します。
- サーバーまたはメタデータの問題を修正し、修正内容をデプロイしてから、もう一度スキャンします。

ChatGPT アプリ ID を入力したり、既存の公開済み ChatGPT アプリをポータルの参照先に指定したりしないでください。そのサーバーが ChatGPT ですでに公開されているアプリをバックエンドとして使用している場合でも、申請では MCP サーバーの URL と審査資料を直接提供する必要があります。
ドメイン確認¶
アプリを含むプラグインでは、アプリの MCP サーバーをホストするドメインの管理権限を確認する必要があります。ポータルにドメイン確認チャレンジが表示されたら、生成された well-known URL に正確な確認トークンを配置します。
チャレンジエンドポイントは、そのプラグインの確認トークンのみを返す必要があります。JSON、トークンのリスト、または同じ URL からの複数のトークンを返さないでください。
Challenge Base URL は、トークンを確認する場所をポータルに伝える任意の HTTPS オリジンです。MCP ホスト名または親ホスト名である必要があります。パスは無視されます。たとえば、MCP サーバー URL が https://api.example.com/mcp の場合、デフォルトのチャレンジ URL は https://api.example.com/.well-known/openai-apps-challenge であり、トークンをそこでホストできる場合は https://example.com を親オリジンのチャレンジベースとして使用できます。
アプリを含む 2 つのプラグインが同じ MCP ホスト名を共有し、パスのみが異なる場合、デフォルトのチャレンジ URL も共有されます。パスは無視されるため、Challenge Base URL に異なるテナントパスを指定して個別に確認することはできません。新しいトークンをホストできる親オリジンを使用するか、アプリの MCP サーバーに固有のホスト名を付けるか、どちらのホスティング方法も不可能な場合は OpenAI サポートに相談してください。
アプリを含む別のプラグインが同じ MCP ホスト名をすでに使用している場合、そのプラグインで既存のチャレンジトークンが不要になっていない限り、置き換えないでください。新しい申請には、許可された親オリジンの Challenge Base URL または固有の MCP ホスト名を使用してください。
すべてのツールには、明確な名前、説明、スキーマ、出力構造を設定する必要があります。ツールが返す内容を審査担当者やモデルが理解するうえで役立つ場合は、出力スキーマを追加します。
各ツールの実際の動作に合わせてツールのアノテーションを設定します。
| アノテーション | 使用する条件 |
|---|---|
readOnlyHint |
ツールが情報を取得、検索、一覧表示、読み出し、プレビュー、または計算し、何も変更しない場合にのみ true に設定します。ツールが作成、更新、削除、送信、キューへの追加、ジョブの実行、ワークフローの開始、ログの書き込み、その他の状態変更を行える場合は false に設定します。 |
openWorldHint |
書き込みツールの場合、オンラインへの投稿、外部メッセージの送信、コンテンツの公開、コードのプッシュ、第三者へのフォーム送信など、公開インターネットの状態を変更できる場合は true に設定します。ツールが完全に閉鎖またはプライベートなシステム内で動作し、公開インターネットの状態を変更できない場合にのみ false に設定します。 |
destructiveHint |
書き込みツールの場合、削除、上書き、アクセス権の取り消し、取り消せないメッセージやトランザクションの送信、その他の不可逆的な副作用を引き起こす可能性がある場合は true に設定します。それ以外の場合は false に設定します。 |

実装の詳細については、ツールのアノテーションと引き出しを参照してください。 審査の期待事項については、Apps SDK のツールヒントの却下に関するガイダンスを参照してください。
Skills¶
スキルのみ、またはアプリとスキルの申請の場合は、最終的なスキルバンドルをアップロードします。ローカルでテストしたものと同じファイルツリーと手順を使用してください。

各スキルには、次のものを含める必要があります。
- トリガー条件とタスク手順を含む、明確な
SKILL.md。 - 参照するスクリプト、テンプレート、またはアセット。
- プラグインの目的に合った、最小限で範囲を限定した手順。
アップロードされたスキルは、機密情報、不要なアクセス要求、安全な、または想定されるプラグインの動作と矛盾する可能性のある手順など、ポリシーへの準拠とセキュリティリスクについてスキャンされます。スキルはプラグインの他の部分と同じ基準に従う必要があり、自動スキャンに失敗した場合は申請がブロックされたり、修正が必要になったりすることがあります。
Prompts¶
プラグインの価値が最も高いワークフローを示すスタータープロンプトを追加します。適切なプロンプトは、プラグインをいつ使用すべきかを示せるほど具体的でありながら、ユーザーが応用できるほど一般的です。
例:
- 「前回のリリース以降のチェックアウトエラーを調査し、考えられる根本原因を要約してください。」
- 「最新のサポートチケットと関連するデプロイから、P1 インシデントの概要を作成してください。」
- 「失敗したデプロイログを確認し、次にデバッグすべき手順を提案してください。」

Testing¶
5 件の肯定的なテストケースと 3 件の否定的なテストケースを正確に提出します。
各肯定的なテストケースには、次の内容を含めます。
- ユーザープロンプト。
- 期待されるツール、スキル、またはワークフローの動作。
- 期待される結果の形式。
- 再現に必要なテストアカウントまたはフィクスチャデータ。
各否定的なテストケースには、次の内容を含めます。
- ユーザープロンプトまたはシナリオ。
- 期待される拒否、明確化、安全なフォールバックの動作。
- プラグインが要求されたアクションを完了すべきでない理由。
審査担当者が内部コンテキストなしで実行できるテストケースを使用してください。プラグインで認証が必要な場合は、提供するデモ用認証情報で各テストを MFA、SMS、メール確認、またはプライベートネットワークへのアクセスなしに完了できることを確認してください。

Global¶
プラグインを利用可能にする国または地域を選択します。公開者、製品、サポートプロセス、法的条件がユーザー向けに整っている場所のみを選択してください。

Submit¶
申請前に下書き全体を確認します。
リリースノートには、次の内容を要約します。
- プラグインの機能。
- 初回申請か更新か。
- 以前に申請したバージョンからの変更点(ある場合)。
- テスト用認証情報、想定データ、設定について審査担当者が知っておくべき事項。
掲載情報、サーバー、スキル、プロンプト、テスト、利用可能地域が正確であることを確認してから、ポリシーへの同意を完了します。その後、Submit for Review を選択します。

一般公開の流れ¶
プラグインを申請すると審査が開始されます。プラグインがすぐに公開されるわけではありません。一般公開までの流れは次のとおりです。
- プラグイン申請ポータルからプラグインを申請します。
- OpenAI が申請を審査します。OpenAI が審査プロセスを構築し、規模を拡大するにつれて、審査期間は変わる場合があります。
- OpenAI がプラグインを承認した後、開発者が公開時期を選択し、ポータルから公開します。
- 公開後、プラグインは ChatGPT と Codex の両方で利用できる Plugins Directory に表示されます。
アプリを含むプラグイン、スキルのみのプラグイン、アプリとスキルのプラグインはすべて Plugins Directory に表示されます。
最終チェックリスト¶
申請前に、次の項目を確認してください。
- 申請者に Apps Management の書き込みアクセス権がある。
- 公開者が確認済みの開発者または企業の本人確認情報を持っている。
- MCP サーバーが公開された本番 URL を使用している。
- アプリを含むプラグインが、アプリの取得先となる正確なドメインに対するコンテンツセキュリティポリシーを定義している。
- 審査担当者用の認証情報が、MFA、メール確認、SMS 確認、またはプライベートネットワークへのアクセスなしで機能する。
- ツール名、説明、スキーマ、アノテーションが実際の動作と一致している。
- すべてのツールに、正確な
readOnlyHint、openWorldHint、destructiveHintの値が設定されている。 - ツールのレスポンスに、不要な個人データ、認証シークレット、デバッグペイロード、内部識別子、または開示されていないユーザー関連フィールドが含まれていない。
- 最終的なファイルツリーでスキルをローカルにテストしている。
- スタータープロンプトが現実的なユーザーワークフローを示している。
- 申請に 5 件の肯定的なテストケースと 3 件の否定的なテストケースが含まれている。
- プライバシーポリシー、利用規約、サポート、Web サイトの URL が公開され、公開者の本人確認情報と一致している。