from fastmcp import FastMCP import time # Initialize MCP server mcp = FastMCP("Stock-Mock-Server") @mcp.tool() def calculate_simple_moving_average(prices: list[float], period: int) -> float: """Calculate Simple Moving Average""" try: time.sleep(0.1) # Simulate processing time if len(prices) < period: return {"error": "Not enough data points"} return sum(prices[-period:]) / period except Exception as e: return {"error": f"Error calculating SMA: {str(e)}"} @mcp.tool() def calculate_percentage_change(old_value: float, new_value: float) -> float: """Calculate percentage change between two values""" try: time.sleep(0.1) # Simulate processing time return ((new_value - old_value) / old_value) * 100 except Exception as e: return {"error": f"Error calculating percentage change: {str(e)}"} if __name__ == "__main__": print("Starting Mock Stock Server on port 8001...") mcp.run(transport="sse", port=8001)