Skip to main content
Glama

Copy a video's moves onto a person

copy_motion

Make the person in a picture do what the person in a video does: a dance trend, a gesture, a walk. The new video shows the person and the setting of the picture, moving like the person in the video, for the video's whole length. It works best when both show one person whose whole body, or upper body and head, stays in view. To use part of a longer video, make an asset of that part first: download_asset gives its link, and import_asset_url with startSeconds and endSeconds imports only that part. It answers at once with a Job ID and the media is made in the background: start every generation you need, keep working, then call wait_for_jobs with all their Job IDs to get each Asset ID for patch_film. Uses credits for each second of the video: about 34 credits a second at standard and about 54 credits a second at pro, so a 15-second trend uses 508 credits at standard.

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": {
      "person": "<person>",
      "videoAssetId": "<videoAssetId>",
      "prompt": "<prompt>",
      "quality": "<quality>",
      "keepSound": "<keepSound>",
      "projectId": "<projectId>"
    },
    "name": "copy_motion"
  }
}

Input Schema

NameRequiredDescriptionDefault
personYesThe picture of the person to animate, in one of these forms: asset:ID, an image asset as it is; asset:ID#t=14.6, the frame of a video asset at 14.6 seconds; film:#t=3.2, the frame of the edit at 3.2 seconds. Use the IDs search_assets gives. One person, with the whole body or the upper body and head in view and not covered.
promptYesWhat to add, in plain words: the setting, the light, the clothes. null keeps what the picture shows. Up to 2000 characters.
qualityYesstandard for most videos. pro keeps faces, hands and fine detail sharper, and uses more credits.
keepSoundYesnull or true (the default) keeps the video's sound, such as the song of a dance trend. false makes the new video silent.
projectIdYesThe project this call runs on without changing the open project. null (or leaving it out) uses the open project. wait_for_jobs takes the projectId of the calls that started the jobs.
videoAssetIdYesThe video whose moves to copy: a ready video asset of 3 to 30 seconds, with one person whose body stays in view.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Goes well beyond the annotations by disclosing that the call is asynchronous — it returns a Job ID immediately and renders in the background — plus the credit cost model with exact per-second rates (about 34 standard, about 54 pro) and a worked 15-second example. The annotations only flag non-read-only, open-world, non-idempotent, so this added async and cost context is the real value. Minor gap: it doesn't state what happens on failure or how long renders typically take.

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

Conciseness5/5

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

Front-loads what the tool does, then constraints, then the trimming workaround, then the async model, then cost — a logical order with no filler. Every sentence carries operational information an agent needs before calling.

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 six-parameter generation tool with no output schema, the description covers the return contract (Job ID, background rendering, follow-up via wait_for_jobs to get Asset IDs), input constraints, duration limits, and cost. Nothing material is missing for correct invocation.

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 adds meaning the schema does not: the credit trade-off between standard and pro, and that keepSound=true is what preserves a dance trend's song. The projectId/wait_for_jobs linkage is largely mirrored in the schema, so the gain is incremental rather than transformative.

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?

States a concrete verb and resource: it makes the person in a picture move like the person in a video, producing a new video of the video's full length. The opening sentence names both inputs and the output, which distinguishes it from siblings like replace_person or generate_video without needing their schemas.

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

Usage Guidelines5/5

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

Gives explicit prerequisites (both inputs must show one person with body or upper body and head in view) and an in-line alternative for a sub-case: to use part of a longer video, first download_asset for the link then import_asset_url with startSeconds and endSeconds. It also routes the agent forward to wait_for_jobs and patch_film, so the whole workflow is spelled out.

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.