{"ok":true,"site":{"host":"enchanted-realities.github.io","url":"https://enchanted-realities.github.io/aergebra/","type":"live","desc":"Agents and humans sharing live geometry instead of screenshots. The page registers 16 WebMCP tools (document.modelContext) so an agent can construct, label, point, and read the board as data — on…","tools":[{"name":"aergebra_create_point","kind":"act","impl":"imperative","description":"Create a point at board coordinates (x, y). Returns its id and name. Points are the atoms every other shape is built from.","inputSchema":{"type":"object","properties":{"x":{"type":"number","description":"x coordinate on the board"},"y":{"type":"number","description":"y coordinate on the board"}},"required":["x","y"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_create_segment","kind":"act","impl":"imperative","description":"Create a segment between two existing points.","inputSchema":{"type":"object","properties":{"a":{"type":"string","description":"First endpoint — an id like AER3, or the human name shown in the Inspector"},"b":{"type":"string","description":"Second endpoint — an id like AER3, or the human name shown in the Inspector"}},"required":["a","b"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_create_circle","kind":"act","impl":"imperative","description":"Create a circle from a center point and a point on its rim.","inputSchema":{"type":"object","properties":{"center":{"type":"string","description":"Center point — an id like AER3, or the human name shown in the Inspector"},"radiusPoint":{"type":"string","description":"A point on the rim — an id like AER3, or the human name shown in the Inspector"}},"required":["center","radiusPoint"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_create_polygon","kind":"act","impl":"imperative","description":"Create a polygon from three or more existing points, in order.","inputSchema":{"type":"object","properties":{"vertices":{"type":"array","items":{"type":"string","description":"Vertex point — an id like AER3, or the human name shown in the Inspector"},"minItems":3,"description":"Vertex points in order"}},"required":["vertices"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_group_objects","kind":"act","impl":"imperative","description":"Group two or more objects into a named cluster (a unit that can carry meaning and be framed or exported together).","inputSchema":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string","description":"Object — an id like AER3, or the human name shown in the Inspector"},"minItems":2,"description":"Objects to group"}},"required":["names"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_set_meaning","kind":"act","impl":"imperative","description":"Attach a human-readable meaning to an object or group (this is its visible label — objects show their MEANING, never an arbitrary letter). Pass no meaning to clear it.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Object or group — an id like AER3, or the human name shown in the Inspector"},"meaning":{"type":"string","description":"The meaning to attach; omit to clear"}},"required":["name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_set_state","kind":"act","impl":"imperative","description":"Set an object's status colour: charcoal = at rest, brown = blocked track (tracks only), orange = ready/where the hold sits, teal = free and willing. Omit state to clear. Illegal combinations are refused with an explanation.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Object — an id like AER3, or the human name shown in the Inspector"},"state":{"type":"string","enum":["charcoal","brown","orange","teal"],"description":"Status colour; omit to clear"}},"required":["name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_frame_group","kind":"act","impl":"imperative","description":"Draw a frame around an existing group, marking it as one settled unit on the board.","inputSchema":{"type":"object","properties":{"group":{"type":"string","description":"Group — an id like AER3, or the human name shown in the Inspector"}},"required":["group"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_highlight","kind":"act","impl":"imperative","description":"Point at things: light up the named objects so the human sees exactly what you are talking about. Use this instead of describing locations in prose — shared geometry beats 'the circle on the left'.","inputSchema":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string","description":"Object — an id like AER3, or the human name shown in the Inspector"},"minItems":1,"description":"Objects to light up"}},"required":["names"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_clear_highlight","kind":"act","impl":"imperative","description":"Turn off all highlights you switched on.","inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_get_algebra","kind":"answer","impl":"imperative","description":"Read the whole construction as algebra: one line per object with its definition, id and meaning. This is the board as DATA — use it instead of a screenshot.","inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_get_view","kind":"answer","impl":"imperative","description":"Read the camera as data: the board window, the content bounds, and how much of the view the content occupies. Use it to know what the human is currently looking at — never guess from pixels.","inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_get_receipts","kind":"answer","impl":"imperative","description":"Read the last n receipts — the append-only record of everything that happened in this document, human actions and agent actions on the same line.","inputSchema":{"type":"object","properties":{"n":{"type":"number","description":"How many recent receipts (default 20)"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_fit_view","kind":"act","impl":"imperative","description":"Auto-fit the camera to the content so everything constructed is visible and readable.","inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_load_document","kind":"act","impl":"imperative","description":"Replace the current document with a serialized Aergebra document (the JSON a save or serialize_document produced). The board rebuilds and auto-fits.","inputSchema":{"type":"object","properties":{"json":{"type":"string","description":"A serialized Aergebra document"}},"required":["json"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"},{"name":"aergebra_serialize_document","kind":"act","impl":"imperative","description":"Serialize the whole document (objects, groups, meanings, states, receipts) to JSON — the full construal, portable.","inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/aergebra/"}],"category":"Health & Education","favicon":"/favicons/enchanted-realities.github.io.svg","apiSurface":"spec","toolCount":16}}