analyze_file
ChatGPTInspect what one or more public HTTPS images, videos, audio files, or PDFs visibly or audibly contain. Use probe_media instead for encoded facts such as dimensions, duration, frame rate, or audio levels. Never use this multimodal analysis for verbatim transcription, dialogue or lyric transcripts, or exact cue timing; those require a measured transcription path named by the active production guide. This analysis uses the authenticated user's Carat analysis allowance and may consume credits.
get_carat_item
ChatGPTRead a workflow contract, app UI, preset instruction, or full prompt-gallery item by typed ID. For an exact workflow name from a trusted guide, pass workflow:<name> even if it was not returned by search_carat.
get_credit_status
ChatGPTRead the authenticated account's current remaining credits and actual aggregate usage, using the same Store summary shown by Carat. This tool does not estimate an upcoming generation. For an upcoming generation estimate, call plan_generate first and follow its exact procedure. A quote is available only when that procedure explicitly routes to quote-generation with the exact model_path and request_body; then relay the returned text. Otherwise present no price.
get_generation_result
ChatGPTRead an owned Carat generation job. Pass the numeric track ID or Fal request UUID returned by a workflow. Returns structured status and output data without opening another result view.
get_workflow_run
ChatGPTRecover status and final outputs for an owned MCP workflow run when the original synchronous run_workflow call was interrupted or timed out.
plan_generate
ChatGPTMandatory first step for ordinary generation and one-shot media work. Carat supports a range of AI generation models across image, video, audio, and utility tasks; this tool selects an appropriate supported model through Carat's generate-content controller and returns one complete, end-to-end execution guide with exact workflow contracts. Call this tool directly instead of searching Carat for a planning workflow or prompt. It plans but does not itself generate media. If the request requires planned or multi-scene video production, continue with video_producing_guide.
prepare_carat_app
ChatGPTCombine values collected by a Carat app widget with that app's reviewed instruction. This is the widget submission boundary: use only component values emitted by the Carat app UI, and do not invent app-internal component IDs. Follow the returned instruction as the user's requested task.
probe_media
ChatGPTMeasure an uploaded or generated Carat/fal media file without an LLM. metadata returns display dimensions, overall durationSec, normalized played-video duration as videoDurationSec, FPS, video/audio codecs, rotation, and whether an audio stream exists. audio measures actual loudness and silent spans. Only guarded Carat media URLs are accepted.
run_workflow
ChatGPTRun a Carat SYSTEM workflow by exact name and wait for the workflow itself to complete. Search exposure is not required. Read workflow:<name> with get_carat_item first, satisfy its exact contract, and preserve every approval or spend gate. A completed workflow may have submitted external generation that still needs get_generation_result polling.
search_carat
ChatGPTSearch public Carat workflows, apps, presets, and prompt-gallery items together. This catalog does not contain MCP tools: never search for plan_generate or a generation planning step; call plan_generate directly. Provide query, keywords, or both; semantic query and lexical keywords are independent and fused. Workflow search exposure does not limit exact-name execution from a trusted Carat guide.
studio_edit
ChatGPTCreate, read, patch, or delete a server-backed Carat Studio Edit-Document. Call action=schema when a field is unknown. To create a document, call action=patch without studioId and preserve the returned server-minted studioId. For every later turn, call action=get before patching so user or concurrent edits are not overwritten. Patch ops are ordered and atomic. ops (16): {op:'add-source',source} · {op:'remove-source',id} · {op:'adjust-source',id,path,value} · {op:'add-clip',clip,trackIndex?} · {op:'remove-clip',id} · {op:'reorder-clip',id,toIndex} · {op:'adjust-clip',id,path,value} · {op:'add-layer',layer} · {op:'remove',id} · {op:'adjust',id,path,value} · {op:'reorder',id,z|above|below} · {op:'add-audio',audio} · {op:'remove-audio',id} · {op:'adjust-audio',id,path,value} · {op:'set-canvas',canvas} · {op:'set-output',output}. Export only after the timeline is final. Delete is permanent and also removes its revision history.
studio_export
ChatGPTRender one owned Studio Edit-Document to its declared video, image, or audio (mp3) file. Call only when the user wants the final file. Rendering may take minutes and cannot be cancelled after submission. If the call stops waiting, call again with the same studioId to resume it; do not submit a second export.
studio_preview
ChatGPTOpen a read-only, playable preview of one owned Studio Edit-Document without exporting or spending generation credits. Call after meaningful edits and before studio_export when the user should inspect the current timeline.
upload_asset
ChatGPTImport an image, video, or audio file into Carat storage before passing it to a workflow or app. For a client attachment, use upload_asset with interactive=true in a compatible MCP App. Direct raw-byte upload requires a client that explicitly handles the hidden upload target; if neither upload path is available, ask for a public HTTPS URL. When using direct raw-byte upload, provide filename, mimeType, and sizeBytes; the model cannot read the hidden target. sourceUrl imports public HTTPS images only; use direct upload for video or audio.
video_producing_guide
ChatGPTStart or continue Carat's full video-producer procedure. Omit paths to receive the MCP runtime contract and root skill. When a returned document references another relative Markdown path, call this tool again with that path. The host agent owns orchestration and project files; Carat workflows execute the reviewed production steps.