plan_party_route
Plan an optimized party-hopping route for KubeCon Europe evenings. Get parties sorted by time with location details to create an efficient Amsterdam itinerary based on day and preferences.
Instructions
Plan an optimized party-hopping route for an evening.
Returns parties for the requested day sorted by time, with location details to help plan an efficient route through Amsterdam.
Args: day: Day name — "monday", "tuesday", "wednesday", or "thursday". preferences: Optional preferences like "networking", "food", "near venue", "open bar".
Returns: JSON with sorted party timeline and location context for route planning.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | ||
| preferences | No |
Implementation Reference
- src/kubecon_eu_mcp/server.py:160-195 (handler)The plan_party_route tool handler, registered with @mcp.tool(), which calculates an optimized route based on party data.
@mcp.tool() async def plan_party_route(day: str, preferences: str = "") -> str: """Plan an optimized party-hopping route for an evening. Returns parties for the requested day sorted by time, with location details to help plan an efficient route through Amsterdam. Args: day: Day name — "monday", "tuesday", "wednesday", or "thursday". preferences: Optional preferences like "networking", "food", "near venue", "open bar". Returns: JSON with sorted party timeline and location context for route planning. """ parties = await data_service.get_parties_for_day(day) if not parties: return json.dumps({"message": f"No parties found for {day}."}) # Sort by time (basic sort — times are like "6-9PM", "7PM-1AM") route = { "day": day, "total_parties": len(parties), "tip": ( "Most parties near RAI Amsterdam are in the Europaplein/Zuidas area " "(walking distance). Parties in central Amsterdam (Keizersgracht, Amstel) " "are 15-25 min by tram/metro from RAI. The last metro runs around 00:30." ), "parties": [p.to_dict() for p in parties], "key_venues": { "near_rai": "Strandzuid, Amstel Boathouse, nhow Hotel, Nela Restaurant — all within 10 min walk of RAI", "central": "Heineken Experience, Escape DeLux, Oche — 20-25 min by tram from RAI", "canal_area": "Elasticsearch office (Keizersgracht) — 25 min by tram", }, } return json.dumps(route, indent=2)