fastapi-mcp について
既存の FastAPI ウェブアプリに MCP サーバーをマウントする Python のサンプルです。連携方法を試す開発者向けに、サンプル MCP クライアントも含みます。
主な機能
- 01FastAPI への MCP サーバーのマウント
- 02サンプル MCP クライアント
- 03Docker によるサーバー起動
活用シーン
- 01FastAPI アプリで MCP サーバーをホストする方法の確認
- 02付属クライアントによる MCP 通信のテスト
MCP 対応
FastAPI アプリに MCP サーバーをマウントし、通信例を示すクライアントを含みます。README では、現在サーバーをマウントできるのはルートパスのみとされています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
説明
既存の fastapi サーバーにマウントした Model Context Protocol サーバーを示す、シンプルなウェブアプリとクライアントの例です。
ファイル
./src/main.py -> メインの fastapi サーバーアプリ
./src/mcp.py -> mcp サブサーバーアプリのロジック
./client/client.py -> mcp クライアントライブラリを使用した通信ロジックの一部を示すサンプルクライアント
セットアップ
Docker を使用してサーバーを起動する
docker build -t fastapi-mcp .
docker run -p 8000:8000 --net=host fastapi-mcp
Python 環境をセットアップしてクライアントを実行する
pip install -r requirements.txt
python client/client.py
# to run server as well without docker
uvicorn src.main:app
既知の問題
MCP サーバーはルート「/」にしかマウントできません
現在、MCP サーバーがルート「/」にマウントされている場合にのみ動作するという、MCP python sdk の制限があります。
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。