メインコンテンツへ移動
AIチュートリアル

OpenAI MCP Extensionsでネイティブ感のあるChatGPTプラグインを構築する

OpenAI MCP Extensionsが、ChatGPTに特化した体験によってMCPプラグインをどのように強化するかを学びます。このチュートリアルでは、利用可能な機能、TypeScriptおよびPython SDKのセットアップ、Bits & Boltsの例、実践的な開発ワークフロー、拡張機能の選定と実装のヒントを解説します。

OpenAI MCP Extensionsでネイティブ感のあるChatGPTプラグインを構築する

OpenAI MCP Extensionsの機能

OpenAI MCP Extensionsは、Model Context Protocol(MCP)にChatGPT固有の機能を追加します。すでにプラグインを持っている開発者や、これから作成する開発者を対象としており、プラグインをChatGPTのネイティブ機能に近い形で動作させることができます。

このプロジェクトは、対応する拡張機能をMCPサーバーに統合するためのSDKを提供します。TypeScriptパッケージはMCPサーバーとAppsで使用でき、PythonパッケージはMCPサーバーを対象としています。

主な機能

サイドバーのエントリーポイント

サイドバーのエントリーポイントを使うと、ユーザーはChatGPTのサイドバーからアプリを直接開けます。これにより、パーツライブラリなどの体験に継続的かつ見つけやすい形でアクセスできます。

サイドバーから開いたBits and Bolts Parts Library

ファイル拡張子ハンドラー

ファイル拡張子のエントリーポイントを使うと、ユーザーが対応するファイル形式を開いたときに、プラグインでカスタムビューアーを表示できます。このリポジトリでは、CADファイルを専用ビューアーで開く例を紹介しています。

コンポーザーでのメンション

コンポーザーでのメンションを使うと、ユーザーはプラグインが提供するリソースを検索し、そのリソースへの参照をメッセージに追加できます。ショーケースでは、コンポーザーからCADパーツを検索できます。

拡張フォーム

OpenAIのフォームエリシテーションは、より豊かな選択体験を提供します。Bits & Boltsの例では、サムネイル付きの選択肢を使い、ユーザーがCADパーツを視覚的に選択できるようにしています。

前提条件

拡張機能を追加する前に、OpenAIのプラグインドキュメントに従ってプラグインを作成してください。OpenAI MCP Extensionsは初期プラグイン設定を置き換えるものではなく、既存のプラグインとMCPサーバーを拡張します。

選択するSDKに応じて、TypeScriptまたはPythonの開発環境も必要です。

リファレンスプラグインを試す

想定されているユーザー体験を理解する最も早い方法は、リポジトリ全体で使用されているサンプルプラグイン、Bits & Bolts Remoteを試すことです。

  1. Bits & Bolts Remoteプラグインのディレクトリページを開き、プラグインをインストールします。

  2. ChatGPTのサイドバーでBits & Bolts Remoteを選択します。

  3. Parts Libraryを開き、プラグインがサイドバーの体験としてどのように表示されるかを確認します。

  4. ショーケースを、カスタムファイル表示、コンポーザーでのリソース検索、視覚的なフォーム選択の参考にします。

SDKをインストールする

TypeScript

TypeScriptのMCPサーバーまたはAppsを構築する場合は、@openai/mcp-extensionsを使用します。任意のJavaScriptパッケージマネージャーでインストールしてください。

npm install @openai/mcp-extensions

現在のパッケージ手順とSDK固有の詳細については、リポジトリのTypeScriptのインストールドキュメントを参照してください。

Python

PythonのMCPサーバーでは、openai-mcp-extensionsをインストールします。

pip install openai-mcp-extensions

最新のセットアップ手順については、Pythonのインストールドキュメントを参照してください。

READMEでは、TypeScriptはMCPサーバーとAppsをサポートし、PythonはMCPサーバーをサポートすると説明されています。拡張機能のロジックを実行する場所に応じてSDKを選択してください。

基本的な開発ワークフロー

  1. プラグインを作成する。これらの拡張機能を統合する前に、標準的なプラグイン設定を完了します。

  2. 適切なSDKを追加する。サーバーまたはAppsにはTypeScriptパッケージを、サーバー側の統合にはPythonパッケージを使用します。

  3. 拡張機能を選択する。ユーザーがサイドバーからアプリを見つけられるようにするか、対応ファイルをカスタムビューアーで開けるようにするか、コンポーザーでプラグインのリソースをメンションできるようにするか、拡張フォームを操作できるようにするかを決めます。

  4. 拡張機能の契約を実装する。必要なフィールドと動作については、正式なOpenAI MCP Extensions仕様に従ってください。

  5. 一連の操作をテストする。プラグインのエントリーポイントまたはリソースが想定されたChatGPTの画面に表示され、意図したとおりに体験が動作することを確認します。

機能の実装例

サイドバーライブラリを構築する

会話とは独立して開きたいインターフェースをプラグインが備えている場合は、MCP Appのエントリーポイントを使用します。Bits & Bolts Parts Libraryはこのモデルを示しており、ユーザーはサイドバーでプラグインを選択し、そのアプリ体験を閲覧できます。

専用ファイル形式を表示する

プラグインが特定のファイル形式を理解し、より適切なビューアーを提供できる場合は、ファイル拡張子のエントリーポイントを使用します。ショーケースではCADコンテンツを例にしています。すべてのファイルをプラグインで処理できると想定せず、仕様に従って対応範囲を定義してください。

コンポーザーでリソースを利用可能にする

ユーザーがプラグインのリソースを検索し、メッセージに参照を添付する必要がある場合は、コンポーザーでのメンションを使用します。たとえばカタログ指向のプラグインでは、Bits & Boltsが示すCADパーツのような検索可能なアイテムを公開できます。

視覚的な選択肢を提供する

プレーンテキストの選択肢よりも多くのコンテキストが役立つ場合は、OpenAIフォームによる入力を使用します。CADパーツピッカーで示されているように、項目を視覚的に認識しやすい場合は、サムネイルの選択肢が特に便利です。

高度なヒント

  • ユーザーの入口から始める。 タスクに合ったChatGPTの画面を選択します。アプリへ直接アクセスするにはサイドバー、対応ドキュメントにはファイルハンドラー、メッセージ内の参照にはコンポーザーのメンション、構造化された選択には拡張フォームを使用します。

  • 行動の参考としてBits & Boltsを利用する。 独自の拡張機能を実装する前にサンプルを確認し、機能がユーザーワークフローにどのように組み込まれるかを把握します。

  • 開発中は仕様を開いたままにする。 トップレベルのREADMEには機能の概要が記載されていますが、仕様には実装に必要な詳細な拡張機能の契約が含まれています。

  • 言語別のドキュメントを確認する。 TypeScript SDKとPython SDKでは、インストールや統合の詳細が異なる場合があります。

  • 一貫したワークフローを中心に機能を組み合わせる。 ショーケースでは、サイドバーアクセス、ファイル表示、コンポーザーリソース、リッチフォームが、パーツを中心とした同じ体験の異なる段階をどのように支援できるかを示しています。

まとめ

OpenAI MCP Extensionsを使うと、開発者は基本的なMCP統合を超えて、ChatGPTに自然に適合するプラグインを作成できます。標準プラグインから始め、使用する言語のSDKをインストールし、適切な入口またはインタラクションを選択して、プロジェクトの仕様に従って実装します。リポジトリはApache License 2.0の下で利用できます。