{"ok":true,"site":{"host":"homewheel-webmcp.andreabalbo94.chatgpt.site","url":"https://homewheel-webmcp.andreabalbo94.chatgpt.site/","type":"live","desc":"A wheelchair-aware room planner where a WebMCP agent proposes measurable changes and the person retains final authority.","tools":[{"name":"get_workspace_state","kind":"answer","impl":"imperative","description":"Read the complete HomeWheel workspace: room and furniture geometry, every destination route and approach zone, personal mobility profile and priorities, protected or stability-critical constraints, prior rejection feedback, and pending proposal. Use this first.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_mobility_profile","kind":"act","impl":"imperative","description":"Update the personal movement envelope used by all route simulations. Only set values the person explicitly provides. This is personal planning, not medical or building-code certification.","inputSchema":{"type":"object","properties":{"deviceLabel":{"type":"string","description":"The person's preferred name for their mobility device."},"chairWidth":{"type":"number","minimum":45,"maximum":110,"description":"Mobility device width in centimeters."},"minimumPassage":{"type":"number","minimum":65,"maximum":150,"description":"Person-preferred minimum clear passage in centimeters."},"turningDiameter":{"type":"number","minimum":90,"maximum":220,"description":"Preferred turning diameter in centimeters."},"priorities":{"type":"array","description":"The person's explicit decision priorities for proposals.","items":{"type":"string","enum":["transfer-safety","fewest-moves","daily-reach","daylight"]}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"simulate_routes","kind":"act","impl":"imperative","description":"Measure every required and optional route in the current live layout, including reachability, path length, estimated minimum clearance, clear transfer/work/reach zones, and whether a turning spot exists.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"find_barriers","kind":"answer","impl":"imperative","description":"Identify movable furniture that causes required route failures while preserving locked objects and reporting the person's latest rejected-plan feedback.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_layout_proposal","kind":"act","impl":"imperative","description":"Create a visible, collision-checked preview of one to five exact furniture moves. This never changes the live room: the person must accept it in the page. Honor protected positions, stability-critical furniture, approach zones, personal priorities, and latest feedback.","inputSchema":{"type":"object","properties":{"title":{"type":"string","description":"Concise proposal name."},"rationale":{"type":"string","description":"Explain why these moves improve the person's required routes."},"moves":{"type":"array","minItems":1,"maxItems":5,"items":{"type":"object","properties":{"object_id":{"type":"string"},"x_cm":{"type":"number"},"y_cm":{"type":"number"},"rotation_degrees":{"type":"number","enum":[0,90]},"reason":{"type":"string","description":"User-visible reason for this exact move."}},"required":["object_id","x_cm","y_cm","reason"]}},"tradeoffs":{"type":"array","maxItems":4,"items":{"type":"string"}},"responds_to_feedback_id":{"type":"string","description":"Latest feedback id when this proposal revises a rejected option."}},"required":["title","rationale","moves"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_object_constraint","kind":"act","impl":"imperative","description":"Protect or release a furniture position and optionally mark it stability-critical after the person states a lived preference such as an outlet, transfer side, transfer stability, drawer access, light, or sentimental placement.","inputSchema":{"type":"object","properties":{"object_id":{"type":"string"},"locked":{"type":"boolean"},"stability_critical":{"type":"boolean","description":"Whether movement could compromise stability during transfers or daily use."},"reason":{"type":"string","description":"Why this position matters to the person."}},"required":["object_id","locked","reason"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare_layouts","kind":"act","impl":"imperative","description":"Show the room's baseline positions and return everything that changed.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"restore_layout","kind":"act","impl":"imperative","description":"Restore the scenario baseline or a history snapshot. Restoration is visible and logged.","inputSchema":{"type":"object","properties":{"snapshot_id":{"type":"string","description":"Use 'baseline' or a snapshot id from get_workspace_state."}},"required":["snapshot_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"favicon":"/favicons/homewheel-webmcp.andreabalbo94.chatgpt.site.png","apiSurface":"spec","category":"Health & Education","toolCount":8}}