message written for the assistant.
Knowledge
get_build_guide
{topic, widgets?, variant?}. The build knowledge in the smallest useful unit. rules is the must-read (create_page and create_template refuse until this conversation has read it). widgets with widgets:[…] returns the cards for the widgets about to be placed; without the list, the index. header returns the recipe and the canonical header tree; footer the recipe; both take variant for a ready-made shape. Also composed-ui, loops, single-post, woocommerce, popup, effects, fonts, icons, nav-menu, pricing, example, and the long forms rules-full and widgets-full.
Design system
get_design_system
Global colours by role, custom colours, typography for h1–h6 and body, the button style, the body background, the look, andfonts: the Custom Fonts installed on the site with the weights that ship.
update_design_system
{colors?, custom_colors?, typography?, buttons?, body_background?, look?}. Pass only what changes. A family must be a Google Fonts family or an installed Custom Font; anything else is ignored and reported. A snapshot is kept for revert_design_system.
revert_design_system
Restores the kit settings and the look from the snapshot taken before the last update.upload_font
{family, url?} or {family, request_upload_url:true, filenames?} or {check_upload}. One file per weight; the family is created on first use; weight and style are read from the file name. Share links work as url.
Pages and templates
create_page
{title, elements, status?, page_settings?, add_to_menu?, set_as_front_page?, allow_placeholders?, keep_layout?}. An Elementor element tree in the “Paste from other site” shape. Draft unless told otherwise; gets the full-width template; external images import automatically. A publish that still shows placeholder images is saved as draft.
update_page
{page_id, operations, expect_sections?, status?, title?}. Section operations: replace, insert_before, insert_after, append, remove. expect_sections refuses a stale index.
build_page
{title, sections, look?, …}. The plan-based generator; hidden unless the plan_build feature is on.
create_template
{type, title, elements, conditions?, status?, menu_items?, popup?, triggers?, mega_menu_width?}. Types: header, footer, error-404, popup, archive, single-post, mega-menu, loop-item, product, product-archive. Published with display conditions; a header creates and assigns a fresh menu; publishing drafts other templates of the same type.
create_post
{title, elements | content_html, excerpt?, categories?, tags?, featured_image_url?, status?}.
Reading
list_pages
{type?, search?}. Pages, posts, templates or any Elementor-built post type. Starter templates are flagged. On a shop the WooCommerce pages are named.
get_page
{page_id, mode?, section?}. mode:"outline" is one line per band; section is one band; default is the full tree. Credentials in form settings come back redacted and are restored on save.
list_menus
Menus with locations and items.Site
update_site_settings
{site_title?, tagline?, front_page_id?, posts_page_id?}.
update_site_logo
{logo_url | logo_attachment_id, light_logo_url | light_logo_attachment_id}. Matched by tone; the pair is swapped when the pixels prove them inverted. Placeholder services are refused.
generate_logo
{text, industry, icon?, layout?, font?, color?, icon_color?, light_color?, light_icon_color?, font_size?, set_as_logo?}. A wordmark drawn on the server in the site’s own font, with a white variant; the industry picks a relevant mark.
add_to_menu
{menu, page_id | url+title | mega_menu_id, parent_id?}.
Media and brand
upload_media
{url} or {request_upload_url:true, filenames?, count?, hand_to_user?} or {check_upload}. See Uploads.
get_brand_assets
The files the site owner dropped into Brand assets, with roles, tones and font weights, plus the current logo and installed fonts.fetch_brand
{domain}. Logo candidates from a business’s website (inline SVG logos imported outright, others with size and tone), the colours its CSS declares and the font families it names.
search_images
{query, count?, orientation?, with_thumbnails?, min_width?}. Openly-licensed photos from Openverse. Thumbnails come back as image blocks so a client that renders images can choose by eye. Creator and licence are stored on the attachment on import.
list_media
{missing_alt?, search?}.
set_image_alt
{attachment_id, alt}.
set_meta_description
{page_id, description}.
Maintenance
optimize_site
{action: run | status}. Bevel’s One-Click Optimization, advanced in fifteen-second steps.
convert_webp
{enable_serving?}. Converts the media library in batches.
clear_cache
Hard-clears every cache. Content changes purge automatically; this is for the rare case a change does not show.optimize_database
{mode: report | run, optimize_tables?}. Report first, always; run deletes permanently.
list_form_submissions
{days?, form_name?}. Read-only.
Annotations
Every tool declares MCP annotations: reads arereadOnlyHint, writes that replace content are destructiveHint, settings tools are idempotentHint, and the two that reach the internet are openWorldHint. Clients that read them stop asking permission for reads.