インストールしたプラグイン全体をテストする前に、各機能を個別にテストします。プラグインに MCP サーバーが含まれている場合は、まず ChatGPT からサーバーに接続して評価します。次に、スキルを含めてプラグインをパッケージ化し、一連の操作を通してテストします。スキルのみのプラグインでは、最初のセクションを省略できます。
リリース間で動作を比較できるよう、開発中は評価に使ったプロンプトとその結果を保存しておきます。
MCP サーバーのテスト(任意)
エンドポイントの準備
次の点を確認します。
- 公開 HTTPS エンドポイントまたは Secure MCP Tunnel 経由で MCP サーバーに接続できること
- 公開エンドポイントを使う場合はストリーミング可能な HTTP に対応していること(通常のパスは
/mcp)。トンネルを使う場合は、接続先として設定した stdio または HTTP の MCP サーバーにトンネルから到達できること - 各ツールに名前、説明、スキーマ、アノテーションが設定されていること
- アカウントが必要なツールで認証設定の自動検出が機能すること
Secure MCP Tunnel を使うと、非公開の MCP サーバーをインターネットに公開せずに ChatGPT から接続できます。ローカルでのテストには、開発用トンネルや別の HTTPS 転送サービスが提供するエンドポイントも使えます。ただし、プラグインの提出には公開 HTTPS エンドポイントが必要です。テスト用の接続方法では代替できません。
MCP サーバーの検査
MCP Inspector を使うと、ツールの一覧を表示し、各ツールを直接呼び出せます。
npx @modelcontextprotocol/inspector@latest
各ツールについて、代表的な入力や境界ケース、識別子が欠けている場合、結果が空になる場合をテストします。スキーマの検証、認証エラー、アノテーション、確認を求める際の動作、モデルが読み取れる形式の結果を確認します。
MCP サーバーの追加
カスタム MCP サーバーの追加と利用には、アカウントとワークスペースのポリシーが適用されます。
- ChatGPT プラグインを開きます。
- プラスボタンを選択し、カスタム MCP サーバーを追加を選択します。
- ユーザーに表示する名前と説明を入力します。
- 接続で接続方法を選択します。
- 公開エンドポイントを使う場合は、
/mcpパスを含む MCP サーバーの URL を入力します。 - Secure MCP Tunnel を使う場合は、トンネルを選択し、利用可能なトンネルを選ぶか、その
tunnel_idを入力します。
- 公開エンドポイントを使う場合は、
- 認証を設定し、リスクに関する警告を確認して、内容を理解したうえで続行を選択します。
- プラグインとして作成を選択します。
- サーバーから検出されたツールとメタデータを確認します。
ChatGPT から接続できない場合、公開 HTTPS エンドポイントを使っているときは MCP Inspector でエンドポイントを検証します。トンネルを使っているときは、トンネルに関連付けられているワークスペースと tunnel-client の状態を確認します。トランスポート、初期化、スキーマ、認証に関するエラーを解消してから次に進みます。
ツール選択の確認
作成したプラグインをインストールし、新しい会話を開始します。プロンプト入力欄に @ を入力し、プラグインを選択します。次のケースを含む評価セットを作成します。
- 特定のツールを呼び出すべき直接的なリクエスト
- 同じ目的を間接的に伝えるリクエスト
- それまでの結果に含まれる識別子を再利用する追加リクエスト
- 認可または確認を必要とする書き込み操作
- ツールを呼び出すべきではない、サポート対象外のリクエスト
各リクエストについて、選択されたツール、引数、結果、エラー、確認を求める際の動作を記録します。ツールの名前、説明、スキーマ、アノテーションを変更するたびに、評価セットを再実行します。
サーバーがオプションの UI を返す場合は、UI コンポーネントと、モデルが読み取れる形式の結果の両方をテストします。
API Playground でのテスト
リクエストとレスポンスの生ログを確認するには、API Playground を開きます。
- ツール → 追加 → MCP サーバーを選択します。
- HTTPS エンドポイントを入力して接続します。
- テスト用のプロンプトを実行し、リクエストとレスポンスのデータを確認します。
メタデータの更新
ツールの名前、説明、スキーマ、アノテーション、認証設定、UI リソースのいずれかを変更したら、次の手順を実行します。
- MCP サーバーをデプロイするか、再起動します。
- ChatGPT プラグインで対象の接続を開きます。
- 更新を選択します。
- サーバーが提供するメタデータに変更が反映されていることを確認します。
- 新しい会話を開始し、変更の影響を受けるテストを再実行します。
この更新手順は、ChatGPT から直接接続したカスタム MCP サーバーに適用されます。公開済みプラグインのツールの更新には、継続的レビューが適用されます。提出済みのプラグイン情報やインポート済みのスキルを変更する場合は、引き続き新しいバージョンを作成し、レビューを経て公開する必要があります。
プラグインをパッケージ化する前に、次の点を確認します。
- ツールの一覧がドキュメントに記載された機能と一致すること
- 構造化された結果が各ツールで宣言した出力スキーマに適合すること
- 認証に失敗したときに、問題の把握に役立つエラーが返ること
- ツールを使うべきプロンプトでは期待どおりのツールが選択され、使うべきでないプロンプトではツールが選択されないこと
- オプションの UI がコンソールエラーなしで表示され、状態が正しく復元されること
プラグイン全体のテスト
MCP サーバーの動作を確認したら、プラグイン全体をパッケージ化し、ローカルソースからインストールします。スキルのみのプラグインは、この手順から始めます。
- スキルとマニフェストを含めてプラグインをパッケージ化します。MCP サーバーを使う場合は、その接続設定も含めます。
- プラグインをローカルのマーケットプレイスに追加し、プラグインディレクトリからインストールします。
- プラグインを有効にした状態で新しい会話を開始します。
- プラグインのユースケース一覧から代表的なリクエストを選んで実行します。
次のケースを含む評価セットを作成します。
- スキルを使うべき直接的なリクエスト
- 同じ目的を間接的に伝えるリクエスト
- それまでの結果に依存する追加リクエスト
- プラグインを使うべきではないリクエスト
- プラグインの設計上、意図的にサポート対象外としている境界ケース
各リクエストについて、プラグインがスキルの指示に従い、想定したリソースを使い、必要な手順をすべて完了して有用な結果を返すことを確認します。手順の抜け、不必要な起動、結果の不一致があれば記録します。
MCP サーバーを含むプラグインでは、スキルが適切なツールを呼び出すこと、ツールの結果がワークフローに戻ること、インストール後も認証が機能することを確認します。また、スキルとツールを組み合わせた各ワークフローをユーザーが最初から最後まで完了できることも確認します。
提出前に、次の点を確認します。
- 想定したリクエストで各スキルが起動すること
- 似た表現のリクエストで動作が一貫していること
- サポート対象外のリクエストでプラグインが起動しないこと
- インストール後も同梱ファイルにアクセスでき、参照先を解決できること
- 会話を始めるためのプロンプトが、プラグインで完了できるワークフローを示していること
- MCP サーバーを含むプラグインでは、同梱のスキルとツールが意図どおりに連携すること