Skip to main content
Glama

sb_store

Runs fixed-order Store Builder setup actions: publish checkout, sync payment/delivery, seed forms, build shared header/footer, attach menus, overlays, cart, apps, and global sections.

Instructions

Run a store flow that must happen in a fixed order. action:"checkout" makes the order form, configures it, saves its fields with this store's real payment and delivery options, then creates and PUBLISHES the checkout page — /checkout 404s without all four. action:"checkout_sync" re-reads the store's payment and delivery methods into every existing order form and republishes the checkout page — run it after adding a shipping method or switching on a gateway, since the form keeps the options it was saved with. action:"form" seeds any of the platform's other form templates (login, register, forgot, reset, verify, contact, subscribe, booking, review and more) with its own field document, which is the part that cannot be guessed. action:"chrome" gives every page ONE shared header (footer:true — footer) built on a real site menu of page/category/product references: a desktop menu, a mobile drawer, cart and account icons — the gap sb_review reports as siteChrome. action:"menu" binds a menu node on the open page to the site's menu and resolves its links, the way the editor does. action:"overlay_attach" puts a pop-up on the open page (kind:"popup") or points a list-dataset at a quick-view panel (kind:"quickview", list_id), creating either from the platform's own seed when overlay_id is omitted, and re-reads the page afterwards as the editor must. action:"cart" creates the site's cart drawer from the editor's seed when it has none — without it every open_cart control opens nothing. action:"app" installs one of the platform's built-in apps (app_key) and creates the pages it needs that installing it does not — today only "courses" has any, from the platform's own scaffold; every other key installs with nothing further to build. action:"global_attach" puts an EXISTING shared section (global_id) on the open page and action:"global_detach" takes it off, writing the reference the platform reads and placing it in the band ROOT's child order demands — the answer for a page that is missing the site's header, where action:"chrome" would wrongly build a second one. Dry run returns the plan.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNoaction:"overlay_attach" — which kind of overlay to attach
nameNoaction:"form" — the form's name in the merchant's list. action:"overlay_attach" with no overlay_id — the new pop-up/quick-view's name.
actionYes
footerNoaction:"chrome" — build a shared FOOTER instead of a header
app_keyNoaction:"app" — which built-in app to install
dry_runNo
list_idNoaction:"overlay_attach" kind:"quickview" — the list-dataset node on the open page
menu_idNo
node_idNoaction:"menu" — the menu node on the open page
site_idNo
headlineNo
languageNoCopy language, default vi
templateNoaction:"form" — which of the platform's own form templates to seed
global_idNoaction:"global_attach"/"global_detach" — the shared section; omitted on attach it lists the site's own
page_nameNo
overlay_idNoaction:"overlay_attach" — an existing overlay; omit to create one from the seed
relocalizeNoaction:"cart" — rewrite an EXISTING drawer's seed words that are in another language to the site locale's (edited text untouched), and turn a gallery line thumbnail into a single image; needs a page of the site open

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.76.3
    • changedInput schema / properties / relocalize / description
      Previous value: -"action:\"cart\" — rewrite an EXISTING drawer's seed words that are in another language to the site locale's (edited text untouched); needs a page of the site open"New value: +"action:\"cart\" — rewrite an EXISTING drawer's seed words that are in another language to the site locale's (edited text untouched), and turn a gallery line thumbnail into a single image; needs a page of the site open"
  2. Changed2 schema fields changedv0.69.0
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "checkout",
      -  "form",
      -  "chrome",
      -  "menu",
      -  "overlay_attach",
      -  "app",
      -  "global_attach",
      -  "global_detach"
      -]New value: +[
      +  "checkout",
      +  "checkout_sync",
      +  "form",
      +  "chrome",
      +  "menu",
      +  "overlay_attach",
      +  "cart",
      +  "app",
      +  "global_attach",
      +  "global_detach"
      +]
    • addedInput schema / properties / relocalize
      Added value: +{
      +  "description": "action:\"cart\" — rewrite an EXISTING drawer's seed words that are in another language to the site locale's (edited text untouched); needs a page of the site open",
      +  "type": "boolean"
      +}
  3. Changed9 schema fields changedv0.63.0
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "checkout",
      -  "form",
      -  "chrome"
      -]New value: +[
      +  "checkout",
      +  "form",
      +  "chrome",
      +  "menu",
      +  "overlay_attach",
      +  "app",
      +  "global_attach",
      +  "global_detach"
      +]
    • addedInput schema / properties / app_key
      Added value: +{
      +  "description": "action:\"app\" — which built-in app to install",
      +  "enum": [
      +    "mail",
      +    "multilingual",
      +    "agent",
      +    "chat",
      +    "booking",
      +    "loyalty",
      +    "payments",
      +    "courses"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / global_id
      Added value: +{
      +  "description": "action:\"global_attach\"/\"global_detach\" — the shared section; omitted on attach it lists the site's own",
      +  "type": "string"
      +}
    • addedInput schema / properties / kind
      Added value: +{
      +  "description": "action:\"overlay_attach\" — which kind of overlay to attach",
      +  "enum": [
      +    "popup",
      +    "quickview"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / list_id
      Added value: +{
      +  "description": "action:\"overlay_attach\" kind:\"quickview\" — the list-dataset node on the open page",
      +  "type": "string"
      +}
    • addedInput schema / properties / menu_id
      Added value: +{
      +  "type": "string"
      +}
    • changedInput schema / properties / name / description
      Previous value: -"action:\"form\" — the form's name in the merchant's list"New value: +"action:\"form\" — the form's name in the merchant's list. action:\"overlay_attach\" with no overlay_id — the new pop-up/quick-view's name."
    • addedInput schema / properties / node_id
      Added value: +{
      +  "description": "action:\"menu\" — the menu node on the open page",
      +  "type": "string"
      +}
    • addedInput schema / properties / overlay_id
      Added value: +{
      +  "description": "action:\"overlay_attach\" — an existing overlay; omit to create one from the seed",
      +  "type": "string"
      +}
  4. Changed2 schema fields changedv0.39.0
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "checkout",
      -  "form"
      -]New value: +[
      +  "checkout",
      +  "form",
      +  "chrome"
      +]
    • addedInput schema / properties / footer
      Added value: +{
      +  "description": "action:\"chrome\" — build a shared FOOTER instead of a header",
      +  "type": "boolean"
      +}
  5. Addedv0.12.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false, openWorldHint=true, destructiveHint=false; the description adds substantial behavioral context the annotations cannot convey — the fixed execution order, that checkout 404s without all four steps, that forms 'keep the options they were saved with', that overlay_attach/detach 're-read the page afterwards as the editor must', and that dry run returns the plan. It stops short of describing auth requirements or failure modes beyond the 404 case.

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

Conciseness4/5

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

Front-loaded with the core constraint ('must happen in a fixed order') and near every clause delivers actionable, non-redundant detail. It is a single very dense paragraph with no structural breaks per action, which costs some readability against the 17-parameter surface it documents, but there is little filler.

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

Completeness5/5

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

For a 10-action dispatcher with no output schema, the description covers every action's effect, ordering constraints, the dry_run return, and the cross-tool relationships (sb_review) an agent needs to choose correctly. Nothing essential for correct invocation appears missing.

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

Parameters4/5

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

With 17 parameters at 65% schema coverage, the description carries real weight: it explains that overlay_id omitted creates from the platform seed, that global_id omitted on attach lists the site's own, the footer flag's meaning, relocalize's exact rewrite semantics, and which action each of kind/list_id/node_id/template/app_key belongs to. A few parameters (site_id, menu_id, headline, page_name, language) are left to the schema, hence not a 5.

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

Purpose4/5

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

Each of the ten actions is given a concrete verb+resource pairing (e.g. checkout 'makes the order form... then creates and PUBLISHES the checkout page'; global_attach 'puts an EXISTING shared section on the open page'). It even differentiates from siblings in places (references sb_review's siteChrome gap, and contrasts chrome against global_attach). The density makes it slightly harder to parse than an ideal single-purpose definition, but the purpose of every action is stated.

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

Usage Guidelines5/5

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

Explicit triggering conditions and alternatives throughout: checkout_sync should be run 'after adding a shipping method or switching on a gateway'; global_attach is 'the answer for a page that is missing the site's header, where action:"chrome" would wrongly build a second one'; cart is needed or 'every open_cart control opens nothing'. This is exactly the when/when-not/alternative guidance the dimension rewards.

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