mcpField
O
OpenAI Integration with MCP

OpenAI Integration with MCP

ローカル
github.com/Robinson777-progAI・エージェント080 週間前に更新

OpenAI Integration with MCP について

OpenAI から MCP サーバーのツールを利用する方法を示す統合例で、ツール対応アプリを作る開発者向けです。ナレッジベース検索と stdio 通信を扱い、クライアントとサーバーを分離する場合の SSE についても説明します。

主な機能

  1. 01ナレッジベース検索ツールの公開
  2. 02MCP ツールを OpenAI 関数に変換
  3. 03ツール呼び出しと結果の中継
  4. 04stdio 通信の例示

活用シーン

  1. 01社内ポリシーの Q&A を使った問い合わせ対応
  2. 02MCP ツールを呼び出す OpenAI アプリの構築
  3. 03stdio によるツール通信の検証

MCP 対応

サンプルサーバーは `get_knowledge_base` を公開し、クライアントがサーバーに接続してツールと結果を OpenAI に中継します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP と OpenAI の連携

このセクションでは、Model Context Protocol(MCP)と OpenAI の API を連携させ、OpenAI が MCP サーバーから提供されるツールにアクセスして使用できるシステムを構築する方法を紹介します。

概要

この例では、次の方法を説明します。

  1. ナレッジベースツールを公開する MCP サーバーを作成する
  2. OpenAI をこの MCP サーバーに接続する
  3. ユーザーのクエリに応答する際、OpenAI がツールを動的に使用できるようにする

接続方法

この例では、クライアントとサーバー間の通信にstdio トランスポートを使用します。つまり、次のようになります。

  • クライアントとサーバーは同じプロセス内で実行されます
  • クライアントがサーバーをサブプロセスとして直接起動します
  • 別個のサーバープロセスは必要ありません

クライアントとサーバーを別々のアプリケーションに分ける場合(例:サーバーを別のマシンで実行する場合)は、代わりにSSE(Server-Sent Events)トランスポートを使用する必要があります。SSE 接続の設定方法については、シンプルなサーバーのセットアップセクションを参照してください。

データフローの説明
  1. ユーザークエリ:ユーザーがシステムにクエリを送信します(例:「当社の休暇ポリシーを教えてください」)
  2. OpenAI API:OpenAI がクエリと、MCP サーバーから利用可能なツールを受け取ります
  3. ツールの選択:OpenAI がクエリに基づいて使用するツールを決定します
  4. MCP クライアント:クライアントが OpenAI からのツール呼び出しリクエストを受け取り、MCP サーバーに転送します
  5. MCP サーバー:サーバーが要求されたツールを実行します(例:ナレッジベースのデータを取得する)
  6. 応答のフロー:ツールの結果が MCP クライアントを経由して OpenAI に返されます
  7. 最終応答:OpenAI がツールのデータを組み込んだ最終応答を生成します

OpenAI によるツールの実行方法

OpenAI の関数呼び出しメカニズムは、次の手順で MCP ツールと連携します。

  1. ツールの登録:MCP クライアントが MCP ツールを OpenAI の関数形式に変換します
  2. ツールの選択:OpenAI がユーザークエリに基づいて使用するツールを決定します
  3. ツールの実行:MCP クライアントが選択されたツールを実行し、結果を返します
  4. コンテキストへの統合:OpenAI がツールの結果を応答に組み込みます

MCP の役割

MCP は、AI モデルとバックエンドシステムをつなぐ標準化された橋渡し役です。

  • 標準化:MCP は、AI モデルがツールとやり取りするための一貫したインターフェースを提供します
  • 抽象化:MCP は、バックエンドシステムの複雑さを抽象化します
  • セキュリティ:MCP を使用すると、AI モデルに公開するツールやデータを正確に制御できます
  • 柔軟性:AI 連携を変更せずに、バックエンドの実装を変更できます

実装の詳細

サーバー(server.py)

MCP サーバーは、JSON ファイルから Q&A ペアを取得する get_knowledge_base ツールを公開します。

クライアント(client.py)

クライアントは、次の処理を行います。

  1. MCP サーバーに接続します
  2. MCP ツールを OpenAI の関数形式に変換します
  3. OpenAI と MCP サーバー間の通信を処理します
  4. ツールの結果を処理し、最終応答を生成します
ナレッジベース(data/kb.json)

MCP サーバー経由でクエリできる、会社のポリシーに関する Q&A ペアが含まれています。

サンプルの実行

  1. 必要な依存関係がインストールされていることを確認します
  2. .env ファイルに OpenAI API キーを設定します
  3. クライアントを実行します:python client.py

注:この例で使用している stdio トランスポートでは、クライアントがサーバーを自動的に起動するため、サーバーを別途実行する必要はありません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。