すでに Claude Code プラグインやコネクタを公開している場合は、スキル、MCP サーバー、またはその両方が含まれているかに応じて、申請方法を選びます。
| 既存の構成 | 申請内容 |
|---|---|
| スキルのみで MCP サーバーなし | スキルのみのプラグインをアップロードします。 |
| 公開 HTTPS MCP エンドポイント | リモート MCP の申請を作成します。スキルがある場合は、同じ下書きに含めます。 |
| ローカル MCP サーバー | 公開 HTTPS URL にデプロイします。できない場合は、ローカル MCP のサポートについて OpenAI の担当者にお問い合わせください。 |
Claude では、Claude Code プラグインと MCP コネクタで申請手続きが分かれています。OpenAI では、スキル、MCP サーバー、またはその両方を 1 つのプラグインパッケージに含められます。Claude マーケットプレイスの掲載情報や承認は引き継がれません。
プラグインにスキルが含まれる場合は、どちらの方法で申請する場合も、申請前に 指示遵守に関するガイダンス に沿ってスキルの指示をレビューしてください。
スキルのみのプラグインの申請
プラグインに MCP サーバーが不要な場合は、この方法を選びます。
OpenAI の対応範囲の確認
| Claude プラグインに含まれるもの | 必要な対応 |
|---|---|
skills | 各スキルは、その SKILL.md、スクリプト、参照資料、アセットと一緒に保持します。Claude アーカイブを直接アップロードする場合は、skills/<skill-name>/SKILL.md に少なくとも 1 つのスキルを含める必要があります。 |
| マニフェストで宣言されたカスタムスキルディレクトリ | ディレクトリと、それらを宣言するマニフェストの記述をアーカイブ内に保持します。 |
| Claude に明示的に言及するスキル | スキルの指示にある Claude 固有の記述を、「モデル」など、特定のプロバイダーに依存しない表現に置き換えます。指示が実際にその製品に適用される場合に限り、製品名を残します。 |
commands、commands/、agents、または agents/ | 再利用できる処理をスキルに変換します。各 Markdown コマンドをスキルに変換し、再利用できるエージェントの手順をスキルに移し、有用なペルソナの指示を関連するスキルに統合します。 |
hooks または hooks/hooks.json | コマンドフックを、ChatGPT Work や Codex で使われるCodex フックランタイムに合わせて調整します。フックスクリプトは実行環境で利用可能であり、実行前に信頼されている必要があります。通常のチャットではフックに依存しないでください。Codex はプロンプト型やエージェント型のフックハンドラーを実行しません。 |
userConfig または ${user_config.*} | OpenAI は Claude のインストール時の入力プロンプトを実行せず、user_config 変数の展開も行いません。Claude の userConfig の置き換えに従ってください。プラグインに認証情報や永続的なユーザー設定が必要な場合は、MCP サーバーを使用します。 |
| Claude のライブアーティファクトを作成または更新するスキル | OpenAI は現在、Claude のライブアーティファクトに対応していません。アーティファクトの作成、再オープン、再読み込み、更新を必要とする指示を削除します。代わりに、その内容を通常の会話の出力として返します。たとえば、アーティファクト内の表は通常の表として表示します。アーティファクト固有の HTML、永続化、再読み込みの動作、インタラクションは保持されません。 |
bin/、settings、settings.json、CLAUDE.md、または .claude/settings*.json | 必要なヘルパーと指示はプラグイン内に保持します。同梱の実行ファイルはパッケージからの相対パスで呼び出し、Claude 専用の設定は削除します。 |
outputStyles、lspServers、experimental.themes、experimental.monitors、channels、または dependencies | 不可欠な処理をスキルに移してから、Claude の宣言を削除します。主要なワークフローでチャネルメッセージの受信が必要な場合は、OpenAI パートナーにお問い合わせください。 |
.claude-plugin/plugin.json | Claude アーカイブを直接アップロードする場合は、マニフェストを保持します。ポータルがそれを .codex-plugin/plugin.json に変換します。 |
.claude-plugin/marketplace.json、.mcp.json、mcpServers、.app.json、または apps | これらのファイルや宣言に依存しないでください。スキルのみのアップロードでは MCP サーバーの構成は除外されます。また、既存の MCP サーバー連携を参照で指定して申請することはできません。 |
アーカイブの準備とアップロード
- アーカイブのルート、またはその直下にある単一の最上位ディレクトリに、
空でない
descriptionを持つ.claude-plugin/plugin.jsonと、skills/<skill-name>/SKILL.mdに少なくとも 1 つの有効なスキルが含まれていることを確認します。 - プラグイン申請ポータルを開き、 プラグインを作成を選択し、 スキルのみを選んでアーカイブをアップロードします。
- 生成された
.codex-plugin/plugin.jsonを確認します。 ポータルは変換時に、インターフェースで未指定のデフォルト値を補い、テキストフィールドを正規化します。 - インポートしたスキルをクリーンな環境でテストします。各スキルが参照先のファイルや実行ファイルを見つけられること、および未宣言のローカルパッケージ、ファイル、認証情報に依存していないことを確認します。
- 掲載情報と審査用の項目を入力し、スキャンで検出された問題をすべて修正して、下書きを申請します。
アーカイブが直接アップロードの条件を満たしていない場合は、 プラグインのパッケージ化に従って、 OpenAI のマニフェストとパッケージ構成を作成します。 スキルの要件については、スキルの構築をご覧ください。
リモート MCP サーバーを含むプラグインの申請
サーバーに、OpenAI からアクセスできる安定した公開 HTTPS URL がある場合は、この方法を選びます。Claude プラグインではローカルサーバーとして使っていたものでも構いません。この申請で重要なのは、リモートサービスとしてデプロイ済みであることです。
OpenAI の対応範囲の確認
| Claude 連携に含まれるもの | 必要な対応 |
|---|---|
| リモート MCP サーバー | サーバーの実装を再利用します。Streamable HTTP を使用する、安定した公開 HTTPS エンドポイントを申請します。 |
ローカル MCP サーバーまたは Claude Desktop 拡張機能(.mcpb) | MCP サーバーを公開 HTTPS URL にデプロイします。できない場合は、ローカル MCP のサポートについて OpenAI の担当者にお問い合わせください。ポータルは .mcpb ファイルを受け付けません。 |
| スキル、またはマニフェストで宣言されたカスタムスキルディレクトリ | 同じ MCP あり の申請にスキルを含めます。各 SKILL.md は、そのスクリプト、参照資料、アセットと一緒に保持します。 |
| Claude に明示的に言及するスキル | スキルの指示にある Claude 固有の記述を、「モデル」など、特定のプロバイダーに依存しない表現に置き換えます。指示が実際にその製品に適用される場合に限り、製品名を残します。 |
commands、commands/、agents、または agents/ | 再利用できる処理をスキルに変換します。各 Markdown コマンドをスキルに変換し、再利用できるエージェントの手順をスキルに移し、有用なペルソナの指示を関連するスキルに統合します。 |
hooks または hooks/hooks.json | コマンドフックを、ChatGPT Work や Codex で使われるCodex フックランタイムに合わせて調整します。フックスクリプトは実行環境で利用可能であり、実行前に信頼されている必要があります。通常のチャットではフックに依存しないでください。Codex はプロンプト型やエージェント型のフックハンドラーを実行しません。 |
userConfig または ${user_config.*} | OpenAI は Claude のインストール時の入力プロンプトを実行せず、user_config 変数の展開も行いません。Claude の userConfig の置き換えに従い、各値を明示的な入力、OAuth、ホスト型ストレージ、または Codex のローカル構成に移します。 |
| Claude のライブアーティファクトを作成または更新するスキル | OpenAI は現在、Claude のライブアーティファクトをサポートしていません。アーティファクトの作成、再表示、再読み込み、更新を必要とする指示を削除してください。代わりに、その内容を通常の会話の出力として返します。たとえば、アーティファクト内の表は標準の表として表示します。アーティファクト固有の HTML、永続化、再読み込み時の動作、インタラクションは引き継がれません。 |
.app.json、apps、または既存の MCP サーバー連携 | MCP サーバーのエンドポイントを直接提出してください。既存の MCP サーバー連携を参照する形では提出できません。 |
outputStyles、lspServers、experimental.themes、experimental.monitors、channels、または dependencies | 不可欠な動作をスキルまたは MCP ツールに移してから、Claude の宣言を削除してください。中核となるワークフローにチャネルメッセージの受信が必要な場合は、OpenAI のパートナー担当者にお問い合わせください。 |
MCP サーバーの準備と提出
- Streamable HTTP を使用して、MCP サーバーを本番環境の HTTPS エンドポイントにデプロイします。 サーバーがユーザーの非公開データにアクセスする場合や、ユーザーに代わって操作する場合は、OAuth 2.1 を使用してください。 サポート対象となる製品要件と MCP の認可仕様については、 ユーザー認証に従ってください。
- 正確なツールスキーマと安全性に関するアノテーションを追加します。すべてのツールが接続と認証を行い、想定した形式の結果を返し、書き込みや破壊的な操作に対して意図したとおりに確認を求めることをテストしてください。
- コマンドやエージェントをスキルに変換し、スキルが宣言されていないローカルのパッケージ、ファイル、認証情報に依存していないことを確認します。
- プラグイン提出ポータルを開き、 プラグインを作成を選択し、 MCP ありを選んで、本番環境のエンドポイントを提出します。 変換したスキルがある場合は、同じ下書きに追加します。
- サーバーのドメインを検証し、サインインが必要なサーバーでは認証を設定します。掲載情報とレビュー用の項目を入力し、スキャンで検出された問題をすべて修正してから、下書きを提出します。
提出前に、次の 2 つの設定手順に備えてください。
- ドメイン検証: MCP ホストまたは許可された親ホストの
/.well-known/openai-apps-challengeから、 ポータルが指定したトークンをそのまま配信できる必要があります。 ポータルで求められたら、チャレンジを完了してください。 MCP 提出の設定を参照してください。 - OAuth とワークスペースのドメイン制限: プラグインで OAuth を使用する場合は、
ユーザーの
emailクレームとemail_verified: trueを返す UserInfo エンドポイントを公開します。openidスコープとemailスコープをサポート対象として公開し、有効にしてください。 ワークスペースのドメイン制限への対応を 参照してください。
提出前に、 リモート MCP サーバーのレビュー要件を確認してください。
Claude の userConfig の置き換え
OpenAI のプラグインは、Claude の userConfig によるインストール時の入力要求を実行せず、${user_config.*} の参照も展開しません。
これらの参照を削除し、
プラグインでの用途に応じて各値を置き換えてください。
| 値が制御する対象 | OpenAI での代替方法 |
|---|---|
| タスクごとに変わり得る選択肢 | スキルまたは MCP ツールに明示的な入力項目を追加します。ワークフローで必要になったときだけ、その値を尋ねてください。 |
| リモートサービスの認証情報 | リモート MCP サーバーを通じて OAuth 2.1 を使用します。スキルのアーカイブ、マニフェスト、指示、デフォルト値にシークレットを含めないでください。 |
| 永続的に保持するユーザー設定 | ホストされたサービスに保存し、認証済みユーザーに関連付けます。明示的なワークフローまたはツールへの入力を通じて、ユーザーが更新できるようにしてください。 |
| Codex でローカル実行するスクリプトやフックの設定 | ドキュメントに記載した環境変数または設定ファイルを使用します。使用前に確認し、見つからない場合は対処方法がわかるエラーを返してください。このローカル設定を、ChatGPT の中核となるワークフローの必須条件にしないでください。 |
| すべてのユーザーに共通する固定値 | シークレットを含まないデフォルト値を、スキルの指示またはホストされたサービスの設定に記載します。 |
スキルのみのプラグインで、会話をまたいで保持する必要がある認証情報や設定を使う場合は、MCP サーバーを追加してください。リモートサーバーには OAuth とホストされたストレージを使用します。値が現在のタスクにしか影響しない場合は、プラグインをスキルのみの構成に保ち、スキルへの明示的な入力としてその値を受け取ります。
提出要件への対応
どちらのプラグインを提出する場合も、提出前に、プラグインを所有する OpenAI 組織で アプリ管理 の書き込み権限を取得してください。 個人または法人の本人確認も完了する必要があります。 すべてのプラグインは、OpenAI のレビューを完了する必要があります。
プラグインの中核となる価値を実現するために、ローカル実行、ユーザーのコンピューター上のファイルへの任意のアクセス、ハードウェアやアプリケーションへのアクセス、オフライン動作、チャネルメッセージの受信が必要な場合は、提出前に OpenAI のパートナー担当者にお問い合わせください。これらの場合、製品ごとのレビューが必要になることがあります。
ポータルでの手順全体については、 プラグインの提出を参照してください。 ポータルにパッケージ検証コードが表示された場合は、 提出エラーリファレンスを参照してください。