submit_avatar_video
Have one of the user's characters present to camera: submit an AI-avatar video batch that creates video assets in the current project library. It does not place clips on the timeline or export.
External MCP spend rule: this tool costs ChatCut credits and starts an async generation job. Only call it when the user's request or confirmation clearly covers this exact generation; do not silently create extra variants, longer durations, higher quality, or additional outputs.
Load the digital-human Skill first. Use it when the shot is the character reading a script to camera, at any length; for acting, moving or changing scenes, use submit_video with the character's images as references instead. The first time a character presents, this tool returns the credit cost of building its look from the main image instead of a video. Tell the user the cost and ask them to confirm they have the right to use this person's likeness; only after an explicit yes, call again with the same arguments and confirmedConsent=true. While a look is being prepared the tool says so and tells you how to continue. Speech is the character's own voice (omit voiceRef), another voice the user chose for this video, or one project audio asset. ChatCut resolves the generation provider and engine; never request or expose them. Pass project audio once as the original asset (see speech): ChatCut prepares over-limit audio and submits the ordered parts as one batch. Do not transcode or split it yourself. Pass speech as a JSON object, never as a quoted or JSON-stringified value. For example: {"type":"audio-asset","assetId":"..."} or {"type":"voice","text":"..."}. After all slots are resolved, this tool obtains a live credit estimate and shows it in the final generation confirmation card before submitting. Never calculate or quote a hardcoded avatar-video price. The result contains generation job IDs. Generation continues in the background and completed videos appear in the project library. Do not add a Bash sleep or read status repeatedly in the same turn. If a follow-up step in this request needs the completed videos and track_progress describes action=wait as registering an automatic follow-up, call it once with the jobIds and a note, then end the turn; otherwise end the turn immediately after submission. In a later user turn, use track_progress only when the user asks for status or resumes a follow-up step that needs the completed asset. Do not quote non-terminal numeric progress to the user because it represents coarse internal stages, not a completion estimate. To redo one part, call this tool again with that text; arrange the clips on the timeline.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"speech": "<speech>"
},
"name": "submit_avatar_video"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| speech | Yes | Speech source object. Pass an object such as {"type":"audio-asset","assetId":"..."} or {"type":"voice","text":"..."}; never JSON.stringify it. | |
| segments | No | Optional explicit ordered text segments. Omit for automatic segmentation. Not valid for audio-asset speech. | |
| projectId | No | Full project UUID. Required for external browser work; internal agents may omit. Execution/explicit-timeline calls never change later calls' target. | |
| identityId | No | Only for an avatar id from an older conversation or from manage_avatar on a connector, when no character applies. Prefer characterId. | |
| resolution | No | Defaults to 1080p. | |
| timelineId | No | Full timeline UUID, not a prefix. Required for browser work, even unplaced assets. Get it from read_project or manage_timelines action="list". Never switches visible timeline. | |
| aspectRatio | No | Output aspect ratio. Explicit user choice wins; otherwise omit it so ChatCut preserves the main image's original ratio. | |
| characterId | No | The character who presents: an id from manage_character or the <assets> list, or a unique prefix. | |
| motionPrompt | No | Optional performance direction, only when live capabilities support it. | |
| idempotencyKey | No | Stable key for this browser execution. Reuse only with identical scope and parameters after a lost acknowledgement; applies only to this call. | |
| browserProfileId | No | Optional browser profile override. Omit to select automatically; do not ask the user to choose. | |
| confirmedConsent | No | true only after the user explicitly confirmed, for a character's first presentation, that they have the right to use this person's likeness and accepted the cost. | |
| removeBackground | No | Transparent-background preference. Omit by default. Set true only when the user explicitly requests transparency or background removal; set false when they explicitly want the original background. | |
| identityRevisionId | No | Specific ready revision id. Omit to use the identity's active revision. |