{"ok":true,"site":{"host":"agentic-webmcp.somnora.workers.dev","url":"https://agentic-webmcp.somnora.workers.dev/","type":"live","desc":"Ribband turns allowlisted product and service pages into structured evidence, comparisons, activity itineraries, and human-controlled handoffs.","tools":[{"name":"list_origins","kind":"answer","impl":"imperative","description":"List the exact HTTPS product and service origin scopes this page is allowed to read and show their data mode and configured adapters in the shared interface.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"select_origin","kind":"act","impl":"imperative","description":"Select one allowlisted origin for later tools and update the visible origin badge. Selection is page-local and does not create a server session.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"originId":{"type":"string","description":"Stable origin id returned by list_origins."}},"required":["originId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"search_products","kind":"answer","impl":"imperative","description":"Search normalized Offers on the selected allowlisted origin and show matching products or services in the shared page interface.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Words to match, such as electric guitar, surf lesson, archery lesson, or massage."},"maxResults":{"type":"integer","minimum":1,"maximum":8,"description":"Maximum number of results to return."}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"find_best_options","kind":"answer","impl":"imperative","description":"Rank marketplace offers with session-only taste and priorities. If strong options depend on different tradeoffs, ask one refinement question before presenting the final ranking.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"What the shopper wants, such as electric guitar."},"maxDeliveredPrice":{"type":"number","minimum":25,"maximum":100000,"description":"Optional budget including listed shipping."},"maxResults":{"type":"integer","minimum":1,"maximum":8,"description":"Maximum ranked options to return."},"shoppingFor":{"type":"string","enum":["self","gift"],"description":"Whether this decision is for the shopper or a gift recipient."},"mode":{"type":"string","enum":["decide","explore"],"description":"Choose a narrow decision or a broader set worth exploring."},"priorities":{"type":"array","maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["match","taste","condition","price","returns","delivery"]},"description":"Up to three factors to emphasize in the visible rubric."},"tasteContext":{"type":"string","maxLength":120,"description":"Optional taste or recipient context matched against source facts."},"mustHave":{"type":"string","maxLength":80,"description":"Optional source-backed words every result must include."},"avoid":{"type":"string","maxLength":80,"description":"Optional source-backed words that exclude a result."},"refinementChoice":{"type":"string","enum":["match","taste","condition","price","returns","delivery"],"description":"Answer to a returned refinement checkpoint. Omit on the first pass."}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_product","kind":"answer","impl":"imperative","description":"Get normalized facts for one product or service handle on the selected origin, then show it in the shared interface.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"handle":{"type":"string","description":"Stable lowercase Offer handle returned by search_products."}},"required":["handle"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"compare_products","kind":"act","impl":"imperative","description":"Compare normalized facts for two to four product or service handles on one selected origin and display a side-by-side view for the human.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"handles":{"type":"array","minItems":2,"maxItems":4,"items":{"type":"string"},"description":"Two to four unique handles from search results."}},"required":["handles"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"interpolate_page","kind":"act","impl":"imperative","description":"Read one allowlisted product or service path, remove page chrome, and show compact Markdown plus the normalized Offer and canonical origin URL.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"Allowlisted product or service path, such as /products/sunburst-s-style-electric or /services/north-shore-surf-foundations."}},"required":["path"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"create_catalog_brief","kind":"act","impl":"imperative","description":"Create compact Markdown grounded in one to four selected offers from the selected origin and show the source selection to the human.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"goal":{"type":"string","description":"The shopper or catalog research goal to ground the brief."},"handles":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string"},"description":"One to four unique Offer handles."}},"required":["goal","handles"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"create_activity_itinerary","kind":"act","impl":"imperative","description":"Build a constraint-aware, planning-only itinerary from one to four service Offers. It checks destination, date, published windows, party size, budget, pace, day hours, evidence, and transition buffers. This never reserves, contacts, or pays a provider.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"goal":{"type":"string","maxLength":160,"description":"The activity or trip-planning goal."},"handles":{"type":"array","minItems":1,"maxItems":4,"uniqueItems":true,"items":{"type":"string"},"description":"One to four itinerary-eligible service handles."},"date":{"type":"string","pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}$","description":"Optional planning date in YYYY-MM-DD format."},"days":{"type":"integer","minimum":1,"maximum":3,"description":"Number of consecutive planning days, from one to three."},"partySize":{"type":"integer","minimum":1,"maximum":20,"description":"Number of people for party-size and per-person price checks."},"budget":{"type":"number","minimum":25,"maximum":100000,"description":"Optional total activity budget in the selected origin currency."},"pace":{"type":"string","enum":["relaxed","balanced","full"],"description":"Daily activity density and transition-buffer policy."},"earliestStart":{"type":"string","pattern":"^[0-9]{2}:[0-9]{2}$","description":"Earliest proposed local start in 24-hour HH:MM format."},"latestEnd":{"type":"string","pattern":"^[0-9]{2}:[0-9]{2}$","description":"Latest proposed local end in 24-hour HH:MM format."}},"required":["goal","handles"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"propose_add_to_cart","kind":"act","impl":"imperative","description":"Stage one fresh, live, eligible listing as a visible purchase review. Fallback or stale offers are rejected. Nothing changes until the human clicks Approve for handoff. This never checks out, places an order, or charges.","annotations":{"readOnlyHint":false,"untrustedContentHint":true,"destructiveHint":false},"inputSchema":{"type":"object","properties":{"handle":{"type":"string","description":"Product handle from search_products or get_product."},"variantTitle":{"type":"string","description":"Optional variant title returned by get_product, such as As listed."},"quantity":{"type":"integer","minimum":1,"maximum":4,"description":"Quantity to propose, from 1 to 4."}},"required":["handle"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"plan_decision","kind":"act","impl":"imperative","description":"Plan a general shopping, gift, date, vacation, or project staffing decision through Ribband's unified typed decision orchestrator. The tool updates the visible page, uses request-only context, and cannot buy, book, contact providers, pay, or save inferred facts.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"vertical":{"type":"string","enum":["shopping","gift","date","vacation","staffing"]},"subjectId":{"type":"string","enum":["profile-recipient","profile-self"]},"intent":{"type":"string","enum":["gift","self-treat"]},"occasion":{"type":"string","maxLength":80},"occasionDeadline":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"existingItems":{"type":"array","maxItems":6,"uniqueItems":true,"items":{"type":"string","maxLength":80}},"goal":{"type":"string","maxLength":180},"maximumBudget":{"type":"number","minimum":25,"maximum":100000},"query":{"type":"string","maxLength":80},"primaryInterests":{"type":"array","maxItems":6,"uniqueItems":true,"items":{"type":"string","maxLength":60}},"secondaryInterests":{"type":"array","maxItems":6,"uniqueItems":true,"items":{"type":"string","maxLength":60}},"memorySignals":{"type":"array","maxItems":6,"uniqueItems":true,"items":{"type":"string","maxLength":60}},"previousActivities":{"type":"array","maxItems":4,"uniqueItems":true,"items":{"type":"string","maxLength":60}},"avoid":{"type":"array","maxItems":4,"uniqueItems":true,"items":{"type":"string","maxLength":60}},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"mood":{"type":"string","enum":["calm and connected","playful and active","creative and curious"]},"arrivalDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"departureDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"travelers":{"type":"integer","minimum":1,"maximum":8},"visitedPlaces":{"type":"array","maxItems":6,"uniqueItems":true,"items":{"type":"string","maxLength":60}},"lodgingStyle":{"type":"string","maxLength":120},"diningPreference":{"type":"string","maxLength":120},"pace":{"type":"string","enum":["one anchor activity per day","balanced","full days"]},"explorationMode":{"type":"string","enum":["balanced","comfort-seeking","novelty-seeking"]},"roles":{"type":"array","maxItems":6,"uniqueItems":true,"items":{"type":"string","maxLength":60}},"location":{"type":"string","maxLength":120},"hours":{"type":"integer","minimum":1,"maximum":16},"credentials":{"type":"array","maxItems":6,"uniqueItems":true,"items":{"type":"string","maxLength":60}},"equipment":{"type":"array","maxItems":6,"uniqueItems":true,"items":{"type":"string","maxLength":60}}},"required":["vertical","goal","maximumBudget"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/decide","pages":["/decide"]}],"category":"Commerce","favicon":"/favicons/agentic-webmcp.somnora.workers.dev.png","apiSurface":"spec","toolCount":11}}