-
Notifications
You must be signed in to change notification settings - Fork 16
Description
Summary:
Set up the Model Context Protocol (MCP) in our Python project using uv, define and expose a tool that uses a structured data type (BMI calculator), and verify interaction via MCP server.
Description:
This task involves integrating MCP into our Python project to allow structured and typed tool execution over an MCP server. We'll use a dataclass as input for one tool (BMI calculation) to demonstrate this capability.
Acceptance Criteria:
Project environment set up using uv
MCP SDK installed and working
MCP server created and running
At least one MCP tool implemented using a custom data class
Tool accepts input and returns output correctly
Code tested and documented
Steps to Implement:
- Set Up Environment
bash
Copy
Edit
pip install uv
uv init my_mcp_project
cd my_mcp_project
uv venv
source .venv/bin/activate # On Windows use .venv\Scripts\activate
2. Install MCP SDK
bash
Copy
Edit
uv add mcp
3. Create a Data Type
python
Copy
Edit
bmi_input.py
from dataclasses import dataclass
@DataClass
class BMIInput:
weight_kg: float
height_m: float
4. Set Up MCP Server
python
Copy
Edit
main.py
from mcp.server.fastmcp import FastMCP
from bmi_input import BMIInput
mcp = FastMCP("BMIServer")
@mcp.tool()
def calculate_bmi(input_data: BMIInput) -> float:
"""Calculate BMI from weight and height."""
return input_data.weight_kg / (input_data.height_m ** 2)
if name == "main":
mcp.run()