π§ Model Context Protocol (MCP) Example β Python Implementation
About
This project is a simple vibe coded example of how an MCP Server could return a tool to the requesting client.
Details
- Author
- srivatssan
- GitHub stars
- 1
- Downloads
- 124
- Categories
- Other
Jump to
- Minimal MCP server exposing tools via tools/list and tools/call
- Python client sending JSON-RPC requests to list and call tools
- Simulated real-time connection using /events SSE endpoint
- Modular structure ready to extend for resources/ and prompts/ support
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
π§ Model Context Protocol (MCP) Example β Python ImplementationCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install FastAPI and Uvicorn, then start the server with uvicorn main:app --reload inside the server/ directory. Install the requests package and run python main.py from the client/ directory to interact with the server. The server exposes endpoints POST /rpc for JSON-RPC tool listing/invocation and GET /events for simulated SSE heartbeat messages.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"\ud83e\udde0 model context protocol (mcp) example \u2013 python implementation": {
"MCP-Demo": {
"command": "python",
"args": [
"main.py"
]
}
}
}
}
McpServers
{
"MCP-Demo": {
"command": "python",
"args": [
"main.py"
]
}
}
π§ Model Context Protocol (MCP) Example β Python Implementation
This repository provides a minimal yet functional example of the Model Context Protocol (MCP) using Python. It demonstrates how a Large Language Model (LLM) agent can communicate with enterprise systems through a standardized client-server interface using JSON-RPC over HTTP, including support for Server-Sent Events (SSE).
You can read my blog to understand the subject better: https://srivatssan.medium.com/model-context-protocol-exhaustively-explained-f5a30a87a3ff?sk=1b971265640303c66b04377371c82102
---
π¦ Repository Structure
mcp-protocol-example/
βββ client/
β βββ main.py # Python MCP client using JSON-RPC
βββ server/
β βββ main.py # FastAPI-based MCP server with /rpc and /events endpoints
---
π How to Run This Example
1οΈβ£ Start the Server
Make sure you have FastAPI and Uvicorn installed:
pip install fastapi uvicorn
Then, start the MCP server:
cd server
uvicorn main:app --reload
This starts a FastAPI server with:
- POST /rpc: JSON-RPC handler for tool listing and invocation
- GET /events: Simulated SSE endpoint emitting heartbeat messages every 5 seconds
---
2οΈβ£ Run the Client
Install the required Python requests package:
pip install requests
Then run the client to interact with the server:
cd client
python main.py
Output:
Tools: [{'name': 'greet', 'description': 'Greets the user', ...}]
Response: {'message': 'Hello, Sri!'}
You can run http://localhost:8000/events
and you should see the heartbeat event being returned
like the one shown below.
_data: {'event': 'heartbeat'}
data: {'event': 'heartbeat'}
_
...
**
---
βοΈ What It Demonstrates
- A basic MCP server exposing tools via tools/list and tools/call
- A client sending JSON-RPC requests to list and call tools
- Simulated real-time connection using /events SSE endpoint
- Modular structure ready to extend for resources/ and prompts/ support
---
π§© Next Steps
You can expand this prototype by:
- Adding more tools with different schemas
- Supporting resources/list and resources/read
- Managing prompt templates with prompts/get
- Implementing authentication and access control
- Handling streaming responses from server to client
---
π References
- Model Context Protocol (official site)
- JSON-RPC 2.0 Specification
- FastAPI Documentation
- Server-Sent Events (MDN)
---
Created with β€οΈ by Srivatssan Srinivasan
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



