FastAPI MCP SSE

by panz2018

Integrations

  • The MCP server is implemented using the FastAPI framework, providing a web application with both MCP and standard web endpoints.

  • The MCP server provides Swagger UI documentation through its /docs endpoint.

ファストAPI MCP SSE

モデル コンテキスト プロトコル (MCP)統合による FastAPI フレームワークを使用した Server-Sent Events (SSE) 実装。

MCPとは何ですか?

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

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

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

説明

このプロジェクトでは、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" } } ] } }
-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

モデル コンテキスト プロトコル (MCP) を統合する FastAPI フレームワークを使用した Server-Sent Events 実装。これにより、AI モデルは外部ツールや天気情報などのデータ ソースにアクセスできるようになります。

  1. MCPとは何ですか?
    1. 説明
      1. 特徴
        1. 建築
          1. インストールと使用オプション
            1. 前提条件
            2. オプション1: インストールなしのクイック実行
            3. オプション2: 完全インストール
            4. 利用可能なエンドポイント
            5. MCP Inspectorでデバッグする
            6. MCP Inspectorに接続する
            7. 機能をテストする
          2. アプリケーションの拡張
            1. カスタムルートの追加
            2. MCP統合のカスタマイズ
          3. Continueとの統合

            Related MCP Servers

            • A
              security
              F
              license
              A
              quality
              A Model Context Protocol server that provides AI agents with tools to retrieve weather alerts and detailed forecasts for US locations using the National Weather Service API.
              Last updated -
              2
              115
              TypeScript
            • A
              security
              F
              license
              A
              quality
              An implementation of the Model Context Protocol (MCP) server using Server-Sent Events (SSE) for real-time communication, providing tools for calculations and dynamic resource templates.
              Last updated -
              1
              JavaScript
            • -
              security
              A
              license
              -
              quality
              A customizable Model Context Protocol server implementation that enables AI models to interact with external tools including weather queries, Google search, and camera control functionality.
              Last updated -
              8
              Python
              Apache 2.0
              • Linux
              • Apple
            • -
              security
              -
              license
              -
              quality
              A simple server that implements the Model Context Protocol, allowing AI models like Claude to fetch real-time weather information for any location using the wttr.in API.
              Last updated -
              JavaScript

            View all related MCP servers

            ID: 3cw73h6fyg