Koskamo

RoomLab.app MCP

An official MCP server that allows AI agents to perform virtual staging, decluttering, style changes, furniture replacement, material swapping, and property video generation using RoomLab.app's AI tools.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

RoomLab.app MCP logo, by RoomLab.appVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by RoomLab.app
You need:OAuth sign-in with a RoomLab.app account
MCP endpoint (Streamable HTTP)
https://mcp.roomlab.app/mcp
Vendor documentation

What its tools do

19 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

Read-only (1)

19 of 19 have a description · 19 of 19 declare behavior hints · 12 of 19 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to roomlab.app ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Stage empty rooms with furniture for real estate listings
  • Declutter rooms by removing personal items and mess
  • Change room style using preset designs or custom prompts
  • Generate video walkthroughs from property photos

Source and maintenance

Vendor evidenceRegistry 0.4.7

Protocol and capabilities

Server
roomlab 0.4.7
MCP protocol negotiated in check
2025-11-25
Tools
19 advertised
Resources
8 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

RoomLab provides one customer-facing tool for each mode in the RoomLab workspace. Choose the exact mode the user requested; never combine modes or discuss RoomLab’s internal implementation. Do not ask for technical generation settings. Ask only for required creative choices that are missing, and do not ask for optional settings when the request is already clear. Creation tools consume RoomLab credits. Video tools return a generation ID while RoomLab works; the result card checks it automatically, or call get_generation again shortly when no card is available.

Tools

19 advertised

virtual_stage_room — Virtual Staging
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use only when the user wants furniture and decor added to an empty room. Ask only for the room image, room type, and design style when missing. Do not use this to restyle a furnished room.

