mcpField
🧠
🧠 Model Context Protocol (MCP) - Server-Client Implementation

🧠 Model Context Protocol (MCP) - Server-Client Implementation

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

🧠 Model Context Protocol (MCP) - Server-Client Implementation について

開発や学習向けの軽量な FastAPI 製 MCP サーバー・クライアントのプロトタイプです。SSE 経由のツール呼び出しを示し、請求データはメモリ上に保存され、サーバー再起動時に消去されます。

主な機能

  1. 01FastAPI サーバーとクライアント
  2. 02HTTP 上の SSE 通信
  3. 03請求の登録・詳細ツール
  4. 04メモリ内データ保存

活用シーン

  1. 01SSE ベースの MCP フローの学習
  2. 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_claim
    • get_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

🔄 通信フロー

  1. クライアントがツールを呼び出すため、SSE HTTP リクエストを MCP サーバーに送信します。
  2. サーバーがリクエストを処理し、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 を使用しています。

コメント

MCP は初めてですか?

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

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