MCP Math Tools
by wapred
README.md
# MCP Math Tools (stdio)
This project demonstrates a complete Model Context Protocol (MCP) setup using:
- MCP Server
- MCP Client
- stdio transport
- Math calculation tools
## Requirements
- Python 3.10+
- pip
## Setup
```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Run the Client
python client/math_client.py
```
# Expected Output
Available tools: ['add', 'subtract', 'multiply', 'divide']
10 + 5 = 15
6 * 7 = 42
20 / 4 = 5
# Mental Model
Client (math_client.py)
|
| spawn process
v
Python server/math_server.py
|
| MCP initialize
|
| tools/list
v
Tool registry (add, subtract, multiply, divide)
|
| JSON-RPC response
v
Client prints tool metadata
## How list_tools() actually works
tools_result = await session.list_tools()
This sends an MCP request:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}
On the server side
Your math_server.py probably has something like:
@mcp.tool()
def add(a: float, b: float) -> float:
"""Add two numbers"""
return a + b
When the server starts:
It registers all tools in an internal registry
Each tool has:
name
description
inputSchema
outputSchema
When it receives tools/list:
It serializes this registry
Sends it back to the clientThis server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues