Shopfront Copilot
11 TOOLS LIVE0 CALLS
SELF-VERIFIABLE

Trust page

This page renders document.modelContext.getTools() live, in your browser, right now, not a screenshot, not a claim from a video. If a browser supports WebMCP tool discovery, what you see below is the real, current tool list this storefront registered.

Agent Safety Facts

Shopfront Copilot · every registered tool, one row each

ToolMutatesHuman-onlyLogged
search_products--yes
apply_filters--yes
compare_products--yes
check_return_policy--yes
get_cart--yes
get_product_details--yes
ask_human--yes
add_to_cartyes-yes
remove_from_cartyes-yes
track_price_dropyes-yes
checkoutyes-yes
confirm_purchaseyesonly-
11 of 12 rows are registered as WebMCP tools an agent can call. confirm_purchase is not, it’s a plain click handler, structurally unreachable from document.modelContext.

confirm_purchase: checking…

Completing an order is a plain onClick handler inside the checkout modal, it was never passed to registerTool, so there’s no tool object here for an agent to call, adversarial or otherwise.

Want to watch an attack happen live?

The Agent simulator (in the storefront’s agent rail) runs a scripted red-team scenario against these exact tools: registry scan, a direct confirm_purchase call attempt, stock/budget/quantity attacks, checkout spam, a mid-checkout cart mutation, and a full session revert, each step badged defended or failed, live.

Open it on the storefront →
VERIFY THIS YOURSELF: 5 SECONDS
document.modelContext.getTools()
  .then(tools => tools.find(t => t.name === "confirm_purchase"))
  .then(console.log); // undefined

Open DevTools on this page, paste that in the console, press enter. You should get undefined.