MCP Client-Server Python Example について
MCP Client-Server Python Exampleは、MCPを試す開発者向けのPythonクライアント・サーバーのサンプルです。クライアントはOpenAI chat completionsで問い合わせを処理し、サーバーのツールを呼び出します。
主な機能
- 01SSE経由でツールとリソースを公開
- 02接続してツールを一覧表示するクライアント
- 03OpenAI chat completions連携
活用シーン
- 01基本的なMCPクライアント・サーバー構成の確認
- 02対話型チャットでのツール呼び出しの試行
MCP 対応
SSE経由でツールとリソースを公開するMCPサーバーと、接続してツールを一覧表示し、OpenAIを使ったチャットループから呼び出すクライアントを含みます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP クライアント・サーバーの Python サンプル
このプロジェクトでは、シンプルなクライアント・サーバー型のMCPを紹介します。
MCP(Model Context Protocol)とは?
MCPは、LLM(大規模言語モデル)が外部のツール、API、リソースと標準化された拡張可能な方法でやり取りできるようにするため、Anthropic が導入したオープンプロトコルです。
AI モデルと外部システム間の安全なマルチチャネル通信を実現し、高度なエージェント型ワークフローやツールの利用をサポートします。
特徴
- MCP サーバー: SSE 経由でツール(例:足し算)とリソース(例:あいさつ)を公開します。
- MCP クライアント: サーバーに接続し、利用可能なツールを一覧表示して、OpenAI のチャット補完機能を使ってやり取りします。
- OpenAI との統合: OpenAI の GPT モデルを使ってユーザーの問い合わせを処理し、必要に応じてサーバーのツールを呼び出します。
要件
- Python 3.12+
- MCP Python SDK
- OpenAI Python SDK
- Uvicorn(サーバーの実行に使用)
- python-dotenv(環境変数の読み込みに使用)
- uv(高速な Python パッケージインストーラー兼リゾルバー)
プロジェクト構成
.
├── client.py # MCP client implementation
├── server.py # MCP server implementation
├── pyproject.toml # Project metadata and dependencies
├── .env # Environment variables (not committed)
└── README.md # This file
uvで依存関係をインストールします:
uv sync
(これにより、uv.lockで指定されているすべての依存関係がインストールされます。)
セットアップ
-
環境変数
プロジェクトディレクトリに
.envファイルを作成します:OPENAI_API_KEY=your-openai-api-key MCP_SSE_URL=http://localhost:8080/sse -
サーバーを起動する
uv run server.py --host 0.0.0.0 --port 8080サーバーはSSE経由で
/sseにツールとリソースを公開します。 -
クライアントを実行する
別のターミナルで:
uv run client.pyクライアントがサーバーに接続し、利用可能なツールを一覧表示して、対話型チャットループを開始します。
使い方
- クライアントのプロンプトに問い合わせを入力します。
- クライアントはOpenAIを使って問い合わせを処理し、必要に応じてサーバーのツールを呼び出します。
quitと入力するとクライアントを終了します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。