{"ok":true,"site":{"host":"bluekeys-dev.github.io","url":"https://bluekeys-dev.github.io/webmcp_map/","type":"live","desc":"WebMCP Map","tools":[{"name":"search_places","kind":"answer","impl":"imperative","description":"Geocode a place name to coordinates. Use before navigating. Returns lat/lng candidates.","title":"Search places","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Place name, e.g. 'Eiffel Tower' or 'Kyoto'"},"limit":{"type":"number","description":"Max results (default 5)"}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp_map/"},{"name":"navigate_to_place","kind":"act","impl":"imperative","description":"Main navigation tool: search a place by name, fly the map there, drop a marker. Prefer this over fly_to when the user names a place.","title":"Navigate to place","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Place name, e.g. 'Tokyo Tower'"},"zoom":{"type":"number","description":"Target zoom 0-19 (default: auto — fits bbox for regions, 18.5 for POIs)"}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp_map/"},{"name":"agent_navigate","kind":"act","impl":"imperative","description":"Send a free-form command like 'take me to Paris' or '12.97, 77.59'. Agent parses intent and navigates.","title":"Natural-language navigation","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"command":{"type":"string","description":"Natural language command"}},"required":["command"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp_map/"},{"name":"fly_to","kind":"act","impl":"imperative","description":"Animated flyTo for exact coordinates. Use navigate_to_place for named places.","title":"Fly to coordinates","inputSchema":{"type":"object","properties":{"lat":{"type":"number","description":"Latitude -90..90"},"lon":{"type":"number","description":"Longitude -180..180"},"zoom":{"type":"number","description":"Zoom 0-19 (default 18.5, ~100m altitude)"},"altitude_m":{"type":"number","description":"Altitude meters; converted to zoom if zoom omitted"},"bearing":{"type":"number"},"pitch":{"type":"number"}},"required":["lat","lon"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp_map/"},{"name":"get_camera","kind":"answer","impl":"imperative","description":"Read current map camera: lat, lon, zoom, altitude, bearing, pitch.","title":"Get camera","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp_map/"},{"name":"set_camera","kind":"act","impl":"imperative","description":"Jump camera without animation. Any subset of fields.","title":"Set camera instantly","inputSchema":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"zoom":{"type":"number"},"bearing":{"type":"number"},"pitch":{"type":"number"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp_map/"},{"name":"add_marker","kind":"act","impl":"imperative","description":"Search the map provider for a named place and drop a pin at its returned coordinates. Never guess or provide coordinates.","title":"Add marker","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Place to search, e.g. 'Taj Mahal'"},"label":{"type":"string"},"color":{"type":"string"}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp_map/"},{"name":"add_markers","kind":"act","impl":"imperative","description":"Search the map provider for multiple named places and drop pins at the returned coordinates without moving or zooming the map. Never guess or provide coordinates.","title":"Add markers","inputSchema":{"type":"object","properties":{"places":{"type":"array","minItems":1,"items":{"type":"object","properties":{"query":{"type":"string","description":"Place to search, e.g. 'Taj Mahal'"},"label":{"type":"string"},"color":{"type":"string"}},"required":["query"]}}},"required":["places"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp_map/"},{"name":"remove_marker","kind":"act","impl":"imperative","description":"Remove one marker by id, or all when id is 'all' (requires confirm: true).","title":"Remove marker","inputSchema":{"type":"object","properties":{"id":{"type":"string"},"confirm":{"type":"boolean","description":"Must be true when id is 'all' (destructive)"}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp_map/"},{"name":"get_location_info","kind":"answer","impl":"imperative","description":"Camera + reverse-geocoded place name + markers. Answers 'where am I?'.","title":"Location info","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/webmcp_map/"},{"name":"search-places","kind":"act","impl":"declarative","description":"Search a place by name","inputSchema":{"type":"object","properties":{"q":{"type":"string"}}},"__source":"spec","__declarative":true,"page":"/webmcp_map/"}],"apiSurface":"spec","category":"Developer Tools","toolCount":11}}