MCP Tool Reference
Every tool the MCP Server exposes to a connected LLM client, grouped by domain. Use this to decide which scopes a token needs and to understand which calls write to the Draft versus the Live site.
For setup, see Connect your LLM to the CMS.
How to read these tables
| Column | Meaning |
|---|---|
| Tool | The tool name the client calls. |
| Purpose | What the tool does. |
| Mode | Read = inspects only; Write = changes data. |
| Draft / Live | Where a write lands — Draft (invisible until publish) or Live (immediate). Read tools show —. |
| Scope | The token scope required. Read tools accept read or the domain's write scope. |
Draft-first
Pagebuilder structure, page content, page SEO meta, and version restores write to the Draft. Design/LESS, email design, site master data, menus, site SEO settings, media, and redirects write Live. Only publish_page promotes a Draft to Live, and only with the explicit publish scope.
Read & inspect
Read-only tools. Each accepts the read scope or the matching domain write scope.
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
ping | Health check; returns pong plus the authenticated tenant and granted scopes. | Read | — | any valid token |
get_design_tokens | Read the live design tokens / Custom LESS variables (colors, fonts, spacing). | Read | — | read or design |
get_settings | Read site master data: company contact info, logo, favicon, analytics IDs, social links. | Read | — | read or content |
get_menu | Read the navigation menus and their items (base language). | Read | — | read or menu |
list_pages | List all content pages with id, ident, title, slug, and draft status. | Read | — | read or content |
get_page_structure | Read a page's full Pagebuilder structure: rows → columns → widgets, with types, custom CSS, visibility. | Read | — | read or content |
get_seo_meta | Read a page's SEO meta (title, slug, meta description, meta keywords) for a language. | Read | — | read or content |
get_preview_url | Get a page's frontend preview URL (shows the current Draft state). | Read | — | read or content |
get_widget_catalog | List all native Pagebuilder widgets and their field schema. Start here before building a page. | Read | — | read or content |
get_widget_fields | Get the field schema and current values of a widget instance (by base_id). | Read | — | read or content |
get_element_details | Read an element's current spacing / border / css / flex / background / widths / visibility / animation. | Read | — | read or content |
search_media | Search the media library by name; returns media items to reference by id. | Read | — | read or media |
Design
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
save_design_less | Save the site Custom LESS (design tokens) and compile it immediately. Replaces the entire LESS — read first, then pass the complete result. | Write | Live | design |
Email design
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
get_email_design | Read the email design tokens (font + colors for transactional/notification emails) and their defaults. Call before update_email_design. | Read | — | read or design |
update_email_design | Update email design tokens — font plus #hex colors (bg / surface / subtle / text / heading / muted / accent / accent_text / border). Read-merge, server-validated. | Write | Live | design |
Pages
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
create_page | Create a new content page with a title and URL slug (routable at /{slug}). Not added to the nav menu. | Write | Draft | content |
duplicate_page | Duplicate a page: create a new page (new_title + new_slug) and copy the source page's full Pagebuilder content into its Draft. SEO meta is not copied. | Write | Draft | content |
update_page_slug | Change a page's URL slug for a language. The old URL is not auto-redirected. | Write | Live | content |
set_page_options | Set page options: searchindex (search / sitemap / llms.txt inclusion) and fullwidth (full-width vs contained layout). Preserves SEO meta. | Write | Live | content |
Pagebuilder — structure
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
pagebuilder_add_row | Add a new empty row to a page (ensures a published baseline first). Returns the new row_id. | Write | Draft | content |
pagebuilder_add_column | Add a column (default full width, 12/12) to a row. Returns the new column_id. | Write | Draft | content |
pagebuilder_add_widget | Add a widget to a column. widget_type_id comes from get_widget_catalog. Returns the new id and base_id. | Write | Draft | content |
reorder_elements | Reorder rows in a page, columns in a row, or widgets in a column, per breakpoint. | Write | Draft | content |
move_element | Move a widget to another column, or a column to another row/section. | Write | Draft | content |
delete_element | Delete a row, column, or widget (children included). Live page unaffected until publish. | Write | Draft | content |
duplicate_element | Duplicate a row, column, or widget in place — copies children, styles, language variants, items. | Write | Draft | content |
copy_element | Copy a row, column, or widget and paste it elsewhere (including onto another page) with fresh IDs. target_id is the target page (row) / row (column) / column (widget). | Write | Draft | content |
discard_draft | Discard all unpublished changes of a page — reverts the Draft to the live state. | Write | Draft | content |
Pagebuilder — content
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
set_widget_content | Set a widget instance's content. content_json maps field → value using widget_menu row keys. | Write | Draft | content |
Pagebuilder — styling & layout
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
set_spacing | Set padding/margin of a row, column, or widget per breakpoint (px). | Write | Draft | content |
set_border | Set border and border-radius of a row, column, or widget per breakpoint. | Write | Draft | content |
set_custom_css | Set scoped custom CSS (inner CSS only; the CMS wraps it in .row_{id} / .col_{id} / .widget_{id}). | Write | Draft | content |
set_column_width | Set a column grid width (1–12) per breakpoint. Columns in a row should sum to 12. | Write | Draft | content |
set_flex | Set a row's flexbox alignment (align, justify) per breakpoint. | Write | Draft | content |
set_row_background | Set a row's background (color/image) and full-width toggle. | Write | Draft | content |
set_visibility | Show or hide a row, column, or widget per breakpoint. | Write | Draft | content |
Pagebuilder — animations
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
get_animation_schema | Return the full animation_data schema (properties, triggers, ScrollTrigger, stagger, easings, examples). Call before set_animation. | Read | — | read or content |
set_animation | Set or remove a GSAP scroll/entrance animation on a row, column, or widget. "" / "null" removes it. | Write | Draft | content |
Widget items (repeaters)
Native-widget repeatable items (slides, entries, cards).
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
get_widget_items | List a widget's repeatable items plus the item field schema. | Read | — | read or content |
save_widget_item | Create or update a repeatable widget item. Omit item_base_id to create; pass it to update. | Write | Draft | content |
delete_widget_item | Delete a widget item (all language variants). | Write | Draft | content |
reorder_widget_items | Reorder a widget's items by their base_ids. | Write | Draft | content |
Vibecode widgets
Bespoke HTML+CSS widgets generated by AI. Vibecode is for visual/decorative layouts only — functional sections (forms, shop, search, e-learning, account) must use native widgets.
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
vibecode_generate | Generate or refine a Vibe-Code AI widget (HTML+CSS) from a description. Async; waits ~45s. The target widget must already be a vibecode widget. | Write | Draft | content |
get_vibecode_items | List a vibecode widget's repeatable items plus the per-instance field schema. | Read | — | read or content |
save_vibecode_item | Create or update a vibecode widget item. Omit item_base_id to create; pass it to update. | Write | Draft | content |
delete_vibecode_item | Delete a vibecode widget item from all languages. | Write | Draft | content |
reorder_vibecode_items | Reorder a vibecode widget's items. | Write | Draft | content |
Menu
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
create_menu_item | Create a new menu item (base language) in a menu. item_type: link / page / anchor / label / megamenu. | Write | Live | menu |
update_menu_item | Update a menu item (partial): label, link_url, page_ident, badge_text, image, icon, item_type, target, is_active. | Write | Live | menu |
delete_menu_item | Delete a menu item and its sub-items. | Write | Live | menu |
reorder_menu_items | Reorder sibling menu items by their ids in the desired order. | Write | Live | menu |
SEO & Search / AI
update_seo_meta writes to the page Draft; the site-wide Search & AI settings write Live.
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
update_seo_meta | Update a page's SEO meta (title, meta_description, meta_tags, slug) for a language. Omitted fields keep their value. | Write | Draft | content |
get_seo_settings | Read site Search & AI settings: indexing_enabled, ai_crawler_blocked, and the current llms.txt. | Read | — | read or content |
set_search_indexing | Enable/disable search-engine indexing site-wide (rewrites robots.txt + meta robots). | Write | Live | content |
set_ai_crawler_block | Block/unblock AI crawlers (GPTBot, ClaudeBot, …) site-wide via robots.txt. | Write | Live | content |
generate_llms_txt | Generate an llms.txt draft from the site content. Returns it without saving — review, then update_llms_txt. | Read | — | read or content |
update_llms_txt | Replace the site llms.txt content (served at /llms.txt). | Write | Live | content |
Master data
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
update_settings | Update site master data (company/contact info, logo, favicon, analytics IDs). Call get_settings first. | Write | Live | content |
Media
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
create_media_folder | Create a media folder/subfolder. Returns the new folder node id. | Write | Live | media |
rename_media_folder | Rename a media folder. | Write | Live | media |
rename_media | Rename a media file (display name only; the file is kept). | Write | Live | media |
upload_media | Upload an image into a folder from a public http(s) URL. | Write | Live | media |
upload_media_file | Upload a local file via base64 into a folder. Max 20 MB. | Write | Live | media |
move_media | Move a media file into another folder (logical tree move; the file URL stays the same). | Write | Live | media |
delete_media | Delete a media file permanently. | Write | Live | media |
delete_media_folder | Delete a media folder. | Write | Live | media |
Redirects
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
list_redirects | List URL redirects (id, source, target, status code, active, hit count). | Read | — | read or content |
create_redirect | Create a URL redirect: source_url (unique) → target_url, status 301 (default) or 302. | Write | Live | content |
update_redirect | Update a redirect (partial): source_url, target_url, status_code, active, notes. | Write | Live | content |
delete_redirect | Delete a URL redirect permanently. | Write | Live | content |
Versions
Named page snapshots as restore points. Saving and listing do not change the page; restoring overwrites the Draft.
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
save_page_version | Save a named snapshot of a page as a restore point. Does not change live/draft. | Write | Draft | content |
list_page_versions | List a page's saved named versions (id, label, created_by, created_at). | Read | — | read or content |
restore_page_version | Restore a saved version into the page Draft (overwrites the current Draft; live unchanged until publish). | Write | Draft | content |
delete_page_version | Delete a saved page version. Does not affect live/draft. | Write | Draft | content |
Publish
| Tool | Purpose | Mode | Draft / Live | Scope |
|---|---|---|---|---|
publish_page | Publish a page: promote its Draft to Live. Optional scheduled_at (future ISO datetime) schedules instead. | Write | Live | publish |
publish is explicit and separate
publish_page requires the literal publish scope — it is never granted by any other scope. The client only runs it when you explicitly ask to publish a specific page, never as part of a build or edit flow.
See also
- Connect your LLM to the CMS — token creation, client config, verification.
- Drafts, Publishing, Versions — the Draft/Live state model.
- Design Tokens — what
save_design_lesswrites. - Search & AI — what the SEO/Search tools control.
- Audit log — every MCP tool call is recorded here.