MCP Client Example
by RGGH
This project demonstrates a simple client-server implementation using the Model Context Protocol (MCP), which is a standardized way to connect large language models with tools and data. It shows how to create an MCP server with custom tools and connect to it using an MCP client.
Last updated: N/A
MCP Client Example ☀️
This project demonstrates a simple client-server implementation using the Model Context Protocol (MCP), which is a standardized way to connect large language models with tools and data.
Overview
This example shows how to:
- Create an MCP server with custom tools
- Connect to the server using an MCP client
- Call tools and get responses from the server
Tutorial Video
Click the image above to watch a tutorial on MCP implementation.
Project Structure
.
├── pyproject.toml
├── README.md
├── src
│ ├── client
│ │ └── mcp_client.py # MCP client implementation
│ └── server
│ └── example_server.py # MCP server with tools
└── uv.lock
Server Implementation
The server exposes two tools:
calculate_bmi
- A simple calculator that computes Body Mass Indexfetch_weather
- An async tool that retrieves weather data from an external API
Client Implementation
The client connects to the server via stdio, initializes a session, and calls the server's tools.
Getting Started
Prerequisites
- Python 3.9+
- uv (Python package manager)
Installation
# Install dependencies
uv install -e .
Running the Example
- Start the client (which will automatically start the server):
uv run src/client/mcp_client.py
Usage
The client will:
- Connect to the server
- List available tools
- Call the BMI calculator with sample data
- Call the weather tool with sample coordinates
Example Response
Available tools: meta=None nextCursor=None tools=[...]
BMI calculation result: 22.857142857142858
Weather data: {"current_weather":{"temperature":14.2,"windspeed":12.6, ...}}
Test with MCP Inspector
( run command below and then visit http://localhost:5173 )
❯ mcp dev src/server/example_server.py
Starting MCP inspector...
Proxy server listening on port 3000
🔍 MCP Inspector is up and running at http://localhost:5173 🚀
New SSE connection
Query parameters: {
transportType: 'stdio',
command: 'uv',
args: 'run --with mcp mcp run src/server/example_server.py',
Resources
This project uses:
License
This project is licensed under the MIT License - see the LICENSE file for details.