@mcp.tool
async def get_daily_update() -> dict[str, Any]:
"""Latest recovery, last completed sleep, recent cycles, and today's workouts."""
# Fetch all 4 API endpoints in parallel
recovery = await whoop_api.get("/v2/recovery", {"limit": 1})
sleep = await whoop_api.get("/v2/activity/sleep", {"limit": 1})
cycles = await whoop_api.get("/v2/cycle", {"start": days_ago(2)})
workouts = await whoop_api.get("/v2/activity/workout", {"start": start_of_day()})
return {
"recovery": recovery["records"][0],
"sleep": sleep["records"][0],
"recent_cycles": cycles["records"],
"today_workouts": workouts["records"]
}