{"ok":true,"site":{"host":"her-shopping-webmcp.hypharsh.chatgpt.site","url":"https://her-shopping-webmcp.hypharsh.chatgpt.site/","type":"live","desc":"An agent-ready adaptive storefront that reorganizes products around your trip, budget, and priorities.","tools":[{"name":"get_page_context","kind":"answer","impl":"imperative","description":"Read the current mission, layout mode, visible sections and product groups, the entity the person has selected, cart totals, and the state version. Read-only: nothing on the page changes.","title":"Get page context","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_products","kind":"answer","impl":"imperative","description":"Find catalog products by text, purpose, price ceiling, delivery ceiling, or minimum warmth, ranked by the current sort. Read-only: use it to obtain product ids before calling a write tool.","title":"Search the catalog","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"query":{"type":"string","maxLength":80,"description":"Free text matched against name, description, and category."},"purpose":{"type":"string","enum":["shelter","warmth","weather","sleep","cooking","hydration","light","navigation","carry","power","safety","comfort"]},"maxPriceCents":{"type":"integer","minimum":100,"maximum":1000000},"maxDeliveryDays":{"type":"integer","minimum":1,"maximum":30},"minWarmth":{"type":"integer","minimum":0,"maximum":10},"limit":{"type":"integer","minimum":1,"maximum":12,"default":8}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_cart","kind":"answer","impl":"imperative","description":"Read the cart lines, subtotal, item count, remaining mission budget, and any constraint warnings. Read-only.","title":"Get cart","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_mission","kind":"act","impl":"imperative","description":"Record what the person is trying to accomplish and reorganise the store around it. Budget, deadline, party size, and priorities are parsed into visible, editable chips. Reversible page state changes; no order is placed.","title":"Set the shopping mission","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"mission":{"type":"string","minLength":8,"maxLength":320,"description":"The outcome in the person's own words, including any budget and deadline."},"applyMissionView":{"type":"boolean","default":true,"description":"Whether to switch the page into Mission View immediately."},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":["mission"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"apply_mission_view","kind":"act","impl":"imperative","description":"Switch the page to Mission View: group products into Essential, Useful, and Optional by mission fit and optionally hide promotional sections. Reversible.","title":"Apply Mission View","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"hideIrrelevantSections":{"type":"boolean","default":true},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"organize_products","kind":"act","impl":"imperative","description":"Regroup and re-sort the visible catalog using approved layout modes only. Does not change catalog or cart data. Reversible.","title":"Regroup and sort the catalog","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"groupBy":{"type":"string","enum":["category","priority","purpose"]},"sortBy":{"type":"string","enum":["featured","price-low","mission-fit","delivery"]},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_card_presentation","kind":"act","impl":"imperative","description":"Change how product cards are presented: their shape, how many sit per row, how loudly the price reads, how large the imagery is, which facts appear on the card face, and whether descriptions show. Choose a named preset, individual settings, or both. Only the store's own designs are available — no markup, styles, or sizes can be supplied. Reversible layout-only change.","title":"Restyle the product cards","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"preset":{"type":"string","enum":["default","dense-decision","visual-browse","price-first"],"description":"A coherent starting design. \"dense-decision\" for comparing many options, \"visual-browse\" for imagery, \"price-first\" when budget is the question, \"default\" to return to the standard cards."},"cardLayout":{"type":"string","enum":["grid","list","gallery"]},"columns":{"type":"string","enum":["auto","2","3","4","5"],"description":"Cards per row. \"auto\" follows the responsive default; list layout is always one."},"priceEmphasis":{"type":"string","enum":["subtle","standard","prominent"]},"imageScale":{"type":"string","enum":["hidden","small","standard","large"]},"cardAttributes":{"type":"array","minItems":0,"maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["warmth","delivery","weight","stock","mission-fit"]},"description":"Facts shown on the card face, in order. An empty array shows none. Supplying this turns off the automatic mission-aware choice."},"automaticAttributes":{"type":"boolean","description":"Set true to return to the automatic, mission-aware attribute row. Cannot be combined with cardAttributes."},"showDescriptions":{"type":"boolean"},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_section_visibility","kind":"act","impl":"imperative","description":"Show or hide known page sections and product groups. Protected regions stay visible and hidden sections remain recoverable. Reversible layout-only change.","title":"Show or hide page sections","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"sectionIds":{"type":"array","minItems":1,"maxItems":8,"uniqueItems":true,"items":{"type":"string","enum":["hero","featured","editorial","mission-summary","catalog","comparison","group:essential","group:useful","group:optional","group:shelter","group:warmth","group:sleep","group:cooking","group:lighting","group:carry","group:utility","group:shelter-purpose","group:warmth-purpose","group:weather-purpose","group:sleep-purpose","group:cooking-purpose","group:hydration-purpose","group:light-purpose","group:navigation-purpose","group:carry-purpose","group:power-purpose","group:safety-purpose","group:comfort-purpose"],"description":"A known page section or product group id. Free-form selectors are not accepted."}},"visible":{"type":"boolean"},"reason":{"type":"string","enum":["irrelevant","focus","user-request"]},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":["sectionIds","visible"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"move_section","kind":"act","impl":"imperative","description":"Move one known section before or after another. Page sections move among page sections; product groups move among product groups. Reversible.","title":"Move a section","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"sectionId":{"type":"string","enum":["hero","featured","editorial","mission-summary","catalog","comparison","group:essential","group:useful","group:optional","group:shelter","group:warmth","group:sleep","group:cooking","group:lighting","group:carry","group:utility","group:shelter-purpose","group:warmth-purpose","group:weather-purpose","group:sleep-purpose","group:cooking-purpose","group:hydration-purpose","group:light-purpose","group:navigation-purpose","group:carry-purpose","group:power-purpose","group:safety-purpose","group:comfort-purpose"],"description":"A known page section or product group id. Free-form selectors are not accepted."},"relation":{"type":"string","enum":["before","after"]},"anchorSectionId":{"type":"string","enum":["hero","featured","editorial","mission-summary","catalog","comparison","group:essential","group:useful","group:optional","group:shelter","group:warmth","group:sleep","group:cooking","group:lighting","group:carry","group:utility","group:shelter-purpose","group:warmth-purpose","group:weather-purpose","group:sleep-purpose","group:cooking-purpose","group:hydration-purpose","group:light-purpose","group:navigation-purpose","group:carry-purpose","group:power-purpose","group:safety-purpose","group:comfort-purpose"],"description":"A known page section or product group id. Free-form selectors are not accepted."},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":["sectionId","relation","anchorSectionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"select_entity","kind":"act","impl":"imperative","description":"Set what the word \"this\" refers to on the page — a product, a section, a mission constraint, or a panel. Draws the same visible selection outline a click would.","title":"Select an entity","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["product","section","constraint","panel","none"]},"id":{"type":"string","maxLength":64},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":["kind"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_comparison","kind":"act","impl":"imperative","description":"Open Comparison View for two to four in-stock catalog products, optionally pinning a reference product and ordering the attributes that matter for this mission. Reversible.","title":"Compare products","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"productIds":{"type":"array","minItems":2,"maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["thermal-ridge-jacket","aurora-down-quilt","tundra-sleep-pad","stormproof-shell","basalt-two-tent","windward-bivy","merino-base-layer","highland-fleece-mid","drift-insulated-vest","saga-daypack","ember-cookset","gust-camp-stove","northstar-lantern","beacon-headlamp","pocket-water-filter","glacier-flask","trail-merino-socks","thermal-glove-liners","weatherproof-map-case","fjord-camp-mug","summit-power-bank","field-repair-kit"],"description":"A catalog product id."}},"referenceProductId":{"type":"string","enum":["thermal-ridge-jacket","aurora-down-quilt","tundra-sleep-pad","stormproof-shell","basalt-two-tent","windward-bivy","merino-base-layer","highland-fleece-mid","drift-insulated-vest","saga-daypack","ember-cookset","gust-camp-stove","northstar-lantern","beacon-headlamp","pocket-water-filter","glacier-flask","trail-merino-socks","thermal-glove-liners","weatherproof-map-case","fjord-camp-mug","summit-power-bank","field-repair-kit"],"description":"A catalog product id."},"prioritizeAttributes":{"type":"array","minItems":1,"maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["warmth","delivery","weight","price"]}},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":["productIds"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_reference_product","kind":"act","impl":"imperative","description":"Pin one product as the reference that alternatives are measured against. Reversible.","title":"Pin a reference product","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"productId":{"type":"string","enum":["thermal-ridge-jacket","aurora-down-quilt","tundra-sleep-pad","stormproof-shell","basalt-two-tent","windward-bivy","merino-base-layer","highland-fleece-mid","drift-insulated-vest","saga-daypack","ember-cookset","gust-camp-stove","northstar-lantern","beacon-headlamp","pocket-water-filter","glacier-flask","trail-merino-socks","thermal-glove-liners","weatherproof-map-case","fjord-camp-mug","summit-power-bank","field-repair-kit"],"description":"A catalog product id."},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":["productId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"exit_comparison","kind":"act","impl":"imperative","description":"Leave Comparison View and restore the previous layout. Reversible.","title":"Close the comparison","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_to_cart","kind":"act","impl":"imperative","description":"Add one to four known catalog products to the visible fictional cart, with bounded quantities and an optional short reason. This changes cart state and is reversible. It does not place an order.","title":"Add products to the cart","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"items":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"object","properties":{"productId":{"type":"string","enum":["thermal-ridge-jacket","aurora-down-quilt","tundra-sleep-pad","stormproof-shell","basalt-two-tent","windward-bivy","merino-base-layer","highland-fleece-mid","drift-insulated-vest","saga-daypack","ember-cookset","gust-camp-stove","northstar-lantern","beacon-headlamp","pocket-water-filter","glacier-flask","trail-merino-socks","thermal-glove-liners","weatherproof-map-case","fjord-camp-mug","summit-power-bank","field-repair-kit"],"description":"A catalog product id."},"quantity":{"type":"integer","minimum":1,"maximum":8},"reason":{"type":"string","maxLength":120}},"required":["productId","quantity"],"additionalProperties":false}},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":["items"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_cart_quantity","kind":"act","impl":"imperative","description":"Set the quantity of one cart line, or remove it by setting the quantity to zero. Reversible; does not place an order.","title":"Update a cart quantity","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"productId":{"type":"string","enum":["thermal-ridge-jacket","aurora-down-quilt","tundra-sleep-pad","stormproof-shell","basalt-two-tent","windward-bivy","merino-base-layer","highland-fleece-mid","drift-insulated-vest","saga-daypack","ember-cookset","gust-camp-stove","northstar-lantern","beacon-headlamp","pocket-water-filter","glacier-flask","trail-merino-socks","thermal-glove-liners","weatherproof-map-case","fjord-camp-mug","summit-power-bank","field-repair-kit"],"description":"A catalog product id."},"quantity":{"type":"integer","minimum":0,"maximum":8},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":["productId","quantity"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"undo_last_action","kind":"act","impl":"imperative","description":"Restore the most recent reversible layout, comparison, or cart snapshot. Whoever made the change, human or agent, it is undone the same way.","title":"Undo the last action","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"reset_experience","kind":"act","impl":"imperative","description":"Return mission, layout, selection, comparison, cart, and checkout to the seeded Browse View. Ask the person before calling this: it discards their work.","title":"Reset the experience","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"confirmed":{"type":"boolean","description":"Set to true only after the person has agreed to discard the current session."}},"required":["confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"open_cart","kind":"act","impl":"imperative","description":"Bring the cart drawer on screen so the person can see the kit, its line items, and the running total — or close it again. This only moves the drawer: it changes no cart contents and places no order.","title":"Open or close the cart","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"open":{"type":"boolean","default":true,"description":"True to show the cart, false to close it."},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"preview_checkout","kind":"transact","impl":"imperative","description":"Validate the cart against stock, budget, and delivery constraints and open the visible review surface. Returns a confirmation token. No order is created.","title":"Open the checkout review","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"place_demo_order","kind":"transact","impl":"imperative","description":"Ask for the fictional order to be placed. An agent can only raise the confirmation gate: the order is created solely when a person presses the visible Confirm control. Check data.orderPlaced before telling anyone the order exists.","title":"Request the demo order","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"token":{"type":"string","maxLength":64,"description":"The token returned by preview_checkout."},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":100000,"description":"Optional. The state version the caller believes the page is at. The action is refused if the page has moved on."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Commerce","favicon":"/favicons/her-shopping-webmcp.hypharsh.chatgpt.site.png","apiSurface":"spec","toolCount":20}}