Day 2 MCP Calculator Demo (FastMCP) This demo contains a simple MCP server built using FastMCP. It demonstrates how to expose tools to MCP clients such as GitHub Copilot Agent mode using a modern Python setup based on uv.
Prerequisites Python 3.10 or newer VS Code No prior virtual environment setup is required.
Step 1: Install uv macOS / Linux curl -LsSf https://astral.sh/uv/install.sh | sh
Restart your terminal after installation.
Windows (PowerShell) irm https://astral.sh/uv/install.ps1 | iex
Verify installation:
uv --version
Step 2: Set Up the Python Environment Initialize the project environment (only needed once):
uv init
This creates: - pyproject.toml - .python-version - A managed virtual environment
Step 3: Install Dependencies Install FastMCP and required dependencies:
uv add fastmcp starlette
This will: - Create a virtual environment automatically - Resolve and lock dependencies - Generate uv.lock
Step 4: Activate the Environment (Optional) You do not need to activate the environment manually when using uv run.
If you want to activate it explicitly:
macOS / Linux source .venv/bin/activate
Windows (PowerShell) .venv\Scripts\activate
Step 5: Run the MCP Server Run the demo MCP server:
uv run python servers\01_calculator_stdio.py.py
You should see output indicating that the MCP server is running.
Available Tools add(a: int, b: int) -> int subtract(a: int, b: int) -> int multiply(a: int, b: int) -> int divide(a: int, b: int) -> Optional[float] Key Files 01_calculator_stdio.py – MCP server implementation pyproject.toml – Project configuration and dependencies uv.lock – Locked dependency versions .python-version – Python runtime version Workshop Notes Do not use pip install Do not create virtual environments manually Always use uv add and uv run This ensures consistent behavior across machines, CI pipelines, and cloud deployments.
MCP Inspector The MCP Inspector is a local web-based tool used to inspect MCP servers, discover tools, send test requests, and view responses.
Install MCP Inspector The MCP Inspector is distributed as an npm package.
Prerequisites:
Node.js 18 or newer npm Run MCP Inspector Start the MCP Inspector UI:
npx @modelcontextprotocol/inspector By default, the Inspector runs at:
http://localhost:6274
Connect to the MCP Server (STDIO) In MCP Inspector:
Transport: stdio Command: uv Arguments: run python .py Click Connect.
What You Can Do with MCP Inspector Discover available tools Inspect tool schemas Send tool invocation requests View raw MCP messages Inspect errors and responses Workshop Notes MCP Inspector is intended for local development and debugging It is not used in production deployments It helps visualize MCP message flow and tool schemas