FastAPI-MCP について
FastAPI-MCP は FastAPI のエンドポイントを MCP ツールとして公開し、アプリケーションの既存の認証依存関係を再利用できます。既存の FastAPI サービスに MCP 機能を追加したい Python 開発者を対象とし、ASGI で直接アプリを呼び出します。
主な機能
- 01既存の FastAPI Depends() による認証と認可
- 02リクエストとレスポンスモデルのスキーマ保持
- 03Swagger と同様のエンドポイントドキュメント保持
- 04同一アプリへのマウントまたは個別デプロイ
- 05追加の HTTP 呼び出しを行わない ASGI 通信
- 06ゼロまたは最小限の設定で動作
活用シーン
- 01既存の FastAPI サービスへの MCP ツールインターフェース追加
- 02MCP エンドポイントへの既存の認可ルールの適用
- 03Cursor や Claude などのクライアントへの内部 API の提供
MCP 対応
FastAPI-MCP は FastAPI のルートを MCP ツールに変換する MCP サーバー拡張で、MCP クライアントが接続する /mcp エンドポイントをアプリにマウントします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
FastAPI-MCP
認証機能付きで、FastAPI のエンドポイントを Model Context Protocol(MCP)ツールとして公開できます。
特徴
-
認証機能を標準搭載:既存の FastAPI 依存関係を使用できます。
-
FastAPI ネイティブ:単なる OpenAPI から MCP への変換ツールではありません。
-
設定は不要または最小限:FastAPI アプリを指定するだけで動作します。
-
リクエストモデルとレスポンスモデルのスキーマを保持
-
Swagger と同様に、すべてのエンドポイントのドキュメントを保持
-
柔軟なデプロイ:MCP サーバーを同じアプリにマウントすることも、別途デプロイすることもできます。
-
ASGI トランスポート:FastAPI の ASGI インターフェースを直接使用し、効率的に通信します。
ホステッドソリューション
マネージド型のホステッドソリューションをご希望の場合は、tadata.comをご覧ください。
インストール
高速な Python パッケージインストーラーであるuvの使用をおすすめします。
uv add fastapi-mcp
または、pip を使ってインストールできます。
pip install fastapi-mcp
基本的な使い方
FastAPI-MCP を使う最も簡単な方法は、MCP サーバーを FastAPI アプリケーションに直接追加することです。
from fastapi import FastAPI
from fastapi_mcp import FastApiMCP
app = FastAPI()
mcp = FastApiMCP(app)
# Mount the MCP server directly to your FastAPI app
mcp.mount()
これで完了です。自動生成された MCP サーバーを https://app.base.url/mcp で利用できます。
ドキュメント、サンプル、高度な使い方
FastAPI-MCP には包括的なドキュメントがあります。さらに、これらの機能の動作を示すコードサンプルはexamples ディレクトリをご覧ください。
FastAPI ファーストのアプローチ
FastAPI-MCP は、API から MCP ツールを生成するだけの変換ツールではなく、FastAPI のネイティブ拡張機能として設計されています。このアプローチには、次のような主な利点があります。
-
ネイティブ依存関係:使い慣れた FastAPI の
Depends()を使って、MCP エンドポイントの認証と認可を保護できます。 -
ASGI トランスポート:ASGI インターフェースを使用して FastAPI アプリと直接通信するため、MCP から API への HTTP 呼び出しが不要です。
-
統合されたインフラストラクチャ:FastAPI アプリを MCP サーバーとは別に実行する必要はありません(ただし、別々にデプロイすることもできます)。
この設計思想により、既存の FastAPI サービスに MCP 機能を追加する際の手間を最小限に抑えられます。
開発とコントリビューション
FastAPI-MCP へのコントリビューションをご検討いただき、ありがとうございます!コミュニティの皆さまからの Issue の投稿や Pull Request の作成を歓迎します。
始める前に、コントリビューションガイドをご覧ください。
コミュニティ
MCParty Slack communityに参加して、ほかの MCP 愛好家と交流したり、質問したり、FastAPI-MCP での経験を共有したりしましょう。
要件
- Python 3.10+(推奨バージョンは 3.12)
- uv
ライセンス
MIT License。著作権 (c) 2025 Tadata Inc.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。