← WebMCP Directory

Tool tree

styles.krnl.studio

Media & PersonalTools verified
Website
Drop a screenshot, pick one of 95 templates, export a video. Device mockups, kinetic type and camera moves, free and open source. Your AI can use it too, through MCP.
Explore capabilities
    styles_make_componentAction

    Moves selected layers and their motion into a linked component, replacing them with an instance. Like Group, uses selected siblings in the first selected layer's parent and leaves other parents alone. Adjacent layers keep their appearance; non-adjacent layers change stacking as Group does, at the first selected sibling's stack position. Returns componentId and instanceId.

    View tool JSON
    {
      "name": "styles_make_component",
      "kind": "act",
      "impl": "imperative",
      "description": "Moves selected layers and their motion into a linked component, replacing them with an instance. Like Group, uses selected siblings in the first selected layer's parent and leaves other parents alone. Adjacent layers keep their appearance; non-adjacent layers change stacking as Group does, at the first selected sibling's stack position. Returns componentId and instanceId.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "description": "Artboard id. Defaults to the first artboard.",
            "type": "string"
          },
          "layerIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "layerIds"
        ]
      },
      "page": "/app"
    }
    styles_add_instanceAction

    Places a linked component at its own size, centred by default. Returns instanceId.

    View tool JSON
    {
      "name": "styles_add_instance",
      "kind": "act",
      "impl": "imperative",
      "description": "Places a linked component at its own size, centred by default. Returns instanceId.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "description": "Artboard id. Defaults to the first artboard.",
            "type": "string"
          },
          "componentId": {
            "type": "string"
          },
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          },
          "width": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "height": {
            "type": "number",
            "exclusiveMinimum": 0
          }
        },
        "required": [
          "componentId"
        ]
      },
      "page": "/app"
    }
    styles_update_instanceAction

    Merges layer overrides and changes offset (ms), loop or the linked component. resetOverrides clears all overrides first; an empty layer override clears that layer.

    View tool JSON
    {
      "name": "styles_update_instance",
      "kind": "act",
      "impl": "imperative",
      "description": "Merges layer overrides and changes offset (ms), loop or the linked component. resetOverrides clears all overrides first; an empty layer override clears that layer.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "description": "Artboard id. Defaults to the first artboard.",
            "type": "string"
          },
          "layerId": {
            "type": "string"
          },
          "overrides": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {},
            "description": "Fields/example: describe_schema {domain:\"command\",name:\"update_instance\"}, property overrides."
          },
          "offset": {
            "type": "number"
          },
          "loop": {
            "type": "boolean"
          },
          "componentId": {
            "type": "string"
          },
          "resetOverrides": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "layerId"
        ]
      },
      "page": "/app"
    }
    styles_list_componentsAnswer

    Lists each component id, name, width, height and number of instances across the design.

    View tool JSON
    {
      "name": "styles_list_components",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists each component id, name, width, height and number of instances across the design.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {}
      },
      "page": "/app"
    }
    styles_set_documentAction

    Sets name, export credit (default on), 3D mode, watermark or film transitions. Fetch nested fields with describe_schema domain:command name:set_document.

    View tool JSON
    {
      "name": "styles_set_document",
      "kind": "act",
      "impl": "imperative",
      "description": "Sets name, export credit (default on), 3D mode, watermark or film transitions. Fetch nested fields with describe_schema domain:command name:set_document.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "credit": {
            "type": "boolean"
          },
          "mode3d": {
            "type": "boolean"
          },
          "mark": {
            "anyOf": [
              {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {},
                "description": "Fields/example: describe_schema {domain:\"command\",name:\"set_document\"}, property mark."
              },
              {
                "type": "null"
              }
            ]
          },
          "film": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {},
            "description": "Fields/example: describe_schema {domain:\"command\",name:\"set_document\"}, property film."
          }
        }
      },
      "page": "/app"
    }
    styles_add_artboardAction

    Adds an artboard (one image or video when you export). Give a format id (x-16x9, x-1x1, x-4x5, x-9x16, x-header, ig-post, ig-square, ig-story, ...) or a width and height. Optionally copy another artboard.

    View tool JSON
    {
      "name": "styles_add_artboard",
      "kind": "act",
      "impl": "imperative",
      "description": "Adds an artboard (one image or video when you export). Give a format id (x-16x9, x-1x1, x-4x5, x-9x16, x-header, ig-post, ig-square, ig-story, ...) or a width and height. Optionally copy another artboard.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "format": {
            "type": "string"
          },
          "width": {
            "type": "integer",
            "minimum": 16,
            "maximum": 7680
          },
          "height": {
            "type": "integer",
            "minimum": 16,
            "maximum": 7680
          },
          "name": {
            "type": "string"
          },
          "duration": {
            "description": "ms",
            "type": "number",
            "minimum": 100,
            "maximum": 300000
          },
          "copyFrom": {
            "description": "Artboard id to duplicate.",
            "type": "string"
          }
        }
      },
      "page": "/app"
    }
    styles_update_artboardAction

    Changes an artboard: name, width, height (or format id), duration (ms), fps, background, bgFx {noise, blur, vignette}, camera {zoom, x, y, rotation, rx, ry}, vfx {type, intensity}. Resizing lays the design out again for the new shape (keepLayout false leaves layers where they are).

    View tool JSON
    {
      "name": "styles_update_artboard",
      "kind": "act",
      "impl": "imperative",
      "description": "Changes an artboard: name, width, height (or format id), duration (ms), fps, background, bgFx {noise, blur, vignette}, camera {zoom, x, y, rotation, rx, ry}, vfx {type, intensity}. Resizing lays the design out again for the new shape (keepLayout false leaves layers where they are).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "description": "Artboard id. Defaults to the first artboard.",
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "width": {
            "type": "integer",
            "minimum": 16,
            "maximum": 7680
          },
          "height": {
            "type": "integer",
            "minimum": 16,
            "maximum": 7680
          },
          "duration": {
            "type": "number",
            "minimum": 100,
            "maximum": 300000
          },
          "fps": {
            "type": "integer",
            "minimum": 1,
            "maximum": 120
          },
          "background": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {},
            "description": "Fields/example: describe_schema {domain:\"command\",name:\"update_artboard\"}, property background."
          },
          "bgFx": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {},
            "description": "Fields/example: describe_schema {domain:\"command\",name:\"update_artboard\"}, property bgFx."
          },
          "backgroundPreset": {
            "type": [
              "string",
              "null"
            ]
          },
          "camera": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {},
            "description": "Fields/example: describe_schema {domain:\"command\",name:\"update_artboard\"}, property camera."
          },
          "vfx": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {},
            "description": "Fields/example: describe_schema {domain:\"command\",name:\"update_artboard\"}, property vfx."
          },
          "keepLayout": {
            "description": "When resizing, scale layer positions to the new size (default true).",
            "type": "boolean"
          }
        }
      },
      "page": "/app"
    }
    styles_add_layerAction

    Adds a layer on top, at index, or inside parentId. Requires layer.type; fetch its fields/defaults with describe_schema domain:layer. Returns layerId.

    View tool JSON
    {
      "name": "styles_add_layer",
      "kind": "act",
      "impl": "imperative",
      "description": "Adds a layer on top, at index, or inside parentId. Requires layer.type; fetch its fields/defaults with describe_schema domain:layer. Returns layerId.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "description": "Artboard id. Defaults to the first artboard.",
            "type": "string"
          },
          "layer": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "rect",
                  "ellipse",
                  "star",
                  "path",
                  "text",
                  "image",
                  "video",
                  "device",
                  "code",
                  "chart",
                  "instance",
                  "group"
                ]
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": {},
            "description": "Fields/defaults/example: describe_schema {domain:\"layer\",name:<type>}."
          },
          "parentId": {
            "type": "string"
          },
          "index": {
            "description": "0 is the bottom. Default: top.",
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "layer"
        ]
      },
      "page": "/app"
    }
    styles_update_layerAction

    Changes any properties of a layer (position x/y is the centre, width, height, rotation, scale, opacity 0..1, rx/ry tilt in degrees, shadow, blur, fill, text, style, media, model, finish, frame...). Nested objects like style, media, browser and shadow are merged, so you can send only what changes.

    View tool JSON
    {
      "name": "styles_update_layer",
      "kind": "act",
      "impl": "imperative",
      "description": "Changes any properties of a layer (position x/y is the centre, width, height, rotation, scale, opacity 0..1, rx/ry tilt in degrees, shadow, blur, fill, text, style, media, model, finish, frame...). Nested objects like style, media, browser and shadow are merged, so you can send only what changes.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "description": "Artboard id. Defaults to the first artboard.",
            "type": "string"
          },
          "layerId": {
            "type": "string"
          },
          "patch": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {},
            "description": "Fields/example: describe_schema {domain:\"command\",name:\"update_layer\"}, property patch."
          }
        },
        "required": [
          "layerId",
          "patch"
        ]
      },
      "page": "/app"
    }
    styles_delete_layersSensitive Action

    Deletes layers (and their animations).

    View tool JSON
    {
      "name": "styles_delete_layers",
      "kind": "transact",
      "impl": "imperative",
      "description": "Deletes layers (and their animations).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "description": "Artboard id. Defaults to the first artboard.",
            "type": "string"
          },
          "layerIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "layerIds"
        ]
      },
      "page": "/app"
    }
    styles_add_animationAction

    Animates a layer or @artboard camera. Requires anim.kind, target, start, end; end > start. Fetch kind fields with describe_schema domain:animation. Returns animId.

    View tool JSON
    {
      "name": "styles_add_animation",
      "kind": "act",
      "impl": "imperative",
      "description": "Animates a layer or @artboard camera. Requires anim.kind, target, start, end; end > start. Fetch kind fields with describe_schema domain:animation. Returns animId.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "description": "Artboard id. Defaults to the first artboard.",
            "type": "string"
          },
          "anim": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "prop",
                  "preset",
                  "text",
                  "counter",
                  "path"
                ]
              },
              "target": {
                "type": "string"
              },
              "start": {
                "type": "number"
              },
              "end": {
                "type": "number"
              }
            },
            "required": [
              "kind",
              "target",
              "start",
              "end"
            ],
            "additionalProperties": {},
            "description": "Kind fields/example: describe_schema {domain:\"animation\",name:<kind>}."
          },
          "replaceId": {
            "description": "Replace this animation in the same command.",
            "type": "string"
          }
        },
        "required": [
          "anim"
        ]
      },
      "page": "/app"
    }
    styles_list_layersAnswer

    Lists the layers of an artboard (id, type, name, box) from bottom to top, flattened, with their parent group.

    View tool JSON
    {
      "name": "styles_list_layers",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists the layers of an artboard (id, type, name, box) from bottom to top, flattened, with their parent group.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "description": "Artboard id. Defaults to the first artboard.",
            "type": "string"
          }
        }
      },
      "page": "/app"
    }
    styles_describe_schemaAnswer

    Returns detailed JSON input schema, example and shared vocabulary on demand. Domains: layer (type or patch), animation (kind or patch), document (doc/artboard/background/bgFx/camera/mark/film/asset/audio/fill/textStyle/easing), command (any edit_design verb). Omit name to list topics. Fetch before constructing complex payloads; schemas include all supported fields and constraints.

    View tool JSON
    {
      "name": "styles_describe_schema",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns detailed JSON input schema, example and shared vocabulary on demand. Domains: layer (type or patch), animation (kind or patch), document (doc/artboard/background/bgFx/camera/mark/film/asset/audio/fill/textStyle/easing), command (any edit_design verb). Omit name to list topics. Fetch before constructing complex payloads; schemas include all supported fields and constraints.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "enum": [
              "layer",
              "animation",
              "document",
              "command"
            ]
          },
          "name": {
            "description": "Omit to list names. layer: type or patch; animation: kind or patch; document: part; command: editing verb.",
            "type": "string"
          }
        },
        "required": [
          "domain"
        ]
      },
      "page": "/app"
    }
    styles_list_templatesAction

    Lists templates (id, name, category, format, tags). Start with create_design {template:id}.

    View tool JSON
    {
      "name": "styles_list_templates",
      "kind": "act",
      "impl": "imperative",
      "description": "Lists templates (id, name, category, format, tags). Start with create_design {template:id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "category": {
            "type": "string"
          }
        }
      },
      "page": "/app"
    }
    styles_list_formatsAnswer

    Lists sizes for artboards. Use a format id with create_design or add_artboard.

    View tool JSON
    {
      "name": "styles_list_formats",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists sizes for artboards. Use a format id with create_design or add_artboard.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {}
      },
      "page": "/app"
    }
    styles_list_devicesAnswer

    Lists device model ids, finishes and screen sizes for add_layer.

    View tool JSON
    {
      "name": "styles_list_devices",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists device model ids, finishes and screen sizes for add_layer.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {}
      },
      "page": "/app"
    }
    styles_list_layoutsAnswer

    Lists device layouts for edit_design → apply_layout.

    View tool JSON
    {
      "name": "styles_list_layouts",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists device layouts for edit_design → apply_layout.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {}
      },
      "page": "/app"
    }
    styles_list_backgroundsAnswer

    Lists up to 150 background presets. Pass bg and fx to update_artboard.

    View tool JSON
    {
      "name": "styles_list_backgrounds",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists up to 150 background presets. Pass bg and fx to update_artboard.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "collection": {
            "type": "string"
          }
        }
      },
      "page": "/app"
    }
    styles_list_fontsAnswer

    Lists installed font families and weights for text style. Choose an exact family name.

    View tool JSON
    {
      "name": "styles_list_fonts",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists installed font families and weights for text style. Choose an exact family name.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {}
      },
      "page": "/app"
    }
    styles_replace_designAction

    Restores a full validated document. get_design.docId becomes doc.id in the snapshot. Undo brings back the previous design.

    View tool JSON
    {
      "name": "styles_replace_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Restores a full validated document. get_design.docId becomes doc.id in the snapshot. Undo brings back the previous design.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "doc": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {},
            "description": "Full snapshot; describe_schema {domain:\"document\",name:\"doc\"}. Restore get_design with doc.id = docId."
          }
        },
        "required": [
          "doc"
        ]
      },
      "page": "/app"
    }
    styles_make_release_kitAction

    Makes four editable artboards from supplied release notes and an optional screenshotAssetId already in this design. No content is fetched. An existing kit updates its common content while preserving layout. Otherwise it replaces the current design; Undo restores it. Submit all common fields on updates; omitted optional fields reset to defaults. Returns named artboard ids; render Release motion as video.

    View tool JSON
    {
      "name": "styles_make_release_kit",
      "kind": "act",
      "impl": "imperative",
      "description": "Makes four editable artboards from supplied release notes and an optional screenshotAssetId already in this design. No content is fetched. An existing kit updates its common content while preserving layout. Otherwise it replaces the current design; Undo restores it. Submit all common fields on updates; omitted optional fields reset to defaults. Returns named artboard ids; render Release motion as video.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "product": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "version": {
            "default": "",
            "type": "string",
            "maxLength": 24
          },
          "headline": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "summary": {
            "default": "",
            "type": "string",
            "maxLength": 100
          },
          "notes": {
            "minItems": 1,
            "maxItems": 3,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80
            }
          },
          "url": {
            "default": "",
            "type": "string",
            "maxLength": 160
          },
          "accent": {
            "default": "#4263eb",
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "screenshotAssetId": {
            "default": null,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "product",
          "headline",
          "notes"
        ]
      },
      "page": "/app"
    }
    styles_make_post_filmAction

    Makes an animated social post card from supplied text, name and handle. Nothing is fetched.

    View tool JSON
    {
      "name": "styles_make_post_film",
      "kind": "act",
      "impl": "imperative",
      "description": "Makes an animated social post card from supplied text, name and handle. Nothing is fetched.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1200
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string"
          },
          "verified": {
            "type": "boolean"
          },
          "date": {
            "type": "string"
          },
          "likes": {
            "type": "number"
          },
          "reposts": {
            "type": "number"
          },
          "replies": {
            "type": "number"
          },
          "views": {
            "type": "number"
          },
          "theme": {
            "type": "string",
            "enum": [
              "dark",
              "light"
            ]
          },
          "accent": {
            "type": "string"
          },
          "format": {
            "type": "string",
            "enum": [
              "x-16x9",
              "x-1x1",
              "x-4x5",
              "x-9x16"
            ]
          }
        },
        "required": [
          "text",
          "name",
          "handle"
        ]
      },
      "page": "/app"
    }
    styles_make_milestoneAction

    Makes an animated celebration of a number, with optional growth history.

    View tool JSON
    {
      "name": "styles_make_milestone",
      "kind": "act",
      "impl": "imperative",
      "description": "Makes an animated celebration of a number, with optional growth history.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "value": {
            "type": "number"
          },
          "label": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "suffix": {
            "type": "string"
          },
          "decimals": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4
          },
          "kicker": {
            "type": "string"
          },
          "accent": {
            "type": "string"
          },
          "history": {
            "maxItems": 60,
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "format": {
            "type": "string",
            "enum": [
              "x-16x9",
              "x-1x1",
              "x-4x5",
              "x-9x16"
            ]
          }
        },
        "required": [
          "value",
          "label"
        ]
      },
      "page": "/app"
    }
    styles_make_code_videoAction

    Makes an animated code window from supplied code.

    View tool JSON
    {
      "name": "styles_make_code_video",
      "kind": "act",
      "impl": "imperative",
      "description": "Makes an animated code window from supplied code.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 6000
          },
          "lang": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "caption": {
            "type": "string"
          },
          "theme": {
            "type": "string"
          },
          "format": {
            "type": "string",
            "enum": [
              "x-16x9",
              "x-1x1",
              "x-4x5",
              "x-9x16"
            ]
          }
        },
        "required": [
          "code"
        ]
      },
      "page": "/app"
    }
    styles_render_videoAction

    Renders MP4, WebM or GIF in this browser and returns a browser-local blob URL. Default short side 720, fps 30. film:true plays all artboards.

    View tool JSON
    {
      "name": "styles_render_video",
      "kind": "act",
      "impl": "imperative",
      "description": "Renders MP4, WebM or GIF in this browser and returns a browser-local blob URL. Default short side 720, fps 30. film:true plays all artboards.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "type": "string"
          },
          "film": {
            "default": false,
            "type": "boolean"
          },
          "format": {
            "default": "mp4",
            "type": "string",
            "enum": [
              "mp4",
              "webm",
              "gif"
            ]
          },
          "shortSide": {
            "default": 720,
            "type": "number",
            "minimum": 240,
            "maximum": 1080
          },
          "fps": {
            "default": 30,
            "type": "number",
            "minimum": 10,
            "maximum": 30
          }
        }
      },
      "page": "/app"
    }
    styles_export_lottieAction

    Exports Lottie JSON in this browser. Default Light scale 0.5; Sharp scale 1. Returns a browser-local blob URL and notes.

    View tool JSON
    {
      "name": "styles_export_lottie",
      "kind": "act",
      "impl": "imperative",
      "description": "Exports Lottie JSON in this browser. Default Light scale 0.5; Sharp scale 1. Returns a browser-local blob URL and notes.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "type": "string"
          },
          "scale": {
            "default": 0.5,
            "type": "number",
            "minimum": 0.25,
            "maximum": 1
          }
        }
      },
      "page": "/app"
    }
    styles_get_designAction

    Reads the open design. Browser designId is its local document id; remote designIds are different.

    View tool JSON
    {
      "name": "styles_get_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Reads the open design. Browser designId is its local document id; remote designIds are different.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {}
      },
      "page": "/app"
    }
    styles_create_designAction

    Starts an empty design or a template in this editor. Undo brings back the previous design. Default format x-4x5.

    View tool JSON
    {
      "name": "styles_create_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Starts an empty design or a template in this editor. Undo brings back the previous design. Default format x-4x5.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "template": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "background": {
            "type": "string"
          }
        }
      },
      "page": "/app"
    }
    styles_apply_templateAction

    Replaces the open design with a template. Media is kept; undo restores the previous design.

    View tool JSON
    {
      "name": "styles_apply_template",
      "kind": "act",
      "impl": "imperative",
      "description": "Replaces the open design with a template. Media is kept; undo restores the previous design.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ]
      },
      "page": "/app"
    }
    styles_edit_designAction

    Applies up to 80 edits atomically, all or none, as a single undo step. steps.command lists every verb; fetch input fields/examples with describe_schema domain:command name:<verb>.

    View tool JSON
    {
      "name": "styles_edit_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Applies up to 80 edits atomically, all or none, as a single undo step. steps.command lists every verb; fetch input fields/examples with describe_schema domain:command name:<verb>.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "steps": {
            "minItems": 1,
            "maxItems": 80,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "command": {
                  "type": "string",
                  "enum": [
                    "make_component",
                    "add_instance",
                    "update_instance",
                    "detach_instance",
                    "delete_component",
                    "rename_component",
                    "set_document",
                    "add_artboard",
                    "update_artboard",
                    "delete_artboard",
                    "move_artboard",
                    "add_layer",
                    "update_layer",
                    "update_layers",
                    "delete_layers",
                    "duplicate_layers",
                    "reorder_layer",
                    "group_layers",
                    "ungroup",
                    "align_layers",
                    "apply_layout",
                    "magic_look",
                    "auto_animate",
                    "add_animation",
                    "update_animation",
                    "delete_animations",
                    "shift_animations",
                    "apply_brand",
                    "add_annotation",
                    "add_cursor",
                    "import_svg",
                    "make_sizes",
                    "morph_to",
                    "clear_animations",
                    "add_asset",
                    "add_audio",
                    "update_audio",
                    "delete_audio"
                  ]
                },
                "input": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {},
                  "description": "Fields/example: describe_schema {domain:\"command\",name:<command>}."
                }
              },
              "required": [
                "command",
                "input"
              ]
            },
            "description": "Atomic; use existing or explicitly assigned ids. Read returned ids in a prior call."
          }
        },
        "required": [
          "steps"
        ]
      },
      "page": "/app"
    }
    styles_add_iconAction

    Adds an editable Lucide path; x/y default to the artboard centre. Find names with search_icons.

    View tool JSON
    {
      "name": "styles_add_icon",
      "kind": "act",
      "impl": "imperative",
      "description": "Adds an editable Lucide path; x/y default to the artboard centre. Find names with search_icons.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "artboardId": {
            "type": "string"
          },
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          },
          "size": {
            "type": "number",
            "minimum": 8,
            "maximum": 4000
          },
          "color": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "strokeWidth": {
            "default": 2,
            "description": "Line width in the icon’s 24 px grid.",
            "type": "number",
            "minimum": 0.25,
            "maximum": 6
          }
        },
        "required": [
          "name"
        ]
      },
      "page": "/app"
    }
    styles_search_iconsAnswer

    Finds up to 20 Lucide icon names by words. Use a returned name with add_icon.

    View tool JSON
    {
      "name": "styles_search_icons",
      "kind": "answer",
      "impl": "imperative",
      "description": "Finds up to 20 Lucide icon names by words. Use a returned name with add_icon.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "query": {
            "default": "",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          }
        }
      },
      "page": "/app"
    }
    styles_paste_layersAction

    Pastes layers and linked components from this local document. fromDesignId must equal get_design.designId. To import another document, use replace_design first.

    View tool JSON
    {
      "name": "styles_paste_layers",
      "kind": "act",
      "impl": "imperative",
      "description": "Pastes layers and linked components from this local document. fromDesignId must equal get_design.designId. To import another document, use replace_design first.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "fromDesignId": {
            "type": "string",
            "description": "Design to copy from (remote), or current document id (browser)."
          },
          "fromArtboardId": {
            "type": "string"
          },
          "artboardId": {
            "type": "string"
          },
          "layerIds": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Read layer ids with list_layers."
          },
          "dx": {
            "default": 24,
            "type": "number"
          },
          "dy": {
            "default": 24,
            "type": "number"
          }
        },
        "required": [
          "fromDesignId",
          "layerIds"
        ]
      },
      "page": "/app"
    }
    styles_add_mediaAction

    Adds a screenshot or image from base64 (up to 3 MB) or a public URL via the server’s safe fetch. deviceId explicitly replaces a screenshot; otherwise only an empty device is used. place defaults to device.

    View tool JSON
    {
      "name": "styles_add_media",
      "kind": "act",
      "impl": "imperative",
      "description": "Adds a screenshot or image from base64 (up to 3 MB) or a public URL via the server’s safe fetch. deviceId explicitly replaces a screenshot; otherwise only an empty device is used. place defaults to device.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "base64": {
            "type": "string"
          },
          "mimeType": {
            "default": "image/png",
            "type": "string"
          },
          "place": {
            "default": "device",
            "type": "string",
            "enum": [
              "device",
              "layer",
              "background",
              "none"
            ]
          },
          "deviceId": {
            "type": "string"
          },
          "artboardId": {
            "type": "string"
          }
        }
      },
      "page": "/app"
    }
    styles_add_media_from_urlAction

    Compatibility alias for add_media {url,place:"layer"}. Images download through the same-origin safe-fetch route, avoiding CORS. Videos must be uploaded in the editor.

    View tool JSON
    {
      "name": "styles_add_media_from_url",
      "kind": "act",
      "impl": "imperative",
      "description": "Compatibility alias for add_media {url,place:\"layer\"}. Images download through the same-origin safe-fetch route, avoiding CORS. Videos must be uploaded in the editor.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ]
      },
      "page": "/app"
    }
    styles_select_artboardAction

    Shows an existing artboard. Read artboard ids with get_design.

    View tool JSON
    {
      "name": "styles_select_artboard",
      "kind": "act",
      "impl": "imperative",
      "description": "Shows an existing artboard. Read artboard ids with get_design.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "type": "string"
          }
        },
        "required": [
          "artboardId"
        ]
      },
      "page": "/app"
    }
    styles_playAction

    Plays or pauses the preview, or seeks to t milliseconds (clamped to this artboard’s duration).

    View tool JSON
    {
      "name": "styles_play",
      "kind": "act",
      "impl": "imperative",
      "description": "Plays or pauses the preview, or seeks to t milliseconds (clamped to this artboard’s duration).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "playing": {
            "type": "boolean"
          },
          "t": {
            "type": "number",
            "minimum": 0
          }
        }
      },
      "page": "/app"
    }
    styles_undoAction

    Run undo in the editor’s shared history. Batch edits are one history step.

    View tool JSON
    {
      "name": "styles_undo",
      "kind": "act",
      "impl": "imperative",
      "description": "Run undo in the editor’s shared history. Batch edits are one history step.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {}
      },
      "page": "/app"
    }
    styles_redoAction

    Run redo in the editor’s shared history. Batch edits are one history step.

    View tool JSON
    {
      "name": "styles_redo",
      "kind": "act",
      "impl": "imperative",
      "description": "Run redo in the editor’s shared history. Batch edits are one history step.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {}
      },
      "page": "/app"
    }
    styles_see_designAction

    Returns a preview at t milliseconds (default after intros, matching remote MCP).

    View tool JSON
    {
      "name": "styles_see_design",
      "kind": "act",
      "impl": "imperative",
      "description": "Returns a preview at t milliseconds (default after intros, matching remote MCP).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "type": "string"
          },
          "t": {
            "type": "number",
            "minimum": 0
          }
        }
      },
      "page": "/app"
    }
    styles_render_imageAction

    Returns PNG, JPEG or WebP bytes as image content for the agent. scale 0.25–2, default 1. made with styles is included unless credit:false.

    View tool JSON
    {
      "name": "styles_render_image",
      "kind": "act",
      "impl": "imperative",
      "description": "Returns PNG, JPEG or WebP bytes as image content for the agent. scale 0.25–2, default 1. made with styles is included unless credit:false.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "artboardId": {
            "type": "string"
          },
          "t": {
            "type": "number",
            "minimum": 0
          },
          "format": {
            "default": "png",
            "type": "string",
            "enum": [
              "png",
              "jpeg",
              "webp"
            ]
          },
          "scale": {
            "default": 1,
            "type": "number",
            "minimum": 0.25,
            "maximum": 2
          },
          "credit": {
            "type": "boolean"
          }
        }
      },
      "page": "/app"
    }
    styles_export_imageAction

    Downloads PNG, JPG or WebP to the person’s browser. Scale 1–4 (default 1); larger exports take longer. Returns image content too. Use render_image for agent inspection.

    View tool JSON
    {
      "name": "styles_export_image",
      "kind": "act",
      "impl": "imperative",
      "description": "Downloads PNG, JPG or WebP to the person’s browser. Scale 1–4 (default 1); larger exports take longer. Returns image content too. Use render_image for agent inspection.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "format": {
            "default": "png",
            "type": "string",
            "enum": [
              "png",
              "jpg",
              "webp"
            ]
          },
          "scale": {
            "default": 1,
            "type": "number",
            "minimum": 1,
            "maximum": 4
          }
        }
      },
      "page": "/app"
    }