virtual_stage_room input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "room_type",
    "design_style"
  ],
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "room_type": {
      "type": "string",
      "maxLength": 100,
      "minLength": 2,
      "description": "Natural room name, such as bedroom, living room, kitchen, or office."
    },
    "design_style": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Natural design style, such as Scandinavian, modern, industrial, or a style described by the user."
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
virtual_stage_room output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
virtual_stage_room annotations
{
  "title": "Virtual Staging",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
change_room_style — Change Style
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use only when the user wants a furnished room restyled while keeping its furniture arrangement. Ask only for the room image, room type, and design style when missing. Do not use this to furnish an empty room.

change_room_style input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "room_type",
    "design_style"
  ],
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "room_type": {
      "type": "string",
      "maxLength": 100,
      "minLength": 2,
      "description": "Natural room name, such as bedroom, living room, kitchen, or office."
    },
    "design_style": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Natural design style, such as Scandinavian, modern, industrial, or a style described by the user."
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
change_room_style output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
change_room_style annotations
{
  "title": "Change Style",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
declutter_room — Declutter Room
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants clutter and visual mess removed while keeping the major furniture and architecture. This matches the Declutter Room workspace card.

declutter_room input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
declutter_room output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
declutter_room annotations
{
  "title": "Declutter Room",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
empty_room — Empty Room
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants all furniture, appliances, and decor removed so the room appears vacant. This matches the Empty Room workspace card.

empty_room input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
empty_room output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
empty_room annotations
{
  "title": "Empty Room",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
replace_furniture — Replace Furniture
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants one furniture item replaced with the item shown in a reference image. Ask for the room type and furniture item only when missing.

replace_furniture input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "room_type",
    "furniture_item"
  ],
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "room_type": {
      "type": "string",
      "maxLength": 100,
      "minLength": 2,
      "description": "Room type, such as living room, bedroom, kitchen, bathroom, dining room, or office."
    },
    "furniture_item": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Furniture item to replace, such as sofa, bed, chair, or table."
    },
    "reference_image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The reference image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "reference_image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the reference image supplied by the client."
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
replace_furniture output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
replace_furniture annotations
{
  "title": "Replace Furniture",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
replace_material — Replace Material
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants the material on a wall, floor, rug, curtain, countertop, backsplash, or another surface changed to match a reference image.

replace_material input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "surface"
  ],
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "surface": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Surface whose material should change, such as wall, floor, countertop, or backsplash."
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "reference_image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The reference image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "reference_image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the reference image supplied by the client."
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
replace_material output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
replace_material annotations
{
  "title": "Replace Material",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
render_interior — Interior Architectural Render
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants an interior sketch, model view, or design image turned into a photorealistic architectural render. Time of day and extra instructions are the only optional workspace controls.

render_interior input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "time_of_day": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional workspace time-of-day choice, such as morning, midday, afternoon, golden hour, dusk, night, or a custom description."
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
render_interior output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
render_interior annotations
{
  "title": "Interior Architectural Render",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
render_exterior — Exterior Architectural Render
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants an exterior sketch, model view, or design image turned into a photorealistic architectural render. Time of day, season, landscape, and extra instructions match the workspace controls.

render_exterior input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "season": {
      "type": "string",
      "maxLength": 100,
      "description": "Optional workspace season choice: spring, summer, autumn, winter, or a custom description."
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "landscape": {
      "type": "string",
      "maxLength": 300,
      "description": "Optional workspace landscape choice or custom setting."
    },
    "time_of_day": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional workspace time-of-day choice, such as morning, midday, afternoon, golden hour, dusk, night, or a custom description."
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
render_exterior output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
render_exterior annotations
{
  "title": "Exterior Architectural Render",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
custom_prompt — Custom Prompt
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use for the workspace Custom Prompt mode when another named RoomLab mode does not match. The user may supply one main image, up to six reference images, and natural-language instructions.

custom_prompt input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "instructions"
  ],
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "instructions": {
      "type": "string",
      "maxLength": 2000,
      "minLength": 2,
      "description": "The user’s requested room edit in natural language."
    },
    "reference_images": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "download_url",
          "file_id"
        ],
        "properties": {
          "file_id": {
            "type": "string",
            "minLength": 1
          },
          "file_name": {
            "type": "string"
          },
          "mime_type": {
            "type": "string"
          },
          "download_url": {
            "type": "string",
            "format": "uri",
            "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
          }
        },
        "description": "An attached image supplied by a file-aware client. If the host only exposes a local path, omit this field so RoomLab can request the image safely.",
        "additionalProperties": false
      },
      "maxItems": 6,
      "description": "Optional reference images attached by the user."
    },
    "reference_image_urls": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "format": "uri"
          },
          {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 13981144,
                "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
              },
              {
                "type": "object",
                "required": [
                  "media_type",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "type": {
                    "type": "string",
                    "const": "base64"
                  },
                  "media_type": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "mime_type",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "mime_type": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "type",
                  "mimeType",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "mimeType": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "source"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "type",
                      "media_type",
                      "data"
                    ],
                    "properties": {
                      "data": {
                        "type": "string",
                        "maxLength": 13981080,
                        "minLength": 4,
                        "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                      },
                      "type": {
                        "type": "string",
                        "const": "base64"
                      },
                      "media_type": {
                        "enum": [
                          "image/jpeg",
                          "image/png",
                          "image/webp"
                        ],
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            ]
          }
        ],
        "description": "A public HTTPS image URL or the existing inline base64 image supplied by the client. Never pass file:// URLs, local paths, invented bytes, or file metadata."
      },
      "maxItems": 6
    }
  }
}
custom_prompt output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
custom_prompt annotations
{
  "title": "Custom Prompt",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
set_sky_blue — Set Sky Blue
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants a dull or cloudy sky changed to a clear bright blue sky while preserving the property and landscaping.

set_sky_blue input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "reference_images": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "download_url",
          "file_id"
        ],
        "properties": {
          "file_id": {
            "type": "string",
            "minLength": 1
          },
          "file_name": {
            "type": "string"
          },
          "mime_type": {
            "type": "string"
          },
          "download_url": {
            "type": "string",
            "format": "uri",
            "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
          }
        },
        "description": "An attached image supplied by a file-aware client. If the host only exposes a local path, omit this field so RoomLab can request the image safely.",
        "additionalProperties": false
      },
      "maxItems": 6,
      "description": "Optional reference images attached by the user."
    },
    "reference_image_urls": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "format": "uri"
          },
          {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 13981144,
                "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
              },
              {
                "type": "object",
                "required": [
                  "media_type",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "type": {
                    "type": "string",
                    "const": "base64"
                  },
                  "media_type": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "mime_type",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "mime_type": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "type",
                  "mimeType",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "mimeType": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "source"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "type",
                      "media_type",
                      "data"
                    ],
                    "properties": {
                      "data": {
                        "type": "string",
                        "maxLength": 13981080,
                        "minLength": 4,
                        "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                      },
                      "type": {
                        "type": "string",
                        "const": "base64"
                      },
                      "media_type": {
                        "enum": [
                          "image/jpeg",
                          "image/png",
                          "image/webp"
                        ],
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            ]
          }
        ],
        "description": "A public HTTPS image URL or the existing inline base64 image supplied by the client. Never pass file:// URLs, local paths, invented bytes, or file metadata."
      },
      "maxItems": 6
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
set_sky_blue output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
set_sky_blue annotations
{
  "title": "Set Sky Blue",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
fill_and_clean_pool — Fill and Clean Pool
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants a pool filled with clean water and the surrounding pool area tidied.

fill_and_clean_pool input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "reference_images": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "download_url",
          "file_id"
        ],
        "properties": {
          "file_id": {
            "type": "string",
            "minLength": 1
          },
          "file_name": {
            "type": "string"
          },
          "mime_type": {
            "type": "string"
          },
          "download_url": {
            "type": "string",
            "format": "uri",
            "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
          }
        },
        "description": "An attached image supplied by a file-aware client. If the host only exposes a local path, omit this field so RoomLab can request the image safely.",
        "additionalProperties": false
      },
      "maxItems": 6,
      "description": "Optional reference images attached by the user."
    },
    "reference_image_urls": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "format": "uri"
          },
          {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 13981144,
                "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
              },
              {
                "type": "object",
                "required": [
                  "media_type",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "type": {
                    "type": "string",
                    "const": "base64"
                  },
                  "media_type": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "mime_type",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "mime_type": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "type",
                  "mimeType",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "mimeType": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "source"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "type",
                      "media_type",
                      "data"
                    ],
                    "properties": {
                      "data": {
                        "type": "string",
                        "maxLength": 13981080,
                        "minLength": 4,
                        "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                      },
                      "type": {
                        "type": "string",
                        "const": "base64"
                      },
                      "media_type": {
                        "enum": [
                          "image/jpeg",
                          "image/png",
                          "image/webp"
                        ],
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            ]
          }
        ],
        "description": "A public HTTPS image URL or the existing inline base64 image supplied by the client. Never pass file:// URLs, local paths, invented bytes, or file metadata."
      },
      "maxItems": 6
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
fill_and_clean_pool output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
fill_and_clean_pool annotations
{
  "title": "Fill and Clean Pool",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
clean_garden — Clean the Garden
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants weeds and debris removed so a garden or outdoor area looks neat and maintained.

clean_garden input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "reference_images": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "download_url",
          "file_id"
        ],
        "properties": {
          "file_id": {
            "type": "string",
            "minLength": 1
          },
          "file_name": {
            "type": "string"
          },
          "mime_type": {
            "type": "string"
          },
          "download_url": {
            "type": "string",
            "format": "uri",
            "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
          }
        },
        "description": "An attached image supplied by a file-aware client. If the host only exposes a local path, omit this field so RoomLab can request the image safely.",
        "additionalProperties": false
      },
      "maxItems": 6,
      "description": "Optional reference images attached by the user."
    },
    "reference_image_urls": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "format": "uri"
          },
          {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 13981144,
                "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
              },
              {
                "type": "object",
                "required": [
                  "media_type",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "type": {
                    "type": "string",
                    "const": "base64"
                  },
                  "media_type": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "mime_type",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "mime_type": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "type",
                  "mimeType",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "mimeType": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "source"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "type",
                      "media_type",
                      "data"
                    ],
                    "properties": {
                      "data": {
                        "type": "string",
                        "maxLength": 13981080,
                        "minLength": 4,
                        "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                      },
                      "type": {
                        "type": "string",
                        "const": "base64"
                      },
                      "media_type": {
                        "enum": [
                          "image/jpeg",
                          "image/png",
                          "image/webp"
                        ],
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            ]
          }
        ],
        "description": "A public HTTPS image URL or the existing inline base64 image supplied by the client. Never pass file:// URLs, local paths, invented bytes, or file metadata."
      },
      "maxItems": 6
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
clean_garden output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
clean_garden annotations
{
  "title": "Clean the Garden",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
make_grass_greener — Make Grass Greener
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants dry or patchy grass refreshed so the lawn looks green and healthy.

make_grass_greener input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "reference_images": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "download_url",
          "file_id"
        ],
        "properties": {
          "file_id": {
            "type": "string",
            "minLength": 1
          },
          "file_name": {
            "type": "string"
          },
          "mime_type": {
            "type": "string"
          },
          "download_url": {
            "type": "string",
            "format": "uri",
            "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
          }
        },
        "description": "An attached image supplied by a file-aware client. If the host only exposes a local path, omit this field so RoomLab can request the image safely.",
        "additionalProperties": false
      },
      "maxItems": 6,
      "description": "Optional reference images attached by the user."
    },
    "reference_image_urls": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "format": "uri"
          },
          {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 13981144,
                "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
              },
              {
                "type": "object",
                "required": [
                  "media_type",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "type": {
                    "type": "string",
                    "const": "base64"
                  },
                  "media_type": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "mime_type",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "mime_type": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "type",
                  "mimeType",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "mimeType": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "source"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "type",
                      "media_type",
                      "data"
                    ],
                    "properties": {
                      "data": {
                        "type": "string",
                        "maxLength": 13981080,
                        "minLength": 4,
                        "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                      },
                      "type": {
                        "type": "string",
                        "const": "base64"
                      },
                      "media_type": {
                        "enum": [
                          "image/jpeg",
                          "image/png",
                          "image/webp"
                        ],
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            ]
          }
        ],
        "description": "A public HTTPS image URL or the existing inline base64 image supplied by the client. Never pass file:// URLs, local paths, invented bytes, or file metadata."
      },
      "maxItems": 6
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
make_grass_greener output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
make_grass_greener annotations
{
  "title": "Make Grass Greener",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
visualize_wall_colors — Wall Colors
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use this when the user wants to compare paint colors on the walls of the same room. It returns a nine-color comparison. Color preferences are optional; use RoomLab’s balanced default palette when the user did not specify colors.

visualize_wall_colors input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "colors": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 80,
        "minLength": 2
      },
      "maxItems": 9,
      "minItems": 9,
      "description": "Optional nine paint colors in grid order. Omit to use the same nine defaults shown in the workspace."
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
visualize_wall_colors output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
visualize_wall_colors annotations
{
  "title": "Wall Colors",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
create_video_walkthrough — Video Walkthrough
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants one room photo animated with a camera move or other described effect. The effect and 5- or 10-second duration match the workspace controls.

create_video_walkthrough input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "video_effect"
  ],
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "video_effect": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 2,
      "description": "The camera move or effect requested by the user, such as orbit left, orbit right, zoom in, zoom out, pan, or a custom description."
    },
    "duration_seconds": {
      "anyOf": [
        {
          "type": "number",
          "const": 5
        },
        {
          "type": "number",
          "const": 10
        }
      ],
      "description": "The workspace offers 5 or 10 seconds. Omit unless the user requests one; the default is 5 seconds."
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
create_video_walkthrough output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
create_video_walkthrough annotations
{
  "title": "Video Walkthrough",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
create_video_transition — Video Transition
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants an animated transformation from a start image to an end image. The transition style and 5- or 10-second duration match the workspace controls.

create_video_transition input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "transition_style"
  ],
  "properties": {
    "image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The room image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "end_image": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string",
          "minLength": 1
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string",
          "format": "uri",
          "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
        }
      },
      "description": "The transition end image attached by the user. Do not ask the user for file metadata.",
      "additionalProperties": false
    },
    "image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the room image supplied by the client."
    },
    "end_image_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 13981144,
              "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
            },
            {
              "type": "object",
              "required": [
                "media_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "base64"
                },
                "media_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "mime_type",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "mime_type": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "type",
                "mimeType",
                "data"
              ],
              "properties": {
                "data": {
                  "type": "string",
                  "maxLength": 13981080,
                  "minLength": 4,
                  "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                },
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "mimeType": {
                  "enum": [
                    "image/jpeg",
                    "image/png",
                    "image/webp"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "image"
                },
                "source": {
                  "type": "object",
                  "required": [
                    "type",
                    "media_type",
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "string",
                      "maxLength": 13981080,
                      "minLength": 4,
                      "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                    },
                    "type": {
                      "type": "string",
                      "const": "base64"
                    },
                    "media_type": {
                      "enum": [
                        "image/jpeg",
                        "image/png",
                        "image/webp"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          ]
        }
      ],
      "description": "A link or inline copy of the transition end image supplied by the client."
    },
    "duration_seconds": {
      "anyOf": [
        {
          "type": "number",
          "const": 5
        },
        {
          "type": "number",
          "const": 10
        }
      ],
      "description": "The workspace offers 5 or 10 seconds. Omit unless the user requests one; the default is 5 seconds."
    },
    "transition_style": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 2,
      "description": "How the start image should transform into the end image, such as a timelapse, falling into place, assembling, or a custom description."
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
create_video_transition output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
create_video_transition annotations
{
  "title": "Video Transition",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
create_house_tour — House Tour
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Use when the user wants a cinematic tour made from three to six room images in order. The workspace offers an automatic or user-written script and 12-, 15-, or 30-second durations.

create_house_tour input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "images": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "download_url",
          "file_id"
        ],
        "properties": {
          "file_id": {
            "type": "string",
            "minLength": 1
          },
          "file_name": {
            "type": "string"
          },
          "mime_type": {
            "type": "string"
          },
          "download_url": {
            "type": "string",
            "format": "uri",
            "description": "A temporary HTTPS download URL supplied by the host. Never construct this from a local path."
          }
        },
        "description": "An attached image supplied by a file-aware client. If the host only exposes a local path, omit this field so RoomLab can request the image safely.",
        "additionalProperties": false
      },
      "maxItems": 6,
      "minItems": 3,
      "description": "Three to six room images attached by the user in tour order."
    },
    "image_urls": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "format": "uri"
          },
          {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 13981144,
                "description": "A complete data:image/jpeg, data:image/png, or data:image/webp base64 URI supplied by the client."
              },
              {
                "type": "object",
                "required": [
                  "media_type",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "type": {
                    "type": "string",
                    "const": "base64"
                  },
                  "media_type": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "mime_type",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "mime_type": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "type",
                  "mimeType",
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "maxLength": 13981080,
                    "minLength": 4,
                    "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                  },
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "mimeType": {
                    "enum": [
                      "image/jpeg",
                      "image/png",
                      "image/webp"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "object",
                "required": [
                  "source"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "image"
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "type",
                      "media_type",
                      "data"
                    ],
                    "properties": {
                      "data": {
                        "type": "string",
                        "maxLength": 13981080,
                        "minLength": 4,
                        "description": "The existing base64 image bytes. Pass them unchanged; do not regenerate or summarize them."
                      },
                      "type": {
                        "type": "string",
                        "const": "base64"
                      },
                      "media_type": {
                        "enum": [
                          "image/jpeg",
                          "image/png",
                          "image/webp"
                        ],
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            ]
          }
        ],
        "description": "A public HTTPS image URL or the existing inline base64 image supplied by the client. Never pass file:// URLs, local paths, invented bytes, or file metadata."
      },
      "maxItems": 6,
      "minItems": 3
    },
    "tour_script": {
      "type": "string",
      "maxLength": 5000,
      "description": "Optional user-written tour script. Omit to use RoomLab’s professional automatic tour."
    },
    "duration_seconds": {
      "anyOf": [
        {
          "type": "number",
          "const": 12
        },
        {
          "type": "number",
          "const": 15
        },
        {
          "type": "number",
          "const": 30
        }
      ],
      "description": "The workspace offers 12, 15, or 30 seconds. Omit unless the user requests one; the default is 12 seconds."
    },
    "additional_instructions": {
      "type": "string",
      "maxLength": 2000,
      "description": "Optional user preferences stated in natural language. Do not ask for this when the request is already clear."
    }
  }
}
create_house_tour output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
create_house_tour annotations
{
  "title": "House Tour",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
upscale_room_image — Create a 4K RoomLab image
Advertised by the server during the last successful anonymous check.
Advertised destructive

Use this when the user asks to make an existing RoomLab image 4K. The generation ID is enough; RoomLab retrieves the image and selects the correct upscale path internally.

upscale_room_image input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "generation_id"
  ],
  "properties": {
    "generation_id": {
      "type": "string",
      "minLength": 1,
      "description": "The RoomLab generation to make 4K."
    }
  }
}
upscale_room_image output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
upscale_room_image annotations
{
  "title": "Create a 4K RoomLab image",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
get_generation — Retrieve a RoomLab result
Advertised by the server during the last successful anonymous check.
Advertised read-only

Check a RoomLab.app creation and return status or finished media as data, without opening another card. The existing creation card polls automatically. Use this tool when no card is available or the user asks to check a result; do not repeatedly poll alongside an active card.

get_generation input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "generation_id"
  ],
  "properties": {
    "generation_id": {
      "type": "string",
      "minLength": 1
    }
  }
}
get_generation output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "success",
        "status"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "capability": {
          "type": "string"
        },
        "output_url": {
          "type": "string",
          "format": "uri"
        },
        "credits_used": {
          "type": "number"
        },
        "generation_id": {
          "type": "string"
        },
        "credits_remaining": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
