AI-Travel-Concierge / weather_server.py
ABDALLALSWAITI's picture
Upload weather_server.py with huggingface_hub
7ed3831 verified
raw
history blame
2.63 kB
from mcp.server.fastmcp import FastMCP
import random
mcp = FastMCP("WeatherAgent")
@mcp.tool()
def get_forecast(city: str, dates: str) -> str:
"""Get the weather forecast for a city during specific dates."""
conditions = [
("Sunny", "☀️", "Perfect for outdoor activities!"),
("Partly Cloudy", "⛅", "Great weather overall"),
("Cloudy", "☁️", "Mild and comfortable"),
("Light Rain", "🌧️", "Bring an umbrella"),
("Rainy", "🌧️", "Pack rain gear"),
("Windy", "💨", "Layer up!")
]
results = []
results.append(f"🌤️ **Weather Forecast for {city}**")
results.append(f"📅 {dates}")
results.append("---")
for i in range(5):
cond, emoji, tip = random.choice(conditions)
temp_high = random.randint(20, 32)
temp_low = temp_high - random.randint(5, 10)
humidity = random.randint(40, 80)
results.append(f"")
results.append(f"**Day {i+1}:** {emoji} {cond}")
results.append(f" 🌡️ High: {temp_high}°C / Low: {temp_low}°C")
results.append(f" 💧 Humidity: {humidity}%")
results.append(f" 💡 {tip}")
results.append("")
results.append("---")
results.append("🧳 **Packing Tip:** Light layers, comfortable walking shoes, and don't forget sunscreen!")
return "\n".join(results)
@mcp.tool()
def get_packing_list(weather_conditions: str, activity_types: str) -> str:
"""Generate a packing list based on weather and activities."""
items = ["💳 Passport & ID", "🔌 Phone Charger", "🧼 Toiletries"]
# Weather based
if "Rain" in weather_conditions:
items.extend(["☔ Umbrella", "🧥 Raincoat", "🥾 Waterproof shoes"])
if "Sunny" in weather_conditions:
items.extend(["🕶️ Sunglasses", "🧴 Sunscreen SPF50", "🧢 Hat"])
if "Cold" in weather_conditions or "Windy" in weather_conditions:
items.extend(["🧥 Warm Jacket", "🧣 Scarf"])
# Activity based
if "Swimming" in activity_types or "Beach" in activity_types:
items.extend(["🩲 Swimsuit", "🏖️ Beach Towel", "🩴 Flip flops"])
if "Hiking" in activity_types or "Walking" in activity_types:
items.extend(["🥾 Hiking Shoes", "🎒 Backpack", "🧺 Water Bottle"])
if "Dinner" in activity_types or "Nightlife" in activity_types:
items.extend(["👔 Smart Casual Outfit", "👞 Dress Shoes"])
return "🧳 **Recommended Packing List:**\n\n" + "\n".join(f"• {item}" for item in items)
if __name__ == "__main__":
mcp.run()