## Overview

Generates a UGC-style room scene with a product placed naturally inside it. `product_image_url` is required — fabricated URLs are rejected by HEAD preflight. `room_style` is a free-form descriptor that WM Studio's UGC compose-prompt route refines downstream.

Auth

oauth-jwt

Returns

{ imageUrl, generationId, creditsCharged, creditsRemaining, lowCreditsWarning? }

Web client

src/app/[locale]/dashboard/creative-studio/tools/ugc-room/ugc-room-client.tsx

MCP handler

mcp-director/src/tools/studio.py

## Quick start

Invoke the tool over Streamable HTTP at `{MCP_BASE_URL}/mcp/`. The request below assumes you already minted an MCP JWT via the OAuth flow.

MCPcurlTypeScript

Copy

```
{
  "name": "studio_ugc_room",
  "arguments": {
    "prompt": "<prompt>",
    "product_image_url": "<product_image_url>"
  }
}
```

## Parameters

| Name                      | Type   | Default | Description                                                   |
|---------------------------|--------|---------|---------------------------------------------------------------|
| promptrequired            | string | —       | Scene description.                                           |
| product_image_urlrequired | string | —       | Public URL of the product. Fabricated URLs rejected.       |
| room_style                | string | —       | Free-form room descriptor (e.g. `minimalist bedroom`, `cluttered college dorm`). |
| model                     | string | "fal-ai/flux/dev" | Provider/model id.                                         |
| aspect_ratio              | string | —       | Target aspect ratio.                                       |

## Examples

Headphones on a desk

json

Copy

```
{
  "name": "studio_ugc_room",
  "arguments": {
    "prompt": "morning coffee, focused work vibes, soft city light through blinds",
    "product_image_url": "https://v3b.fal.media/files/.../headphones.png",
    "room_style": "minimalist home office"
  }
}
```
