🧠 Model Context Protocol (MCP) - Server-Client Implementation
LocalAbout 🧠 Model Context Protocol (MCP) - Server-Client Implementation
A minimal FastAPI MCP server-client prototype for development and learning. It demonstrates tool calls over SSE, with claim data kept in memory and reset when the server restarts.
Key features
- 01FastAPI server and client
- 02SSE over HTTP communication
- 03Claim upload and detail tools
- 04In-memory data storage
Use cases
- 01Learning an SSE-based MCP flow
- 02Testing claim upload and lookup calls
MCP support
Includes an MCP server exposing `upload_claim` and `get_claim_details` tools, plus a FastAPI client that calls them over SSE.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project README🧠 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_claimget_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_claimtool on the MCP ServerGET /get_claim_details→ Callsget_claim_detailstool 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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.