Skip to main content

Tools Reference

All tools operate on the live Studio editor in real-time via WebSocket. Changes appear on the canvas instantly. The server exposes 54 tools in 11 groups. Node kinds available: 72 (see list_node_kinds).
No pageId parameter is needed for most tools — they operate on the currently active page in Studio. Multi-page tools like list_pages and read_page let you inspect other pages.

Template Tools

Read the template structure and browse pages.

read_template

Read the currently loaded template from the live Studio editor. Returns the template name, category, and a summary of all pages. No parameters.

list_pages

List all pages in the currently loaded template. No parameters.

read_page

Read a specific page’s full document tree including root node, tokens, and assets. Shipped templates carry 1000+ copy tokens: pass includeTokens=false to get the tree alone (tokenCount is still reported) and use list_tokens for the ones you need.

Node Tools

Read, create, update, move, and delete nodes on the live canvas. Every mutation is undo-able in Studio (Ctrl+Z).

find_nodes

Search for nodes in the current page by kind, prop name/value, or text content. Text search covers raw props and the resolved values of bound copy tokens (xxxToken props), so tokenized headings and labels are found; matches carry a resolved map of that text.

read_node

Read a single node’s full props, slots, and parent info from the live editor.

update_node

Update one or more props on a node. The change is applied live on the Studio canvas. Pass breakpoint=“mobile” or “tablet” to write a per-viewport override instead of the base (desktop) value: the props are deep-merged into props.responsive[breakpoint], keeping the other breakpoint’s overrides. Only layout/typography props the renderer applies per breakpoint are accepted there (describe_node_kind marks them “responsive”).

update_nodes_batch

Update the same props on multiple nodes at once in a single undo step. Efficient for bulk styling: e.g. set the same border/radius on all cards. With breakpoint=“mobile” or “tablet” the props become per-viewport overrides on every node (see update_node).

add_node

Add a new node as a child of a parent node’s slot. The canvas updates live.

apply_block

Insert a full tree of nodes at once (multiple nodes with nested children). All nodes are added in a single undo step. Use this to insert complex layouts like a card with heading + text + button, or an entire section with multiple children. Each node in the array needs: { id, kind, props, slots? }. Slots are: { [slotName]: { items: [childNodes] } }.

remove_node

Remove a node and all its children from the page.

remove_nodes

Remove multiple nodes at once in a single undo step.

move_node

Move a node to a different parent slot or position.

move_nodes

Move several nodes into the same parent slot in one undo step, keeping their order. Use it to regroup siblings (e.g. pull three cards into a new grid) instead of moving them one by one.

view_tree

View the node tree structure of the current page. Shows kind, id, slot info, and key props inline (text content, labels, colors) for efficient scanning. Text bound through xxxToken props is shown resolved, with the token name in parentheses, in the locale currently active in the editor.

get_subtree

Get the full JSON of a node and all its descendants. Returns the complete node tree with props and slots — useful for understanding complex structures, duplicating sections, or feeding to another tool.

duplicate_node

Deep-clone a node and insert the copy right after the original.

wrap_nodes

Wrap one or more sibling nodes in a new layout container.

swap_kind

Swap a node’s component kind while preserving compatible props. E.g. swap a Stack for a Grid, or a Heading for Text.

set_variant

Apply a named variant/recipe to a node. Recipes are predefined prop presets for components (e.g., Heading has “hero”, “section”, “minimal” variants; Button has “primary”, “secondary”, “outline”, “ghost”). Use describe_node_kind to see available recipes.

Token Tools

Read and write the design/copy tokens of the active page.

list_tokens

List all design/content tokens in the current page. Tokens control colors, text, and localized values.

update_token

Update the value of an existing token. Applied live in the editor. The token is edited under the scope it already lives in (templates keep their tokens global); a name that does not exist yet is created as a global token.

add_token

Add a new token to the current page document. Defaults to global scope, which is what templates and the token resolver expect.

remove_token

Remove a token from the current page.

remove_locale

Unregister a locale from the current page and delete every token variant written for it. The default-locale values are untouched. Use list_pages to see registered locales.

Theme Tools

Palettes, typography presets, and history.

apply_palette

Apply a named color palette to the current page. Changes all color tokens at once. Call list_palettes first: it returns every palette with its description and primary color (the set grows with Studio; nothing is hardcoded here).

apply_custom_palette

Generate a full, contrast-checked color palette from one brand color and apply it to the current page — the same generator the Studio palette picker uses. Use this when no named palette matches (e.g. colors extracted from a merchant site); prefer exact values over the closest named palette. Returns the generated colors.

apply_typography

Apply a named typography preset to the current page. Changes fonts, sizes, and weights. Available presets: modern, bold, elegant, friendly, compact, bloom, technical, minimal, expressive. Use list_typography_presets to see all options.

list_palettes

List all available color palettes with their descriptions and primary colors. No parameters.

list_typography_presets

List all available typography presets with their font families and descriptions. No parameters.

undo

Undo the last change on the canvas. No parameters.

redo

Redo the previously undone change. No parameters.

Schema Tools

Discover node kinds and their props. These work without a connected Studio.

list_node_kinds

List all available node kinds (component types) in Tagada Studio. Optionally filter by category. Use this to discover what components you can add to a template.

describe_node_kind

Describe a node kind the way the Studio inspector presents it: one line per prop with its editor type (color, spacing, select, boolean, media, action…), label, accepted values with their labels, default, token twin and responsive eligibility, grouped by inspector section. Also lists slots, recipes for set_variant, runtime data requirements, the data contract, and visibility rules. Pass full=true for the raw JSON Schema instead.

Visual Tools

See what the agent built.

