Skip to main content
Glama
vuluu2k

WebCake Storefront MCP

by vuluu2k

build_page

Create and save a new storefront page with its full section source in one step, using dry-run validation before publishing and blocking duplicate slugs.

Instructions

Create a brand-new page AND set its full content source in one step. Two-step safety: call with dry_run=true (default) to validate and preview, then dry_run=false to actually create + save. The source must be { sections: [...] } — build sections with new_section. Validation errors block the real save. ONE page per site for type main (homepage) / error / maintain, and slugs are unique per site: a duplicate is refused (dry_run reports blocked:true) and you get the existing page_id to edit instead. Only 'custom' pages can be created over and over.

Input Schema

NameRequiredDescriptionDefault
seoNoSEO for this page → settings.seo. Without it the page publishes with an EMPTY title/description. For a store page a good default title is '{{name_product}} | {{name_site}}' (product) or '{{name_category}} | {{name_site}}' (category).
nameYesPage name
slugYesURL slug WITHOUT a leading slash, e.g. 'about', 'collections', 'cart'. A leading '/' is stripped automatically (the storefront matches the bare path segment, so '/cart' would 404). Store pages MUST use the conventional slugs: category='collections', product detail='products', cart='cart', checkout='checkout', thank-you='complete'. The homepage needs no slug (pass is_homepage:true).
typeNoPage kind. SPECIAL pages need a site data-source enabled — build_page does this automatically: store→use_store (product/cart bindings), member→use_member (customer/order bindings), blog→use_blog, error→use_error, maintain→use_maintain. 'main'/'custom' need nothing. Omit for a normal content page (defaults to 'main' for the homepage).
sourceNoFull page source { sections: [...] } (object or JSON string)
dry_runNoPreview+validate only (true) or create+save (false)
is_homepageNoSet as the site homepage

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.31.8

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only readOnlyHint=false available, the description carries the behavioral load well: dry_run defaults to true, validation errors block the real save, duplicates are refused with blocked:true plus an existing page_id, only 'custom' pages can be created repeatedly, and special types auto-enable their data sources (store→use_store, member→use_member, etc.). It also warns that omitting seo publishes an empty title/description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then the dry_run workflow, then the edge-case constraints, so the agent gets the critical path first. Four dense sentences with little waste, though the uniqueness sentence packs several distinct rules together.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-param nested-object create tool with no output schema, the description covers the safety flow, source format, type side effects, and conflict behavior. The only real gap is that the success return (e.g. the new page_id) is not described, though the failure path's page_id is.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds cross-parameter meaning beyond the schema: source must take the shape { sections: [...] } built via new_section, and dry_run must be read as a two-phase flow rather than a simple flag. These additions go beyond the per-field schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource and an explicit scope differentiator: 'Create a brand-new page AND set its full content source in one step.' That 'one step' framing implicitly separates it from the sibling pair create_page/update_page_source. However, it never names those siblings, so an agent must still infer which of the many page-related tools to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete operational guidance: call dry_run=true first then false, build sections with new_section, and the uniqueness rules (one main/error/maintain page per site, unique slugs, duplicates refused and return the existing page_id to edit instead). It lacks explicit when-not guidance (e.g. 'use update_page_source to modify existing content'), but the create-vs-edit boundary is derivable from the duplicate rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools