MCP ServerTool Reference

Components

Generated MCP reference for components.

This page is generated from mcp-catalog.json. Do not edit it by hand.

Source: paper3 local extraction on 2026-05-29. Generated: 2026-05-29T11:34:45.044Z.

create_component

Create component

Creates a new component in the site library. Pass fromNodeId to clone an existing node into the master AND replace it on the page with a fresh instance — that's the canonical 'promote this inline header into a Header component' flow. Tablet/mobile breakpoint overrides authored on the source subtree are carried into the component's own breakpointOverrides so the responsive behaviour follows the structure. Pass replaceSource: false to keep the original node in place (clone-only). Without fromNodeId, an empty frame is used as the master so you can populate it with write_html. Pages reference the master via insert_component_instance — every instance re-renders when the master changes.

Parameters

ParameterTypeRequiredDescription
namestringYes
descriptionstringNo
categorystringNo
fromNodeIdstringNo
replaceSourcebooleanNo
_sitestringNoOptional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.

Input schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "fromNodeId": {
      "type": "string"
    },
    "replaceSource": {
      "type": "boolean"
    },
    "_site": {
      "type": "string",
      "description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
      "pattern": "^[^/]+/[^/]+$"
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false
}

delete_component

Delete component

Removes a component from the library. Existing instances on pages become orphaned placeholders — re-create the master with the same id (not possible after deletion) or remove the orphaned instances. Use with care.

Parameters

ParameterTypeRequiredDescription
componentIdstringYes
_sitestringNoOptional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.

Input schema

{
  "type": "object",
  "properties": {
    "componentId": {
      "type": "string"
    },
    "_site": {
      "type": "string",
      "description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
      "pattern": "^[^/]+/[^/]+$"
    }
  },
  "required": [
    "componentId"
  ],
  "additionalProperties": false
}

insert_component_instance

Insert component instance

Drops an instance of an existing component under parentId. Optional overrides is a map keyed by master node id ({styles, text, src, alt}) — use this for the per-page tweaks (e.g. a CTA button label that differs on the home vs. about page). To hide a master node on this instance only, set styles: \{ display: 'none' \} (the structured hidden flag is reserved for the user-facing right-click 'Hide' menu). Without overrides, the instance renders identical to the master.

Parameters

ParameterTypeRequiredDescription
parentIdstringYes
componentIdstringYes
overridesobjectNo
indexnumberNo
_sitestringNoOptional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.

Input schema

{
  "type": "object",
  "properties": {
    "parentId": {
      "type": "string"
    },
    "componentId": {
      "type": "string"
    },
    "overrides": {
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "styles": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                }
              ]
            }
          },
          "text": {
            "type": "string"
          },
          "src": {
            "type": "string"
          },
          "alt": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "index": {
      "type": "number"
    },
    "_site": {
      "type": "string",
      "description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
      "pattern": "^[^/]+/[^/]+$"
    }
  },
  "required": [
    "parentId",
    "componentId"
  ],
  "additionalProperties": false
}

list_components

List components (catalog only — no subtree)

Slim catalog of the site's reusable components. Returns one entry per master: {componentId, name, description?, category?, rootNodeId, rootType, childCount}. Does NOT include the master subtree — feeding 30+ component roots into context every turn would flood the model with kilobytes of HTML it usually doesn't need.

Drill-down pattern (Read-and-Edit, same as the page tree):

  1. list_components() → pick the componentId / rootNodeId you care about.
  2. outline(\{rootId: rootNodeId\}) → map the master's children + grandchildren.
  3. read(\{nodeId\}) → exact HTML for any node inside the master.
  4. edit_html(\{nodeId, old_html, new_html\}) or set_text_content(\{nodeId, text\}) → mutate. Edits to a master cascade to every instance instantly.

For per-instance tweaks (not a global change to the master), call set_component_override(\{instanceId, masterNodeId, ...\})masterNodeId comes from the outline walk above.

Parameters

ParameterTypeRequiredDescription
_sitestringNoOptional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.

Input schema

{
  "type": "object",
  "properties": {
    "_site": {
      "type": "string",
      "description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
      "pattern": "^[^/]+/[^/]+$"
    }
  },
  "additionalProperties": false
}

set_component_override

Set component instance override

Adds, replaces, or removes a per-instance override targeting a specific node inside the master tree. Pass override: null to clear the override and let the master value flow through again.

Parameters

ParameterTypeRequiredDescription
instanceIdstringYes
masterNodeIdstringYes
overrideunknownYes
_sitestringNoOptional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.

Input schema

{
  "type": "object",
  "properties": {
    "instanceId": {
      "type": "string"
    },
    "masterNodeId": {
      "type": "string"
    },
    "override": {},
    "_site": {
      "type": "string",
      "description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
      "pattern": "^[^/]+/[^/]+$"
    }
  },
  "required": [
    "instanceId",
    "masterNodeId",
    "override"
  ],
  "additionalProperties": false
}

update_component

Update component

Updates a component's metadata (name, description, category) or replaces its master root subtree. Edits to the master cascade to every existing instance instantly. To edit nodes INSIDE the master, use the regular update_styles / set_text_content / write_html on the master node ids — the component is just a typed reference at the top level.

Parameters

ParameterTypeRequiredDescription
componentIdstringYes
patchobjectYes
_sitestringNoOptional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.

Input schema

{
  "type": "object",
  "properties": {
    "componentId": {
      "type": "string"
    },
    "patch": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "category": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "_site": {
      "type": "string",
      "description": "Optional target site formatted as <workspaceSlug>/<siteSlug>. Required when the workspace has multiple sites and no site header is set.",
      "pattern": "^[^/]+/[^/]+$"
    }
  },
  "required": [
    "componentId",
    "patch"
  ],
  "additionalProperties": false
}

On this page