take_screenshot

Capture a screenshot of the current page as rendered in Studio. Returns a JPEG image at the requested viewport size. Use this after making changes to visually verify the result. A heavy page takes tens of seconds and Studio captures one at a time, so raise your MCP client call timeout above 120s and do not fire a second capture before the first returns.

Page Tools

Navigate and create funnel pages. Node IDs are per page — call view_tree after switching.

switch_page

Switch the editor to another page of the funnel and load its document on the canvas. Every other tool then targets that page. Node IDs are per page: call view_tree again after switching.

create_page

Create a new empty page in the funnel and make it active. Returns rootNodeId — use it as parentId for build_section. Content nodes must live inside Section > Layout.Container, never at the root.

Building Tools

Whole structures in one undo step. These run the same executor as the in-app Studio assistant.

build_section

Build a complete Section > Layout.Container > children structure in ONE undo step — the fastest way to add a full page section. Children may carry their own children for nested layouts (Grid > Card > content). Slots are created automatically. Returns sectionId, containerId and childIds. Include responsive.mobile padding on the section and paddingXMobile on the container (see guide://studio).

add_nodes_batch

Add several flat sibling nodes under one parent slot in a single undo step. Slots are created for container kinds. Returns the new node IDs in order.

update_tokens_batch

Update many global tokens in one call — design tokens after apply_palette / apply_typography, or a full set of translations for one locale. With locale, every token is written as that locale’s variant and the result lists the copy.* tokens still missing a translation (repeat until complete: true).

Library Tools

The shipped section blocks, the blocks saved on the account and the template library — the same insert paths as the Studio sidebar and Add-Page picker. The page archetypes in guide://studio map each page type to block ids. Blocks carry the copy of the template they came from: insert with placeholders: true, then fill from list_text_slots.

list_blocks

List the ready-made section blocks: the shipped library (hero, nav, offer, social-proof, trust, features, story, product, data, checkout, cta, thankyou) plus the blocks saved on the account. Returns id, category, description and top-level kinds. Insert one with insert_block — faster and more polished than composing sections from primitives. The page archetypes in guide://studio map each page type to block ids.

insert_block

Insert a block from list_blocks into the page in ONE undo step, with fresh node ids. Section-rooted blocks go under the page root (the default parent); card blocks need a parentId inside a section. IMPORTANT: the blocks were lifted from real template pages, so each one arrives selling that page’s product (olive oil, work boots…). Pass placeholders: true to strip that copy, or rewrite every slot with list_text_slots + update_nodes_batch. A page composed of blocks you did not rewrite advertises several unrelated products at once.

list_text_slots

List every piece of copy under a node — the text a merchant would rewrite, without the layout, style or data props. Returns props (rewrite them all in ONE update_nodes_batch) and arrays (FAQ items, review rows: write the whole items array back on its node). Use it after insert_block or add_page_from_template instead of hunting through view_tree.

list_templates

Search the template library (sales pages, advertorials, listicles, VSLs, checkouts, thank-you pages, landings). Returns id, name, category, description and keywords. Start from one with add_page_from_template instead of building a page from scratch.

add_page_from_template

Add a new page to the funnel from a library template — a full copy with fresh node ids and the store branding applied — and make it active. Returns rootNodeId and rootChildCount. Checkout and thank-you templates force their page type; pass type “offer” for upsell/downsell templates. Then view_tree and rewrite the copy for the product.

Localization Tools

Token-based i18n: register locales, tokenize copy, write translations.

list_locales

List the locales registered on the page and the one the editor currently previews. No parameters.

add_locale

Register a locale on the page before writing its translations. Does not switch the preview.

set_active_locale

Switch the canvas preview to a locale so the user sees translated values. Empty string = default locale. View-only, nothing is written.

prepare_translation_pack

Canonical entry point for translating a page. Walks each node’s schema, auto-tokenizes every translatable text prop with a stable copy.{nodeId}.{prop} name and returns the complete list of {tokenName, defaultValue} pairs to translate. Skips design tokens, brand names, currency codes and format placeholders. Then write the translations with update_tokens_batch(locale).

tokenize_text

Lift one raw text prop into a global copy token and bind the node’s {propName}Token to it, so the text becomes localizable. For whole-page work prefer prepare_translation_pack.

tokenize_texts_batch

Tokenize many raw text props in one call (one UPDATE_PROPS per node). Fails before any write if a node ID is stale.

Content Tools

Source content through the Studio session: page extraction, image import, image generation.

fetch_url

Extract an external page with a headless browser (runs through the Studio session): structure, text, images uploaded to blob storage, colors, fonts, studioTokens ready for update_tokens_batch, a build_section-compatible nestedStructure per section, screenshots and a quality report. Takes up to 90s, so raise your MCP client call timeout above 120s before using it. If it times out anyway, retry with captureScreenshot: false and viewports: [“desktop”] — a text-only extraction still returns the structure, studioTokens and nestedStructure. Follow the URL reproduction workflow in guide://studio.

fetch_section_detail

Full detail for one section of the last fetch_url extraction (content, layout tree, images, section screenshot URL, nestedStructure). Cached on the Studio side — no new browser launch.

import_images

Upload external image URLs to blob storage and get stable URLs for Media.Image src props.

generate_images

Generate images with AI (FAL.ai, via the Studio session) and get blob URLs for Media.Image src. Hero banners, feature illustrations, product mockups, backgrounds — not icons or logos. Max 6 per call, 5-15s each, run in parallel. Write detailed prompts: style, mood, subject, composition, palette colors.

MCP Resources

The server also exposes two resources agents can read:

Endpoints

The HTTP server exposes these endpoints: