Skip to content

Instantly share code, notes, and snippets.

@anshajk
Created October 12, 2025 08:46
Show Gist options
  • Select an option

  • Save anshajk/b3dd7482c759ca6ce9d4df708dcadcdf to your computer and use it in GitHub Desktop.

Select an option

Save anshajk/b3dd7482c759ca6ce9d4df708dcadcdf to your computer and use it in GitHub Desktop.
Basic MCP math server with addition, multiplication, and compound interest tools.
# server.py
from fastmcp import FastMCP
# Create an MCP server
mcp = FastMCP("Basic math server")
# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
@mcp.tool()
def multiply(a: int, b: int) -> int:
"""Multiply two numbers"""
return a * b
@mcp.tool()
def compound_interest(
principal: float, annual_rate: float, times_per_year: int, years: float
) -> dict:
"""Calculate compound interest using the formula A = P * (1 + r/n)^(n*t).
Args:
principal (float): Initial amount of money.
annual_rate (float): Annual interest rate as a decimal (e.g., 0.05 for 5%).
times_per_year (int): Number of compounding periods per year (e.g., 12 for monthly).
years (float): Number of years the money is invested or borrowed for.
Returns:
dict: A dictionary containing:
- 'final_amount' (float): The total amount after interest.
- 'interest_earned' (float): The interest earned (final_amount - principal).
Raises:
ValueError: If times_per_year is less than or equal to 0.
"""
if times_per_year <= 0:
raise ValueError("times_per_year must be > 0")
amount = principal * (1 + annual_rate / times_per_year) ** (times_per_year * years)
return {"final_amount": amount, "interest_earned": amount - principal}
@mcp.tool()
def get_user_data(user_id: int) -> dict:
"""Fetch user data from a mock database."""
pass
if __name__ == "__main__":
mcp.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment