Workspace management
Generated MCP reference for workspace management.
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_site
Create site
Create a new site inside a workspace. Accepts either the workspace's UUID (workspaceId) or its slug (workspaceSlug) — exactly one must be set. Returns the new site's UUID, its slug, the workspace's slug, the editor URL, and the _site value to pass on subsequent calls so you can immediately edit this site without re-connecting the MCP server. The name you pass becomes BOTH the DB site name AND the document's settings.brandName — they're kept in sync, so editing brandName later in the editor also renames the site.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
workspaceId | string | No | |
workspaceSlug | string | No |
Input schema
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"workspaceId": {
"type": "string"
},
"workspaceSlug": {
"type": "string"
}
},
"required": [
"name"
],
"additionalProperties": false
}create_template
Create design template
Platform-admin tool. Captures part of the current site as a new entry in the global design-template library. Templates mirror the Component model: ONE master SceneNode (typically a Frame) painted at three breakpoint widths inside the editor's component-editor surface. Pass nodeIds (the canonical 'save this hero as a template' flow — the tool wraps them in a master Frame). Pass pageId to lift an entire page's desktop artboard into a template root. Pass root for a hand-built master payload. bundleSiteTokens (default true) ships the current site's tokens so dropping the template onto a brand-less site inherits the originating brand. Status defaults to draft.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
slug | string | Yes | |
category | string | Yes | |
description | string | No | |
status | string | No | |
nodeIds | array | No | |
pageId | string | No | |
root | object | No | |
tags | array | No | |
thumbnailUrl | string | No | |
sortOrder | number | No | |
bundleSiteTokens | 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"
},
"slug": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"header",
"hero",
"features",
"testimonials",
"pricing",
"cta",
"stats",
"gallery",
"logos",
"team",
"faq",
"footer",
"menu",
"form",
"quote",
"blog",
"other"
]
},
"description": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"draft",
"published"
]
},
"nodeIds": {
"type": "array",
"items": {
"type": "string"
}
},
"pageId": {
"type": "string"
},
"root": {
"type": "object",
"additionalProperties": {}
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"thumbnailUrl": {
"type": "string"
},
"sortOrder": {
"type": "number"
},
"bundleSiteTokens": {
"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",
"slug",
"category"
],
"additionalProperties": false
}create_workspace
Create workspace
Create a new personal workspace for the authenticated user. Idempotent: if the user already owns a workspace, returns the existing one. The user becomes the owner. NOT available on user-tokens — those are workspace-scoped and creating new workspaces would silently sit outside their scope.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | No |
Input schema
{
"type": "object",
"properties": {
"name": {
"type": "string"
}
},
"additionalProperties": false
}delete_site
Delete site
Permanently delete a site by id. Requires the caller to be a member of the site's workspace. The delete cascades to site_versions, form_submissions, and form_analytics via the schema's ON DELETE CASCADE.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
siteId | string | Yes |
Input schema
{
"type": "object",
"properties": {
"siteId": {
"type": "string"
}
},
"required": [
"siteId"
],
"additionalProperties": false
}list_sites
List sites
List all sites the authenticated user can access, grouped by workspace. Each site row includes its wsSlug/siteSlug path — pass it as the x-paper3-site header on subsequent MCP requests to target that site.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
workspaceId | string | No | |
workspaceSlug | string | No |
Input schema
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string"
},
"workspaceSlug": {
"type": "string"
}
},
"additionalProperties": false
}list_workspaces
List workspaces
List every workspace the authenticated user belongs to, with the user's role. When called with a single-workspace user-token, returns only that workspace. Use this before create_site to discover the workspace slug or id to target.
Parameters
This tool accepts an empty object.
Input schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}whoami
Who am I
Return the authenticated user's identity, the auth path (session, user token, or platform token), and, when on a user-token, the workspace it is scoped to. Use this to debug auth + scope problems from the MCP client side.
Parameters
This tool accepts an empty object.
Input schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}