fastapi_mcp_sse

FastAPIを使用したServer-Sent Events (SSE)の実装で、Model Context Protocol (MCP)との統合を示すプロジェクトです。MCPはAIモデルが外部ツールやデータソースと連携するためのオープンスタンダードであり、コンテキストの制限を解消し、ツール統合や相互運用性を提供します。このプロジェクトは、FastAPIアプリケーションにおけるMCPの実装方法を示しています。

GitHubスター

49

ユーザー評価

未評価

お気に入り

0

閲覧数

22

フォーク

10

イシュー

4

インストール方法
難易度
中級
推定所要時間
10-20
必要な環境
Python 3.7以上
FastAPI 0.68.0以上
+1 more

インストール方法

インストール方法

前提条件

必要なソフトウェアとバージョンを明記してください。
UV Package Manager: 最新版

インストール手順

1. UV Package Managerのインストール

cmd
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

2. クイック実行(インストールなし)

リポジトリをクローンせずにアプリケーションを直接実行します:
cmd
uvx --from git+https://github.com/panz2018/fastapi_mcp_sse.git start

3. フルインストール

#### 仮想環境の作成
cmd
uv venv
#### 仮想環境のアクティベート
cmd
.venv\Scripts\activate
#### 依存関係のインストール
cmd
uv pip install -r pyproject.toml
#### 統合サーバーの起動
cmd
python src/server.py
または
cmd
uv run start

トラブルシューティング

問題: サーバーが起動しない 解決策: Pythonのバージョンを確認し、依存関係を再インストールしてください。

設定方法

設定方法

基本設定

FastAPIの設定

FastAPIアプリケーションの設定は、src/server.py内で行います。以下のようにエンドポイントを定義します:
python
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "Hello World"}

詳細設定

セキュリティ設定

APIキーは環境変数または安全な設定ファイルに保存
ファイルアクセス権限の適切な設定

パフォーマンス調整

タイムアウト値の設定
同時実行数の制限

設定例

基本的な設定

python
@app.get("/sse")
async def sse_endpoint():
    # SSEの実装
    pass

使用例

使用例

基本的な使用方法

MCPサーバーの基本的な使用方法を以下に示します:

プログラムでの使用

python
import requests

def call_mcp_tool(tool_name, params):
    response = requests.post(
        'http://localhost:8000/mcp/call',
        json={
            'tool': tool_name,
            'parameters': params
        }
    )
    return response.json()

使用例

result = call_mcp_tool('analyze', { 'input': 'sample data', 'options': {'format': 'json'} })

使用ケース

AIモデルが外部APIから最新のデータを取得するためにMCPを使用する。
リアルタイムのデータストリーミングを必要とするアプリケーションでSSEを利用する。
複数のAIツールを統合し、ユーザーにシームレスな体験を提供する。
FastAPIを使用して、カスタムルートを持つウェブアプリケーションを構築する。

追加リソース