get_generation annotations
{
  "title": "Retrieve a RoomLab result",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

8 advertised

roomlab-generation-widget-v1

Advertised by the server during the last successful anonymous check.

roomlab-generation-widget-v1 URI
ui://roomlab/generation-v1.html
roomlab-generation-widget-v2

Advertised by the server during the last successful anonymous check.

roomlab-generation-widget-v2 URI
ui://roomlab/generation-v2.html
roomlab-generation-widget-v3

Advertised by the server during the last successful anonymous check.

roomlab-generation-widget-v3 URI
ui://roomlab/generation-v3.html
roomlab-generation-widget-v4

Advertised by the server during the last successful anonymous check.

roomlab-generation-widget-v4 URI
ui://roomlab/generation-v4.html
roomlab-generation-widget-v5

Advertised by the server during the last successful anonymous check.

roomlab-generation-widget-v5 URI
ui://roomlab/generation-v5.html
roomlab-generation-widget-v6

Advertised by the server during the last successful anonymous check.

roomlab-generation-widget-v6 URI
ui://roomlab/generation-v6.html
roomlab-generation-widget-v7

Advertised by the server during the last successful anonymous check.

roomlab-generation-widget-v7 URI
ui://roomlab/generation-v7.html
roomlab-generation-widget-v8

Advertised by the server during the last successful anonymous check.

roomlab-generation-widget-v8 URI
ui://roomlab/generation-v8.html

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1552 ms
95th percentile latency
1552 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1552 ms · metadata changed · 19 tool(s), 8 resource(s), 0 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http roomlab-app-mcp https://mcp.roomlab.app/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add roomlab-app-mcp --url https://mcp.roomlab.app/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable roomlab-app-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "roomlab-app-mcp": {
      "url": "https://mcp.roomlab.app/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "roomlab-app-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.roomlab.app/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start roomlab-app-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "roomlab-app-mcp": {
      "type": "http",
      "url": "https://mcp.roomlab.app/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http roomlab-app-mcp https://mcp.roomlab.app/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.roomlab.app/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "roomlab-app-mcp": {
      "serverUrl": "https://mcp.roomlab.app/mcp"
    }
  }
}

Let your agent find its tools

Find servers like RoomLab.app MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run RoomLab.app MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing