
🧠 Model Context Protocol (MCP) - Server-Client Implementation
This is a basic MCP Server-Client Impl using SSE
What is Model Context Protocol (MCP)?
Model Context Protocol (MCP) is a server-client implementation that facilitates communication between an MCP Client and MCP Server using Server-Sent Events (SSE) with FastAPI. It allows for lightweight tool invocation over HTTP.
How to use MCP?
To use MCP, set up the MCP Server and Client by following the instructions in the README. Start the server and client applications, and use the provided endpoints to interact with the system.
Key features of MCP?
- Lightweight communication using Server-Sent Events (SSE)
- FastAPI framework for both server and client
- Defined tools for uploading claims and retrieving claim details
Use cases of MCP?
- Submitting claims through the MCP Client.
- Retrieving details of submitted claims.
- Educational purposes for understanding server-client communication.
FAQ from MCP?
- What is the purpose of the MCP?
The MCP serves as a prototype for demonstrating server-client communication using SSE.
- Is the MCP suitable for production use?
No, this is a minimal prototype intended for development or educational use only.
- How is data stored in MCP?
Data is stored in-memory and will reset on server restart.
🧠 Model Context Protocol (MCP) - Server-Client Implementation
This project is a simple Model Context Protocol (MCP) system that includes an MCP Server and a MCP Client, communicating via Server-Sent Events (SSE) using FastAPI. It demonstrates lightweight tool invocation using SSE over HTTP.
🏗️ Architecture Overview
+-------------+ SSE HTTP +-------------+
| | <------------------------------------> | |
| MCP CLIENT | | MCP SERVER |
| (FastAPI) | /upload_claim ⇄ upload_claim | (SSE Tools) |
| Port: 5000 | /get_claim_details ⇄ get_claim_details | Port: 8000 |
+-------------+ +-------------+
📁 Project Structure
.
├── client/ # MCP Client (FastAPI app)
│ └──main.py
│
├── server/ # MCP Server with SSE tools
│ └──main.py
|
└── README.md
└── requirements.txt
🔧 MCP Server
- Port:
8000
- Framework: FastAPI
- Protocol: Server-Sent Events (SSE)
- Defined Tools:
upload_claim
get_claim_details
▶️ Running the MCP Server
cd server
pip install -r requirements.txt
python main.py
🚀 MCP Client
- Port:
5000
- Framework: FastAPI
- Endpoints:
POST /upload_claim
→ Callsupload_claim
tool on the MCP ServerGET /get_claim_details
→ Callsget_claim_details
tool on the MCP Server
▶️ Running the MCP Client
cd client
pip install -r requirements.txt
python main.py
🔄 Communication Flow
- Client sends an SSE HTTP request to the MCP Server to invoke a tool.
- Server processes the request and streams the response back via SSE.
📬 Sample Requests
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"
}'
🧰 Requirements
Python 3.10+
requirements.txt`
"mcp[cli]"
fastapi
httpx
Install dependencies in each directory using:
pip install -r requirements.txt
⚠️ Notes
- This is a minimal prototype intended for development or educational use.
- Data is stored in-memory and will reset on server restart.
- SSE is used for simplicity and streaming compatibility.