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
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
description | string | No | |
category | string | No | |
fromNodeId | string | No | |
replaceSource | boolean | No | |
_site | string | No | Optional 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
| Parameter | Type | Required | Description |
|---|---|---|---|
componentId | string | Yes | |
_site | string | No | Optional 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
| Parameter | Type | Required | Description |
|---|---|---|---|
parentId | string | Yes | |
componentId | string | Yes | |
overrides | object | No | |
index | number | No | |
_site | string | No | Optional 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):
list_components()→ pick the componentId / rootNodeId you care about.outline(\{rootId: rootNodeId\})→ map the master's children + grandchildren.read(\{nodeId\})→ exact HTML for any node inside the master.edit_html(\{nodeId, old_html, new_html\})orset_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
| Parameter | Type | Required | Description |
|---|---|---|---|
_site | string | No | Optional 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
| Parameter | Type | Required | Description |
|---|---|---|---|
instanceId | string | Yes | |
masterNodeId | string | Yes | |
override | unknown | Yes | |
_site | string | No | Optional 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
| Parameter | Type | Required | Description |
|---|---|---|---|
componentId | string | Yes | |
patch | object | Yes | |
_site | string | No | Optional 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
}