fix: correct port binding in MCP stock server implementation

pull/819/head
Pavan Kumar 3 days ago committed by ascender1729
parent c16448f0c1
commit fd723e712d

@ -1,30 +1,33 @@
from fastmcp import FastMCP from fastmcp import Server
import time from fastmcp.messages import Request, Response
# Initialize MCP server # Create MCP server
mcp = FastMCP("Stock-Mock-Server") mcp = Server("Stock-Mock-Server")
@mcp.tool() # Define stock price lookup handler
def calculate_simple_moving_average(prices: list[float], period: int) -> float: @mcp.handler("get_stock_price")
"""Calculate Simple Moving Average""" async def get_stock_price(request: Request) -> Response:
try: # Mock stock price data
time.sleep(0.1) # Simulate processing time stock_prices = {
if len(prices) < period: "AAPL": 150.0,
return {"error": "Not enough data points"} "GOOGL": 2800.0,
return sum(prices[-period:]) / period "MSFT": 300.0
except Exception as e: }
return {"error": f"Error calculating SMA: {str(e)}"}
symbol = request.data.get("symbol")
@mcp.tool() if symbol in stock_prices:
def calculate_percentage_change(old_value: float, new_value: float) -> float: return Response(data={"price": stock_prices[symbol]})
"""Calculate percentage change between two values""" else:
try: return Response(error=f"Stock {symbol} not found")
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__": if __name__ == "__main__":
print("Starting Mock Stock Server on port 8001...") print("Starting Mock Stock Server on port 8001...")
mcp.run(transport="sse", port=8001) # Run server with SSE transport on specified host/port
mcp.run(
transport="sse",
transport_kwargs={
"host": "0.0.0.0",
"port": 8001
}
)

Loading…
Cancel
Save