Skip to content
Agentmart
Submit a tool

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

IndexedMITLocal (stdio)Remote (HTTP)★ 4
Write a review

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/mcp Remote (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.

We use your email only for this newsletter. Privacy

About

Build pages and manage products, orders, and content on the WebCake/StoreCake storefront builder.

No 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_translate
  • check_domain
  • count_my_sites
  • count_orders_by_status
  • fetch_images_for_alt_fill
  • find_customer
  • get_active_promotions
  • get_affiliate_programs
  • get_affiliate_statistic
  • get_app
  • get_article
  • get_build_guide
Show 127 more tools
  • get_category
  • get_collection
  • get_combo_items
  • get_course
  • get_course_members
  • get_current_context
  • get_device_templates
  • get_element
  • get_email_templates
  • get_file_versions
  • get_global_section
  • get_global_section_element
  • get_global_source_contents
  • get_global_source_detail
  • get_global_source_element
  • get_http_function
  • get_http_function_snippet
  • get_insight
  • get_insight_today
  • get_intake_guide
  • get_media_capacity
  • get_order
  • get_page_draft
  • get_page_element
  • get_page_schema
  • get_page_source
  • get_page_versions
  • get_ppd_variation_template
  • get_price_contact
  • get_product
  • get_product_measurement
  • get_promotion
  • get_promotion_items
  • get_pwa
  • get_review
  • get_review_products
  • get_shipping
  • get_site_custom_code
  • get_site_info
  • get_site_subscription
  • get_source_cart
  • get_variation
  • ingest_html
  • ingest_url
  • invoke_read_tool
  • list_affiliate_accounts
  • list_affiliate_orders
  • list_affiliate_payouts
  • list_affiliate_products
  • list_api_keys
  • list_appointment_addresses
  • list_appointment_calendars
  • list_appointment_classifies
  • list_appointment_employees
  • list_appointments
  • list_apps
  • list_articles
  • list_automations
  • list_bindings
  • list_blocked_phones
  • list_cached_results
  • list_categories
  • list_cms_files
  • list_collections
  • list_combos
  • list_contacts
  • list_courses
  • list_customer_tags
  • list_customers
  • list_domains
  • list_elements
  • list_employees
  • list_entity_logs
  • list_events
  • list_font_groups
  • list_fonts
  • list_global_sections
  • list_global_sources
  • list_google_merchants
  • list_image_elements
  • list_invitations
  • list_materials
  • list_media_all
  • list_media_content
  • list_media_folders
  • list_my_sites
  • list_notifications
  • list_orders
  • list_page_contents
  • list_page_drafts
  • list_pages
  • list_partner_feed_products
  • list_partner_feeds
  • list_plans
  • list_ppd
  • list_product_brands
  • list_product_suppliers
  • list_product_tags
  • list_products
  • list_promotions
  • list_publish_histories
  • list_redirect_urls
  • list_reviews
  • list_ribbons
  • list_saved_filters
  • list_section_templates
  • list_site_utms
  • list_subscribers
  • list_template_themes
  • list_themes
  • list_tool_groups
  • list_translations
  • new_page_skeleton
  • query_collection_records
  • read_cached_result
  • read_image
  • read_images
  • scan_unique_images
  • search_global_section_elements
  • search_global_source_elements
  • search_images
  • search_page_elements
  • search_products
  • search_promotions
  • search_tools
  • semantic_search_themes
  • validate_page

Write 112 · Create, change, send or run things.

  • accept_invitation
  • add_domain
  • add_draft_section
  • add_section
  • append_site_custom_code
  • build_page
  • commit_page_draft
  • create_appointment_address
  • create_appointment_calendar
  • create_appointment_classify
  • create_appointment_employee
  • create_article
Show 100 more tools
  • create_automation
  • create_blog_category
  • create_cms_file
  • create_collection
  • create_contact
  • create_course
  • create_font_group
  • create_global_section
  • create_global_source
  • create_or_update_review
  • create_page
  • create_partner_feed
  • create_product
  • create_product_category
  • create_products_from_device_templates
  • create_redirect_url
  • create_saved_filter
  • create_site
  • create_site_from_template
  • create_site_utm
  • create_subscriber
  • debug_function
  • edit_http_function
  • install_app
  • invite_employee
  • invoke_tool
  • mark_notification_read
  • new_element
  • new_row
  • new_section
  • publish_site
  • rename_site
  • restore_file_version
  • run_function
  • save_email_templates
  • save_file_version
  • save_translations
  • send_mail
  • set_default_language
  • set_image_alts
  • set_product_published
  • set_translation_seo
  • start_page_draft
  • sync_partner_feed
  • toggle_confirm_mode
  • toggle_debug_render
  • update_affiliate_account
  • update_affiliate_order_program
  • update_affiliate_payout_status
  • update_affiliate_product_program
  • update_app
  • update_app_review
  • update_appointment_address
  • update_appointment_calendar
  • update_appointment_classify
  • update_appointment_employee
  • update_article
  • update_auth
  • update_automation
  • update_blog_category
  • update_cms_file
  • update_collection_columns
  • update_course
  • update_domain
  • update_employee_permissions
  • update_global_source
  • update_global_source_contents
  • update_global_source_element
  • update_global_source_elements
  • update_http_function
  • update_media_content
  • update_media_folder
  • update_page
  • update_page_content
  • update_page_element
  • update_page_elements
  • update_page_source
  • update_partner_feed
  • update_price_contact
  • update_product
  • update_product_category
  • update_product_measurement
  • update_pwa
  • update_redirect_url
  • update_saved_filter
  • update_shipping
  • update_site_custom_code
  • update_site_settings
  • update_site_slug
  • update_site_utm
  • upload_images
  • upload_media_base64
  • upsert_affiliate_product
  • upsert_customer_tag
  • upsert_material
  • upsert_ppd
  • upsert_product_brand
  • upsert_product_supplier
  • upsert_product_tag
  • upsert_ribbon

Delete 33 · Delete, drop, revoke or wipe things.

  • add_site_languages
  • assign_customer_tags
  • clear_page_draft
  • delete_affiliate_accounts
  • delete_affiliate_products
  • delete_appointment_addresses
  • delete_appointment_calendars
  • delete_appointment_classifies
  • delete_appointment_employees
  • delete_article
  • delete_automation
  • delete_collection
Show 21 more tools
  • delete_contacts
  • delete_course
  • delete_courses
  • delete_domain
  • delete_employees
  • delete_global_section
  • delete_global_source
  • delete_page
  • delete_partner_feeds
  • delete_product
  • delete_product_category
  • delete_redirect_urls
  • delete_saved_filter
  • delete_site_utms
  • delete_subscribers
  • remove_font
  • remove_font_group
  • remove_ppd
  • remove_reviews
  • unblock_all_phone_customers
  • uninstall_app

Not yet classified 7 · We could not tell from the name and description.

  • block_phone_customers
  • duplicate_appointment_calendars
  • empty_media_trash
  • moderate_reviews
  • refuse_invitation
  • switch_site
  • verify_domain

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • PEXELS_API_KEY
  • WEBCAKE_SESSION_ID
  • WEBCAKE_TOKEN
  • x-webcake-jwt
  • x-webcake-session-id

Other settings (environment variables or headers).

  • WEBCAKE_ENV

Network hosts it talks to 11

  • api.pexels.com · found in code
  • api.staging.storecake.io · found in code
  • api.storecake.io · found in code
  • api.storefront.webcake.io · found in code
  • cdn.jsdelivr.net · found in code
  • github.com · found in code
  • staging.webcake.io · found in code
  • staging2.webcake.me · found in code
  • store.toolvn.io.vn · found in remote endpoint, install command, code
  • video-public.canva.com · found in code
  • webcake.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_invitation

    Accept a site invitation.

  • add_domain

    Attach a custom domain to the site. Triggers DNS/ownership validation.

  • add_draft_section

    Append 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_section

    Append 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_languages

    Set 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_code

    Append 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_tags

    Add or remove tags on multiple customers at once.

  • auto_translate

    Machine-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_customers

    Block customer phone numbers (upsert the given list).

  • build_page

    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.

  • check_domain

    Check whether a domain is available/valid without attaching it.

  • clear_page_draft

    Delete a local page draft (does NOT delete any backend page already created from it).

  • commit_page_draft

    Persist 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_sites

    Count 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_status

    Get order count grouped by status. Useful for dashboard overview

Show 276 more tools
  • create_appointment_address

    Create an appointment location. Region ids are optional (Vietnamese geo ids).

  • create_appointment_calendar

    Create 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_classify

    Create an appointment classify (service type).

  • create_appointment_employee

    Create an appointment employee (assignee).

  • create_article

    Create 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_automation

    Create 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_category

    Create 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_file

    Create a new CMS file. Types: "http_function", "jobs_config", "default"

  • create_collection

    Create 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_contact

    Create a contact entry.

  • create_course

    Create 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_group

    Create a font group (e.g. a Google Font family by URL).

  • create_global_section

    Create 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_source

    Create a new global source component. Component types: "cart-droppable" (cart), "popup", or any custom type.

  • create_or_update_review

    Create 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_page

    Create 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_feed

    Create a product feed. `name` is required; slug auto-generates. Optionally pass product_conditions to auto-populate.

  • create_product

    Create 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_category

    Create 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_templates

    Create products from selected device-template groups (Product Design app).

  • create_redirect_url

    Create a redirect from one path to another.

  • create_saved_filter

    Create a saved table filter. `for_all_employees:true` shares it (needs config permission).

  • create_site

    Create 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_template

    Create 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_utm

    Create a UTM tracking link.

  • create_subscriber

    Add a newsletter subscriber (upsert by email or phone).

  • debug_function

    Run JS code in debug mode (without deploying). Returns execution result and console logs

  • delete_affiliate_accounts

    Remove affiliate accounts. `payload` typically { ids: [...] }.

  • delete_affiliate_products

    Remove products from the affiliate program. `payload` typically { ids: [...] }.

  • delete_appointment_addresses

    Delete appointment locations by id.

  • delete_appointment_calendars

    Delete booking calendars by id.

  • delete_appointment_classifies

    Delete appointment classifies by id.

  • delete_appointment_employees

    Delete appointment employees by id.

  • delete_article

    Delete blog articles (soft delete — they disappear from the site)

  • delete_automation

    Delete one or more automations by id.

  • delete_collection

    Delete a collection (table) and all its records by id. Irreversible.

  • delete_contacts

    Delete contacts by id.

  • delete_course

    Delete a course by id (also deletes its tracks).

  • delete_courses

    Delete multiple courses by id.

  • delete_domain

    Detach/delete a custom domain from the site.

  • delete_employees

    Remove employees (and any pending invitations) by site_permission id.

  • delete_global_section

    Delete 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_source

    Delete a global source and its published version

  • delete_page

    Delete a page

  • delete_partner_feeds

    Delete product feeds by id.

  • delete_product

    Delete one or more products by id.

  • delete_product_category

    Delete one or more product categories by id.

  • delete_redirect_urls

    Delete redirect URLs by id.

  • delete_saved_filter

    Delete (or dismiss, if not owner) a saved filter by id.

  • delete_site_utms

    Delete UTM links by id.

  • delete_subscribers

    Delete subscribers by id.

  • duplicate_appointment_calendars

    Duplicate booking calendars by id (creates copies).

  • edit_http_function

    Edit 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_trash

    Permanently delete all trashed media folders and content.

  • fetch_images_for_alt_fill

    One-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_customer

    Find a customer by ID, phone number, or email

  • get_active_promotions

    Get all currently active promotions (is_activated=true and within start_time/end_time range)

  • get_affiliate_programs

    Get the affiliate commission programs (order-level and product-level) configured for the site.

  • get_affiliate_statistic

    Get aggregate affiliate statistics (clicks, orders, commission, payouts) for the site.

  • get_app

    Description is built at runtime.

  • get_article

    Get article details by ID (includes the full HTML content)

  • get_build_guide

    Get 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_category

    Get a single product category by id (includes custom sort product ids).

  • get_collection

    Get a specific collection's details including full schema (field names, types, constraints, references) and records

  • get_combo_items

    Get items (products/variations) and bonus products that compose a combo. Returns combo_items (required items with count) and bonus_items (free gifts)

  • get_course

    Get a course by id (tracks, downloads, etc.).

  • get_course_members

    List members (enrolled customers) of a course.

  • get_current_context

    Show 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_templates

    Get the device-template groups for the Product Design app.

  • get_element

    Get 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_templates

    Get the site's transactional email templates (order confirmation, receipt, shop notice).

  • get_file_versions

    View 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_section

    Get 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_element

    Get full detail (style, config, specials, events, bindings, responsive bp1..bp4, children IDs) of a single element inside a global section.

  • get_global_source_contents

    Get multilingual contents for global sources by component type

  • get_global_source_detail

    Get 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_element

    Get full detail of a single element (style, config, specials, events, bindings, responsive, children).

  • get_http_function

    Get 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_snippet

    Read specific function(s) by name. Much more token-efficient than reading the full file

  • get_insight

    Get analytics insight over a time range (defaults to last 7 days on the UI).

  • get_insight_today

    Get today's insight snapshot (orders, customers, conversion).

  • get_intake_guide

    Get 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_capacity

    Get media storage capacity/usage for the site.

  • get_order

    Get full order details by ID: customer info, items, payment, shipping, discounts, etc.

  • get_page_draft

    Inspect 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_element

    Get 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_schema

    Get 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_source

    Get 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_versions

    View version history of a page

  • get_ppd_variation_template

    Get the per-variation print/design templates for a product (PPD app).

  • get_price_contact

    Get the "contact for price" config. type 1 = applied to products, 2 = applied to categories.

  • get_product

    Get full product details by ID: name, description, price, variations, images, attributes, SEO, etc.

  • get_product_measurement

    Get the product measurement-unit tree (units with exchange values).

  • get_promotion

    Get full promotion details by ID: name, type, schedule, discount rules, coupon settings, items, bonus products, etc.

  • get_promotion_items

    Get products/variations/categories attached to a promotion. Returns items with discount details (fixed_prices, level_info, coupon_item_info)

  • get_pwa

    Get the site's PWA configuration (manifest + iOS icon).

  • get_review

    Get one review (with its replies / nested data) by id.

  • get_review_products

    List the products a review is attached to (by review id).

  • get_shipping

    Get the site's shipping configuration (zones, fees, adjustments).

  • get_site_custom_code

    Get 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_info

    Get 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_subscription

    Description is built at runtime.

  • get_source_cart

    Get all cart global sources with compact tree view. Shows full element hierarchy — no need to call get_global_source_detail separately.

  • get_variation

    Get a single product variation by its id.

  • ingest_html

    Parse 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_url

    Fetch a public URL and parse it into a structural blueprint (see ingest_html). Note: client-rendered (React/Vue) pages may return little content.

  • install_app

    Description is built at runtime.

  • invite_employee

    Invite an employee to the site by email.

  • invoke_read_toolread-only

    Run 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_tool

    Run 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_accounts

    List affiliate accounts (registered affiliates / referrers).

  • list_affiliate_orders

    List affiliate-attributed orders (referrals that converted).

  • list_affiliate_payouts

    List affiliate payout requests/records.

  • list_affiliate_products

    List products enrolled in the affiliate program (with their commission settings).

  • list_api_keys

    List the site's API keys.

  • list_appointment_addresses

    List appointment locations/addresses.

  • list_appointment_calendars

    List booking calendars (services with availability rules) for the current site.

  • list_appointment_classifies

    List appointment classifies (service categories/types).

  • list_appointment_employees

    List appointment employees (people that appointments can be assigned to).

  • list_appointments

    List booked appointments for the current site.

  • list_apps

    Description is built at runtime.

  • list_articles

    List 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_automations

    List 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_bindings

    List 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_phones

    List blocked phone numbers (e.g. blacklisted customers).

  • list_cached_results

    List the large results currently held in the session cache (id, label, size, age).

  • list_categories

    List all product categories of the site

  • list_cms_files

    List all CMS files (HTTP functions, cron jobs, ...) for the site

  • list_collections

    List all database collections (tables) for the site. Returns collection names, table names, and field counts. Use get_collection for full schema details

  • list_combos

    List all combo/bundle products of the site. Use get_combo_items for combo composition details

  • list_contacts

    List contact-form submissions.

  • list_courses

    List courses (Course app).

  • list_customer_tags

    List customer tags for the site.

  • list_customers

    List/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_domains

    List custom domains attached to the site (plus the free subdomain).

  • list_elements

    List 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_employees

    List the site's employees (team members with permissions).

  • list_entity_logs

    List the activity/change logs for a specific entity (e.g. an order). Requires the entity id and type.

  • list_events

    List 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_groups

    List font groups (font families with weights).

  • list_fonts

    List the site's uploaded/added fonts.

  • list_global_sections

    List 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_sources

    List 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_merchants

    List the Google Merchant records linked to the site (read-only).

  • list_image_elements

    Find 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_invitations

    List site invitations for the current account.

  • list_materials

    List product materials for the site.

  • list_media_all

    List folders and content together in one call.

  • list_media_content

    List media-library content (images/videos/files), optionally filtered by folder.

  • list_media_folders

    List media-library folders (optionally under a parent folder).

  • list_my_sites

    List 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_notifications

    List notifications for the current account.

  • list_orders

    List orders of the site (metadata only). Use get_order for full details including items

  • list_page_contents

    List 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_drafts

    List local page drafts for the current site (summaries only: id, name, slug, type, section count, commit progress, updated_at).

  • list_pages

    List all pages of the site (metadata only, without source)

  • list_partner_feed_products

    List the products inside a specific product feed.

  • list_partner_feeds

    List product feeds for sale channels (Google Shopping, Facebook, etc.).

  • list_plans

    List the plan catalog (gói cước): id, name, description, attributes. Plan names are free text, not an enum.

  • list_ppd

    List Personal Product Design assignments (products enabled for personalization).

  • list_product_brands

    List product brand tags for the site.

  • list_product_suppliers

    List product supplier tags for the site.

  • list_product_tags

    List product tags (paginated, searchable by name).

  • list_products

    List products of the site (metadata only: id, name, slug, price, image, status). Use get_product for full details

  • list_promotions

    List 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_histories

    List the site's publish history (past publishes).

  • list_redirect_urls

    List SEO redirect URLs (301 redirects) for the site.

  • list_reviews

    List 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_ribbons

    List ribbons (product sale badges) for the site.

  • list_saved_filters

    List saved table filters for a given table (e.g. 'orders', 'products').

  • list_section_templates

    Browse 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_utms

    List marketing UTM links (with view/order stats over the time window).

  • list_subscribers

    List newsletter subscribers.

  • list_template_themes

    Search/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_themes

    List all custom themes of the site. Returns theme name, colors, typographies, transitions, and which one is active

  • list_tool_groups

    List 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_translations

    List 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_read

    Mark a notification as read.

  • moderate_reviews

    Approve or hide reviews (change moderation status). `permission`: 0 = approved/shown, 1 = pending/hidden.

  • new_element

    Build 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_skeleton

    Return an empty but valid page source: { sections: [] }. Add sections built with new_section, then save with build_page.

  • new_row

    Build 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_section

    Build 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_site

    Publish 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_records

    Query 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_result

    Read 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_image

    Fetch 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_images

    Batch 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_invitation

    Refuse a site invitation.

  • remove_font

    Remove a font by id.

  • remove_font_group

    Remove a font group by id.

  • remove_ppd

    Disable Personal Product Design for the given ids.

  • remove_reviews

    Delete one or more reviews by id.

  • rename_site

    Rename the site (display name).

  • restore_file_version

    Roll 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_function

    Run a deployed HTTP function. function_name excludes method prefix. Example: "get_Products" → function_name="Products", method="GET"

  • save_email_templates

    Create/update the transactional email templates. Each block is { title, content, status }.

  • save_file_version

    Save a version snapshot of a CMS file for rollback

  • save_translations

    Save 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_images

    Scan 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_elements

    Search/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_elements

    Search/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_images

    Search 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_elements

    Search/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_products

    Search products by keyword. Returns matching products with basic info

  • search_promotions

    Search/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_tools

    Find 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_themes

    Semantic 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_mail

    Trigger 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_language

    Change which enabled language is the site default.

  • set_image_alts

    Batch-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_published

    Publish or unpublish one or more products quickly (without a full update).

  • set_translation_seo

    Set 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_draft

    Start 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_site

    Switch 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_feed

    Publish/sync a feed's products to its destination channel.

  • toggle_confirm_mode

    Toggle 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_render

    Toggle debug render mode for a CMS file

  • unblock_all_phone_customers

    Remove all blocked customer phone numbers for the site.

  • uninstall_app

    Uninstall (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_account

    Update an affiliate account (e.g. commission rate, status). `payload` is the account object incl. its id.

  • update_affiliate_order_program

    Create/update the order-level affiliate commission program. `payload` is the program object (e.g. { "is_activated": true, "commission_type": ..., "commission_value": ... }).

  • update_affiliate_payout_status

    Update the status of affiliate payout(s). `payload` typically { ids: [...], status: <code> }.

  • update_affiliate_product_program

    Create/update the product-level affiliate commission program. `payload` is the program object.

  • update_app

    Update 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_review

    Update 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_address

    Update an appointment location. Pass `id` plus fields to change.

  • update_appointment_calendar

    Update 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_classify

    Update an appointment classify. Pass `id` plus fields to change.

  • update_appointment_employee

    Update an appointment employee. Pass `id` plus fields to change.

  • update_article

    Update 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_auth

    Update 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_automation

    Update an automation by id. Pass only the fields to change (name, description, type, status, rule).

  • update_blog_category

    Update a blog/article category (name, description, image, slug, SEO). Pass id + fields to change.

  • update_cms_file

    Update the code content of an existing CMS file

  • update_collection_columns

    Add 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_course

    Update a course by id (partial). Pass `id` plus fields to change.

  • update_domain

    Update a domain (rename or advanced settings such as redirect/SSL).

  • update_employee_permissions

    Change an employee's permission bitmask. Cannot change self or owner.

  • update_global_source

    Replace 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_contents

    Update 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_element

    Update 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_elements

    Batch 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_function

    Write 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_content

    Update a media content item (rename, move, or trash). Pass `id` plus fields.

  • update_media_folder

    Update a media folder (rename, move, or trash). Pass `id` plus fields.

  • update_page

    Update 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_content

    Create/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_element

    Update 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_elements

    Batch 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_source

    Directly 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_feed

    Update a product feed. `partner_feed.id` must match `partner_feed_id`.

  • update_price_contact

    Set which products/categories are "contact for price" (full replace within the given type). type 1 → pass product_ids; type 2 → pass category_ids.

  • update_product

    Update 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_category

    Update a product category (name, image, description, visibility, SEO). Pass id + fields to change.

  • update_product_measurement

    Upsert product measurement units (full list). Each unit upserts by id; pass is_removed:true to delete one.

  • update_pwa

    Update the PWA manifest (the full manifest object replaces the existing one).

  • update_redirect_url

    Update a redirect URL. Pass `is_deleted:true` to disable it.

  • update_saved_filter

    Update a saved filter by id.

  • update_shipping

    Update 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_code

    Update 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_settings

    Update 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_slug

    Change the site's slug (subdomain). Fails if the slug is already taken.

  • update_site_utm

    Update a UTM link. Pass `id` plus fields to change.

  • upload_images

    Convert 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_base64

    Upload an image to the media library from a base64 data URI. Returns the CDN URL.

  • upsert_affiliate_product

    Enroll/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_tag

    Create or update a customer tag. Omit `id` to create.

  • upsert_material

    Create or update a product material. Supports nesting via parent_id. Omit `id` to create; `is_removed:true` to delete.

  • upsert_ppd

    Enable/update Personal Product Design for products (bulk).

  • upsert_product_brand

    Create or update a product brand. Omit `id` to create; pass `is_removed:true` with an `id` to delete.

  • upsert_product_supplier

    Create or update a product supplier. Omit `id` to create; `is_removed:true` to delete.

  • upsert_product_tag

    Create or update a product tag. Omit `id` to create; `is_removed:true` to delete (also detaches from products).

  • upsert_ribbon

    Create or update a ribbon (sale badge). `type` and `name` are unique per site. Omit `id` to create; `is_removed:true` to delete.

  • validate_page

    Validate 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_domain

    Run 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
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from vuluu2k

Cite this page

WebCake Storefront MCP server. Agent Mart. https://agentmart.dev/connectors/vuluu2k-webcake-storefront-mcp (last updated 2026-10-24)