Tool tree
gradeNot graded
search_productsAnswer
Search the wardrobe product catalog by item name, color, style, or category without changing the interface.
View tool JSON
{
"name": "search_products",
"kind": "answer",
"impl": "imperative",
"description": "Search the wardrobe product catalog by item name, color, style, or category without changing the interface.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"tops",
"bottoms",
"shoes",
"headwear"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 44
}
},
"required": [
"query"
],
"additionalProperties": false
}
}commit_wardrobe_itemsAction
Commit one previously reviewed image result as local wardrobe items. Requires the handoffId returned by import_image_url; this is the confirmation step and persists image crops in this browser only.
View tool JSON
{
"name": "commit_wardrobe_items",
"kind": "act",
"impl": "imperative",
"description": "Commit one previously reviewed image result as local wardrobe items. Requires the handoffId returned by import_image_url; this is the confirmation step and persists image crops in this browser only.",
"inputSchema": {
"type": "object",
"properties": {
"handoffId": {
"type": "string",
"description": "The handoffId returned by import_image_url after the user reviews the crop previews."
}
},
"required": [
"handoffId"
],
"additionalProperties": false
}
}import_image_urlAction
Import and optionally save an already-prepared CLOTHO wardrobe grid. Before calling this tool, the client/AI agent must (1) turn the outfit photo into one clean 2×2 catalog image with no person, body, or text, (2) upload that grid outside WebMCP to temporary HTTPS hosting such as TmpFiles, and (3) pass the returned https://tmpfiles.org/{id}/{name} upload-page URL (or its /dl/ image URL) here. This tool does not upload to TmpFiles and cannot read ChatGPT attachments, local filesystem paths, file:// URLs, blob: URLs, data: URLs, or base64 directly. Grid positions are fixed: Top=top-left, Bottom=top-right, Shoes=bottom-left, Headwear=bottom-right. Set includeHeadwear true only when the bottom-right cell contains headwear; set it false only when that cell is intentionally blank. Pass exactly one metadata record for every included category (3 records without headwear, 4 with headwear); array order does not matter. Each record needs a category, name, color, style, and occasionProfile.formality/activity from 1–5; occasionProfile.occasions is optional. Set autoAccept true only after the user explicitly asks to save: it saves the extracted pieces immediately in this browser with no review step. If autoAccept is omitted or false, CLOTHO returns a crop preview and waits for confirmation.
View tool JSON
{
"name": "import_image_url",
"kind": "act",
"impl": "imperative",
"description": "Import and optionally save an already-prepared CLOTHO wardrobe grid. Before calling this tool, the client/AI agent must (1) turn the outfit photo into one clean 2×2 catalog image with no person, body, or text, (2) upload that grid outside WebMCP to temporary HTTPS hosting such as TmpFiles, and (3) pass the returned https://tmpfiles.org/{id}/{name} upload-page URL (or its /dl/ image URL) here. This tool does not upload to TmpFiles and cannot read ChatGPT attachments, local filesystem paths, file:// URLs, blob: URLs, data: URLs, or base64 directly. Grid positions are fixed: Top=top-left, Bottom=top-right, Shoes=bottom-left, Headwear=bottom-right. Set includeHeadwear true only when the bottom-right cell contains headwear; set it false only when that cell is intentionally blank. Pass exactly one metadata record for every included category (3 records without headwear, 4 with headwear); array order does not matter. Each record needs a category, name, color, style, and occasionProfile.formality/activity from 1–5; occasionProfile.occasions is optional. Set autoAccept true only after the user explicitly asks to save: it saves the extracted pieces immediately in this browser with no review step. If autoAccept is omitted or false, CLOTHO returns a crop preview and waits for confirmation.",
"inputSchema": {
"type": "object",
"properties": {
"imageUrl": {
"type": "string",
"format": "uri",
"description": "Required public HTTPS URL for the already-prepared 2×2 grid: a TmpFiles upload-page URL such as https://tmpfiles.org/{id}/{name}, or its direct /dl/ image URL. Do not pass a local path, file://, blob:, data:, or base64 value."
},
"includeHeadwear": {
"type": "boolean",
"description": "Required layout choice. true means the bottom-right cell is Headwear and items must contain 4 records; false means the bottom-right cell is blank and items must contain exactly Top, Bottom, and Shoes (3 records)."
},
"items": {
"type": "array",
"minItems": 3,
"maxItems": 4,
"description": "Required metadata, exactly one record per included grid category. Use category values tops, bottoms, shoes, and headwear; the array order does not matter. Use 4 records when includeHeadwear is true and exactly 3 records (omit headwear) when false.",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"tops",
"bottoms",
"shoes",
"headwear"
]
},
"name": {
"type": "string"
},
"color": {
"type": "string",
"description": "A recognized color name or #RRGGBB value used for color matching."
},
"style": {
"type": "string"
},
"occasionProfile": {
"description": "Scoring metadata. formality and activity are required integers from 1 (low) to 5 (high); occasions is optional and may contain any supported occasion tags.",
"type": "object",
"properties": {
"formality": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"activity": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"occasions": {
"type": "array",
"items": {
"type": "string",
"enum": [
"work",
"casual",
"dinner",
"event"
]
}
}
},
"required": [
"formality",
"activity"
],
"additionalProperties": false
}
},
"required": [
"category",
"name",
"color",
"style",
"occasionProfile"
],
"additionalProperties": false
}
},
"autoAccept": {
"type": "boolean",
"description": "Optional safety switch. true immediately saves all extracted pieces into this browser’s local wardrobe after the image is fetched and cropped; false or omitted returns the crop preview and requires a later commit_wardrobe_items confirmation. Set true only when the user explicitly asked to save."
}
},
"required": [
"imageUrl",
"includeHeadwear",
"items"
],
"additionalProperties": false
}
}suggest_outfitAction
Select and visibly display one deterministic outfit from this wardrobe for an occasion, date, preferences, and optional required or excluded item IDs.
View tool JSON
{
"name": "suggest_outfit",
"kind": "act",
"impl": "imperative",
"description": "Select and visibly display one deterministic outfit from this wardrobe for an occasion, date, preferences, and optional required or excluded item IDs.",
"inputSchema": {
"type": "object",
"properties": {
"occasion": {
"type": "string",
"enum": [
"work",
"casual",
"dinner",
"event"
]
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"palette": {
"type": "string",
"enum": [
"balanced",
"neutral",
"colorful"
]
},
"includeHeadwear": {
"type": "boolean"
},
"avoid": {
"type": "string"
},
"note": {
"type": "string"
},
"seed": {
"type": "string"
},
"requiredItemIds": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true,
"maxItems": 4
},
"excludedItemIds": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
}
},
"required": [
"occasion"
],
"additionalProperties": false
}
}export_outfit_referenceAnswer
Return a CLOTHO outfit reference URL. Bundled catalog looks use a normal static HTTP URL; imported or recolored looks use a browser-local SVG URL. Use referenceUrl to open the stacked image inline or downloadUrl for a traditional browser download.
View tool JSON
{
"name": "export_outfit_reference",
"kind": "answer",
"impl": "imperative",
"description": "Return a CLOTHO outfit reference URL. Bundled catalog looks use a normal static HTTP URL; imported or recolored looks use a browser-local SVG URL. Use referenceUrl to open the stacked image inline or downloadUrl for a traditional browser download.",
"inputSchema": {
"type": "object",
"properties": {
"outfitId": {
"type": "string",
"description": "Optional current, planned, history, or weekly-option outfit ID. Defaults to the visible outfit."
},
"itemIds": {
"type": "array",
"minItems": 3,
"maxItems": 4,
"uniqueItems": true,
"items": {
"type": "string"
},
"description": "Optional exact catalog item IDs. Provide Top, Bottom, Shoes, and optionally Headwear."
}
},
"additionalProperties": false
}
}schedule_outfitAction
Create or replace one of up to three outfit plans for a date and time of day, save it locally, and show it in the month calendar.
View tool JSON
{
"name": "schedule_outfit",
"kind": "act",
"impl": "imperative",
"description": "Create or replace one of up to three outfit plans for a date and time of day, save it locally, and show it in the month calendar.",
"inputSchema": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"occasion": {
"type": "string",
"enum": [
"work",
"casual",
"dinner",
"event"
]
},
"slot": {
"type": "string",
"enum": [
"morning",
"day",
"evening"
]
},
"includeHeadwear": {
"type": "boolean"
}
},
"required": [
"date",
"occasion"
],
"additionalProperties": false
}
}remove_calendar_planAction
Remove one locally saved outfit plan for a date and time of day. Schedule the same date and slot again to edit it.
View tool JSON
{
"name": "remove_calendar_plan",
"kind": "act",
"impl": "imperative",
"description": "Remove one locally saved outfit plan for a date and time of day. Schedule the same date and slot again to edit it.",
"inputSchema": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"slot": {
"type": "string",
"enum": [
"morning",
"day",
"evening"
]
}
},
"required": [
"date"
],
"additionalProperties": false
}
}list_calendar_plansAnswer
Read locally saved outfit plans and cached daily weather for one YYYY-MM month without changing the interface.
View tool JSON
{
"name": "list_calendar_plans",
"kind": "answer",
"impl": "imperative",
"description": "Read locally saved outfit plans and cached daily weather for one YYYY-MM month without changing the interface.",
"inputSchema": {
"type": "object",
"properties": {
"month": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}$"
}
},
"required": [
"month"
],
"additionalProperties": false
}
}record_wearAction
Add the currently visible outfit to wear history for a date and accept any inline recolor previews into the wardrobe.
View tool JSON
{
"name": "record_wear",
"kind": "act",
"impl": "imperative",
"description": "Add the currently visible outfit to wear history for a date and accept any inline recolor previews into the wardrobe.",
"inputSchema": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"date"
],
"additionalProperties": false
}
}set_preferencesAction
Update visible outfit preferences and regenerate the current suggestion.
View tool JSON
{
"name": "set_preferences",
"kind": "act",
"impl": "imperative",
"description": "Update visible outfit preferences and regenerate the current suggestion.",
"inputSchema": {
"type": "object",
"properties": {
"palette": {
"type": "string",
"enum": [
"balanced",
"neutral",
"colorful"
]
},
"includeHeadwear": {
"type": "boolean"
},
"avoid": {
"type": "string"
},
"note": {
"type": "string"
}
},
"additionalProperties": false
}
}generate_outfit_batchAction
Generate and visibly display 1 to 30 distinct wardrobe outfits for one dated request without image generation. Required item IDs appear in every result; excluded IDs never appear. The result count is a requested upper bound: the engine may return fewer if the wardrobe cannot produce that many unique combinations.
View tool JSON
{
"name": "generate_outfit_batch",
"kind": "act",
"impl": "imperative",
"description": "Generate and visibly display 1 to 30 distinct wardrobe outfits for one dated request without image generation. Required item IDs appear in every result; excluded IDs never appear. The result count is a requested upper bound: the engine may return fewer if the wardrobe cannot produce that many unique combinations.",
"inputSchema": {
"type": "object",
"properties": {
"occasion": {
"type": "string",
"enum": [
"work",
"casual",
"dinner",
"event"
]
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 30,
"description": "Number of distinct outfit options to request. Use 1–30; fewer may be returned when the wardrobe has fewer unique combinations."
},
"palette": {
"type": "string",
"enum": [
"balanced",
"neutral",
"colorful"
]
},
"includeHeadwear": {
"type": "boolean"
},
"avoid": {
"type": "string"
},
"note": {
"type": "string"
},
"seed": {
"type": "string"
},
"requiredItemIds": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true,
"maxItems": 4
},
"excludedItemIds": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
}
},
"required": [
"occasion",
"count"
],
"additionalProperties": false
}
}plan_outfit_weekAction
Build 2 or 3 weekly outfit options from cached weather, calendar occasions, preferences, and wear history. Required item IDs appear in every generated entry; excluded IDs never appear.
View tool JSON
{
"name": "plan_outfit_week",
"kind": "act",
"impl": "imperative",
"description": "Build 2 or 3 weekly outfit options from cached weather, calendar occasions, preferences, and wear history. Required item IDs appear in every generated entry; excluded IDs never appear.",
"inputSchema": {
"type": "object",
"properties": {
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 7
},
"optionCount": {
"type": "integer",
"minimum": 2,
"maximum": 3
},
"dayparts": {
"type": "array",
"items": {
"type": "string",
"enum": [
"morning",
"day",
"evening"
]
},
"minItems": 1,
"maxItems": 3,
"uniqueItems": true
},
"occasion": {
"type": "string",
"enum": [
"work",
"casual",
"dinner",
"event"
]
},
"palette": {
"type": "string",
"enum": [
"balanced",
"neutral",
"colorful"
]
},
"includeHeadwear": {
"type": "boolean"
},
"avoid": {
"type": "string"
},
"note": {
"type": "string"
},
"seed": {
"type": "string"
},
"requiredItemIds": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true,
"maxItems": 4
},
"excludedItemIds": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
}
},
"required": [
"startDate"
],
"additionalProperties": false
}
}apply_week_planAction
Schedule one previously reviewed weekly option into the local calendar, preserving the three-slots-per-day limit.
View tool JSON
{
"name": "apply_week_plan",
"kind": "act",
"impl": "imperative",
"description": "Schedule one previously reviewed weekly option into the local calendar, preserving the three-slots-per-day limit.",
"inputSchema": {
"type": "object",
"properties": {
"optionId": {
"type": "string"
}
},
"required": [
"optionId"
],
"additionalProperties": false
}
}recolor_itemAction
Recolor one catalog item in a low-resolution browser canvas and display a preview in the CLOTHO recolor lab; saving it as a wardrobe variant requires the explicit Save as wardrobe variant action.
View tool JSON
{
"name": "recolor_item",
"kind": "act",
"impl": "imperative",
"description": "Recolor one catalog item in a low-resolution browser canvas and display a preview in the CLOTHO recolor lab; saving it as a wardrobe variant requires the explicit Save as wardrobe variant action.",
"inputSchema": {
"type": "object",
"properties": {
"itemId": {
"type": "string"
},
"color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
}
},
"required": [
"itemId",
"color"
],
"additionalProperties": false
}
}