Pixly
Was dieses MCP kann
Generates and edits real-estate listing visuals through staging, decluttering, enhancement, restyling, exterior transformations, upscaling, and short video creation.
Tools
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'format': {'enum': ['9:16', '16:9', '1:1'], 'type': 'string', 'default': '9:16'}, 'afterR2Path': {'type': 'string', 'minLength': 1, 'description': 'R2 path of the end frame — the alternative to afterImageUrl.'}, 'revealStyle': {'enum': ['smooth', 'slideIn', 'dropLand', 'glowBuild', 'movers'], 'type': 'string', 'default': 'smooth', 'description': 'How the transformation is revealed'}, 'videoIntent': {'enum': ['staging_reveal', 'staging_reveal_reverse', 'construction_timelapse'], 'type': 'string', 'default': 'staging_reveal'}, 'beforeR2Path': {'type': 'string', 'minLength': 1, 'description': 'R2 path of the start frame — the alternative to beforeImageUrl.'}, 'afterImageUrl': {'type': 'string', 'minLength': 1, 'description': 'End frame (e.g. the staged result) — https URL or data: URI'}, 'beforeImageUrl': {'type': 'string', 'minLength': 1, 'description': 'Start frame (e.g. the empty room photo) — https URL or data: URI'}, 'durationSeconds': {'anyOf': [{'type': 'number', 'const': 5}, {'type': 'number', 'const': 10}], 'default': 5}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'format': {'enum': ['9:16', '16:9'], 'type': 'string', 'default': '9:16', 'description': 'Aspect ratio'}, 'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}, 'direction': {'enum': ['left-to-right', 'right-to-left'], 'type': 'string', 'description': "The direction the camera travels, for the moves that have one (orbit, pan, drone-orbit). 'left-to-right' sends the camera rightward, 'right-to-left' leftward. Ignored by every other move; omit to use the move's own default."}, 'cameraMove': {'enum': ['zoom', 'fly-through', 'orbit', 'pan', 'aerial', 'pull-back', 'crane-up', 'tilt-up', 'boom-down', 'drone-orbit', 'flyover', 'pull-away', 'handheld'], 'type': 'string', 'default': 'zoom', 'description': 'Camera-move preset'}, 'durationSeconds': {'anyOf': [{'type': 'number', 'const': 5}, {'type': 'number', 'const': 10}], 'default': 5, 'description': 'Clip length; the routed model validates its supported tiers'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['filename', 'contentType'], 'properties': {'filename': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Original filename, used for the extension'}, 'sizeBytes': {'type': 'integer', 'maximum': 10485760, 'description': 'Exact byte size of the file. Recommended: when given it is signed into the URL, so the upload is bounded server-side.', 'exclusiveMinimum': 0}, 'contentType': {'enum': ['image/jpeg', 'image/png', 'image/webp', 'image/heic', 'image/heif', 'image/tiff'], 'type': 'string', 'description': 'MIME type the PUT request will send'}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['style', 'customInstructions'], 'properties': {'style': {'type': 'string', 'minLength': 1, 'description': 'Style id of the staging being edited (the same ids virtual_staging takes), used as context to match new elements'}, 'r2Path': {'type': 'string', 'minLength': 1, 'description': 'R2 path of the previous staged result — the alternative to imageUrl.'}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'URL of the PREVIOUS staged result to edit (the resultUrls entry from its job). Either imageUrl or r2Path is required.'}, 'sourceJobId': {'type': 'string', 'description': 'Job the edited result came from (lineage)'}, 'sourceResultIndex': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Which variation was edited'}, 'customInstructions': {'type': 'string', 'minLength': 1, 'description': 'The concrete edit to apply, e.g. "change the sofa to grey"'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'plan': {'enum': ['starter', 'agent', 'pro_agent', 'team'], 'type': 'string', 'description': 'Plan to subscribe to, for an account with no active plan. Defaults to "starter". Ignored for a top-up.'}, 'topUpUsd': {'type': 'number', 'maximum': 500, 'minimum': 10, 'description': "For an account that already has a plan: one-time credit top-up amount in USD (10–500, default 10), priced at that plan's rate."}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'minLength': 1, 'description': 'Job id returned by a generation tool'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'type': {'enum': ['images', 'videos', 'uploads'], 'type': 'string', 'description': 'Filter by media type. "uploads" lists the user\'s own source photos instead of generations — use it when they refer to a photo they added but have not run a tool on yet.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'note': {'type': 'string', 'description': 'Your own words about the garden you want (e.g. "a small kidney-shaped pool with a stone surround and lavender everywhere"). 160 characters max; anything in it that is not a description of the garden is ignored.'}, 'scope': {'enum': ['add', 'full'], 'type': 'string', 'description': "'full' (the default) redesigns the whole yard in the style; 'add' keeps the existing garden and builds the chosen elements into it. The house, the driveway and the neighbours never change either way."}, 'style': {'enum': ['auto', 'modern_minimal', 'mediterranean', 'classic_english', 'natural_lowwater', 'tropical_resort', 'farmhouse'], 'type': 'string', 'description': "The design language of the whole scheme: 'modern_minimal', 'mediterranean', 'classic_english', 'natural_lowwater', 'tropical_resort', 'farmhouse', or 'auto' (the default — chosen to suit the house's architecture and the climate in the photo)."}, 'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'include': {'type': 'array', 'items': {'enum': ['planting', 'patio_dining', 'deck_lounge', 'pool', 'pergola', 'fire_pit', 'fence_gate', 'lighting'], 'type': 'string'}, 'description': "Which elements the scheme includes, any number: 'planting' (beds, hedges, a feature tree), 'patio_dining' (a paved terrace with a dining set), 'deck_lounge' (a deck with loungers or a low sofa), 'pool', 'pergola', 'fire_pit', 'fence_gate' (a boundary treatment with a gate), 'lighting'. Omit or send an empty list (the default) to let the tool design what the lot wants. One run composes them all into one garden, each sized to the plot."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'model': {'enum': ['kling-v3', 'kling-2.6'], 'type': 'string', 'default': 'kling-v3', 'description': 'kling-v3: 3/5/8/10/15 s, optional sound, lands most precisely on the end frame. kling-2.6: 5/10 s, silent, cheaper.'}, 'sound': {'type': 'boolean', 'default': False, 'description': 'Add ambient sound (kling-v3 only; kling-2.6 is always silent).'}, 'format': {'enum': ['16:9', '9:16', '1:1'], 'type': 'string', 'default': '16:9', 'description': "Label for the clip's shape; the video follows the start photo's own shape."}, 'prompt': {'type': 'string', 'maxLength': 1000, 'description': 'Your own description of the video, in any language. Replaces cameraMove when set.'}, 'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Start frame — where the video begins. Public https URL or data: URI; either imageUrl or r2Path is required.'}, 'endR2Path': {'type': 'string', 'minLength': 1, 'description': 'R2 path of the end frame — the alternative to endImageUrl.'}, 'cameraMove': {'enum': ['smooth', 'walk', 'orbitLeft', 'orbitRight', 'pushIn', 'pullBack', 'riseUp'], 'type': 'string', 'default': 'smooth', 'description': 'Ready-made camera move used when no prompt is given.'}, 'endImageUrl': {'type': 'string', 'minLength': 1, 'description': 'Optional end frame — the camera travels from the start photo and lands exactly on this one. Best when both photos show the same space from different spots.'}, 'durationSeconds': {'type': 'integer', 'default': 5, 'maximum': 15, 'minimum': 3, 'description': 'Clip length. kling-v3 takes 3, 5, 8, 10 or 15; kling-2.6 takes 5 or 10.'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['text'], 'properties': {'look': {'enum': ['stone', 'metal', 'grass', 'sign'], 'type': 'string', 'description': 'Sign material/style; defaults server-side'}, 'text': {'type': 'string', 'maxLength': 24, 'minLength': 1, 'description': 'Sign label, verbatim — a price ("$1,200,000"), area ("800 m²"), or short word ("SOLD")'}, 'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}, 'orientation': {'enum': ['standing', 'lying'], 'type': 'string', 'description': 'Letter orientation (letter looks only); defaults server-side'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'mode': {'enum': ['movable', 'fitted'], 'type': 'string', 'description': "How far to strip the room. 'fitted' (the default) removes the movable contents AND the room's own joinery — the fitted kitchen and its appliances, built-in wardrobes and shelving, and bathroom sanitaryware. 'movable' removes only furniture, rugs, curtains, art, plants and lamps, leaving the kitchen, built-ins, sanitaryware, floor and doors exactly as they are."}, 'extras': {'type': 'array', 'items': {'enum': ['floor'], 'type': 'string'}, 'description': "Extra things to take out, for a full strip-back. Only applies with mode 'fitted' and is ignored otherwise: 'floor' takes the floor covering down to bare concrete screed. Omit to keep the floor. Doors always stay, as do walls, ceiling, windows, structural openings and the camera."}, 'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'look': {'enum': ['furnished', 'isometric'], 'type': 'string', 'description': "Which picture to make of the plan: 'furnished' (the default — a polished top-down 2D plan with real floors, furniture and room names) or 'isometric' (a 3D cutaway of the same layout, furnished, no text). The photo must show a floor plan: a hand sketch, a brochure page, a blueprint, a screenshot. The layout is kept exactly as drawn; written dimensions are left off."}, 'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'lawn': {'enum': ['auto', 'fresh_mown', 'lush', 'natural', 'golf', 'warm_season'], 'type': 'string', 'default': 'auto', 'description': "Lawn style. 'auto' lets the tool pick a healthy lawn that suits the photo."}, 'shade': {'enum': ['light', 'medium', 'deep'], 'type': 'string', 'default': 'medium', 'description': 'How green; only used with a chosen lawn style.'}, 'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'stripes': {'enum': ['auto', 'on', 'off'], 'type': 'string', 'default': 'auto', 'description': 'Mowing stripes: auto (stripes for fresh_mown and golf, none otherwise), on, off.'}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'sky': {'enum': ['auto', 'clear', 'light_clouds', 'dramatic_clouds', 'sunset', 'pastel_sunrise', 'winter_clear'], 'type': 'string', 'default': 'auto', 'description': "Sky style. 'auto' lets the tool pick what suits the photo's light."}, 'sun': {'enum': ['auto', 'on', 'off'], 'type': 'string', 'default': 'auto', 'description': 'Sun glow: auto (a glow for sunset/sunrise styles, none otherwise), on (place it with sunX/sunY), off.'}, 'sunX': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'With sun=on: glow position from the left edge, 0..1.'}, 'sunY': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'With sun=on: glow position from the top edge, 0..1 (kept in the top 60%).'}, 'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'season': {'enum': ['auto', 'spring', 'summer', 'autumn', 'winter'], 'type': 'string', 'description': "The season to show the property in: 'spring', 'summer', 'autumn', 'winter', or 'auto' (the default — the tool shows the property at its best, which for a snowy or dormant photo means high summer). Only the planting, the ground cover and the daylight change; the house, the driveway, the paths and the framing stay exactly as shot."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'looks': {'type': 'object', 'description': "The finish per surface: 'auto', one of the presets below, or 'custom' with your own words in `notes`. A finish that does not belong to its surface falls back to 'auto' (the tool picks one that suits the room; several on auto are made to agree). walls: warm_white, soft_grey, greige, sage, deep_navy. floor: light_oak, walnut, grey_plank, polished_concrete, stone_tile. cabinets: white_shaker, charcoal, natural_oak, forest_green, navy_cabinets. bathroom_tiles: white_metro, marble_large, terrazzo, matt_black_hex, travertine. furniture: light_neutral, warm_wood, dark_wood, black_leather.", 'propertyNames': {'enum': ['walls', 'floor', 'cabinets', 'bathroom_tiles', 'furniture'], 'type': 'string'}, 'additionalProperties': {'enum': ['auto', 'custom', 'warm_white', 'crisp_white', 'soft_grey', 'greige', 'warm_beige', 'clay_pink', 'sage', 'soft_blue', 'olive_green', 'graphite', 'deep_navy', 'terracotta_walls', 'panelling', 'wallpaper_textured', 'limewash', 'microcement', 'exposed_brick', 'timber_slats', 'light_oak', 'mid_oak', 'wide_ash', 'walnut', 'herringbone_oak', 'grey_plank', 'polished_concrete', 'stone_tile', 'terracotta_floor', 'slate_tile', 'checker_tile', 'carpet_neutral', 'white_shaker', 'cream_shaker', 'handleless_white', 'handleless_grey', 'charcoal', 'matt_black_cabinets', 'natural_oak', 'walnut_cabinets', 'sage_cabinets', 'forest_green', 'navy_cabinets', 'two_tone', 'gloss_white', 'white_metro', 'zellige_white', 'white_large', 'grey_porcelain', 'marble_large', 'travertine', 'terrazzo', 'encaustic_pattern', 'matt_black_hex', 'slate_dark', 'wood_effect_tile', 'green_gloss', 'light_neutral', 'mid_grey_wool', 'warm_greige', 'cream_boucle', 'tan_leather', 'black_leather', 'green_velvet', 'navy_velvet', 'rust_velvet', 'warm_wood', 'dark_wood', 'black_metal'], 'type': 'string'}}, 'notes': {'type': 'object', 'description': 'Your own description of the finish for a surface, used when that surface\'s look is "custom" (e.g. "terracotta hex tiles with dark grout"). Set look "custom" and the note together; "custom" with no note falls back to "auto". 120 characters max, and anything in it that is not a description of a finish is ignored.', 'propertyNames': {'enum': ['walls', 'floor', 'cabinets', 'bathroom_tiles', 'furniture'], 'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}, 'surfaces': {'type': 'array', 'items': {'enum': ['walls', 'floor', 'cabinets', 'bathroom_tiles', 'furniture'], 'type': 'string'}, 'description': "Which surfaces get a new finish: 'walls', 'floor', 'cabinets' (fitted joinery plus its worktop and splashback), 'bathroom_tiles' or 'furniture' (upholstery and wood finishes). Omit for walls. The room's layout, fittings and camera never change."}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'fix': {'type': 'array', 'items': {'enum': ['sky', 'lawn', 'hardscape', 'clutter'], 'type': 'string'}, 'description': "Which areas the tool may touch: 'sky', 'lawn', 'hardscape' (driveway, paths, patio), 'clutter' (bins, hoses, tools, a stray vehicle). Omit for all four; each is fixed only where the photo needs it."}, 'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Publicly reachable image URL (JPG/PNG/WebP, max 10 MB) to import into Pixly'}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['style'], 'properties': {'style': {'type': 'string', 'examples': ['modern-minimal', 'scandinavian', 'industrial', 'mid-century-modern', 'japandi'], 'minLength': 1, 'description': 'Interior style id. One of: modern-minimal, scandinavian, industrial, mid-century-modern, japandi, contemporary, transitional, urban-chic, bauhaus, organic-modern, brutalist, italian-modern, traditional, art-deco, colonial, victorian, french-country, english-cottage, neoclassical, art-nouveau, grandmillennial, hollywood-regency, parisian-chic, modern-classic, craftsman, mediterranean, mediterranean-modern, rustic-farmhouse, bohemian, tropical, family-staging, hygge, wabi-sabi, modern-farmhouse, cottagecore, shabby-chic, cabin-lodge, eclectic, retro-70s, warm-luxury, investor-premium, contemporary-dark, glam, penthouse-modern, hotel-suite, maximalist, quiet-luxury, coastal, desert-modern, hacienda, pacific-northwest, caribbean-resort, hamptons, moroccan, tuscan, southwestern, asian-zen, coastal-grandmother, cape-cod, california-casual, mountain-modern. When the user has no preference, "modern-minimal" or "scandinavian" suit most listings.'}, 'r2Path': {'type': 'string', 'minLength': 1, 'description': "Storage path of a photo already in the user's Pixly library (from list_library, or returned by an upload ticket) — the alternative to imageUrl."}, 'imageUrl': {'type': 'string', 'minLength': 1, 'description': 'Public https URL of the source photo, or a data: URI. Either imageUrl or r2Path is required.'}, 'roomType': {'type': 'string', 'description': 'Room type hint; omit to let vision infer it from the photo'}, 'numImages': {'type': 'integer', 'default': 1, 'maximum': 4, 'minimum': 1, 'deprecated': True, 'description': 'Ignored — staging always returns one image. Call again for another take.'}, 'stagingQuality': {'enum': ['standard', 'pro'], 'type': 'string', 'deprecated': True, 'description': 'Ignored — the Pro tier is retired. Every staging costs 1 credit and may render a second version on another model for free.'}, 'customInstructions': {'type': 'string', 'description': 'Optional extra instructions blended into the staging prompt'}}}
Ausgabeschema
{'type': 'object', 'required': ['jobId', 'status'], 'properties': {'note': {'type': 'string'}, 'type': {'type': 'string'}, 'error': {'type': 'string'}, 'jobId': {'type': 'string', 'description': 'Pass to get_job to poll'}, 'status': {'type': 'string', 'description': 'pending | processing | completed | failed — anything not completed/failed is still running'}, 'createdAt': {'type': 'string'}, 'resultUrls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Present when completed; valid 7 days'}, 'completedAt': {'type': 'string'}, 'creditsCharged': {'type': ['number', 'null']}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
immobilier
Creates, validates, analyzes, and exports French building and property designs as DXF, IFC, BCF, PDFs, visualizations, quantities…
bimhouse
Creates and edits house BIM models, checks Japanese building-code constraints, estimates materials and construction costs, matche…
AI HomeDesign MCP
Virtually stages, redesigns, enhances, declutters, and modifies interior and exterior real-estate photographs.
Vastu Shastra MCP Server by RoxyAPI
Provides Vastu Shastra reference data and calculators for plots, entrances, mandalas, room placement, proportions, and house-warm…
Duskly
Classifies real estate listing photo edits for MLS compliance, generates disclosure wording, inspects provenance signals, and pro…
ParcelLaunch — 3D property listings from an address
Creates and retrieves interactive 3D flyover listings for US properties using addresses or parcel identifiers.
3D New Era AI
Supports home design with floor plans, furniture, joinery, lighting, and rendered images.
Immopix
Enhances photos used in real estate listings.