Create Creative Studio generation
Start an async Creative Studio image or video job. Returns id + status=processing quickly — do not wait for pixels in this call. In Claude Connectors an inline MCP App widget shows loading then the image/video; do NOT paste CDN links, markdown images, or use “show/visualize file” tools for the result — the widget is the preview. Wait ~8–15s then call get_creative_generation sparingly (5–10s apart) until status is completed or failed. Workflow: (1) list_creative_models if model unknown, (2) get_creative_model when you need exact parameter names, (3) confirm the plan with the user if any detail (scope, aspect ratio, model choice) was not fully specified by them, (4) create with modelId + prompt + parameters, (5) poll sparingly. Call this ONCE per intended output — if the user provided several reference images and wants a single combined result, use one supportsMultiReferenceMedia model with all images in one mediaUrls entry instead of calling this once per image; only generate multiple separate outputs if the user explicitly asked for that. mediaUrls may include prior outputUrl values for image-to-video / edit chains. Attached/local files: prefer omitting mediaUploads and using mediaIntent (for optional params the user clearly wants) so the Creative Studio widget can collect the file in-browser without base64 through your context; coding agents with network access may use request_creative_media_upload (presigned PUT) or upload_creative_media only when bytes never surface in your response. IMPORTANT — optional media params: get_creative_model often marks image/video reference params as required=false (the model can also run as pure text-to-X). That does NOT mean you can skip a param the user clearly wants used — if they say "use this exact image" / "edit this photo" and you have no bytes for it, you MUST include its name in mediaIntent, or the job silently runs text-only and produces a fabricated result that only superficially resembles their photo instead of erroring. Requires creative:generate scope.
Create Creative Studio generation
Tool name: create_creative_generation
Required scope: creative:generate
Start an async Creative Studio image or video job. Returns id + status=processing quickly — do not wait for pixels in this call. In Claude Connectors an inline MCP App widget shows loading then the image/video; do NOT paste CDN links, markdown images, or use “show/visualize file” tools for the result — the widget is the preview. Wait ~8–15s then call get_creative_generation sparingly (5–10s apart) until status is completed or failed. Workflow: (1) list_creative_models if model unknown, (2) get_creative_model when you need exact parameter names, (3) confirm the plan with the user if any detail (scope, aspect ratio, model choice) was not fully specified by them, (4) create with modelId + prompt + parameters, (5) poll sparingly. Call this ONCE per intended output — if the user provided several reference images and wants a single combined result, use one supportsMultiReferenceMedia model with all images in one mediaUrls entry instead of calling this once per image; only generate multiple separate outputs if the user explicitly asked for that. mediaUrls may include prior outputUrl values for image-to-video / edit chains. Attached/local files: prefer omitting mediaUploads and using mediaIntent (for optional params the user clearly wants) so the Creative Studio widget can collect the file in-browser without base64 through your context; coding agents with network access may use request_creative_media_upload (presigned PUT) or upload_creative_media only when bytes never surface in your response. IMPORTANT — optional media params: get_creative_model often marks image/video reference params as required=false (the model can also run as pure text-to-X). That does NOT mean you can skip a param the user clearly wants used — if they say "use this exact image" / "edit this photo" and you have no bytes for it, you MUST include its name in mediaIntent, or the job silently runs text-only and produces a fabricated result that only superficially resembles their photo instead of erroring. Requires creative:generate scope.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
modelId | string | required | Public model ID from list_creative_models. Never invent model IDs. If the user did not name a model, call list_creative_models first, pick the best fit, and tell the user which modelId you chose. |
prompt | string | optional | Generation prompt. Required for most text-to-image/video models. Keep it concrete and visual. |
parameters | object | optional | Model-specific settings from get_creative_model (aspect_ratio, duration, mode, generate_audio, etc.). Prefer values the user asked for; otherwise use sensible defaults from the model schema. |
mediaUrls | object | optional | Reference media as HTTPS URLs keyed by media parameter name (for example start_image). Prefer prior Videoslash outputUrl values on cdn.videoslash.com. Hotlinked CDN URLs from other sites may fail; ask the user to upload when download fails. |
mediaUploads | object | optional | Reference media by uploadId from request_creative_media_upload (after PUTing bytes to the presigned URL) or upload_creative_media (inline base64, no PUT needed). |
mediaIntent | array of string | optional | Media parameter names (from get_creative_model) the user clearly wants filled from a file they attached in this chat, when you have no literal byte access to it and are therefore omitting it from mediaUrls/mediaUploads. Required media params are already caught automatically — this is only for OPTIONAL media params (for example an image-edit model's image_input marked required=false, which otherwise silently runs text-only and produces a plausible-looking but fabricated result instead of editing the user's actual photo). Only include a name here if the user's own words imply using that specific attached file (e.g. 'use this exact image', 'edit this photo') — never for a generic style-reference param they never mentioned. |
Generate script
Generate a faceless short-form voiceover script from topic + title. Costs credits per variation. Prefer using a title and hookAngle from generate_title when available. Use the same topic enum mapping rules as generate_title. Ask before enabling useRagebait unless the user asked for provocative/viral tone. Requires scripts:generate scope.
Get Creative Studio generation
Poll one Creative Studio generation by id. Prefer waiting 5–10 seconds between calls — do not rapid-fire. Keep calling until status is completed (use outputUrl for follow-up mediaUrls only) or failed (read error). Do not tell the user the job finished until status is completed. Do not open or visualize outputUrl in Claude’s file viewer when the create widget already showed the media. Requires creative:generate scope.