A Proof of Concept of vLLM at the Edge with MCP calling
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

70 lines
1.5 KiB

#!/usr/bin/env python3
"""
MCP Weather Server - Provides hardcoded weather data for cities via stdio
"""
from fastmcp import FastMCP
# Initialize MCP server
mcp = FastMCP("weather-server")
# Hardcoded weather data
WEATHER_DATA = {
"paris": {
"city": "Paris",
"temperature": 15,
"condition": "Partly cloudy",
"humidity": 65,
"wind_speed": 12
},
"london": {
"city": "London",
"temperature": 12,
"condition": "Rainy",
"humidity": 80,
"wind_speed": 18
},
"new york": {
"city": "New York",
"temperature": 20,
"condition": "Sunny",
"humidity": 55,
"wind_speed": 10
},
"tokyo": {
"city": "Tokyo",
"temperature": 18,
"condition": "Clear",
"humidity": 60,
"wind_speed": 8
}
}
@mcp.tool()
def get_weather(city: str) -> dict:
"""
Get the current weather for a specific city.
Args:
city: The name of the city to get weather for
Returns:
A dictionary containing weather information including temperature,
condition, humidity, and wind speed
"""
city_lower = city.lower()
if city_lower in WEATHER_DATA:
return WEATHER_DATA[city_lower]
else:
return {
"city": city,
"error": f"Weather data not available for {city}",
"available_cities": list(WEATHER_DATA.keys())
}
if __name__ == "__main__":
# Run the MCP server using stdio transport
mcp.run(transport="stdio")