Skip to main content
Glama

Kling AI MCP Server by useapi.net (third-party)

Generate an omni video

kling_omni_video

Kling Omni: a video from a prompt with references named in it as @image_N, @element_N, @video_N and @voice_N. omni_version v3 (default; 3-15 s, std / pro / 4k, up to 7 images + elements, enable_audio false is cheaper), o1 (3-10 s), v4 (Kling 4.0: 3-30 s, up to 10 images, 7 elements, 5 reference videos totalling ≤ 30 s, 3 voices from kling_list_voices, 15 references in all, audio always on), or v4-flash (Kling 4.0 Flash: 3-20 s, std / 720p only, reference videos totalling ≤ 20 s, no voices, 6 credits a second). frame_start / frame_end (o1 / v3) make a start-to-end video instead. With video_1 on o1 / v3 the length follows the video. Uses Kling credits (v3 std 6-9 a second). A job, like kling_text_to_video. POST /videos/omni.

Input Schema

NameRequiredDescriptionDefault
modeNoo1: std / pro; v3: std / pro / 4k; v4: std / pro.
countNoVideos per task, 1-4 (2+ needs Kling VIP; the cost multiplies).
emailNoThe Kling account email. Optional: by default the account with the most free job slots; results name the account used. Pass it whenever an input belongs to one account (an uploaded file, a voice, an element, your own avatar or motion, a task_id).
promptNoWhat happens; name references as @image_1, @element_1, @video_1, @voice_1 (o1 / v3 up to 1700 characters).
image_1NoReference image 1: a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
image_2NoReference image 2: a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
image_3NoReference image 3: a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
image_4NoReference image 4: a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
image_5NoReference image 5: a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
image_6NoReference image 6: a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
image_7NoReference image 7: a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
image_8NoReference image 8 (v4): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
image_9NoReference image 9 (v4): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
video_1NoReference video 1: a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
video_2NoReference video 2 (v4): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
video_3NoReference video 3 (v4): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
video_4NoReference video 4 (v4): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
video_5NoReference video 5 (v4): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
voice_1NoVoice 1 (v4): an id or name from kling_list_voices on the same account.
voice_2NoVoice 2 (v4): an id or name from kling_list_voices on the same account.
voice_3NoVoice 3 (v4): an id or name from kling_list_voices on the same account.
durationNoSeconds (default 5): o1 3-10, v3 3-15, v4 3-30.
image_10NoReference image 10 (v4): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
element_1NoElement 1: an element id (u_… / o_…).
element_2NoElement 2: an element id (u_… / o_…).
element_3NoElement 3: an element id (u_… / o_…).
element_4NoElement 4: an element id (u_… / o_…).
element_5NoElement 5: an element id (u_… / o_…).
element_6NoElement 6: an element id (u_… / o_…).
element_7NoElement 7: an element id (u_… / o_…).
frame_endNoEnd frame (with frame_start): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
keep_audioNoKeep video_1's sound.
multi_shotNov3: Kling picks the shots.
video_modeNoWith video_1: reference (default) or transform (o1 / v3: restyle the video itself).
frame_startNoStart frame (o1 / v3; not with image_N / element_N / video_1): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
aspect_ratioNo16:9 (default), 9:16, 1:1; auto and 21:9 on v4.
enable_audioNov3 without a video: sound on (default) or off (cheaper).
omni_versionNoo1, v3 (default), v4 or v4-flash.
shot_1_promptNoCustom multi-shot: shot 1's prompt (with shot_1_duration; at least 2 shots, total 3-15 s; not with prompt / duration).
shot_2_promptNoCustom multi-shot: shot 2's prompt (with shot_2_duration; at least 2 shots, total 3-15 s; not with prompt / duration).
shot_3_promptNoCustom multi-shot: shot 3's prompt (with shot_3_duration; at least 2 shots, total 3-15 s; not with prompt / duration).
shot_4_promptNoCustom multi-shot: shot 4's prompt (with shot_4_duration; at least 2 shots, total 3-15 s; not with prompt / duration).
shot_5_promptNoCustom multi-shot: shot 5's prompt (with shot_5_duration; at least 2 shots, total 3-15 s; not with prompt / duration).
shot_6_promptNoCustom multi-shot: shot 6's prompt (with shot_6_duration; at least 2 shots, total 3-15 s; not with prompt / duration).
shot_1_durationNoCustom multi-shot: shot 1's seconds, 1-15.
shot_2_durationNoCustom multi-shot: shot 2's seconds, 1-15.
shot_3_durationNoCustom multi-shot: shot 3's seconds, 1-15.
shot_4_durationNoCustom multi-shot: shot 4's seconds, 1-15.
shot_5_durationNoCustom multi-shot: shot 5's seconds, 1-15.
shot_6_durationNoCustom multi-shot: shot 6's seconds, 1-15.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / omni_version / description
      Previous value: -"o1, v3 (default) or v4."New value: +"o1, v3 (default), v4 or v4-flash."
    • changedInput schema / properties / omni_version / enum
      Previous value: -[
      -  "o1",
      -  "v3",
      -  "v4"
      -]New value: +[
      +  "o1",
      +  "v3",
      +  "v4",
      +  "v4-flash"
      +]
  2. First observed

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say it's a non-read-only, open-world, non-idempotent call; the description adds substantive behavior – that it consumes Kling credits with per-second rates, that it is an async job ('A job, like kling_text_to_video'), and the per-version durations, reference caps and audio defaults. It doesn't cover what happens on failure, queueing, or how to poll, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first clause, but the remainder is one long multi-clause sentence stitched with semicolons and parentheses, making the version matrix hard to parse at a glance. Nearly every clause carries information, but the structure works against quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 50-parameter generation tool with no output schema and no required fields, the definition covers model capabilities and costs well but says nothing about the return value, how the resulting task is polled (kling_get_task) or retrieved (kling_get_download_url), or what invalid reference combinations do. 'A job, like kling_text_to_video' is the only hint about the async lifecycle.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description contributes semantics the schema lacks: per-version reference limits (v3 up to 7 images+elements, v4 up to 10 images / 5 videos ≤30 s / 3 voices / 15 references), the v4-flash restriction to std/720p with no voices, and the note that video_1 on o1/v3 sets the length. That cross-parameter and per-version meaning is not derivable from the flat field list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete verb+resource: 'a video from a prompt with references named in it as @image_N, @element_N, @video_N and @voice_N', which tells the agent exactly what this generates and how the prompt syntax works. However, the only sibling mention is an analogy ('A job, like kling_text_to_video'), not a differentiation against kling_image_to_video or kling_elements_video, so the agent must infer when Omni is the right choice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real decision aid inside the tool – version tradeoffs ('v4-flash … 6 credits a second', 'v4 … audio always on', 'o1 (3-10 s)') and an alternative path ('frame_start / frame_end (o1 / v3) make a start-to-end video instead'), plus a cost lever ('enable_audio false is cheaper'). What's missing is explicit when-to-use-this-vs-sibling routing, so usage is only implied relative to the other 40+ Kling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources