Docker を使用した MCP サーバー
このプロジェクトは、モデル制御プロトコル (MCP) を OpenAI の API と統合し、OpenAI が Docker で実行されている MCP サーバーによって公開されるツールにアクセスして使用できるようにする方法を示します。
前提条件
システムにDockerがインストールされている
Git(リポジトリのクローンを作成する)
プロジェクト構造
server.py
: ツールを使ったMCPサーバ実装client.py
: サーバーに接続してエージェントを呼び出すクライアントDockerfile
: Dockerイメージを構築するための手順requirements.txt
: プロジェクトの Python 依存関係
データフローの説明
ユーザークエリ: ユーザーはシステムにクエリを送信します (例: 「当社の休暇ポリシーは何ですか?」)
OpenAI API : OpenAIはMCPサーバーからクエリと利用可能なツールを受け取ります
ツールの選択: OpenAIはクエリに基づいてどのツールを使用するかを決定します
MCPクライアント:クライアントはOpenAIのツール呼び出し要求を受信し、MCPサーバーに転送します。
MCP サーバー: サーバーは要求されたツールを実行します (例: ナレッジ ベース データの取得)
レスポンスフロー: ツールの結果はMCPクライアントを介してOpenAIに返されます。
最終応答: OpenAIはツールデータを組み込んだ最終応答を生成する
Dockerで実行する
ステップ1: Dockerイメージを構築する
ステップ2: Dockerコンテナを実行する
これにより、Docker コンテナ内で MCP サーバーが起動し、ポート 8050 で公開されます。
クライアントの実行
サーバーが起動したら、別のターミナルでクライアントを実行できます。
クライアントはサーバーに接続し、利用可能なツールを一覧表示し、エージェントを呼び出してクエリに応答します。
トラブルシューティング
接続の問題が発生した場合:
サーバーが実行中かどうかを確認します。docker
docker ps
を使用して Docker コンテナが実行中であることを確認します。ポート マッピングを確認する:
docker ps
を使用するか、docker run
コマンドの出力をチェックして、ポートが正しくマッピングされていることを確認します。サーバー ログを確認する:
docker logs <container_id>
を使用してサーバー ログを表示し、エラーがあるかどうかを確認します。ホストバインディング:コンテナ外からアクセスできるようにするため、サーバーは
127.0.0.1
ではなく0.0.0.0
にバインドするように設定されています。それでも問題が解決しない場合は、ファイアウォールの設定を確認する必要があるかもしれません。ネットワークの問題: リモート マシンで Docker を実行している場合は、クライアント マシンからポートにアクセスできることを確認してください。
注記
サーバーは SSE (Server-Sent Events) トランスポートを使用するように構成されており、ポート 8050 でリッスンします。
クライアントは
http://localhost:8050/sse
でサーバーに接続します。クライアントを起動する前に、サーバーが実行中であることを確認してください。
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
モデル制御プロトコルを OpenAI の API と統合し、OpenAI が Docker 化された MCP サーバーによって公開されるツールにアクセスして利用できるようにするプロジェクト。
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol (MCP) server that lets you seamlessly use OpenAI's models right from Claude.Last updated -12768MIT License
- -securityAlicense-qualityA simple MCP server for interacting with OpenAI assistants. This server allows other tools (like Claude Desktop) to create and interact with OpenAI assistants through the Model Context Protocol.Last updated -36MIT License
- AsecurityAlicenseAqualityEnables integration with OpenAI models through the MCP protocol, supporting concise and detailed responses for use with Claude Desktop.Last updated -4MIT License
- -securityFlicense-qualityA Model Context Protocol server implementation that enables connection between OpenAI APIs and MCP clients for coding assistance with features like CLI interaction, web API integration, and tool-based architecture.Last updated -34