すでに Claude Code のプラグインやコネクタを公開している場合は、スキルと MCP サーバーのどちらを含むか、または両方を含むかに応じて提出方法を選びます。
| 現在の構成 | 提出方法 |
|---|---|
| スキルのみで MCP サーバーはない | スキルのみのプラグインをアップロードします。 |
| 公開 HTTPS の MCP エンドポイントがある | リモート MCP サーバーを含むプラグインの提出手順に従って下書きを作成します。スキルもある場合は、同じ下書きに含めます。 |
| ローカル MCP サーバーがある | デスクトップ専用プラグインの提出で対象となる条件を確認し、記載の手順に従って提出します。 |
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 |
公開ディレクトリに提出する前に、ライフサイクルフックを削除します。プラグインがライフサイクルフックに依存する場合は、ユーザーがデスクトップ版 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 サーバー連携を参照するだけでは提出できません。 |
アーカイブの準備とアップロード
- アーカイブのルート、または最上位にある唯一のディレクトリに、
.claude-plugin/plugin.jsonがあり、そのdescriptionが空でないことを確認します。同じ階層を起点として、skills/<skill-name>/SKILL.mdに有効なスキルが少なくとも 1 つあることも確認します。 - プラグイン提出ポータルを開き、Create plugin、Skills only の順に選択して、アーカイブをアップロードします。
- 生成された
.codex-plugin/plugin.jsonを確認します。ポータルは変換時に、未指定のインターフェース設定にデフォルト値を補い、テキストフィールドを正規化します。 - インポートしたスキルをクリーンな環境でテストします。各スキルが参照先のファイルや実行ファイルを見つけられること、宣言していないローカルパッケージ、ファイル、認証情報に依存していないことを確認します。
- 掲載用と審査用の項目に入力し、スキャンで検出された問題をすべて修正してから、下書きを提出します。
アーカイブが直接アップロードの条件を満たさない場合は、プラグインのパッケージ化に従って、OpenAI 用のマニフェストとパッケージ構成を作成します。スキルの要件については、スキルの構築を参照してください。
リモート MCP サーバーを含むプラグインの提出
OpenAI からアクセスできる安定した公開 HTTPS URL がサーバーにある場合は、この方法を選びます。Claude プラグインではローカルで動作していたサーバーでも、提出時点でリモートサービスとしてデプロイされていれば対象になります。
OpenAI の対応範囲
| Claude 連携に含まれるもの | 対応方法 |
|---|---|
| リモート MCP サーバー | サーバーの実装を再利用します。Streamable HTTP を使用する安定した公開 HTTPS エンドポイントを提出します。 |
ローカル MCP サーバーまたは Claude Desktop 拡張機能(.mcpb) |
MCP サーバーを公開 HTTPS URL にデプロイするか、デスクトップ専用プラグインの提出に従ってローカル MCP プラグインを提出します。ポータルは .mcpb ファイルを受け付けません。 |
| スキルまたはマニフェストで宣言したカスタムスキルディレクトリ | With MCP を選んだ同じ下書きにスキルを含めます。各 SKILL.md と一緒に、対応するスクリプト、参照資料、アセットを同梱します。 |
| 指示で Claude を明示的に参照するスキル | スキルの指示にある Claude 固有の表現を、「モデル」など、特定のプロバイダーに依存しない表現に置き換えます。製品名を残すのは、その指示が実際にその製品に当てはまる場合だけです。 |
commands、commands/、agents、agents/ のいずれか |
再利用できる処理をスキルに変換します。Markdown コマンドはそれぞれスキルに変換し、エージェントの手順のうち再利用できるものはスキルに移します。ペルソナに関する有用な指示は、対応するスキルに組み込みます。 |
hooks または hooks/hooks.json |
公開ディレクトリに提出する前に、ライフサイクルフックを削除します。プラグインがライフサイクルフックに依存する場合は、ユーザーがデスクトップ版 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 を使用し、本番の HTTPS エンドポイントで MCP サーバーを公開します。サーバーがユーザーの非公開データにアクセスする場合や、ユーザーに代わって操作を行う場合は、OAuth 2.1 を使用します。製品が対応する認証方式の要件と MCP の認可仕様については、ユーザー認証に従ってください。
- 各ツールに正確なスキーマと安全性に関するアノテーションを追加します。すべてのツールで接続と認証が成功すること、想定した形式で結果が返ること、書き込み操作や破壊的な操作で意図どおりに確認が求められることをテストします。
- コマンドやエージェントがあればスキルに変換し、スキルが宣言していないローカルパッケージ、ファイル、認証情報に依存していないことを確認します。
- プラグイン提出ポータルを開き、Create plugin、With 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 組織で Apps Management の書き込み権限を取得してください。個人または法人としての本人確認も完了する必要があります。すべてのプラグインに OpenAI の審査が必要です。
プラグインの主要な機能を提供するために、ローカルでの実行、ユーザーのコンピューター上の任意のファイルへのアクセス、ハードウェアやアプリケーションへのアクセス、オフラインでの動作、チャネルからのメッセージ受信のいずれかが必要な場合は、提出前に OpenAI のパートナー担当者にお問い合わせください。製品ごとの審査が必要になる場合があります。
ポータルでの手順全体については、プラグインの提出を参照してください。ポータルにパッケージ検証のエラーコードが表示された場合は、提出時のエラーリファレンスを参照してください。