ファストAPI MCP SSE
モデル コンテキスト プロトコル (MCP)統合による FastAPI フレームワークを使用した Server-Sent Events (SSE) 実装。
MCPとは何ですか?
モデルコンテキストプロトコル(MCP)は、AIモデルが外部ツールやデータソースと連携できるようにするオープンスタンダードです。MCPは、AI開発におけるいくつかの重要な課題を解決します。
コンテキストの制限: モデルがトレーニングデータ以外の最新情報にアクセスできるようにする
ツール統合: モデルが外部ツールやAPIを使用するための標準化された方法を提供します
相互運用性: 異なるAIモデルとツール間の共通インターフェースを作成します
拡張性: 再トレーニングなしでAIシステムに新しい機能を簡単に追加できます
このプロジェクトでは、FastAPI Web アプリケーションで Server-Sent Events (SSE) を使用して MCP を実装する方法を示します。
Related MCP server: Python MCP Cat Facts
説明
このプロジェクトでは、FastAPIフレームワークを用いてモデルコンテキストプロトコル(MCP)機能を統合しながら、Server-Sent Events(SSE)を実装する方法を示します。重要な特徴は、カスタムルートを含むフル機能のFastAPIウェブアプリケーションにMCPのSSE機能をシームレスに統合できることです。
特徴
MCP によるサーバー送信イベント (SSE) の実装
カスタムルートとのFastAPIフレームワーク統合
MCP と標準の Web エンドポイントの両方を備えた統合 Web アプリケーション
カスタマイズ可能なルート構造
MCP と Web 機能間の懸念事項を明確に分離
建築
このプロジェクトでは、次のようなモジュラー アーキテクチャを紹介します。
MCP SSEエンドポイント(
/sseと/messages/)をFastAPIアプリケーションに統合します。標準の Web ルート (
/、/about、/status、/docs、/redoc) を提供しますMCP 機能と Web ルートの分離を維持する方法を示します
インストールと使用オプション
前提条件
UV パッケージ マネージャーをインストールします - Rust で書かれた高速な Python パッケージ インストーラーです。
オプション1: インストールなしのクイック実行
UV の実行ツールを使用してリポジトリを複製せずにアプリケーションを直接実行します。
オプション2: 完全インストール
仮想環境を作成する
プロジェクト用の分離された Python 環境を作成します。
仮想環境をアクティブ化する
仮想環境をアクティブ化して使用します。
依存関係をインストールする
必要なパッケージをすべてインストールします。
統合サーバーを起動する
MCP SSE 機能を備えた統合 FastAPI サーバーを起動します。
または
利用可能なエンドポイント
サーバーを起動すると (オプション 1 またはオプション 2 のいずれかを使用)、次のエンドポイントが使用できるようになります。
メインサーバー: http://localhost:8000
標準の Web ルート:
ホームページ: http://localhost:8000/
Aboutページ: http://localhost:8000/about
ステータス API: http://localhost:8000/status
ドキュメント (Swagger UI): http://localhost:8000/docs
ドキュメント(ReDoc): http://localhost:8000/redoc
MCP SSE エンドポイント:
SSEエンドポイント: http://localhost:8000/sse
メッセージの投稿: http://localhost:8000/messages/
MCP Inspectorでデバッグする
MCP 機能のテストとデバッグには、MCP インスペクタを使用します。
MCP Inspectorに接続する
http://localhost:5173で MCP インスペクターを開きます。
接続を構成します。
トランスポートタイプを
SSEに設定するURLを入力してください: http://localhost:8000/sse
Connectをクリック
機能をテストする
Toolsセクションに移動利用可能な機能を表示するには、
List Toolsをクリックします。get_alerts: 天気予報を取得するget_forcast: 天気予報を取得する
機能を選択
必要なパラメータを入力してください
実行するには
Run Toolクリックします
アプリケーションの拡張
カスタムルートの追加
アプリケーション構造により、FastAPI の APIRouter を使用して新しいルートを簡単に追加できます。
APIRouter を使用して routes.py で新しいルート ハンドラーを定義します。
@router.get("/new-route") async def new_route(): return {"message": "This is a new route"}ルータで定義されたすべてのルートは、メインアプリケーションに自動的に含まれます。
MCP統合のカスタマイズ
MCP SSE 機能は、次の方法で server.py に統合されます。
SSEトランスポートの作成
SSEハンドラーの設定
FastAPIアプリケーションにMCPルートを追加する
Continueとの統合
Continue VS Code 拡張機能でこの MCP サーバーを使用するには、Continue 設定に次の構成を追加します。
Appeared in Searches
- Golang HTTP streaming with MCP examples
- A server for retrieving current weather information with HTTP streaming support
- A server for researching enterprise data, including founders and financial information, for investors
- Information about SSE (possible meanings: Scottish and Southern Energy, Server-Sent Events, etc.)
- Finding MCP servers that support SSE or Streamable HTTP, excluding stdio transport