mcpField
S
Starlette MCP SSE

Starlette MCP SSE

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

Starlette MCP SSE について

Starlette MCP SSEは、StarletteのWebアプリにSSEベースのMCP機能を組み込む方法を示すサンプルです。MCPエンドポイントと通常のWebルートを併設したい開発者向けです。

主な機能

  1. 01MCP SSEエンドポイントの統合
  2. 02同一アプリでのWebルート提供
  3. 03ルート構成のカスタマイズ
  4. 04MCP機能とWeb機能の分離

活用シーン

  1. 01SSEトランスポートを使うMCPサーバーの構築
  2. 02MCPにステータスやドキュメントのルートを追加

MCP 対応

MCPクライアントが接続できるよう、`/sse`と`/messages/`のMCP SSEエンドポイントをStarletteアプリに組み込みます。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

Starlette MCP SSE

英語 | 簡体字中国語

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

MCP とは?

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

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

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

説明

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

特長

  • MCP による Server-Sent Events(SSE)の実装
  • カスタムルートとの Starlette フレームワーク統合
  • MCP と標準的なウェブエンドポイントの両方を備えた統合ウェブアプリケーション
  • カスタマイズ可能なルート構成
  • MCP とウェブ機能を明確に分離

アーキテクチャ

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

  1. MCP SSE エンドポイント(/sse と /messages/)を Starlette アプリケーションに統合します
  2. 標準的なウェブルート(/、/about、/status、/docs)を提供します
  3. MCP 機能とウェブルートを分離して維持する方法を示します

インストールと使用方法

前提条件

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/starlette_mcp_sse.git start
オプション 2:完全インストール
仮想環境を作成

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

uv venv
仮想環境を有効化

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

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

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

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

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

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 をクリックして実行します

アプリケーションの拡張

カスタムルートの追加

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

  1. routes.py で新しいルートハンドラーを定義します
  2. routes.py の routes リストにルートを追加します
  3. メインアプリケーションにこれらのルートが自動的に追加されます
MCP 統合のカスタマイズ

MCP SSE 機能は、server.py を通じて以下のように統合されています。

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

Continue との統合

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

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

コメント

MCP は初めてですか?

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

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