Skip to main content
Glama
panz2018
by panz2018

ファスト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 機能間の懸念事項を明確に分離

建築

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

  1. MCP SSEエンドポイント( /sseと/messages/ )をFastAPIアプリケーションに統合します。

  2. 標準の Web ルート ( / 、 /about 、 /status 、 /docs 、 /redoc ) を提供します

  3. MCP 機能と Web ルートの分離を維持する方法を示します

インストールと使用オプション

前提条件

UV パッケージ マネージャーをインストールします - Rust で書かれた高速な Python パッケージ インストーラーです。

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 インスペクタを使用します。

mcp dev ./src/weather.py

MCP Inspectorに接続する

  1. http://localhost:5173で MCP インスペクターを開きます。

  2. 接続を構成します。

    • トランスポートタイプを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との統合

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

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

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A server for Model Context Protocol (MCP) that uses Server-Sent Events (SSE) for streaming communication, enabling tools like the HackerNews API to be accessed through a secure HTTP+SSE transport.
    29
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A FastAPI server that implements the Model Context Protocol (MCP) using Server-Sent Events (SSE) transport to provide random cat facts on demand or as a continuous stream.
    -
  • F
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that provides real-time weather data to AI clients through Server-Sent Events, enabling them to fetch current weather conditions, multi-day forecasts, and location-based weather information.
    5
    -