← WebMCP Directory

Tool tree

kinetic-flow.netlify.app

Developer ToolsTools verified
Website
KineticFlow - Browser-native Vector Motion Design Studio with WebMCP human-agent co-creation
Explore capabilities
    getCanvasSceneAnswer

    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.

    View tool JSON
    {
      "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.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      }
    }
    addVectorShapeAction

    Add a rectangle, circle, heart, star, or sparkle layer to the shared canvas. The new layer becomes the human’s current selection.

    View tool JSON
    {
      "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.",
      "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
      }
    }
    updateVectorElementAction

    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.

    View tool JSON
    {
      "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.",
      "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
      }
    }
    applyAnimationKeyframesAction

    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.

    View tool JSON
    {
      "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.",
      "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
      }
    }
    loadMotionPresetAction

    Replace the canvas with a polished KineticFlow motion recipe that the human and agent can continue refining together.

    View tool JSON
    {
      "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.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "preset": {
            "type": "string",
            "enum": [
              "ctaPulse",
              "bouncingHeart",
              "staggeredEntry"
            ],
            "description": "Built-in motion recipe to load"
          }
        },
        "required": [
          "preset"
        ],
        "additionalProperties": false
      }
    }
    controlPlaybackAction

    Play, pause, or seek the live motion preview so the human can immediately review the agent’s changes on the shared canvas.

    View tool JSON
    {
      "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.",
      "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
      }
    }
    exportSceneAction

    Compile the current shared scene into reusable CSS/HTML, standalone animated SVG, or Lottie JSON. This does not modify the editor.

    View tool JSON
    {
      "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.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "css",
              "svg",
              "lottie"
            ],
            "description": "Export format target"
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    }