{"ok":true,"site":{"host":"grenz-webmcp.netlify.app","url":"https://grenz-webmcp.netlify.app/","type":"live","desc":"A WebMCP demo: a smart home an AI agent can run — under a deny-by-default policy, with human approval, argument constraints and a live audit timeline.","tools":[{"name":"get_house_state","kind":"answer","impl":"imperative","description":"Read the current state of every device: lights, thermostat, door lock, alarm and active scene.","title":"See how the house is set","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_doorbell_events","kind":"answer","impl":"imperative","description":"Read today's intercom log from the front door: who called, when, and what they said.","title":"Read who came to the door","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_thermostat","kind":"act","impl":"imperative","description":"Set the target temperature, in degrees Celsius.","title":"Change the temperature","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"targetC":{"type":"number","description":"Target temperature, 10-30 °C"}},"required":["targetC"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"toggle_light","kind":"act","impl":"imperative","description":"Turn one light on or off. Omit `on` to flip whatever it currently is.","title":"Switch a light","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"lightId":{"type":"string","description":"porch, living, kitchen, bedroom or hall"},"on":{"type":"boolean","description":"Desired state; omitted means flip"}},"required":["lightId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_oven","kind":"act","impl":"imperative","description":"Start the oven at a temperature, for a number of minutes. Refuses while the house is set to Away.","title":"Run the oven","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"targetC":{"type":"number","description":"Oven temperature, 50-220 °C"},"minutes":{"type":"number","description":"How long to run for, 1-45"}},"required":["targetC","minutes"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_scene","kind":"act","impl":"imperative","description":"Apply a lighting and temperature scene: home, away, movie or goodnight.","title":"Set a scene","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"scene":{"type":"string","description":"home, away, movie or goodnight"}},"required":["scene"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"lock_door","kind":"act","impl":"imperative","description":"Lock the front door. Always safe; locking never needs permission.","title":"Lock the front door","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"doorId":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"unlock_door","kind":"act","impl":"imperative","description":"Unlock the front door. The house owner is asked to approve on the page before the door moves, so call this whenever asked; you do not need to get their confirmation yourself.","title":"Unlock the front door","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"doorId":{"type":"string","description":"front or back"}},"required":["doorId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"disarm_alarm","kind":"act","impl":"imperative","description":"Disarm the burglar alarm.","title":"Disarm the alarm","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"grant_permanent_access","kind":"act","impl":"imperative","description":"Give a named person or company standing access to this home.","title":"Give someone permanent access","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"who":{"type":"string","description":"Who to admit, permanently"}},"required":["who"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","favicon":"/favicons/grenz-webmcp.netlify.app.svg","apiSurface":"spec","toolCount":10}}