Skip to main content

Plan Video Generation

Immutable Catalog Entry

This descriptor comes from the active versioned Portal catalog.

READleonardo-ai.leonardo_plan_video_generation
  • Contract tier: agent_ready
  • Risk: read
  • Catalog version: leonardo-ai-2026.07.12.1
  • Descriptor hash: aa8ad97d71818922bb71711a5b6af868ebfafc255e608405ab40d9de3cee033e

Plan a modern Leonardo video request without spending generation credits. Runs locally and does not contact Leonardo.Ai.

Request Body

{
"jsonrpc": "2.0",
"id": "leonardo-ai-leonardo-plan-video-generation-example",
"method": "tools/call",
"params": {
"name": "leonardo-ai.leonardo_plan_video_generation",
"arguments": {
"prompt": "prompt_example",
"mode": "",
"seed": "",
"model": "",
"width": "",
"height": "",
"private": false,
"duration": "",
"quantity": "",
"settings": ""
}
}
}

Arguments Schema

{
"type": "object",
"required": [
"prompt"
],
"properties": {
"mode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional v2 video resolution mode. Accepts RESOLUTION_480, RESOLUTION_720, RESOLUTION_1080, 480p, 720p, 1080p, HD, or Full HD."
},
"seed": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional random seed for v2 models that expose seed."
},
"model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional video model family, provider model ID, or natural model name. Examples: seedance_2, seedance-2.0, seedance-2.0-fast, Seedance 2.0, kling-3.0, hailuo-2_3."
},
"width": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional explicit video width. Omit to use model/aspect defaults."
},
"height": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional explicit video height. Omit to use model/aspect defaults."
},
"prompt": {
"type": "string",
"description": "User's desired video outcome."
},
"private": {
"type": "boolean",
"default": true,
"description": "When true, request private output by setting public=false."
},
"duration": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Alias for duration_seconds, matching common GUI preset inputs."
},
"quantity": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional number of videos for models that expose quantity."
},
"settings": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"default": null,
"description": "Optional agent settings object. Recognized keys include model, preferred_model, model_name, duration, duration_seconds, mode, resolution, resolution_mode, width, height, prompt_enhance, generate_audio, motion_has_audio, quantity, seed, start_image_id, start_image_type, end_image_id, and end_image_type."
},
"model_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional video model family, provider model ID, or natural model name. Examples: seedance_2, seedance-2.0, seedance-2.0-fast, Seedance 2.0, kling-3.0, hailuo-2_3."
},
"resolution": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional v2 video resolution mode. Accepts RESOLUTION_480, RESOLUTION_720, RESOLUTION_1080, 480p, 720p, 1080p, HD, or Full HD."
},
"aspectRatio": {
"anyOf": [
{
"enum": [
"1:1",
"16:9",
"9:16",
"4:3",
"3:4"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "CamelCase alias for aspect_ratio, such as 9:16."
},
"aspect_ratio": {
"enum": [
"1:1",
"16:9",
"9:16",
"4:3",
"3:4"
],
"type": "string",
"default": "16:9",
"description": "Target video frame aspect ratio."
},
"end_image_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional Leonardo image ID for the final frame when supported."
},
"model_family": {
"type": "string",
"default": "kling_3",
"description": "Video model family or provider model ID. Accepts families and aliases such as kling_3, seedance_2, seedance-2.0, seedance-2.0-fast, hailuo-2_3, or ltxv-2.3-pro."
},
"end_image_type": {
"anyOf": [
{
"enum": [
"GENERATED",
"UPLOADED"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Type of end_image_id when provided. Defaults to start_image_type."
},
"generate_audio": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional generated audio flag for v2 models that support it."
},
"prompt_enhance": {
"anyOf": [
{
"enum": [
"ON",
"OFF",
"AUTO"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional v2 prompt enhancement mode: ON, OFF, or AUTO."
},
"start_image_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional Leonardo image ID for the first frame. Use an uploaded image ID or a generated image ID, not a generation ID."
},
"preferred_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional video model family, provider model ID, or natural model name. Examples: seedance_2, seedance-2.0, seedance-2.0-fast, Seedance 2.0, kling-3.0, hailuo-2_3."
},
"resolution_mode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional v2 video resolution mode. Accepts RESOLUTION_480, RESOLUTION_720, RESOLUTION_1080, 480p, 720p, 1080p, HD, or Full HD."
},
"duration_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional duration. Uses a conservative model default when omitted."
},
"motion_has_audio": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Alias for generated audio on Seedance and Kling models."
},
"start_image_type": {
"enum": [
"GENERATED",
"UPLOADED"
],
"type": "string",
"default": "UPLOADED",
"description": "Type of start_image_id when provided."
}
},
"additionalProperties": false
}

Output Schema

{
"type": "object",
"description": "Leonardo MCP result. ok=false, provider_ok=false, a failed status, or an error field represents a semantic failure even when transport delivery succeeded.",
"additionalProperties": true
}

Code Examples

curl -X POST 'https://portal.madpanda3d.com/api/mcp' \
-H 'Authorization: Bearer mad_live_***' \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": "leonardo-ai-leonardo-plan-video-generation-example",
"method": "tools/call",
"params": {
"name": "leonardo-ai.leonardo_plan_video_generation",
"arguments": {
"prompt": "prompt_example",
"mode": "",
"seed": "",
"model": "",
"width": "",
"height": "",
"private": false,
"duration": "",
"quantity": "",
"settings": ""
}
}
}'

Example Responses

{
"ok": true,
"message": "Tool leonardo-ai.leonardo_plan_video_generation executed successfully.",
"note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
}