Skip to main content
Glama

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

Generate a video from images

kling_image_to_video

Animate a start image (image), optionally to an end image (image_tail; on older models it forces mode pro), with keyframes in between (keyframe_1..9, kling-v4-0 only: images in all ≤ duration + 1, at most 10) or elements (element_1..3, kling-v3-0 only). The aspect ratio comes from the image. Per model: kling-v4-0 3-30 s, std / pro, audio always on, multi-shot; kling-v4-0-flash 3-20 s, std (720p) only, audio always on, start image only, no custom shots; kling-v3-0 3-15 s, std / pro / 4k, audio on by default (enable_audio false is cheaper); kling-v3-0-turbo 3-15 s, std / pro; kling-v2-6 5 or 10 s, std / pro (native audio needs pro); older models 5 or 10 s. negative_prompt and cfg_scale only on older models. Uses Kling credits: kling-v2-6 std is the cheapest at 15 credits for 5 s; kling-v3-0 6-9 credits a second (12 at pro), kling-v4-0 10 a second (15 at pro / 1080p), kling-v4-0-flash 6 a second, 4k and Master models cost much more. A job, like kling_text_to_video. POST /videos/image2video-frames.

Input Schema

NameRequiredDescriptionDefault
modeNostd (720p), pro (1080p) or 4k, as the model allows.
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).
imageNoThe start frame: a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
promptNoWhat happens in the video.
durationNoSeconds; allowed values depend on the model (default 5).
cfg_scaleNoPrompt adherence 0-1 (kling-v1-x only).
element_1NoElement 1 (kling-v3-0): an element id (u_… / o_…).
element_2NoElement 2 (kling-v3-0): an element id (u_… / o_…).
element_3NoElement 3 (kling-v3-0): an element id (u_… / o_…).
image_tailNoThe end frame: a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
keyframe_1NoKeyframe 1 (kling-v4-0): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
keyframe_2NoKeyframe 2 (kling-v4-0): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
keyframe_3NoKeyframe 3 (kling-v4-0): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
keyframe_4NoKeyframe 4 (kling-v4-0): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
keyframe_5NoKeyframe 5 (kling-v4-0): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
keyframe_6NoKeyframe 6 (kling-v4-0): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
keyframe_7NoKeyframe 7 (kling-v4-0): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
keyframe_8NoKeyframe 8 (kling-v4-0): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
keyframe_9NoKeyframe 9 (kling-v4-0): a public https URL, best one from kling_upload_asset (Kling must be able to fetch it).
model_nameNoModel (default kling-v2-1).
multi_shotNoKling picks the shots (kling-v3-0; kling-v4-0 is always multi-shot).
enable_audioNoSound: kling-v3-0 on by default (false = cheaper); kling-v2-6 native audio needs mode pro; not accepted by kling-v4-0 / turbo (always on).
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).
negative_promptNoWhat to avoid (older models only).
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. Changed1 schema field changed
    • changedInput schema / properties / model_name / enum
      Previous value: -[
      -  "kling-v4-0",
      -  "kling-v3-0",
      -  "kling-v3-0-turbo",
      -  "kling-v2-6",
      -  "kling-v2-5",
      -  "kling-v2-1",
      -  "kling-v2-1-master",
      -  "kling-v1-6",
      -  "kling-v1-5"
      -]New value: +[
      +  "kling-v4-0",
      +  "kling-v4-0-flash",
      +  "kling-v3-0",
      +  "kling-v3-0-turbo",
      +  "kling-v2-6",
      +  "kling-v2-5",
      +  "kling-v2-1",
      +  "kling-v2-1-master",
      +  "kling-v1-6",
      +  "kling-v1-5"
      +]
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare that this is a non-idempotent open-world write; the description adds substantial context beyond that: it consumes Kling credits with a concrete price table, it returns a job rather than a finished video, it is model-gated in many interacting ways, and audio is forced on for some models. This is exactly the behavioral detail an agent needs before spending credits.

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?

Every clause carries real information, so nothing is padding, but the whole definition is a single dense run-on paragraph where model specs, costs, and cross-parameter constraints are interleaved. It would be far more usable broken into 'what it does / per-model rules / cost' segments; as written an agent must parse the whole block to extract one constraint.

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

Completeness5/5

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

For a 35-parameter, zero-required-field generation tool with no output schema, the description covers the decisions that actually matter: which model supports which features, what the aspect ratio derives from, what audio costs, and that the call produces a job. Return values need no explanation since the job pattern is named and polling is a separate sibling tool.

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 already 100%, so the baseline is 3; the description still adds cross-parameter rules the schema does not state, notably that keyframes must be in all ≤ duration + 1 and at most 10, that image_tail forces mode pro on older models, and that keyframes/elements are mutually model-exclusive. It largely repeats the per-model gating that individual property descriptions already carry, which keeps it from a 5.

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

Purpose5/5

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

Opens with a specific verb+resource ('Animate a start image ... optionally to an end image') and names the endpoint POST /videos/image2video-frames. It explicitly ties itself to the sibling family ('A job, like kling_text_to_video'), so an agent can distinguish this image-driven path from the text-driven and element-driven siblings.

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

Usage Guidelines4/5

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

The per-model breakdown gives concrete selection criteria (duration ranges, std/pro/4k availability, audio defaults, credit cost per second) that tell an agent which model to pick and when a feature is unavailable (flash: start image only, no custom shots). It stops short of an explicit 'use this tool instead of kling_elements_video / kling_text_to_video when…' routing statement, so the alternative-selection guidance is implied rather than stated.

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