WebCake Storefront
Build pages and manage products, orders, and content on the WebCake/StoreCake storefront builder.
Connector by vuluu2k · GitHub account verified by the MCP Registry
Install
Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/vuluu2k-webcake-storefront-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://store.toolvn.io.vn/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 139 read · 112 write · 33 delete · 7 not yet classified
- Secrets
- 5 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 291
Read from the source code; the running server may list different tools.
Read 139 · Look things up without changing anything.
auto_translatecheck_domaincount_my_sitescount_orders_by_statusfetch_images_for_alt_fillfind_customerget_active_promotionsget_affiliate_programsget_affiliate_statisticget_appget_articleget_build_guide
Show 127 more tools
get_categoryget_collectionget_combo_itemsget_courseget_course_membersget_current_contextget_device_templatesget_elementget_email_templatesget_file_versionsget_global_sectionget_global_section_elementget_global_source_contentsget_global_source_detailget_global_source_elementget_http_functionget_http_function_snippetget_insightget_insight_todayget_intake_guideget_media_capacityget_orderget_page_draftget_page_elementget_page_schemaget_page_sourceget_page_versionsget_ppd_variation_templateget_price_contactget_productget_product_measurementget_promotionget_promotion_itemsget_pwaget_reviewget_review_productsget_shippingget_site_custom_codeget_site_infoget_site_subscriptionget_source_cartget_variationingest_htmlingest_urlinvoke_read_toollist_affiliate_accountslist_affiliate_orderslist_affiliate_payoutslist_affiliate_productslist_api_keyslist_appointment_addresseslist_appointment_calendarslist_appointment_classifieslist_appointment_employeeslist_appointmentslist_appslist_articleslist_automationslist_bindingslist_blocked_phoneslist_cached_resultslist_categorieslist_cms_fileslist_collectionslist_comboslist_contactslist_courseslist_customer_tagslist_customerslist_domainslist_elementslist_employeeslist_entity_logslist_eventslist_font_groupslist_fontslist_global_sectionslist_global_sourceslist_google_merchantslist_image_elementslist_invitationslist_materialslist_media_alllist_media_contentlist_media_folderslist_my_siteslist_notificationslist_orderslist_page_contentslist_page_draftslist_pageslist_partner_feed_productslist_partner_feedslist_planslist_ppdlist_product_brandslist_product_supplierslist_product_tagslist_productslist_promotionslist_publish_historieslist_redirect_urlslist_reviewslist_ribbonslist_saved_filterslist_section_templateslist_site_utmslist_subscriberslist_template_themeslist_themeslist_tool_groupslist_translationsnew_page_skeletonquery_collection_recordsread_cached_resultread_imageread_imagesscan_unique_imagessearch_global_section_elementssearch_global_source_elementssearch_imagessearch_page_elementssearch_productssearch_promotionssearch_toolssemantic_search_themesvalidate_page
Write 112 · Create, change, send or run things.
accept_invitationadd_domainadd_draft_sectionadd_sectionappend_site_custom_codebuild_pagecommit_page_draftcreate_appointment_addresscreate_appointment_calendarcreate_appointment_classifycreate_appointment_employeecreate_article
Show 100 more tools
create_automationcreate_blog_categorycreate_cms_filecreate_collectioncreate_contactcreate_coursecreate_font_groupcreate_global_sectioncreate_global_sourcecreate_or_update_reviewcreate_pagecreate_partner_feedcreate_productcreate_product_categorycreate_products_from_device_templatescreate_redirect_urlcreate_saved_filtercreate_sitecreate_site_from_templatecreate_site_utmcreate_subscriberdebug_functionedit_http_functioninstall_appinvite_employeeinvoke_toolmark_notification_readnew_elementnew_rownew_sectionpublish_siterename_siterestore_file_versionrun_functionsave_email_templatessave_file_versionsave_translationssend_mailset_default_languageset_image_altsset_product_publishedset_translation_seostart_page_draftsync_partner_feedtoggle_confirm_modetoggle_debug_renderupdate_affiliate_accountupdate_affiliate_order_programupdate_affiliate_payout_statusupdate_affiliate_product_programupdate_appupdate_app_reviewupdate_appointment_addressupdate_appointment_calendarupdate_appointment_classifyupdate_appointment_employeeupdate_articleupdate_authupdate_automationupdate_blog_categoryupdate_cms_fileupdate_collection_columnsupdate_courseupdate_domainupdate_employee_permissionsupdate_global_sourceupdate_global_source_contentsupdate_global_source_elementupdate_global_source_elementsupdate_http_functionupdate_media_contentupdate_media_folderupdate_pageupdate_page_contentupdate_page_elementupdate_page_elementsupdate_page_sourceupdate_partner_feedupdate_price_contactupdate_productupdate_product_categoryupdate_product_measurementupdate_pwaupdate_redirect_urlupdate_saved_filterupdate_shippingupdate_site_custom_codeupdate_site_settingsupdate_site_slugupdate_site_utmupload_imagesupload_media_base64upsert_affiliate_productupsert_customer_tagupsert_materialupsert_ppdupsert_product_brandupsert_product_supplierupsert_product_tagupsert_ribbon
Delete 33 · Delete, drop, revoke or wipe things.
add_site_languagesassign_customer_tagsclear_page_draftdelete_affiliate_accountsdelete_affiliate_productsdelete_appointment_addressesdelete_appointment_calendarsdelete_appointment_classifiesdelete_appointment_employeesdelete_articledelete_automationdelete_collection
Show 21 more tools
delete_contactsdelete_coursedelete_coursesdelete_domaindelete_employeesdelete_global_sectiondelete_global_sourcedelete_pagedelete_partner_feedsdelete_productdelete_product_categorydelete_redirect_urlsdelete_saved_filterdelete_site_utmsdelete_subscribersremove_fontremove_font_groupremove_ppdremove_reviewsunblock_all_phone_customersuninstall_app
Not yet classified 7 · We could not tell from the name and description.
block_phone_customersduplicate_appointment_calendarsempty_media_trashmoderate_reviewsrefuse_invitationswitch_siteverify_domain
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
PEXELS_API_KEYWEBCAKE_SESSION_IDWEBCAKE_TOKENx-webcake-jwtx-webcake-session-id
Other settings (environment variables or headers).
WEBCAKE_ENV
Network hosts it talks to 11
api.pexels.com· found in codeapi.staging.storecake.io· found in codeapi.storecake.io· found in codeapi.storefront.webcake.io· found in codecdn.jsdelivr.net· found in codegithub.com· found in codestaging.webcake.io· found in codestaging2.webcake.me· found in codestore.toolvn.io.vn· found in remote endpoint, install command, codevideo-public.canva.com· found in codewebcake.io· found in code
Files it touches
- Your home directory (~)
- Any path the agent passes to its tools
Tools (291)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
accept_invitationAccept a site invitation.
add_domainAttach a custom domain to the site. Triggers DNS/ownership validation.
add_draft_sectionAppend ONE section to a local page draft (NO network — this is the durable per-section cache step that can't time out). The section is re-id'd to avoid collisions and quick-validated; warnings are surfaced but never block. Build the section with new_section.
add_sectionAppend a section to an EXISTING page's source. Reads the current source, appends your section, validates, and (when dry_run=false) saves. The section is re-id'd to avoid collisions. Pass a section built with new_section, OR template:{ category_id, id } to insert a library section (list_section_templates). Two-step safety: dry_run=true (default) previews; dry_run=false saves.
add_site_languagesSet the full list of enabled languages for the site (used to add, remove, toggle, or change currency — always send the complete updated list). Requires the multilingual app installed.
append_site_custom_codeAppend or prepend code to a custom code field WITHOUT reading the existing content first. Use this when you need to ADD new CSS rules, JS code, or script tags — no need to read first. For full rewrites, use update_site_custom_code instead.
assign_customer_tagsAdd or remove tags on multiple customers at once.
auto_translateMachine-translate a JSON blob from one language to another. `type` must be a valid translation type (e.g. 'product', 'category'). Returns { trans, count }.
block_phone_customersBlock customer phone numbers (upsert the given list).
build_pageCreate 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.
check_domainCheck whether a domain is available/valid without attaching it.
clear_page_draftDelete a local page draft (does NOT delete any backend page already created from it).
commit_page_draftPersist a local page draft to the backend INCREMENTALLY (one section per request, 120s timeout each) so no single huge request can time out. dry_run=true (default) validates the assembled page and previews stats. dry_run=false creates the page then appends sections one at a time, saving progress after each. RESUMABLE: if a request fails mid-commit, the draft keeps its page_id + committed_count — just call commit_page_draft again to continue from where it stopped.
count_my_sitesCount the account's PERSONAL sites: active total, deleted (in trash), active by plan (paid && activated && not expired) with a per-plan breakdown, no plan, expired, pending payment, and sites on a verified custom domain. Plans are read per site (≤5 in parallel, up to max_sites); beyond that the result says checked/total. Notes: "published" is approximated by having a verified, non-blocked custom domain — published_at is set when the site is CREATED, so it does not prove the site was published. Team sites (persona_or_team) are NOT included.
count_orders_by_statusGet order count grouped by status. Useful for dashboard overview
Show 276 more tools
create_appointment_addressCreate an appointment location. Region ids are optional (Vietnamese geo ids).
create_appointment_calendarCreate a booking calendar = ONE employee's (technician's) working schedule. A calendar is per employee, not per service: one employee has at most one calendar per site, tied to one address. To set up staff schedules: list/create_appointment_employee → list/create_appointment_address → list/create_appointment_classify (services) → one calendar per employee with its own hours. Same hours for many staff? Create one, then duplicate_appointment_calendars and change assignee_id.
create_appointment_classifyCreate an appointment classify (service type).
create_appointment_employeeCreate an appointment employee (assignee).
create_articleCreate a blog article so blog/post pages (post-list, grid-blog, post-overlay) have content. Built via the dashboard command pipeline: title + optional summary, HTML content, image URLs, and category linkage. Pass category_ids from create_blog_category / list articles' categories so the post shows up under those categories (it is also auto-filed under the default category). Image URLs must be hosted (search_images / upload_images). The backend generates the id and slug. SEO: set it afterwards with update_article({ id, seo }).
create_automationCreate an automation. Checks the Automation app is installed first and installs it if needed. An automation = { name, type, status, rule }. 'rule' holds the trigger + actions (a map; shape depends on the trigger). Returns the new automation id (use it with send_mail for cms-triggered email).
create_blog_categoryCreate a blog/article category. Returns the new category id — pass it to create_article's category_id so posts are grouped (post-list / blog pages bind to it). Image must be a hosted URL. SEO: set it afterwards with update_blog_category({ id, seo }).
create_cms_fileCreate a new CMS file. Types: "http_function", "jobs_config", "default"
create_collectionCreate a new collection (custom data TABLE). It starts with the system columns (id/inserted_at/updated_at/creator_id); pass `columns` to add custom fields. NOTE: to WRITE records into it, use an HTTP function (webcake-data: db.model(table).create({...})) — the dashboard has no direct record-insert API. See get_http_function for the SDK guide.
create_contactCreate a contact entry.
create_courseCreate a course linked to a product. `tracks` are lessons; `file_downloads` are attachments. Note: video tracks trigger async HLS processing. A product can only link to one course.
create_font_groupCreate a font group (e.g. a Google Font family by URL).
create_global_sectionCreate a reusable global section (Header / Footer / shared block) the way the builder does: persists a global_section record AND embeds the same section node into page sources so it actually renders across the site (header → top of every page, footer → bottom). Build the section first with new_section (give it a real bg/padding + logo/menu/links), then pass it here. Two-step safety: dry_run=true (default) previews which pages change; dry_run=false performs the atomic save.
create_global_sourceCreate a new global source component. Component types: "cart-droppable" (cart), "popup", or any custom type.
create_or_update_reviewCreate a new review, edit an existing one, or post a shop reply. Omit `id` to create; include `id` to update. For a reply, set `parent_id` to the parent review id and `is_shop: true`. `product_ids` attaches the review to products (sent as product_reviews entries). `permission`: 0 = approved/shown, 1 = pending.
create_pageCreate a new (empty) page. For a page with content use build_page instead. type is a KIND (main/store/member/blog/custom/error/maintain) mapped to the numeric backend type; pass seo so it doesn't publish with an empty title. ONE page per site for main (homepage) / error / maintain, and slugs are unique per site — a duplicate is refused with the existing page_id to edit instead; only 'custom' pages can be created over and over.
create_partner_feedCreate a product feed. `name` is required; slug auto-generates. Optionally pass product_conditions to auto-populate.
create_productCreate a product so the storefront has real merchandise (grid-product / slider-product bindings need this). Simple use: pass name + price (+ images, category_ids). One default variation with the price/stock is created for you. Advanced use: pass attributes (e.g. Color/Size) + variations for a multi-SKU product. Images must be HOSTED URLs — get them from search_images or upload_images first. The backend generates id, slug and publishes the product. SEO: set it afterwards with update_product({ product_id, seo }).
create_product_categoryCreate a product category (so grid-category / a category page has something to show, and products can be filed under it). Returns the new category id — pass it to create_product's category_ids. Image must be a hosted URL. SEO: set it afterwards with update_product_category({ id, seo }).
create_products_from_device_templatesCreate products from selected device-template groups (Product Design app).
create_redirect_urlCreate a redirect from one path to another.
create_saved_filterCreate a saved table filter. `for_all_employees:true` shares it (needs config permission).
create_siteCreate a brand-new storefront site for the current account, then (by default) switch to it and return an EMPTY, CLEAN site (no sample products/categories) ready for element composition. The backend auto-seeds off-theme sample products + categories (and a sample blog); by default this tool DELETES that seed right after creating the site (keep the non-deletable default "All" category) so you start from a blank, on-theme store. Pass keep_seed:true to keep the sample data. The site has NO pages — after this, compose a homepage from elements: get_build_guide → new_section/new_element → build_page (…
create_site_from_templateCreate a NEW site from a marketplace TEMPLATE (the dedicated "use this template" API). Clones the template's pages, global sections, cart, popups, styles and fonts into a fresh site. Pick a template with semantic_search_themes / list_template_themes, then pass its theme_id here. Switches to the new site so you can immediately edit layout/content with update_page_element(s), colours/fonts via the site-style tools, then publish_site.
create_site_utmCreate a UTM tracking link.
create_subscriberAdd a newsletter subscriber (upsert by email or phone).
debug_functionRun JS code in debug mode (without deploying). Returns execution result and console logs
delete_affiliate_accountsRemove affiliate accounts. `payload` typically { ids: [...] }.
delete_affiliate_productsRemove products from the affiliate program. `payload` typically { ids: [...] }.
delete_appointment_addressesDelete appointment locations by id.
delete_appointment_calendarsDelete booking calendars by id.
delete_appointment_classifiesDelete appointment classifies by id.
delete_appointment_employeesDelete appointment employees by id.
delete_articleDelete blog articles (soft delete — they disappear from the site)
delete_automationDelete one or more automations by id.
delete_collectionDelete a collection (table) and all its records by id. Irreversible.
delete_contactsDelete contacts by id.
delete_courseDelete a course by id (also deletes its tracks).
delete_coursesDelete multiple courses by id.
delete_domainDetach/delete a custom domain from the site.
delete_employeesRemove employees (and any pending invitations) by site_permission id.
delete_global_sectionDelete a global section (Header/Footer/block) and remove its node from every page source. Two-step safety: dry_run=true (default) shows which pages would change; dry_run=false performs the atomic save.
delete_global_sourceDelete a global source and its published version
delete_pageDelete a page
delete_partner_feedsDelete product feeds by id.
delete_productDelete one or more products by id.
delete_product_categoryDelete one or more product categories by id.
delete_redirect_urlsDelete redirect URLs by id.
delete_saved_filterDelete (or dismiss, if not owner) a saved filter by id.
delete_site_utmsDelete UTM links by id.
delete_subscribersDelete subscribers by id.
duplicate_appointment_calendarsDuplicate booking calendars by id (creates copies).
edit_http_functionEdit the HTTP function file by function name — best for targeted changes (fix a bug, rename, add one function). For writing multiple new functions or major refactors, use update_http_function with full content instead. Actions: - "replace_function": replace an ENTIRE function by name with new code. Server finds function boundaries automatically. - "add": append new function code at end of file. - "remove": remove a function by name. - "update_imports": replace the import block (lines before first export). Returns updated function list after edit.
empty_media_trashPermanently delete all trashed media folders and content.
fetch_images_for_alt_fillOne-shot helper for filling image_alt across the site. Returns image bytes + element metadata in a single response so Claude can describe everything in one pass, then call set_image_alts once. Workflow: 1. Call this tool with scope/limit. 2. Tool returns each image inline with its element_id + source_type + source_id. 3. Claude reads images, drafts an alt for each, then calls set_image_alts(items) once with the template at the end of the response. The pre-built "items" template at the end contains placeholders — fill in "alt" and call set_image_alts.
find_customerFind a customer by ID, phone number, or email
get_active_promotionsGet all currently active promotions (is_activated=true and within start_time/end_time range)
get_affiliate_programsGet the affiliate commission programs (order-level and product-level) configured for the site.
get_affiliate_statisticGet aggregate affiliate statistics (clicks, orders, commission, payouts) for the site.
get_appDescription is built at runtime.
get_articleGet article details by ID (includes the full HTML content)
get_build_guideGet the BuilderX page authoring guide: page shape, the grid layout model, styling, breakpoints, forms/data, and the build workflow. Read this before building or heavily editing a page.
get_categoryGet a single product category by id (includes custom sort product ids).
get_collectionGet a specific collection's details including full schema (field names, types, constraints, references) and records
get_combo_itemsGet items (products/variations) and bonus products that compose a combo. Returns combo_items (required items with count) and bonus_items (free gifts)
get_courseGet a course by id (tracks, downloads, etc.).
get_course_membersList members (enrolled customers) of a course.
get_current_contextShow current connection context: which site_id, API URL, session, and account info. Call this first to confirm you're working on the right site
get_device_templatesGet the device-template groups for the Product Design app.
get_elementGet the full detail of an element type: category, container flag, summary, an ATTRIBUTES reference (the meaningful specials/config keys + their purpose/allowed values, events, and dataset binding targets), and a live skeleton node (the authoritative default shape) you can copy and edit. Read this before authoring/editing an element so you set the right keys.
get_email_templatesGet the site's transactional email templates (order confirmation, receipt, shop notice).
get_file_versionsView version history of a CMS file. Each version includes its saved content — to restore, pass that content back to update_http_function (the http_function file) or update_cms_file, or use restore_file_version.
get_global_sectionGet one global section as a COMPACT tree (3-5x fewer tokens than raw JSON). Each line: ID [type] "text" .class [Nbind] [Nev] (children_count). Use this to learn how a real Header/Footer/block is composed before building your own.
get_global_section_elementGet full detail (style, config, specials, events, bindings, responsive bp1..bp4, children IDs) of a single element inside a global section.
get_global_source_contentsGet multilingual contents for global sources by component type
get_global_source_detailGet full detail of a global source — compact tree view showing all elements. Each line: ID [type] "text" .class [events] [bindings] (children_count). Provide component for faster lookup; omit if you already called list_global_sources.
get_global_source_elementGet full detail of a single element (style, config, specials, events, bindings, responsive, children).
get_http_functionGet the main HTTP function file. Choose the right mode for your task: - overview=true: function names + line ranges only, NO code body. Use for: browsing, understanding structure, finding which function to read. - overview=false (DEFAULT): full code + collection schemas. Use for: writing new features, refactoring, understanding full context. Tip: for small fixes, use overview first then get_http_function_snippet to read just that function. Add include_guide=true on first call to get the coding guide
get_http_function_snippetRead specific function(s) by name. Much more token-efficient than reading the full file
get_insightGet analytics insight over a time range (defaults to last 7 days on the UI).
get_insight_todayGet today's insight snapshot (orders, customers, conversion).
get_intake_guideGet the INTAKE questionnaire + build flow to run BEFORE creating a new site/store/page. Call this at the start of any fresh build: ask the user this one short batch (plain words, with defaults), restate the plan, get a yes, THEN build. Skip only for tiny edits, data questions, or when the user already gave the brief / says 'just do it'.
get_media_capacityGet media storage capacity/usage for the site.
get_orderGet full order details by ID: customer info, items, payment, shipping, discounts, etc.
get_page_draftInspect a local page draft: its meta, the section ids, total section count, and (if a commit is in progress) the page_id + committed_count.
get_page_elementGet full detail of a single element by its ID (e.g. 'TEXT-3', 'BUTTON-1', 'SECTION-2'). Returns style, config, specials, events, bindings, responsive, and children IDs
get_page_schemaGet the authoritative JSON Schema (Draft 2020-12) for a page source `{ sections: [...] }` — the structural contract for every node (id/type/specials/runtime{style,config}/children/events/bindings) in the CSS-grid model. Use it as the shape to emit; validate_page enforces the semantic rules.
get_page_sourceGet page source overview: section count, element type counts, and all custom CSS classes. Use this first, then use search_page_elements to find specific elements
get_page_versionsView version history of a page
get_ppd_variation_templateGet the per-variation print/design templates for a product (PPD app).
get_price_contactGet the "contact for price" config. type 1 = applied to products, 2 = applied to categories.
get_productGet full product details by ID: name, description, price, variations, images, attributes, SEO, etc.
get_product_measurementGet the product measurement-unit tree (units with exchange values).
get_promotionGet full promotion details by ID: name, type, schedule, discount rules, coupon settings, items, bonus products, etc.
get_promotion_itemsGet products/variations/categories attached to a promotion. Returns items with discount details (fixed_prices, level_info, coupon_item_info)
get_pwaGet the site's PWA configuration (manifest + iOS icon).
get_reviewGet one review (with its replies / nested data) by id.
get_review_productsList the products a review is attached to (by review id).
get_shippingGet the site's shipping configuration (zones, fees, adjustments).
get_site_custom_codeGet custom code of the site (CSS/JS). Two modes: - Default: returns ALL 4 code fields (full content) - With field filter: returns only the specified field(s) — saves tokens when you only need CSS or JS Add include_guide=true on first call to get the coding guide
get_site_infoGet full site information: name, domain, settings (colors, typography, layout, language, payment methods, etc.) and preview_img — the latest homepage screenshots (1920_1080 desktop / 430_932 mobile), refreshed after publish_site.
get_site_subscriptionDescription is built at runtime.
get_source_cartGet all cart global sources with compact tree view. Shows full element hierarchy — no need to call get_global_source_detail separately.
get_variationGet a single product variation by its id.
ingest_htmlParse reference HTML into a structural blueprint (title, headings, paragraphs, images, buttons, colour palette) you can rebuild as BuilderX sections with new_section. Not a 1:1 clone.
ingest_urlFetch a public URL and parse it into a structural blueprint (see ingest_html). Note: client-rendered (React/Vue) pages may return little content.
install_appDescription is built at runtime.
invite_employeeInvite an employee to the site by email.
invoke_read_toolread-onlyRun a READ-ONLY WebCake tool (list_*/get_*/search_*/count_*… — annotations.readOnlyHint in search_tools) by exact name with its arguments. Prefer this over invoke_tool for lookups. Refuses tools that change data.
invoke_toolRun any WebCake tool by exact name with its arguments (discover names + schemas via search_tools). Arguments are validated before running. For read-only tools prefer invoke_read_tool.
list_affiliate_accountsList affiliate accounts (registered affiliates / referrers).
list_affiliate_ordersList affiliate-attributed orders (referrals that converted).
list_affiliate_payoutsList affiliate payout requests/records.
list_affiliate_productsList products enrolled in the affiliate program (with their commission settings).
list_api_keysList the site's API keys.
list_appointment_addressesList appointment locations/addresses.
list_appointment_calendarsList booking calendars (services with availability rules) for the current site.
list_appointment_classifiesList appointment classifies (service categories/types).
list_appointment_employeesList appointment employees (people that appointments can be assigned to).
list_appointmentsList booked appointments for the current site.
list_appsDescription is built at runtime.
list_articlesList blog articles (metadata only, without HTML content). Use get_article for the full content. Pass term to search by title/slug. Pass category_id to list the posts filed under one blog category — that view is the public one, so hidden posts and posts scheduled in the future are left out.
list_automationsList the site's automations so you can find an automation_id (e.g. to call send_mail, or to trigger from an HTTP function via @webcake/app/automation sendMail). Returns each automation's id, name, status and trigger info. Filter with 'term'. The id is what send_mail / the cms automation flow needs.
list_bindingsList every dynamic-data BINDING target: the datasets (product, cart_item, order, order_item, post, category, customer, customer_address, …) and their exact field names ('product::product_price', …), which page type each needs (store/member/blog), and how repeater children (grid-product, cart-items, post-list) bind per-item. Attach via new_element opts.bindings (ids auto-minted, e.g. opts.bindings=[{ target:'product::product_price' }]).
list_blocked_phonesList blocked phone numbers (e.g. blacklisted customers).
list_cached_resultsList the large results currently held in the session cache (id, label, size, age).
list_categoriesList all product categories of the site
list_cms_filesList all CMS files (HTTP functions, cron jobs, ...) for the site
list_collectionsList all database collections (tables) for the site. Returns collection names, table names, and field counts. Use get_collection for full schema details
list_combosList all combo/bundle products of the site. Use get_combo_items for combo composition details
list_contactsList contact-form submissions.
list_coursesList courses (Course app).
list_customer_tagsList customer tags for the site.
list_customersList/search the site's customers (browse or segment). Pass `term` to search by name/phone/email. Returns name, phone, email, order_count, purchased_amount, reward_point, tags, last_order_at. Use find_customer for an exact id/phone/email lookup.
list_domainsList custom domains attached to the site (plus the free subdomain).
list_elementsList all BuilderX element/component types you can place on a page, grouped by category with a one-line summary and whether each is a container.
list_employeesList the site's employees (team members with permissions).
list_entity_logsList the activity/change logs for a specific entity (e.g. an order). Requires the entity id and type.
list_eventsList every interaction EVENT you can attach to a node: the triggers (eventName: click/hover/success/submit/…) and the actions (open_page, scroll_to, toggle, open_popup, add_to_cart, buy_now, phone_call, open_link, …) with the exact extra fields each action needs. Attach via new_element/new_section opts.events (ids are auto-minted, e.g. opts.events=[{ action:'add_to_cart', open_page:'cart' }]).
list_font_groupsList font groups (font families with weights).
list_fontsList the site's uploaded/added fonts.
list_global_sectionsList reusable global sections (Header, Footer, shared content blocks) — SLIM summary only. Each entry: id, name, slot (header/footer/block), element count + type histogram + custom classes. The full element tree is large, so it is NOT returned here — drill in with get_global_section (compact tree), search_global_section_elements, or get_global_section_element.
list_global_sourcesList global sources (cart, popup, etc.). Returns compact summary per source. Always provide component to filter by type — the API may not return all types without a filter.
list_google_merchantsList the Google Merchant records linked to the site (read-only).
list_image_elementsFind all image elements across pages + global sources, with element_id, current alt, src, and the field path where alt is/should be written. Use as the first step before generating alt text via vision (read_image) and writing back with set_image_alts. Note: global_sections are read-only via the API and are not included.
list_invitationsList site invitations for the current account.
list_materialsList product materials for the site.
list_media_allList folders and content together in one call.
list_media_contentList media-library content (images/videos/files), optionally filtered by folder.
list_media_foldersList media-library folders (optionally under a parent folder).
list_my_sitesList the current account's PERSONAL sites (team sites are not included). Use this to find a site_id before switching. filter: "all" = active sites (default), "removed" = sites in trash. Each site has status, published_at (set at creation — not proof of publishing), slug, primary domain and has_custom_domain (verified, live, non-default domain). For plans use get_site_subscription / count_my_sites.
list_notificationsList notifications for the current account.
list_ordersList orders of the site (metadata only). Use get_order for full details including items
list_page_contentsList multi-language contents (translations) of the site's pages and global sections. Pass page_id + language_code to read one page's translation.
list_page_draftsList local page drafts for the current site (summaries only: id, name, slug, type, section count, commit progress, updated_at).
list_pagesList all pages of the site (metadata only, without source)
list_partner_feed_productsList the products inside a specific product feed.
list_partner_feedsList product feeds for sale channels (Google Shopping, Facebook, etc.).
list_plansList the plan catalog (gói cước): id, name, description, attributes. Plan names are free text, not an enum.
list_ppdList Personal Product Design assignments (products enabled for personalization).
list_product_brandsList product brand tags for the site.
list_product_suppliersList product supplier tags for the site.
list_product_tagsList product tags (paginated, searchable by name).
list_productsList products of the site (metadata only: id, name, slug, price, image, status). Use get_product for full details
list_promotionsList ALL promotions/discounts of the site (every page is fetched for you). Each row has id, name, type, is_activated, pos_id (non-null = linked/synced with POS), start/end time. The summary answers "how many promotions / how many synced with POS / how many active" in ONE call — do not call get_promotion per row for that. Use get_promotion only for one promotion's full rules.
list_publish_historiesList the site's publish history (past publishes).
list_redirect_urlsList SEO redirect URLs (301 redirects) for the site.
list_reviewsList product reviews (admin view) for the current site. Requires the product_review app installed. `permission` filters by moderation state (0 = approved/shown, 1 = pending). `sort_by`: "latest" | "oldest".
list_ribbonsList ribbons (product sale badges) for the site.
list_saved_filtersList saved table filters for a given table (e.g. 'orders', 'products').
list_section_templatesBrowse the designer-made section library (the editor's template picker): ready, styled blocks (hero, product showcase, testimonials, footer…) to start from instead of composing from scratch. No args → categories. With category_id and/or term → templates { id, name, thumbnail, kind }. Look at a thumbnail with invoke_tool('read_image', { url }), then insert a kind:"section" template with add_section({ page_id, template:{ category_id, id } }) and restyle it to the brand.
list_site_utmsList marketing UTM links (with view/order stats over the time window).
list_subscribersList newsletter subscribers.
list_template_themesSearch/list the public Webcake template marketplace (api.storecake.io). Use to match customer brief against existing templates by keyword. Returns id, name, preview_url, thumbnail, categories
list_themesList all custom themes of the site. Returns theme name, colors, typographies, transitions, and which one is active
list_tool_groupsList every WebCake tool group, how many tools it has, and whether it is loaded natively or reached on-demand via search_tools + invoke_tool.
list_translationsList translations for a resource type in a target language. Resources: product, combo_product, product_attribute, category, ribbon, article, article_category, promotion, page_name, site, notification. 'notification' takes no language filter; 'site' returns a flat key→value object.
mark_notification_readMark a notification as read.
moderate_reviewsApprove or hide reviews (change moderation status). `permission`: 0 = approved/shown, 1 = pending/hidden.
new_elementBuild a single structurally-valid element node from the real builder factory. Returns the node — edit its specials/style, then place it in a section's children.
new_page_skeletonReturn an empty but valid page source: { sections: [] }. Add sections built with new_section, then save with build_page.
new_rowBuild a multi-column ROW container: children laid out SIDE BY SIDE (not stacked). This is how real pages build feature cards, category tiles, footer columns, a 2-col hero, etc. The row is RESPONSIVE — it auto-collapses to fewer columns on tablet/mobile (default tablet 2, mobile 1) so cards never become cramped slivers. Place the returned node as a child inside a section (section children still stack vertically; nest a row for horizontal layout). Example children: [{ "type":"container", "children":[{"type":"image","opts":{...}},{"type":"text","opts":{...}}] }, { ... }, { ... }]
new_sectionBuild a complete section node with children laid out in the builder's vertical grid. Pass an array of element specs; each child is stacked top-to-bottom. Nest containers via the child's own 'children'. Example children: [{ "type":"text", "opts":{"text":"Welcome","style":{"fontSize":"40px"}} }, { "type":"button", "opts":{"text":"Shop now"} }]
publish_sitePublish the whole site live — snapshots all current page sources into the live (published) version. Note: BuilderX publishes at the SITE level, not per page; publishing makes every saved page go live. Two-step safety: dry_run=true (default) describes what will happen; dry_run=false actually publishes.
query_collection_recordsQuery records from a collection (custom data table) by table name. Supports paging + an optional `where` filter and `order_by` sort. (Uses the CMS api-key auth the records endpoint requires.)
read_cached_resultRead a slice of a large cached result produced by another tool (look for "cached":true + a cache_id in its output). Page through with offset/length; the response reports next_offset + remaining_chars until done.
read_imageFetch an image URL and return its bytes for vision analysis by the AI client. Pair with scan_unique_images to inspect images already on the site. After receiving the image, describe it (subject, style, palette, composition, mood, lighting, background, notable_details) to build an image-generation brief. Describe the image with these fields, useful as input for new image generation: - subject: main object / scene / person - style: photography, illustration, 3D render, flat vector, watercolor, ... - palette: 3–5 dominant colors (hex or names) - composition: layout, framing, focal point - mood:…
read_imagesBatch fetch multiple image URLs in parallel. Use when comparing several references or extracting motifs across a set. Capped at 5 images per call to keep context manageable. For each image, describe subject/style/palette/composition/mood; then synthesize common themes for the brief. Describe the image with these fields, useful as input for new image generation: - subject: main object / scene / person - style: photography, illustration, 3D render, flat vector, watercolor, ... - palette: 3–5 dominant colors (hex or names) - composition: layout, framing, focal point - mood: emotion or atmosphere…
refuse_invitationRefuse a site invitation.
remove_fontRemove a font by id.
remove_font_groupRemove a font group by id.
remove_ppdDisable Personal Product Design for the given ids.
remove_reviewsDelete one or more reviews by id.
rename_siteRename the site (display name).
restore_file_versionRoll a CMS file back to a saved version in one step: reads the version's content and writes it back to the file. Omit version_id to restore the most recent snapshot. Tip: save_file_version on the current content first if you want an undo point.
run_functionRun a deployed HTTP function. function_name excludes method prefix. Example: "get_Products" → function_name="Products", method="GET"
save_email_templatesCreate/update the transactional email templates. Each block is { title, content, status }.
save_file_versionSave a version snapshot of a CMS file for rollback
save_translationsSave translations for a resource type in a target language. Resources: product, combo_product, product_attribute, category, ribbon, article, article_category, promotion, page_name, site, notification. For most resources `items` is an array of translation rows. For 'site' pass the translations object (key→value). For 'notification' pass an array of { key, value } and language_code is ignored.
scan_unique_imagesScan all images used across page sources, global sources, and global sections. Returns a unique list of image URLs with which elements use each one. Useful for: image audit, finding broken/duplicated CDN URLs, bulk replace planning, theme migration. Scans every string field in the source tree (config.src, style.background-image, etc.) and CSS url(...) refs — wide net catches all variants.
search_global_section_elementsSearch/filter elements within a global section (Header/Footer/block) without dumping the whole tree. Filter by type, id substring, custom_class, text, or has_bind / has_events / has_custom_class.
search_global_source_elementsSearch/filter elements within a global source. No component param needed. Examples: - Find all buttons: type="button" - Find by class: custom_class="hero" - Find text: text="subscribe" - Data-bound only: has_bind=true - With events: has_events=true - With custom class: has_custom_class=true
search_imagesSearch stock photos (Pexels) for a page/product. IMPORTANT: the storefront only renders images served from the WebCake CDN (image domains are whitelisted) — raw Pexels URLs will NOT display. By default this re-hosts each result on the WebCake CDN and returns a ready-to-use cdn_url (cached, so repeats are free). Use cdn_url for image src / product images. Requires the PEXELS_API_KEY environment variable.
search_page_elementsSearch/filter elements within a page source. Returns matching elements with full detail (id, type, style, text, classes, etc.). Examples: - Find all buttons: type="button" - Find elements with custom class: custom_class="hero" - Find text containing "subscribe": text="subscribe" - Find all data-bound elements: has_bind=true - Find all elements with events: has_events=true - Find all elements with custom CSS classes: has_custom_class=true
search_productsSearch products by keyword. Returns matching products with basic info
search_promotionsSearch/filter ALL promotions (every page): by keyword, type, time status (coming_soon/in_progress/finished), active flag. Rows carry pos_id (non-null = synced with POS)
search_toolsFind WebCake tools by keyword across the FULL catalog — including capabilities NOT loaded natively (marketing/CRM, translations, media, appointments, affiliate, reviews, domains/SEO/shipping, brands/tags/ribbons, courses, sale channels, automation…). Returns name, group, description and JSON input schema. Then run one with invoke_read_tool (read-only) or invoke_tool.
semantic_search_themesSemantic search across the theme marketplace using bge-m3 embeddings (cosine similarity). Use when the brief is a natural-language description of industry + features (e.g. 'website mỹ phẩm có popup minigame và loyalty'), not just keywords. Returns top matches with theme_id, score, name, preview_url, thumbnail, description_vi/en
send_mailTrigger a CMS automation to send an email (same endpoint @webcake/app/automation sendMail uses). Requires the automation_id — get it from list_automations. 'data' is the payload passed to that automation/email template.
set_default_languageChange which enabled language is the site default.
set_image_altsBatch-write alt text for image elements across pages + global sources. Groups updates by source so each source is fetched + saved exactly once. Workflow: list_image_elements → read_image (per src) → describe → set_image_alts(items). If alt_path is omitted, it is auto-detected via the same probe used by list_image_elements (config.image.alt → config.alt → specials.alt).
set_product_publishedPublish or unpublish one or more products quickly (without a full update).
set_translation_seoSet the SEO ("Cài đặt SEO") of ONE item's translation in a target language — product, article, product category or blog category. Same fields as the item's own seo param; merged into that translation's existing SEO tags (fields you don't pass are kept). Only meta_tags is written, so the translated name/slug/content are untouched; the translation row is created if missing.
start_page_draftStart a page draft (no network). Build a multi-section page safely: cache each section with add_draft_section, then commit_page_draft persists it to the backend INCREMENTALLY (resumable on timeout). Use this instead of build_page for large/multi-section pages. The draft cache is DISPOSABLE (Redis on the remote server when REDIS_URL is set, in-memory otherwise; sliding ~2h TTL) — if a draft is ever lost, just re-send the sections, never a failure. ONE page per site for type main (homepage) / error / maintain, and slugs are unique per site: the draft is refused up-front with the existing page_id…
switch_siteSwitch to a different site by site_id. All subsequent tool calls will target the new site. The choice is saved to local database — next session will auto-connect to this site. Use list_my_sites first to find the site_id
sync_partner_feedPublish/sync a feed's products to its destination channel.
toggle_confirm_modeToggle update confirmation mode. Controls whether update tools ask for user confirmation before saving. - "always_confirm" (default): Shows diff first, requires user approval before saving. Safer. - "auto_apply": Applies changes immediately without preview. Faster but riskier. Current mode is saved to database and persists across sessions. Call this tool when the user says things like: → "tự động xác nhận" / "auto confirm" / "không cần hỏi" / "don't ask" / "apply directly" → mode: "auto_apply" → "hỏi trước khi lưu" / "luôn hỏi" / "always ask" / "confirm before saving" / "xác nhận trước" → mod…
toggle_debug_renderToggle debug render mode for a CMS file
unblock_all_phone_customersRemove all blocked customer phone numbers for the site.
uninstall_appUninstall (remove) an installed application from the current site. Pass the app's subscription id — get it from list_apps (the `id` field) or get_app.
update_affiliate_accountUpdate an affiliate account (e.g. commission rate, status). `payload` is the account object incl. its id.
update_affiliate_order_programCreate/update the order-level affiliate commission program. `payload` is the program object (e.g. { "is_activated": true, "commission_type": ..., "commission_value": ... }).
update_affiliate_payout_statusUpdate the status of affiliate payout(s). `payload` typically { ids: [...], status: <code> }.
update_affiliate_product_programCreate/update the product-level affiliate commission program. `payload` is the program object.
update_appUpdate an installed app's configuration. Pass the app subscription id and an `attrs` object that is merged onto the subscription — usually `{ settings: {...} }`, optionally `{ status }`. For the product-review app, prefer update_app_review (it also propagates shop_info).
update_app_reviewUpdate the product-review app's settings (e.g. shop_info, auto-approve, display options). Pass the review app's subscription id (get_app with type "product_review") and the full `settings` object.
update_appointment_addressUpdate an appointment location. Pass `id` plus fields to change.
update_appointment_calendarUpdate a booking calendar (an employee's schedule). Pass `id` plus any fields to change, same shape as create_appointment_calendar. config_weekdays / config_days REPLACE the whole list — to add one day-off, read the calendar (list_appointment_calendars), append, and send the full config_days.
update_appointment_classifyUpdate an appointment classify. Pass `id` plus fields to change.
update_appointment_employeeUpdate an appointment employee. Pass `id` plus fields to change.
update_articleUpdate a blog article. Only the fields you pass are changed — each one becomes a command in the same dashboard pipeline create_article uses. NOTE: renaming regenerates the slug, so pass slug in the SAME call if you want a custom one (it is applied after the rename).
update_authUpdate authentication credentials. All values are saved to local database — next session auto-restores them. Get token and session_id from browser DevTools → Network tab → copy from any API request headers
update_automationUpdate an automation by id. Pass only the fields to change (name, description, type, status, rule).
update_blog_categoryUpdate a blog/article category (name, description, image, slug, SEO). Pass id + fields to change.
update_cms_fileUpdate the code content of an existing CMS file
update_collection_columnsAdd or change a collection's custom columns. Reads the current schema, then PATCHes it with the system columns + your custom columns (the PATCH replaces the whole schema, so omitting a column drops it).
update_courseUpdate a course by id (partial). Pass `id` plus fields to change.
update_domainUpdate a domain (rename or advanced settings such as redirect/SSL).
update_employee_permissionsChange an employee's permission bitmask. Cannot change self or owner.
update_global_sourceReplace full source of a global source. IMPORTANT: Before calling this tool, you MUST: 1. Read existing source with get_global_source_detail first 2. Show the user what will change and get explicit confirmation 3. NEVER call without user approval — this replaces the ENTIRE source Safeguarded: blocks if new source is <50% of existing size. For element-level changes, prefer update_global_source_element instead.
update_global_source_contentsUpdate multilingual contents (upsert). Each entry: global_source_id, language_code, content. IMPORTANT: Before calling, you MUST read existing contents with get_global_source_contents first, then show the user what will change and get explicit confirmation. NEVER update without user approval.
update_global_source_elementUpdate a single element within a global source. Two-step process: STEP 1: Call with dry_run=true (default) → returns diff of what will change. STEP 2: Show the diff to the user and ask for confirmation. NEVER proceed without explicit user approval. STEP 3: Only after user confirms, call again with dry_run=false to apply. IMPORTANT: You MUST show the diff to the user and get explicit "yes/ok/confirm" before calling with dry_run=false. Skipping confirmation risks data loss. Merge rules: style/config/specials = shallow merge, responsive = merge by bp key. events/bindings = REPLACE the whole array…
update_global_source_elementsBatch update multiple elements in one global source. Two-step process: STEP 1: Call with dry_run=true (default) → returns per-element diff. STEP 2: Show all diffs to the user and ask for confirmation. NEVER proceed without explicit user approval. STEP 3: Only after user confirms, call again with dry_run=false to apply. IMPORTANT: You MUST show the diff to the user and get explicit "yes/ok/confirm" before calling with dry_run=false. Skipping confirmation risks data loss. Same merge rules: style/config/specials = shallow merge, events/bindings = replace.
update_http_functionWrite the FULL HTTP function file content. Best for: writing new features, major refactors, or changes that touch multiple functions. For small targeted edits (fix one function, add one function), use edit_http_function instead. After update, auto-deploys to the bundle service
update_media_contentUpdate a media content item (rename, move, or trash). Pass `id` plus fields.
update_media_folderUpdate a media folder (rename, move, or trash). Pass `id` plus fields.
update_pageUpdate page properties: name, slug, homepage, SEO ("Cài đặt SEO") and settings. seo / settings are MERGED into the page's current settings — fields you don't pass are kept.
update_page_contentCreate/update page content for a specific language. IMPORTANT: Before calling, you MUST read existing content with list_page_contents first, then show the user what will change and get explicit confirmation. NEVER update without user approval.
update_page_elementUpdate properties of a specific element in page source. Two-step process: STEP 1: Call with dry_run=true (default) → returns diff of what will change. STEP 2: Show the diff to the user and ask for confirmation. NEVER proceed without explicit user approval. STEP 3: Only after user confirms, call again with dry_run=false to apply. IMPORTANT: You MUST show the diff to the user and get explicit "yes/ok/confirm" before calling with dry_run=false. Skipping confirmation risks data loss. Merge rules: style/config/specials = shallow merge, responsive = merge by bp key. events/bindings = REPLACE the who…
update_page_elementsBatch update multiple elements in one page. Two-step process: STEP 1: Call with dry_run=true (default) → returns per-element diff. STEP 2: Show all diffs to the user and ask for confirmation. NEVER proceed without explicit user approval. STEP 3: Only after user confirms, call again with dry_run=false to apply. IMPORTANT: You MUST show the diff to the user and get explicit "yes/ok/confirm" before calling with dry_run=false. Skipping confirmation risks data loss. Same merge rules: style/config/specials = shallow merge, events/bindings = replace.
update_page_sourceDirectly update the full page source JSON. IMPORTANT: Before calling this tool, you MUST: 1. Read existing source with get_page_source first 2. Show the user what will change and get explicit confirmation 3. NEVER call without user approval — this replaces the ENTIRE page source Safeguarded: blocks if new source is <50% of existing size.
update_partner_feedUpdate a product feed. `partner_feed.id` must match `partner_feed_id`.
update_price_contactSet which products/categories are "contact for price" (full replace within the given type). type 1 → pass product_ids; type 2 → pass category_ids.
update_productUpdate an existing product. Pass product_id + only the fields to change. To change price/stock, pass variations (get_product first to see the existing variation shape). Images must be hosted CDN urls (search_images cdn_url / upload_images).
update_product_categoryUpdate a product category (name, image, description, visibility, SEO). Pass id + fields to change.
update_product_measurementUpsert product measurement units (full list). Each unit upserts by id; pass is_removed:true to delete one.
update_pwaUpdate the PWA manifest (the full manifest object replaces the existing one).
update_redirect_urlUpdate a redirect URL. Pass `is_deleted:true` to disable it.
update_saved_filterUpdate a saved filter by id.
update_shippingUpdate shipping config. Pass `idx` (the shipping record id) plus the fields to change (urban/suburban/area_shipping/adjust_price/shipping_unit/rank_priority).
update_site_custom_codeUpdate custom code (CSS/JS) for the entire site. Only sends fields you specify — others remain unchanged. IMPORTANT: Before calling, you MUST read existing code with get_site_custom_code first, then show the user what will change and get explicit confirmation. NEVER update without user approval. - code_before_head: HTML/script inserted before </head> - code_before_body: HTML/script inserted before </body> - code_custom_css: Custom CSS (auto-wrapped in <style>) - code_custom_javascript: Custom JavaScript
update_site_settingsUpdate general site settings. The `settings` object is shallow-merged onto existing settings; other top-level keys (currency, slugs, is_maintenance, robot_txt, …) replace directly.
update_site_slugChange the site's slug (subdomain). Fails if the slug is already taken.
update_site_utmUpdate a UTM link. Pass `id` plus fields to change.
upload_imagesConvert external image URLs, data: URIs, or LOCAL FILE PATHS into site-hosted CDN URLs by reading/downloading each image and re-uploading it to the WebCake backend. Use this whenever the user supplies their OWN images (their URLs or files from their machine), or a page is built from a reference HTML/URL. The returned CDN URLs go straight into an image element's specials.src / runtime.config.src, or a product/category image. This is REQUIRED for any external image (incl. Pexels search results) because the storefront only renders whitelisted WebCake-CDN image domains. Results are cached per site…
upload_media_base64Upload an image to the media library from a base64 data URI. Returns the CDN URL.
upsert_affiliate_productEnroll/update a product in the affiliate program with its own commission. `payload` includes the product id and commission fields (e.g. { "product_id": "...", "commission_type": ..., "commission_value": ... }).
upsert_customer_tagCreate or update a customer tag. Omit `id` to create.
upsert_materialCreate or update a product material. Supports nesting via parent_id. Omit `id` to create; `is_removed:true` to delete.
upsert_ppdEnable/update Personal Product Design for products (bulk).
upsert_product_brandCreate or update a product brand. Omit `id` to create; pass `is_removed:true` with an `id` to delete.
upsert_product_supplierCreate or update a product supplier. Omit `id` to create; `is_removed:true` to delete.
upsert_product_tagCreate or update a product tag. Omit `id` to create; `is_removed:true` to delete (also detaches from products).
upsert_ribbonCreate or update a ribbon (sale badge). `type` and `name` are unique per site. Omit `id` to create; `is_removed:true` to delete.
validate_pageValidate a page source ({ sections: [...] }). Returns errors (block saving: duplicate/missing ids, missing types) and warnings (unknown types, form fields without field_name, dangling event targets) plus stats. Always run this before build_page.
verify_domainRun DNS verification for a domain and enqueue SSL issuance.
Signals
- Stars
- 4
- Forks
- 0
- Open issues
- 0
- Last commit
- Oct 22, 2026 (6 days ago)
- Last release
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.vuluu2k/webcake-storefront-mcp- Version
- 1.36.0
- Auth
- API key
- Packages
- npm webcake-storefront-mcp
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from vuluu2k
- 0.640score
Webcake Landing
vuluu2k
Build, validate, and persist Webcake landing-page source JSON: element schemas plus AI usage hints.
ConnectorAFreshness: ARemoteLocal★ 7Claude Code +5 - 0.510score
Store Builder
vuluu2k
Design, fill with real store data, render and publish Store Builder pages from an AI agent.
ConnectorAFreshness: ALocalClaude Code +5
Cite this page
WebCake Storefront MCP server. Agent Mart. https://agentmart.dev/connectors/vuluu2k-webcake-storefront-mcp (last updated 2026-10-24)