FastAPI SSE MCP ランダム
ストリーミング通信にServer-Sent Events (SSE)を用いたModel Context Protocol (MCP)を実装したFastAPIサーバー。このプロジェクトでは、乱数生成、Azure OpenAI DALL-Eを用いた画像生成、AIポッドキャスト生成など、様々なユーティリティツールを提供しています。
特徴
- リアルタイムストリーミング通信のためのサーバー送信イベント(SSE)
- 構造化されたツールの使用のための**モデルコンテキストプロトコル(MCP)**の実装
- 複数のユーティリティツール:
- Echoツールとリソース
- 乱数ジェネレータ
- Azure OpenAI DALL-E 3 による画像生成
- AIポッドキャスト生成
- 反省的な反応のための「考えるツール」
前提条件
- Python 3.10以上
- Azure OpenAI API アクセス (画像生成用)
インストール
- リポジトリをクローンします。
git clone <repository-url>
cd fastapi_sse_mcp_random
- 依存関係をインストールします。
pip install -r requirements.txt
またはuv
を使用します:
使用法
サーバーの起動
次のコマンドでサーバーを実行します。
サーバーはhttp://0.0.0.0:8000
で起動します。
利用可能なエンドポイント
GET /
: ヘルスチェックエンドポイントGET /sse/
: SSE接続エンドポイントPOST /messages/
: クライアントメッセージのエンドポイント
利用可能なツール
エコーツール
{
"name": "echo_tool",
"parameters": {
"message": "Hello, world!"
}
}
乱数ジェネレータ
{
"name": "random_number",
"parameters": {
"min_value": 1,
"max_value": 100
}
}
画像生成
{
"name": "generate_image",
"parameters": {
"prompt": "A beautiful landscape with mountains and a lake"
}
}
ポッドキャスト世代
{
"name": "generate_podcast",
"parameters": {
"prompt": "The future of artificial intelligence",
"duration": 5,
"name1": "Mark",
"voice1": "Thomas",
"name2": "Sophia",
"voice2": "Emily"
}
}
シンクツール
{
"name": "think_tool",
"parameters": {
"input": "What are the implications of quantum computing?"
}
}
プロジェクト構造
main.py
: メインの FastAPI アプリケーションと MCP ツールの実装sse.py
: サーバー送信イベント (SSE) の実装pyproject.toml
: プロジェクトのメタデータと依存関係requirements.txt
: 基本的な依存関係リスト
依存関係
- FastAPI: APIを構築するためのWebフレームワーク
- MCP: モデルコンテキストプロトコルの実装
- OpenAI: Azure OpenAI サービスのクライアント
- Uvicorn: FastAPI アプリケーションを実行するための ASGI サーバー
- リクエスト: API呼び出し用のHTTPライブラリ
ライセンス
[ここでライセンスを指定してください]
貢献
[プロジェクトへの貢献方法]