mcpField
F
FastAPI MCP SSE

FastAPI MCP SSE

ローカル
github.com/panz2018開発ツール5185 週間前に更新

FastAPI MCP SSE について

FastAPI MCP SSE は、FastAPI アプリケーション内で Server-Sent Events による MCP を提供する方法を示すサンプルプロジェクトです。MCP エンドポイントと通常の Web ルートを 1 つのアプリにまとめたい開発者を対象としています。

主な機能

  1. 01/sse と /messages/ による MCP SSE エンドポイント
  2. 021 つの FastAPI アプリでの MCP と通常の Web ルート
  3. 03APIRouter によるカスタムルートの追加
  4. 04MCP Inspector で確認できる天気の例のツール

活用シーン

  1. 01FastAPI に MCP SSE エンドポイントを組み込む方法の学習
  2. 02Continue 拡張機能から SSE 経由でローカルの MCP サーバーに接続

MCP 対応

本プロジェクトは MCP サーバーの例であり、SSE エンドポイントを通じて get_alerts や get_forcast などの天気ツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"fastapi_mcp_sse": {
"command": "uvx",
"args": [
"git+https://github.com/panz2018/fastapi_mcp_sse.git"
]
}
}
}
起動コマンドuvx 'git+https://github.com/panz2018/fastapi_mcp_sse.git'

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypigit+https://github.com/panz2018/fastapi_mcp_sse.git

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

FastAPI MCP SSE

英語 | 簡体字中国語

FastAPI フレームワークと Model Context Protocol(MCP) を統合した、Server-Sent Events(SSE)の実装です。

MCP とは?

Model Context Protocol(MCP) は、AI モデルが外部ツールやデータソースとやり取りできるようにするオープンスタンダードです。MCP は、AI 開発におけるいくつかの重要な課題を解決します。

  • コンテキストの制限:モデルが学習データを超えて、最新情報にアクセスできるようにします
  • ツールの統合:モデルが外部ツールや API を利用するための標準化された方法を提供します
  • 相互運用性:異なる AI モデルとツールの間に共通のインターフェースを作成します
  • 拡張性:再トレーニングなしで、AI システムに新しい機能を簡単に追加できます

このプロジェクトでは、FastAPI の Web アプリケーションで Server-Sent Events(SSE)を使用して MCP を実装する方法を紹介します。

説明

このプロジェクトでは、FastAPI フレームワークを使用して Server-Sent Events(SSE)を実装し、Model Context Protocol(MCP)の機能を統合する方法を紹介します。主な特徴は、カスタムルートを含むフル機能の FastAPI Web アプリケーションに、MCP の SSE 機能をシームレスに統合していることです。

機能

  • MCP を使用した Server-Sent Events(SSE)の実装
  • カスタムルートを含む FastAPI フレームワークとの統合
  • MCP と標準の Web エンドポイントを備えた統合 Web アプリケーション
  • カスタマイズ可能なルート構成
  • MCP 機能と Web 機能の明確な分離

アーキテクチャ

このプロジェクトでは、次のようなモジュール式アーキテクチャを紹介します。

  1. FastAPI アプリケーションに MCP SSE エンドポイント(/sse と /messages/)を統合します
  2. 標準の Web ルート(/、/about、/status、/docs、/redoc)を提供します
  3. MCP 機能と Web ルートを分離して維持する方法を紹介します

インストールと使用方法

前提条件

Rust で記述された高速な Python パッケージインストーラーである UV Package Manager をインストールします。

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
オプション 1:インストールせずにすぐ実行

UV の実行ツールを使用して、リポジトリをクローンせずにアプリケーションを直接実行します。

uvx --from git+https://github.com/panz2018/fastapi_mcp_sse.git start
オプション 2:完全インストール
仮想環境を作成

プロジェクト用に分離された Python 環境を作成します。

uv venv
仮想環境を有効化

仮想環境を有効化して使用します。

.venv\Scripts\activate
依存関係をインストール

必要なパッケージをすべてインストールします。

uv pip install -r pyproject.toml
統合サーバーを起動

MCP SSE 機能を備えた統合 FastAPI サーバーを起動します。

python src/server.py

または

uv run start
利用可能なエンドポイント

サーバーの起動後(オプション 1、オプション 2 のどちらでも)、次のエンドポイントを利用できます。

MCP Inspector でデバッグ

MCP 機能のテストとデバッグには、MCP Inspector を使用します。

mcp dev ./src/weather.py
MCP Inspector に接続
  1. http://localhost:5173 で MCP Inspector を開きます
  2. 接続を設定します。
    • Transport Type を SSE に設定します
    • URL に http://localhost:8000/sse を入力します
    • Connect をクリックします
関数をテスト
  1. Tools セクションに移動します
  2. List Tools をクリックして、利用可能な関数を確認します。
    • get_alerts:気象警報を取得します
    • get_forcast:天気予報を取得します
  3. 関数を選択します
  4. 必要なパラメーターを入力します
  5. Run Tool をクリックして実行します

アプリケーションの拡張

カスタムルートの追加

アプリケーション構造により、FastAPI の APIRouter を使用して新しいルートを簡単に追加できます。

  1. APIRouter を使用して、routes.py に新しいルートハンドラーを定義します。

    @router.get("/new-route")
    async def new_route():
        return {"message": "This is a new route"}
    
  2. ルーターで定義したすべてのルートは、メインアプリケーションに自動的に追加されます。

MCP 統合のカスタマイズ

MCP SSE 機能は、server.py で次のように統合されています。

  • SSE トランスポートの作成
  • SSE ハンドラーの設定
  • FastAPI アプリケーションへの MCP ルートの追加

Continue との統合

この MCP サーバーを Continue VS Code 拡張機能で使用するには、次の設定を Continue の設定に追加します。

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "name": "weather",
          "type": "sse",
          "url": "http://localhost:8000/sse"
        }
      }
    ]
  }
}

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。