Spaces:
Sleeping
Sleeping
| from mcp.server.fastmcp import FastMCP | |
| # Create an MCP server | |
| mcp = FastMCP( | |
| name="MCPTEST", | |
| host="0.0.0.0", # only used for SSE transport | |
| port=7860, # only used for SSE transport (HF expect 7860 as a port) | |
| ) | |
| def get_weather(city: str) -> dict: | |
| """Retrieves the current weather report for a specified city. | |
| Args: | |
| city (str): The name of the city (e.g., "New York", "London", "Tokyo"). | |
| Returns: | |
| dict: A dictionary containing the weather information. | |
| Includes a 'status' key ('success' or 'error'). | |
| If 'success', includes a 'report' key with weather details. | |
| If 'error', includes an 'error_message' key. | |
| """ | |
| print(f"--- Tool: get_weather called for city: {city} ---") # Log tool execution | |
| city_normalized = city.lower().replace(" ", "") # Basic normalization | |
| # Mock weather data | |
| mock_weather_db = { | |
| "newyork": {"status": "success", "report": "The weather in New York is sunny with a temperature of 25°C."}, | |
| "london": {"status": "success", "report": "It's cloudy in London with a temperature of 15°C."}, | |
| "tokyo": {"status": "success", "report": "Tokyo is experiencing light rain and a temperature of 18°C."}, | |
| } | |
| if city_normalized in mock_weather_db: | |
| return mock_weather_db[city_normalized] | |
| else: | |
| return {"status": "error", "error_message": f"Sorry, I don't have weather information for '{city}'."} | |
| # Add a simple calculator tool | |
| def add(a: int, b: int) -> int: | |
| """Add two numbers together""" | |
| return a + b | |
| # Add a simple calculator tool | |
| def multiply(a: int, b: int) -> int: | |
| """Multiply two numbers together""" | |
| return a * b | |
| # Run the server | |
| if __name__ == "__main__": | |
| print("Running server with SSE transport") | |
| mcp.run(transport="sse") |