{"ok":true,"site":{"host":"lumlon-webmcp.vercel.app","url":"https://lumlon-webmcp.vercel.app/","type":"live","desc":"A WebMCP demo: agents read live air quality and official hazard alerts for all 77 Thai provinces, and can set watches that warn when a reading crosses a threshold.","tools":[{"name":"search_locations","kind":"answer","impl":"imperative","description":"Find a place by name and return its province code. Accepts Thai or English, loose spelling, and prefixes like \"จ.\" or \"อ.\". Call this first when the user names a place, then pass the returned code to the other tools. Works for locations in Thailand (77 provinces).","title":"Find a place in Thailand","annotations":{"readOnlyHint":true,"idempotentHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Place name as the user said it, Thai or English. Loose spelling is fine."}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_environment_snapshot","kind":"answer","impl":"imperative","description":"Read the current environment for one place: air quality, short forecast, and official hazard alerts. Every block carries the time it was observed and the source it came from, and anything missing is listed in \"gaps\" rather than hidden. Hazard alerts come from a dated snapshot: each one carries its own \"expires\" time, so check it before calling an alert current. Works for locations in Thailand (77 provinces).","title":"Check air and hazards","annotations":{"readOnlyHint":true,"idempotentHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"location":{"type":"string","description":"Province name, or the 2-digit code from search_locations, e.g. \"Chiang Mai\" or \"50\"."}},"required":["location"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_safety_briefing","kind":"answer","impl":"imperative","description":"Decide whether an activity is advisable right now at one place, and explain why. Returns a level (good, caution, avoid, unknown) with reasons that quote the real readings and any official alert in effect. Prefer this over get_environment_snapshot when the user asks whether they should go out. Answers are for locations in Thailand (77 provinces).","title":"Is it safe to go out?","annotations":{"readOnlyHint":true,"idempotentHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"location":{"type":"string","description":"Province name, or the 2-digit code from search_locations, e.g. \"Chiang Mai\" or \"50\"."},"activity":{"type":"string","description":"What the person wants to do. Defaults to general if not given.","enum":["general","outdoor_exercise","children_outdoors","travel"]}},"required":["location"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_watch","kind":"act","impl":"imperative","description":"Save a rule that watches one place and warns the person when a reading crosses their threshold, for example PM2.5 above 75. The rule shows up on screen straight away and is checked against live data while the page is open. Works for locations in Thailand (77 provinces).","title":"Set up a watch","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"location":{"type":"string","description":"Province name, or the 2-digit code from search_locations, e.g. \"Chiang Mai\" or \"50\"."},"metric":{"type":"string","description":"What to watch. Defaults to pm25.","enum":["pm25","aqi"]},"threshold":{"type":"number","description":"Warn when the reading goes above this value.","minimum":1,"maximum":500}},"required":["location","threshold"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_watches","kind":"answer","impl":"imperative","description":"List the watch rules saved in this browser, with the place, the metric, the threshold and when each rule last warned. Use it before delete_watch so the right rule gets removed. Covers rules created for locations in Thailand (77 provinces).","title":"See my watches","annotations":{"readOnlyHint":true,"idempotentHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete_watch","kind":"transact","impl":"imperative","description":"Delete one saved watch rule by its id. Call list_watches first to get the id. Removing a rule stops its warnings immediately. Works on rules created for locations in Thailand (77 provinces).","title":"Remove a watch","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"watch_id":{"type":"string","description":"The id returned by list_watches or create_watch."}},"required":["watch_id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"favicon":"/favicons/lumlon-webmcp.vercel.app.svg","apiSurface":"spec","category":"Health & Education","toolCount":6}}