{"protocolVersion":"0.3.0","name":"Utopia Dreams","description":"AI film studio: from an idea to an edited movie. Through MCP, an agent reads the stories of the account that owns the access token (shots, screenplay, characters, files with signed links), creates stories, writes their characters, settings, props and shots, draws their pictures once the person confirms the credits, restores earlier versions, exports the movie, and sends back changes to the edit, notes and renders, like the Unreal Engine and Unity plugins.","url":"https://app.utopiadreams-vfx.com/api/mcp","version":"1.0.0","provider":{"organization":"Utopia Dreams VFX","url":"https://app.utopiadreams-vfx.com"},"documentationUrl":"https://app.utopiadreams-vfx.com/llms-full.txt","capabilities":{"streaming":false,"pushNotifications":false},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"securitySchemes":{"accessToken":{"type":"http","scheme":"bearer","description":"A personal access token (utd_…) created in the app, in Settings → AI assistants (MCP). It needs an approved account on the Estudio plan (or with the Engines add-on bought before the plans)."}},"security":[{"accessToken":[]}],"skills":[{"id":"whoami","name":"Check the connection","description":"Checks the connection: the email of the account the token belongs to and the version of the engine API.","tags":["mcp","read"]},{"id":"list_stories","name":"List my stories","description":"Lists your Utopia Dreams stories, newest first: id, name, number of shots, aspect ratio and when each one last changed.","tags":["mcp","read"]},{"id":"get_story","name":"Read a story","description":"Reads one of your stories as the package the Unreal Engine and Unity plugins download: the story, every shot with its screenplay, timing and camera, the narration and music, the characters, settings and props, and every file. With links (the default), each file has a signed download link that works for about 30 minutes. `revision` changes with anything in the package; send `editRevision` back as `baseRevision` in push_engine_changes.","tags":["mcp","read"]},{"id":"get_engine_changes","name":"Read engine changes","description":"What the engines have done to one of your stories: the notes left on it and on its shots, the renders that replaced a shot's clip or image (and whether they were undone), how many changes were applied and the last one. Also the story's current `revision` and `editRevision`.","tags":["mcp","read"]},{"id":"create_render_upload","name":"Open a render upload","description":"Opens an upload for a render of one of your stories: an MP4 (H.264) clip of up to 1 GB, or a PNG or JPEG frame of up to 50 MB. Send the file to `uploadUrl` with PUT and the given Content-Type, then apply it with a `render` change in push_engine_changes. Nothing changes in the story until then.","tags":["mcp","write"]},{"id":"push_engine_changes","name":"Send engine changes","description":"Sends changes to one of your stories, all applied or none: `timing` (order, start, length and trim of shots in the edit), `note` (on the story or a shot) and `render` (an upload from create_render_upload becomes a shot's clip or image; the app can undo it). Timing and renders need `baseRevision`: the `editRevision` you read last. If the edit changed since, nothing is applied and you must read the story again.","tags":["mcp","write"]},{"id":"plan_engine_order","name":"Plan an engine order","description":"Turns an instruction in plain words into actions from the plugins' closed list (cameras, camera moves, lighting presets, reference panels, renders…), with Gemini. Costs credits, charged to your account like the same order in the app. With queue, the actions go to the Unreal Engine or Unity plugin, which runs them on its next sync and reports each step.","tags":["mcp","write"]},{"id":"build_previs","name":"Build the previs","description":"Builds the previs of one of your stories in Unreal Engine or Unity, read from its screenplay: for every shot a cinema camera with the shot's framing and the move its camera line describes, cut in the Level Sequence or Timeline over the Veo clips; its storyboard frame on a board; stand-ins for the characters and props; and the light most of the story asks for. Free: no AI call, no credits. The plugin runs it on its next sync; follow it with get_engine_commands.","tags":["mcp","write"]},{"id":"queue_engine_actions","name":"Queue engine actions","description":"Sends actions you chose yourself to the Unreal Engine or Unity plugin, which runs them on its next sync and reports each step (read them with get_engine_commands). Free: you plan, so no AI call is charged. Only actions from the plugins' closed list are accepted, with checked params; shots must exist in the story. The actions: sync_story: Import the story into the engine, or update it to the app's latest version (clips, sound, images, the edit). open_sequence: Open the story's edit: the Level Sequence in Unreal, the Timeline in Unity. go_to_shot: Move the playhead to the start of a shot. set_shot_timing: Change where a shot starts, how long it lasts or how much of its clip is skipped (seconds). Changes the engine's edit only; send_edit sends it to the app. send_edit: Send the engine's edit (order and length of the shots) to the app. add_note: Leave a note in the app, on a shot or on the whole story. create_camera: Create a cinema camera for a shot, with a framing, and cut to it for the length of the shot. focus sets the depth of field (deep, shallow, or rack: from the foreground to the subject). subject is the character it frames and opposite who they talk to, for shot and reverse shot; every camera stays on the same side of the line between the characters (the 180° rule). move_camera: Animate the shot's camera over the length of the shot with a classic camera move. set_lighting: Light the level with a time-of-day or studio preset. add_reference_board: Put a reference image (storyboard frame, character, setting or prop) on a board in the level, for previsualization. add_stand_in: Place a labelled stand-in for a character or prop, to block the shot. render_shot: Render a frame or a clip of a shot; optionally send it to the app as the shot's storyboard image or clip. set_frame_rate: Change the frame rate of the story's edit in the engine.","tags":["mcp","write"]},{"id":"get_engine_commands","name":"Read engine orders","description":"Your latest orders for Unreal Engine or Unity, newest first: what each one asked, its actions, whether the plugin picked it up (pending, running, done, failed or cancelled; an order nobody picks up expires after an hour) and how each step went.","tags":["mcp","read"]},{"id":"create_story","name":"Create a story","description":"Creates a new, empty story in your account, which appears in the app's story list at once. Then give it characters, settings and props with upsert_element and shots with upsert_scene. Free: no AI call.","tags":["mcp","write"]},{"id":"upsert_element","name":"Write a character, setting or prop","description":"Creates a character, setting or prop card in one of your stories, or changes the texts of the one with that name. An existing card keeps its picture, photos and voice. The story as it was is kept in its history first. Free: draw its picture with generate_image.","tags":["mcp","write"]},{"id":"upsert_scene","name":"Write a shot","description":"Adds a shot at the end of one of your stories, or changes the texts of one: description, narration, who and what is in it (by card name), and the prompts of its storyboard frame and clip. Its picture and clip stay until you draw them again. The story as it was is kept in its history first. Free: no AI call.","tags":["mcp","write"]},{"id":"estimate_generation","name":"Estimate a drawing's cost","description":"Says what drawing a shot's storyboard frame or a card's picture would cost, in credits, and your balance, without drawing anything. Tell the person and ask before calling generate_image with `confirmCredits` set to `maxCredits`.","tags":["mcp","read"]},{"id":"generate_image","name":"Draw a picture","description":"Draws a shot's storyboard frame or a character, setting or prop card's picture, with the app's own pipeline (the cards' pictures and photos keep faces and objects the same), and saves it in the story. Costs credits: call estimate_generation first, ask the person, and pass `confirmCredits`; with less than the estimate nothing is drawn or charged. The story as it was is kept in its history first. Returns a link to the picture that works for about 30 minutes.","tags":["mcp","write"]},{"id":"list_story_versions","name":"List a story's versions","description":"The history of one of your stories, newest first: each version's id, when and why it was kept (a generation, a restore, a change by an assistant, or one saved by name) and what changed. Bring one back with restore_story_version.","tags":["mcp","read"]},{"id":"restore_story_version","name":"Restore a version","description":"Brings back a version of one of your stories: its texts, cards, shots and their pictures and clips. Nothing is lost: the story as it was is kept as a version first, so the restore can be undone the same way.","tags":["mcp","write"]},{"id":"export_movie","name":"Export the movie","description":"Starts exporting the edit of one of your stories as an MP4 (H.264, 1080p) on Utopia's servers, as the editor saves it. Follow it with get_movie_export until it is done. Free: no credits. Needs a plan with exports, and an edit the server can draw (lower thirds, the «AI» label and some transitions are only painted by the app's own export).","tags":["mcp","write"]},{"id":"get_movie_export","name":"Check a movie export","description":"How an export from export_movie is going: queued, running (with its progress, 0 to 100), failed, or done with a link to download the MP4.","tags":["mcp","read"]}]}