Skip to main content
Glama

Restyle

restyle_room

Give one or more surfaces of a room a new finish — repaint the walls, change the floor, reface the kitchen cabinets and worktop, retile the bathroom or refinish the furniture — while the room's layout, fittings, windows and camera angle stay exactly as shot. Costs credits from the user's Pixly balance.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
looksNoThe finish per surface: 'auto', one of the presets below, 'custom' with your own words in `notes`, 'own_colour' (walls, cabinets, furniture) with a hex colour in `colours`, or 'material_photo' with a photo of the material in `references`. A finish that does not belong to its surface falls back to 'auto' (the tool picks one that suits the room; several on auto are made to agree). walls: warm_white, soft_grey, greige, sage, deep_navy. floor: light_oak, walnut, grey_plank, polished_concrete, stone_tile. cabinets: white_shaker, charcoal, natural_oak, forest_green, navy_cabinets. bathroom_tiles (wall tiles only; a bathroom floor is 'floor'): white_metro, zellige_white, marble_large, travertine, green_gloss. floor also takes terrazzo, encaustic_pattern, matt_black_hex. furniture: light_neutral, warm_wood, dark_wood, black_leather.
notesNoYour own description of the finish for a surface, used when that surface's look is "custom" (e.g. "terracotta hex tiles with dark grout"). Set look "custom" and the note together; "custom" with no note falls back to "auto". 120 characters max, and anything in it that is not a description of a finish is ignored.
r2PathNoStorage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl.
coloursNoAny colour as a hex code for walls, cabinets or furniture (e.g. {"walls": "#7A8B6F"}), used when that surface's look is "own_colour". The result matches it closely as it would look in the room's light.
imageUrlNoPublic https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.
surfacesNoWhich surfaces get a new finish: 'walls', 'floor', 'cabinets' (fitted joinery plus its worktop and splashback), 'bathroom_tiles' (the tiled walls; a bathroom floor is 'floor') or 'furniture' (upholstery and wood finishes). Omit for walls. The room's layout, fittings and camera never change.
listingIdNoA property folder (from list_listings or create_listing) to put the result in. Results of a photo that is already in a folder go there by themselves.
referencesNoA photo of the material itself — a floor plank, a tile, a fabric swatch, a wallpaper sample — for ONE surface, as the r2Path from create_upload_ticket or list_library (e.g. {"floor": "users/…/oak.jpg"}). Set that surface's look to "material_photo". One photo per run; a close, straight-on photo of the sample works best.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
jobsNoSeveral jobs at once (get_job with jobIds, or a plan's steps): each one's jobId, status and results
noteNo
typeNo
errorNo
jobIdYesPass to get_job to poll
quoteNoPresent when status is "awaiting_confirmation": nothing ran and nothing was charged yet — the price and settings the user is asked to confirm
statusYespending | processing | completed | failed — anything not completed/failed is still running
createdAtNo
resultUrlsNoPresent when completed; valid 7 days
completedAtNo
resultPathsNoStorage path of each result — pass one as r2Path (or beforeR2Path, a photos[] item) to run another tool on this result
creditsChargedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / listingId
      Added value: +{
      +  "description": "A property folder (from list_listings or create_listing) to put the result in. Results of a photo that is already in a folder go there by themselves.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / jobs
      Added value: +{
      +  "description": "Several jobs at once (get_job with jobIds, or a plan's steps): each one's jobId, status and results",
      +  "items": {
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Changed1 schema field changed
    • addedOutput schema / properties / quote
      Added value: +{
      +  "description": "Present when status is \"awaiting_confirmation\": nothing ran and nothing was charged yet — the price and settings the user is asked to confirm",
      +  "type": "object"
      +}
  3. Changed2 schema fields changed
    • changedInput schema / properties / looks / description
      Previous value: -"The finish per surface: 'auto', one of the presets below, 'custom' with your own words in `notes`, 'own_colour' (walls, cabinets, furniture) with a hex colour in `colours`, or 'material_photo' with a photo of the material in `references`. A finish that does not belong to its surface falls back to 'auto' (the tool picks one that suits the room; several on auto are made to agree). walls: warm_white, soft_grey, greige, sage, deep_navy. floor: light_oak, walnut, grey_plank, polished_concrete, stone_tile. cabinets: white_shaker, charcoal, natural_oak, forest_green, navy_cabinets. bathroom_tiles: white_metro, marble_large, terrazzo, matt_black_hex, travertine. furniture: light_neutral, warm_wood, dark_wood, black_leather."New value: +"The finish per surface: 'auto', one of the presets below, 'custom' with your own words in `notes`, 'own_colour' (walls, cabinets, furniture) with a hex colour in `colours`, or 'material_photo' with a photo of the material in `references`. A finish that does not belong to its surface falls back to 'auto' (the tool picks one that suits the room; several on auto are made to agree). walls: warm_white, soft_grey, greige, sage, deep_navy. floor: light_oak, walnut, grey_plank, polished_concrete, stone_tile. cabinets: white_shaker, charcoal, natural_oak, forest_green, navy_cabinets. bathroom_tiles (wall tiles only; a bathroom floor is 'floor'): white_metro, zellige_white, marble_large, travertine, green_gloss. floor also takes terrazzo, encaustic_pattern, matt_black_hex. furniture: light_neutral, warm_wood, dark_wood, black_leather."
    • changedInput schema / properties / surfaces / description
      Previous value: -"Which surfaces get a new finish: 'walls', 'floor', 'cabinets' (fitted joinery plus its worktop and splashback), 'bathroom_tiles' or 'furniture' (upholstery and wood finishes). Omit for walls. The room's layout, fittings and camera never change."New value: +"Which surfaces get a new finish: 'walls', 'floor', 'cabinets' (fitted joinery plus its worktop and splashback), 'bathroom_tiles' (the tiled walls; a bathroom floor is 'floor') or 'furniture' (upholstery and wood finishes). Omit for walls. The room's layout, fittings and camera never change."
  4. Changed4 schema fields changed
    • changedInput schema / properties / colours / description
      Previous value: -"Walls only: any paint colour as a hex code (e.g. {\"walls\": \"#7A8B6F\"}), used when the walls look is \"own_colour\". The result matches it closely as that paint would look in the room's light."New value: +"Any colour as a hex code for walls, cabinets or furniture (e.g. {\"walls\": \"#7A8B6F\"}), used when that surface's look is \"own_colour\". The result matches it closely as it would look in the room's light."
    • changedInput schema / properties / looks / additionalProperties / enum
      Previous value: -[
      -  "auto",
      -  "custom",
      -  "own_colour",
      -  "warm_white",
      -  "crisp_white",
      -  "soft_grey",
      -  "greige",
      -  "warm_beige",
      -  "clay_pink",
      -  "sage",
      -  "soft_blue",
      -  "olive_green",
      -  "graphite",
      -  "deep_navy",
      -  "terracotta_walls",
      -  "panelling",
      -  "wallpaper_textured",
      -  "limewash",
      -  "microcement",
      -  "exposed_brick",
      -  "timber_slats",
      -  "light_oak",
      -  "mid_oak",
      -  "wide_ash",
      -  "walnut",
      -  "herringbone_oak",
      -  "grey_plank",
      -  "polished_concrete",
      -  "stone_tile",
      -  "terracotta_floor",
      -  "slate_tile",
      -  "checker_tile",
      -  "carpet_neutral",
      -  "white_shaker",
      -  "cream_shaker",
      -  "handleless_white",
      -  "handleless_grey",
      -  "charcoal",
      -  "matt_black_cabinets",
      -  "natural_oak",
      -  "walnut_cabinets",
      -  "sage_cabinets",
      -  "forest_green",
      -  "navy_cabinets",
      -  "two_tone",
      -  "gloss_white",
      -  "white_metro",
      -  "zellige_white",
      -  "white_large",
      -  "grey_porcelain",
      -  "marble_large",
      -  "travertine",
      -  "terrazzo",
      -  "encaustic_pattern",
      -  "matt_black_hex",
      -  "slate_dark",
      -  "wood_effect_tile",
      -  "green_gloss",
      -  "light_neutral",
      -  "mid_grey_wool",
      -  "warm_greige",
      -  "cream_boucle",
      -  "tan_leather",
      -  "black_leather",
      -  "green_velvet",
      -  "navy_velvet",
      -  "rust_velvet",
      -  "warm_wood",
      -  "dark_wood",
      -  "black_metal"
      -]New value: +[
      +  "auto",
      +  "custom",
      +  "own_colour",
      +  "material_photo",
      +  "warm_white",
      +  "crisp_white",
      +  "soft_grey",
      +  "greige",
      +  "warm_beige",
      +  "clay_pink",
      +  "sage",
      +  "soft_blue",
      +  "olive_green",
      +  "graphite",
      +  "deep_navy",
      +  "terracotta_walls",
      +  "panelling",
      +  "wallpaper_textured",
      +  "limewash",
      +  "microcement",
      +  "exposed_brick",
      +  "timber_slats",
      +  "light_oak",
      +  "mid_oak",
      +  "wide_ash",
      +  "walnut",
      +  "herringbone_oak",
      +  "grey_plank",
      +  "polished_concrete",
      +  "stone_tile",
      +  "terracotta_floor",
      +  "slate_tile",
      +  "checker_tile",
      +  "carpet_neutral",
      +  "white_shaker",
      +  "cream_shaker",
      +  "handleless_white",
      +  "handleless_grey",
      +  "charcoal",
      +  "matt_black_cabinets",
      +  "natural_oak",
      +  "walnut_cabinets",
      +  "sage_cabinets",
      +  "forest_green",
      +  "navy_cabinets",
      +  "two_tone",
      +  "gloss_white",
      +  "white_metro",
      +  "zellige_white",
      +  "white_large",
      +  "grey_porcelain",
      +  "marble_large",
      +  "travertine",
      +  "terrazzo",
      +  "encaustic_pattern",
      +  "matt_black_hex",
      +  "slate_dark",
      +  "wood_effect_tile",
      +  "green_gloss",
      +  "light_neutral",
      +  "mid_grey_wool",
      +  "warm_greige",
      +  "cream_boucle",
      +  "tan_leather",
      +  "black_leather",
      +  "green_velvet",
      +  "navy_velvet",
      +  "rust_velvet",
      +  "warm_wood",
      +  "dark_wood",
      +  "black_metal"
      +]
    • changedInput schema / properties / looks / description
      Previous value: -"The finish per surface: 'auto', one of the presets below, 'custom' with your own words in `notes`, or (walls only) 'own_colour' with a hex paint colour in `colours`. A finish that does not belong to its surface falls back to 'auto' (the tool picks one that suits the room; several on auto are made to agree). walls: warm_white, soft_grey, greige, sage, deep_navy. floor: light_oak, walnut, grey_plank, polished_concrete, stone_tile. cabinets: white_shaker, charcoal, natural_oak, forest_green, navy_cabinets. bathroom_tiles: white_metro, marble_large, terrazzo, matt_black_hex, travertine. furniture: light_neutral, warm_wood, dark_wood, black_leather."New value: +"The finish per surface: 'auto', one of the presets below, 'custom' with your own words in `notes`, 'own_colour' (walls, cabinets, furniture) with a hex colour in `colours`, or 'material_photo' with a photo of the material in `references`. A finish that does not belong to its surface falls back to 'auto' (the tool picks one that suits the room; several on auto are made to agree). walls: warm_white, soft_grey, greige, sage, deep_navy. floor: light_oak, walnut, grey_plank, polished_concrete, stone_tile. cabinets: white_shaker, charcoal, natural_oak, forest_green, navy_cabinets. bathroom_tiles: white_metro, marble_large, terrazzo, matt_black_hex, travertine. furniture: light_neutral, warm_wood, dark_wood, black_leather."
    • addedInput schema / properties / references
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "description": "A photo of the material itself — a floor plank, a tile, a fabric swatch, a wallpaper sample — for ONE surface, as the r2Path from create_upload_ticket or list_library (e.g. {\"floor\": \"users/…/oak.jpg\"}). Set that surface's look to \"material_photo\". One photo per run; a close, straight-on photo of the sample works best.",
      +  "propertyNames": {
      +    "enum": [
      +      "walls",
      +      "floor",
      +      "cabinets",
      +      "bathroom_tiles",
      +      "furniture"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
  5. Changed3 schema fields changed
    • addedInput schema / properties / colours
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "description": "Walls only: any paint colour as a hex code (e.g. {\"walls\": \"#7A8B6F\"}), used when the walls look is \"own_colour\". The result matches it closely as that paint would look in the room's light.",
      +  "propertyNames": {
      +    "enum": [
      +      "walls",
      +      "floor",
      +      "cabinets",
      +      "bathroom_tiles",
      +      "furniture"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / looks / additionalProperties / enum
      Previous value: -[
      -  "auto",
      -  "custom",
      -  "warm_white",
      -  "crisp_white",
      -  "soft_grey",
      -  "greige",
      -  "warm_beige",
      -  "clay_pink",
      -  "sage",
      -  "soft_blue",
      -  "olive_green",
      -  "graphite",
      -  "deep_navy",
      -  "terracotta_walls",
      -  "panelling",
      -  "wallpaper_textured",
      -  "limewash",
      -  "microcement",
      -  "exposed_brick",
      -  "timber_slats",
      -  "light_oak",
      -  "mid_oak",
      -  "wide_ash",
      -  "walnut",
      -  "herringbone_oak",
      -  "grey_plank",
      -  "polished_concrete",
      -  "stone_tile",
      -  "terracotta_floor",
      -  "slate_tile",
      -  "checker_tile",
      -  "carpet_neutral",
      -  "white_shaker",
      -  "cream_shaker",
      -  "handleless_white",
      -  "handleless_grey",
      -  "charcoal",
      -  "matt_black_cabinets",
      -  "natural_oak",
      -  "walnut_cabinets",
      -  "sage_cabinets",
      -  "forest_green",
      -  "navy_cabinets",
      -  "two_tone",
      -  "gloss_white",
      -  "white_metro",
      -  "zellige_white",
      -  "white_large",
      -  "grey_porcelain",
      -  "marble_large",
      -  "travertine",
      -  "terrazzo",
      -  "encaustic_pattern",
      -  "matt_black_hex",
      -  "slate_dark",
      -  "wood_effect_tile",
      -  "green_gloss",
      -  "light_neutral",
      -  "mid_grey_wool",
      -  "warm_greige",
      -  "cream_boucle",
      -  "tan_leather",
      -  "black_leather",
      -  "green_velvet",
      -  "navy_velvet",
      -  "rust_velvet",
      -  "warm_wood",
      -  "dark_wood",
      -  "black_metal"
      -]New value: +[
      +  "auto",
      +  "custom",
      +  "own_colour",
      +  "warm_white",
      +  "crisp_white",
      +  "soft_grey",
      +  "greige",
      +  "warm_beige",
      +  "clay_pink",
      +  "sage",
      +  "soft_blue",
      +  "olive_green",
      +  "graphite",
      +  "deep_navy",
      +  "terracotta_walls",
      +  "panelling",
      +  "wallpaper_textured",
      +  "limewash",
      +  "microcement",
      +  "exposed_brick",
      +  "timber_slats",
      +  "light_oak",
      +  "mid_oak",
      +  "wide_ash",
      +  "walnut",
      +  "herringbone_oak",
      +  "grey_plank",
      +  "polished_concrete",
      +  "stone_tile",
      +  "terracotta_floor",
      +  "slate_tile",
      +  "checker_tile",
      +  "carpet_neutral",
      +  "white_shaker",
      +  "cream_shaker",
      +  "handleless_white",
      +  "handleless_grey",
      +  "charcoal",
      +  "matt_black_cabinets",
      +  "natural_oak",
      +  "walnut_cabinets",
      +  "sage_cabinets",
      +  "forest_green",
      +  "navy_cabinets",
      +  "two_tone",
      +  "gloss_white",
      +  "white_metro",
      +  "zellige_white",
      +  "white_large",
      +  "grey_porcelain",
      +  "marble_large",
      +  "travertine",
      +  "terrazzo",
      +  "encaustic_pattern",
      +  "matt_black_hex",
      +  "slate_dark",
      +  "wood_effect_tile",
      +  "green_gloss",
      +  "light_neutral",
      +  "mid_grey_wool",
      +  "warm_greige",
      +  "cream_boucle",
      +  "tan_leather",
      +  "black_leather",
      +  "green_velvet",
      +  "navy_velvet",
      +  "rust_velvet",
      +  "warm_wood",
      +  "dark_wood",
      +  "black_metal"
      +]
    • changedInput schema / properties / looks / description
      Previous value: -"The finish per surface: 'auto', one of the presets below, or 'custom' with your own words in `notes`. A finish that does not belong to its surface falls back to 'auto' (the tool picks one that suits the room; several on auto are made to agree). walls: warm_white, soft_grey, greige, sage, deep_navy. floor: light_oak, walnut, grey_plank, polished_concrete, stone_tile. cabinets: white_shaker, charcoal, natural_oak, forest_green, navy_cabinets. bathroom_tiles: white_metro, marble_large, terrazzo, matt_black_hex, travertine. furniture: light_neutral, warm_wood, dark_wood, black_leather."New value: +"The finish per surface: 'auto', one of the presets below, 'custom' with your own words in `notes`, or (walls only) 'own_colour' with a hex paint colour in `colours`. A finish that does not belong to its surface falls back to 'auto' (the tool picks one that suits the room; several on auto are made to agree). walls: warm_white, soft_grey, greige, sage, deep_navy. floor: light_oak, walnut, grey_plank, polished_concrete, stone_tile. cabinets: white_shaker, charcoal, natural_oak, forest_green, navy_cabinets. bathroom_tiles: white_metro, marble_large, terrazzo, matt_black_hex, travertine. furniture: light_neutral, warm_wood, dark_wood, black_leather."
  6. Changed1 schema field changed
    • addedOutput schema / properties / resultPaths
      Added value: +{
      +  "description": "Storage path of each result — pass one as r2Path (or beforeR2Path, a photos[] item) to run another tool on this result",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  7. Changed1 schema field changed
    • changedInput schema / properties / r2Path / description
      Previous value: -"R2 object path from an upload ticket (the create_upload_ticket tool, or POST /api/v1/uploads over REST) — the alternative to imageUrl when the photo is a local file."New value: +"Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."
  8. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "completedAt": {
      +      "type": "string"
      +    },
      +    "createdAt": {
      +      "type": "string"
      +    },
      +    "creditsCharged": {
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "error": {
      +      "type": "string"
      +    },
      +    "jobId": {
      +      "description": "Pass to get_job to poll",
      +      "type": "string"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "resultUrls": {
      +      "description": "Present when completed; valid 7 days",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "description": "pending | processing | completed | failed — anything not completed/failed is still running",
      +      "type": "string"
      +    },
      +    "type": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "jobId",
      +    "status"
      +  ],
      +  "type": "object"
      +}
  9. Changed1 schema field changed
    • changedInput schema / properties / r2Path / description
      Previous value: -"R2 object path from an upload ticket (POST /api/v1/uploads) — the alternative to imageUrl when the photo is a local file."New value: +"R2 object path from an upload ticket (the create_upload_ticket tool, or POST /api/v1/uploads over REST) — the alternative to imageUrl when the photo is a local file."
  10. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources