Skip to content

Components

Tools for creating components, variants, and instances

2 tools in this domain.

CRUD endpoint for components. create → {type, items, depth?} → {results: [{id}, ...]} type 'component': create from scratch with layout/style params type 'from_node': convert existing nodes to components. Text children are auto-exposed as editable properties by default (exposeText: true) — instances can set text directly via properties. type 'variant_set': combine components into variant sets get → {id, fields?} → component object (full detail, field-filterable) list → {name?, setsOnly?, fields?, offset?, limit?} → paginated stubs update → {items: [{id, propertyName, type, defaultValue}]} → creates property AND binds matching text node automatically

ParameterTypeRequiredDescription
method"create" | "get" | "list" | "update"
idstringResource ID (get, delete)
fieldsstring[]Property whitelist (get/list). Identity fields (id, name, type) always included. Omit for stubs on list, full detail on get. Pass ["*"] for all fields.
offsetnumberSkip N items for pagination (default 0)
limitnumberMax items per page (default 100)
itemsarraycreate (component): [{name, parentId?, ...layout}]. create (from_node): [{nodeId, exposeText?}]. create (variant_set): [{componentIds, name?}]. update: [{id, propertyName, type, defaultValue}].
type"component" | "from_node" | "variant_set"Create type. Required for create: 'component' (from scratch), 'from_node' (convert existing), 'variant_set' (combine as variants).
depthnumberResponse detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited.
namestringFilter list by name (case-insensitive substring).
setsOnlybooleanIf true, list returns only COMPONENT_SET nodes.
JSON Schema
{
  "type": "object",
  "properties": {
    "method": {
      "type": "string",
      "enum": [
        "create",
        "get",
        "list",
        "update"
      ]
    },
    "id": {
      "description": "Resource ID (get, delete)",
      "type": "string"
    },
    "fields": {
      "description": "Property whitelist (get/list). Identity fields (id, name, type) always included. Omit for stubs on list, full detail on get. Pass [\"*\"] for all fields.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "offset": {
      "description": "Skip N items for pagination (default 0)",
      "type": "number"
    },
    "limit": {
      "description": "Max items per page (default 100)",
      "type": "number"
    },
    "items": {
      "description": "create (component): [{name, parentId?, ...layout}]. create (from_node): [{nodeId, exposeText?}]. create (variant_set): [{componentIds, name?}]. update: [{id, propertyName, type, defaultValue}].",
      "type": "array",
      "items": {}
    },
    "type": {
      "description": "Create type. Required for create: 'component' (from scratch), 'from_node' (convert existing), 'variant_set' (combine as variants).",
      "type": "string",
      "enum": [
        "component",
        "from_node",
        "variant_set"
      ]
    },
    "depth": {
      "description": "Response detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited.",
      "type": "number"
    },
    "name": {
      "description": "Filter list by name (case-insensitive substring).",
      "type": "string"
    },
    "setsOnly": {
      "description": "If true, list returns only COMPONENT_SET nodes.",
      "type": "boolean"
    }
  },
  "required": [
    "method"
  ]
}

Response reference only — not included in tool definitions

No parameters

Example response
{
  "totalCount": 2,
  "returned": 2,
  "offset": 0,
  "limit": 100,
  "items": [
    {
      "id": "20:3",
      "name": "Button",
      "type": "COMPONENT_SET",
      "variantCount": 4,
      "pageId": "0:1",
      "pageName": "Components"
    },
    {
      "id": "20:10",
      "name": "Icon/Star",
      "type": "COMPONENT",
      "pageId": "5:0",
      "pageName": "Icons"
    }
  ]
}
Response JSON Schema
{
  "type": "object",
  "description": "Response varies by method. create → {results: [{id}]}. get → component object (full detail, field-filterable). list → paginated stubs. update → {results: ['ok', ...]}."
}

CRUD endpoint for component instances. create → {items: [{componentId, variantProperties?, x?, y?, parentId?}], depth?} → {results: [{id}]} get → {id} → {mainComponentId, overrides: [{id, fields}]} update → {items: [{id, properties}]} → {results: ['ok', ...]}

ParameterTypeRequiredDescription
method"create" | "get" | "update"
idstringResource ID (get, delete)
fieldsstring[]Property whitelist (get/list). Identity fields (id, name, type) always included. Omit for stubs on list, full detail on get. Pass ["*"] for all fields.
itemsarraycreate: [{componentId, variantProperties?, x?, y?, parentId?}]. update: [{id, properties}].
depthnumberResponse detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited.
JSON Schema
{
  "type": "object",
  "properties": {
    "method": {
      "type": "string",
      "enum": [
        "create",
        "get",
        "update"
      ]
    },
    "id": {
      "description": "Resource ID (get, delete)",
      "type": "string"
    },
    "fields": {
      "description": "Property whitelist (get/list). Identity fields (id, name, type) always included. Omit for stubs on list, full detail on get. Pass [\"*\"] for all fields.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "items": {
      "description": "create: [{componentId, variantProperties?, x?, y?, parentId?}]. update: [{id, properties}].",
      "type": "array",
      "items": {}
    },
    "depth": {
      "description": "Response detail: omit for id+name only. 0=properties + child stubs. N=recurse N levels. -1=unlimited.",
      "type": "number"
    }
  },
  "required": [
    "method"
  ]
}

Response reference only — not included in tool definitions

No parameters

Example response
{
  "results": [
    {
      "id": "21:1"
    }
  ]
}
Response JSON Schema
{
  "type": "object",
  "description": "Response varies by method. create → {results: [{id}]}. get → {mainComponentId, overrides: [{id, fields}]}. update → {results: ['ok', ...]}."
}