{"ok":true,"site":{"host":"hustl-webmcp-challenge.vercel.app","url":"https://hustl-webmcp-challenge.vercel.app/","type":"live","desc":"Hustl connects training, recovery, nutrition, and coaching in one collaborative fitness experience.","tools":[{"name":"hustl_get_today_context","kind":"answer","impl":"imperative","description":"Read a bounded summary of today across training, recovery, nutrition, and coaching. Missing data is reported explicitly.","title":"Get today in Hustl","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"hustl_open_surface","kind":"act","impl":"imperative","description":"Navigate the visible Hustl app to Train, Recover, Nutrition, Coach, or Templates. This changes navigation only and writes no product data.","title":"Open a Hustl surface","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"surface":{"type":"string","enum":["train","recovery","nutrition","coach","templates"]}},"required":["surface"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"hustl_get_training_context","kind":"answer","impl":"imperative","description":"Read the bounded current training state shown by Hustl.","title":"Get training context","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"hustl_get_workout_history","kind":"answer","impl":"imperative","description":"Read a bounded page of completed workout summaries. Returns at most 20 rows and an opaque cursor for deliberately requesting older pages; it does not return notes or raw exercise sets.","title":"Get recent workout history","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":20,"default":10},"cursor":{"type":"string","minLength":1,"maxLength":1024}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"hustl_get_exercise_history","kind":"answer","impl":"imperative","description":"Read up to 20 exercises ranked by the user's completed training frequency and recency, with nullable typical sets and strength or cardio prescription. This aggregate contains no raw set timeline.","title":"Get exercise history","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":20,"default":10},"sinceDays":{"type":"integer","minimum":1,"maximum":3650,"default":365}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Health & Education","favicon":"/favicons/hustl-webmcp-challenge.vercel.app.png","apiSurface":"spec","toolCount":5}}