{"ok":true,"site":{"host":"kinetic-flow.netlify.app","url":"https://kinetic-flow.netlify.app/","type":"live","desc":"KineticFlow - Browser-native Vector Motion Design Studio with WebMCP human-agent co-creation","tools":[{"name":"getCanvasScene","kind":"answer","impl":"imperative","description":"Read the complete motion scene plus the human-selected layer and live playback state. Call this before editing so your changes continue the user’s current work.","title":"Inspect KineticFlow editor","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"addVectorShape","kind":"act","impl":"imperative","description":"Add a rectangle, circle, heart, star, or sparkle layer to the shared canvas. The new layer becomes the human’s current selection.","title":"Add a vector layer","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Friendly name for the layer (e.g. \"Pulse Halo\", \"CTA Heart\")"},"type":{"type":"string","enum":["rect","circle","path"],"description":"Primitive geometry type"},"x":{"type":"number","description":"X position in pixels"},"y":{"type":"number","description":"Y position in pixels"},"width":{"type":"number","description":"Width in pixels"},"height":{"type":"number","description":"Height in pixels"},"fill":{"type":"string","description":"Fill color in hex or CSS color"}},"required":["name","type","x","y","width","height","fill"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"updateVectorElement","kind":"act","impl":"imperative","description":"Update the selected layer, or a layer by ID, without replacing its animation tracks. Use this to collaboratively refine position, dimensions, color, rotation, scale, opacity, stroke, or name.","title":"Refine a vector layer","inputSchema":{"type":"object","properties":{"elementId":{"type":"string","description":"Layer ID. Omit to update the layer currently selected by the human."},"updates":{"type":"object","description":"One or more visual properties to change.","properties":{"name":{"type":"string","description":"New human-readable layer name"},"x":{"type":"number","description":"X position in pixels"},"y":{"type":"number","description":"Y position in pixels"},"width":{"type":"number","description":"Width in pixels","minimum":1},"height":{"type":"number","description":"Height in pixels","minimum":1},"fill":{"type":"string","description":"Fill color as a CSS color"},"stroke":{"type":"string","description":"Stroke color as a CSS color"},"strokeWidth":{"type":"number","description":"Stroke width in pixels","minimum":0},"rotation":{"type":"number","description":"Rotation in degrees"},"scale":{"type":"number","description":"Scale multiplier","minimum":0.01},"opacity":{"type":"number","description":"Opacity from 0 to 1","minimum":0,"maximum":1}},"minProperties":1,"additionalProperties":false}},"required":["updates"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"applyAnimationKeyframes","kind":"act","impl":"imperative","description":"Create or replace timed values on one animation track. Omit elementId to animate the layer currently selected by the human, enabling a direct handoff from canvas selection to agent action.","title":"Animate a vector layer","inputSchema":{"type":"object","properties":{"elementId":{"type":"string","description":"Layer ID. Omit to animate the layer currently selected by the human."},"property":{"type":"string","enum":["x","y","scale","rotation","opacity","width","height"],"description":"Property to animate"},"keyframes":{"type":"array","description":"Array of keyframe objects { timeMs, value, easing }","items":{"type":"object","additionalProperties":false,"properties":{"timeMs":{"type":"number","description":"Time in milliseconds","minimum":0},"value":{"type":"number","description":"Numeric property value"},"easing":{"type":"string","enum":["linear","easeIn","easeOut","easeInOut","spring"],"description":"Easing curve or spring physics"}},"required":["timeMs","value"]},"minItems":1,"maxItems":60}},"required":["property","keyframes"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"loadMotionPreset","kind":"act","impl":"imperative","description":"Replace the canvas with a polished KineticFlow motion recipe that the human and agent can continue refining together.","title":"Load a motion starting point","inputSchema":{"type":"object","properties":{"preset":{"type":"string","enum":["ctaPulse","bouncingHeart","staggeredEntry"],"description":"Built-in motion recipe to load"}},"required":["preset"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"controlPlayback","kind":"act","impl":"imperative","description":"Play, pause, or seek the live motion preview so the human can immediately review the agent’s changes on the shared canvas.","title":"Control the preview","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["play","pause","seek"],"description":"Playback command"},"timeMs":{"type":"number","description":"Target time in ms if action is \"seek\""}},"required":["action"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"exportScene","kind":"act","impl":"imperative","description":"Compile the current shared scene into reusable CSS/HTML, standalone animated SVG, or Lottie JSON. This does not modify the editor.","title":"Export production animation","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"format":{"type":"string","enum":["css","svg","lottie"],"description":"Export format target"}},"required":["format"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"favicon":"/favicons/kinetic-flow.netlify.app.svg","apiSurface":"spec","category":"Developer Tools","toolCount":7}}