🧠 Model Context Protocol (MCP) - Server-Client Implementation について
開発や学習向けの軽量な FastAPI 製 MCP サーバー・クライアントのプロトタイプです。SSE 経由のツール呼び出しを示し、請求データはメモリ上に保存され、サーバー再起動時に消去されます。
主な機能
- 01FastAPI サーバーとクライアント
- 02HTTP 上の SSE 通信
- 03請求の登録・詳細ツール
- 04メモリ内データ保存
活用シーン
- 01SSE ベースの MCP フローの学習
- 02請求の登録・検索呼び出しのテスト
MCP 対応
`upload_claim` と `get_claim_details` ツールを公開する MCP サーバーと、SSE 経由で呼び出す FastAPI クライアントを含みます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
インストール方法は未掲載です
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🧠 Model Context Protocol (MCP) - サーバー・クライアント実装
このプロジェクトは、FastAPI を使用して Server-Sent Events (SSE) で通信する MCP サーバー と MCP クライアント を含む、シンプルな Model Context Protocol (MCP) システムです。HTTP 経由の SSE を使用した軽量なツール呼び出しを実演します。
🏗️ アーキテクチャの概要
+-------------+ SSE HTTP +-------------+
| | <------------------------------------> | |
| MCP CLIENT | | MCP SERVER |
| (FastAPI) | /upload_claim ⇄ upload_claim | (SSE Tools) |
| Port: 5000 | /get_claim_details ⇄ get_claim_details | Port: 8000 |
+-------------+ +-------------+
📁 プロジェクト構成
.
├── client/ # MCP Client (FastAPI app)
│ └──main.py
│
├── server/ # MCP Server with SSE tools
│ └──main.py
|
└── README.md
└── requirements.txt
🔧 MCP サーバー
- ポート:
8000 - フレームワーク:FastAPI
- プロトコル:Server-Sent Events (SSE)
- 定義済みツール:
upload_claimget_claim_details
▶️ MCP サーバーの起動
cd server
pip install -r requirements.txt
python main.py
🚀 MCP クライアント
- ポート:
5000 - フレームワーク:FastAPI
- エンドポイント:
POST /upload_claim→ MCP サーバー上のupload_claimツールを呼び出しますGET /get_claim_details→ MCP サーバー上のget_claim_detailsツールを呼び出します
▶️ MCP クライアントの起動
cd client
pip install -r requirements.txt
python main.py
🔄 通信フロー
- クライアントがツールを呼び出すため、SSE HTTP リクエストを MCP サーバーに送信します。
- サーバーがリクエストを処理し、SSE 経由でレスポンスをストリーミングして返します。
📬 リクエスト例
POST /upload_claim
curl -X POST http://localhost:5000/upload_claim \
-H "Content-Type: application/json" \
-d '{
"emp_id": "12345",
"claim": "This is a dummy claim!"
}'
POST /get_claim_details
curl -X POST http://localhost:5000/get_claim_details \
-H "Content-Type: application/json" \
-d '{
"claim_id": "12345"
}'
🧰 要件
Python 3.10+
requirements.txt`
"mcp[cli]"
fastapi
httpx
各ディレクトリで、次のコマンドを使用して依存関係をインストールします。
pip install -r requirements.txt
⚠️ 注意事項
- これは、開発または学習目的の最小限のプロトタイプです。
- データはメモリ内に保存され、サーバーの再起動時にリセットされます。
- シンプルさとストリーミングへの対応のため、SSE を使用しています。
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。