MCP Hub
Back to servers

mcp-math-stdio

mcp server and client

glama
Updated
Feb 1, 2026

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

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 client

Reviews

No reviews yet

Sign in to write a review