← WebMCP Directory

Tool tree

pravoobi.github.io

CommerceTools verified
Website
Virtual Try-On
Explore capabilities
    search_catalogAnswer

    Search the virtual try-on catalog (dresses, kurtis, lehengas) by free-text query, occasion, colour, category, and/or maximum price in ₹. Returns matching garments with their id, name, price and occasions. Pass a returned id to `apply_tryon` to see it on the user.

    View tool JSON
    {
      "name": "search_catalog",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search the virtual try-on catalog (dresses, kurtis, lehengas) by free-text query, occasion, colour, category, and/or maximum price in ₹. Returns matching garments with their id, name, price and occasions. Pass a returned id to `apply_tryon` to see it on the user.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Free text, e.g. \"flowy floral dress\" or \"red lehenga for a wedding\"."
          },
          "occasion": {
            "type": "string",
            "description": "Occasion to dress for, e.g. \"sangeet\", \"wedding\", \"reception\", \"brunch\", \"office\"."
          },
          "color": {
            "type": "string",
            "description": "Preferred colour, e.g. \"navy\", \"magenta\", \"pink\"."
          },
          "category": {
            "type": "string",
            "enum": [
              "dress",
              "kurti",
              "lehenga-choli"
            ],
            "description": "Restrict to one garment type."
          },
          "maxPrice": {
            "type": "number",
            "description": "Budget ceiling in Indian rupees (₹)."
          }
        }
      },
      "page": "/try-on/"
    }
    apply_tryonAction

    Composite a catalog garment onto the loaded photo with the on-device try-on pipeline (segmentation + pose + warp, all in-browser). Pass a garmentId from `search_catalog`. If no photo is loaded, a default model photo is loaded first. After applying, ask the user how it looks before moving on — only they can judge fit and vibe.

    View tool JSON
    {
      "name": "apply_tryon",
      "kind": "act",
      "impl": "imperative",
      "description": "Composite a catalog garment onto the loaded photo with the on-device try-on pipeline (segmentation + pose + warp, all in-browser). Pass a garmentId from `search_catalog`. If no photo is loaded, a default model photo is loaded first. After applying, ask the user how it looks before moving on — only they can judge fit and vibe.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "garmentId": {
            "type": "string",
            "description": "The `id` of a garment from `search_catalog` (e.g. \"dress-magenta-wrap-01\")."
          }
        },
        "required": [
          "garmentId"
        ]
      },
      "page": "/try-on/"
    }
    save_lookAction

    Snapshot the current try-on — the composited photo plus which garments are on — into the saved-looks tray so it can be compared later. Optionally pass a short `label`. Call this after the user reacts positively to a try-on. Returns the new look id.

    View tool JSON
    {
      "name": "save_look",
      "kind": "act",
      "impl": "imperative",
      "description": "Snapshot the current try-on — the composited photo plus which garments are on — into the saved-looks tray so it can be compared later. Optionally pass a short `label`. Call this after the user reacts positively to a try-on. Returns the new look id.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "description": "Short human label for this look, e.g. \"the magenta wrap dress\". Optional."
          }
        }
      },
      "page": "/try-on/"
    }
    compare_looksAction

    Show saved looks side by side in the app so the user can pick between them. Pass an array of look ids from `save_look`. Returns the looks being compared; then ask the user which they prefer.

    View tool JSON
    {
      "name": "compare_looks",
      "kind": "act",
      "impl": "imperative",
      "description": "Show saved looks side by side in the app so the user can pick between them. Pass an array of look ids from `save_look`. Returns the looks being compared; then ask the user which they prefer.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lookIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Saved look ids from `save_look`, e.g. [\"look-1\", \"look-2\"]. Two or three works best."
          }
        },
        "required": [
          "lookIds"
        ]
      },
      "page": "/try-on/"
    }
    await_reactionAction

    Record or wait for the user's reaction to the current try-on — call it right after apply_tryon. Two ways: (a) if the user already told you how they feel in chat, pass `reaction` (love / like / try_another / reject) and optionally `note` — it logs to the app's reaction bar and returns guidance immediately; (b) omit `reaction` to block until the user taps a reaction chip in the app (or it times out). Returns { reaction, note, guidance }.

    View tool JSON
    {
      "name": "await_reaction",
      "kind": "act",
      "impl": "imperative",
      "description": "Record or wait for the user's reaction to the current try-on — call it right after apply_tryon. Two ways: (a) if the user already told you how they feel in chat, pass `reaction` (love / like / try_another / reject) and optionally `note` — it logs to the app's reaction bar and returns guidance immediately; (b) omit `reaction` to block until the user taps a reaction chip in the app (or it times out). Returns { reaction, note, guidance }.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "reaction": {
            "type": "string",
            "enum": [
              "love",
              "like",
              "try_another",
              "reject"
            ],
            "description": "If the user ALREADY told you how they feel (in chat), pass it here — this logs it to the app and returns next-step guidance immediately, no waiting."
          },
          "note": {
            "type": "string",
            "description": "What the user wants changed, in their words (e.g. \"too long\", \"more colour\"). Optional."
          },
          "timeoutSeconds": {
            "type": "number",
            "description": "Only used when `reaction` is omitted: how long to wait for the user to tap a reaction chip in the app before giving up (default 120, max 600)."
          }
        }
      },
      "page": "/try-on/"
    }