FastAPI-MCP とは?
FastAPI-MCP は、FastAPI フレームワークのネイティブ拡張であり、API エンドポイントを MCP ツールとして公開します。これにより、MCP 対応の LLM エージェントによって動的に発見され、呼び出されます。従来のコンバーターとは異なり、FastAPI-MCP は FastAPI の ASGI スタックと深く統合されており、認証とドキュメントの保持を標準でサポートし、より柔軟な統一および分離デプロイモデルを実現します。
FastAPI-MCP の設定方法
- お好みのパッケージマネージャーを使用して FastAPI-MCP をインストールします:
- uv を使用する場合:
uv add fastapi-mcp
- pip を使用する場合:
pip install fastapi-mcp
- uv を使用する場合:
- FastAPI-MCP をインポートし、FastAPI アプリケーションインスタンスで初期化します。
.mount()
メソッドを使用して、既存の FastAPI ルートに基づいて MCP ツールエンドポイントを自動生成する MCP サーバーを公開します。- 任意で、FastAPI の依存性注入を使用して認証を構成し (例:
Depends()
)、要件に応じてドキュメンテーションやデプロイをカスタマイズします。
FastAPI-MCP の使い方
- FastAPI アプリケーションに以下を追加します:
from fastapi import FastAPI from fastapi_mcp import FastApiMCP app = FastAPI() mcp = FastApiMCP(app) mcp.mount()
- マウントされると、MCP サーバーはアプリのベース URL の
/mcp
で利用可能になります。 - すべての互換性のある FastAPI エンドポイントは自動的に MCP ツールになり、MCP クライアント(LLM エージェントを含む)によって発見され、呼び出される準備が整います。
- エンドポイントは元のスキーマ、バリデーション、認証ロジックを保持します。FastAPI アプリケーションへの変更は MCP ツールに反映されます。
- fastapi-mcp.tadata.com でドキュメントを探索し、例を確認して実際のデモンストレーションを見てください。
主な機能
- 認証統合: MCP エンドポイントのために FastAPI の既存の依存関係とセキュリティモデルを再利用。
- 最小限の設定: 一つのメソッドコールで全ての FastAPI エンドポイントを MCP ツールとして即座に公開。
- ネイティブ FastAPI サポート: 効率的で直接的な通信のために ASGI トランスポートを活用。
- スキーマとドキュメントの保持: OpenAPI ドキュメント、モデル、およびフィールドバリデーションを維持。
- 柔軟なデプロイ: アプリ内またはスタンドアロンサービスとして MCP サーバーをデプロイ。
- 包括的なエコシステム: LLM と外部の MCP 互換ツールを簡単に統合。
使用例
- ビジネスの REST API を即座に安全で LLM アクセス可能なツールとして利用可能にします。
- LLM が FastAPI エンドポイントを MCP ツールとして呼び出すことで、カスタムワークフローの自動化を構築。
- 手動でのエンドポイントラッピングや重複なしで新しい AI 機能をプロトタイプ作成し、共有。
- 企業のデータと外部 API を統一されたモデルアクセス可能なツールセットに接続。
よくある質問
Q1: FastAPI-MCP を使用するために FastAPI コードを変更する必要がありますか?
A: いいえ、FastAPI-MCP を初期化してマウントするだけで、既存のエンドポイントを MCP ツールとして公開できます。変更は不要または最小限です。
Q2: MCP ツールで FastAPI の認証と依存関係を使用できますか?
A: はい、FastAPI-MCP は FastAPI の Depends()
による認証と依存性注入を完全にサポートしているので、セキュリティモデルはそのまま維持されます。
Q3: FastAPI アプリケーションとは別に MCP サーバーをデプロイすることは可能ですか?
A: はい、FastAPI-MCP は統一デプロイモードと分離デプロイモードの両方をサポートしており、アプリ内に MCP サーバーをマウントしたり、スタンドアロン ASGI サービスとしてデプロイしたりできます。
Q4: リクエストとレスポンスのスキーマはどのように処理されますか?
A: すべてのエンドポイントのスキーマとドキュメントは保持され、MCP ツールを通じて一貫した入力バリデーションと発見可能性を確保します。