Skip to main content
Glama

Character Swap: import a character image

swap_import_character

Turn an image you already have into a Character Swap character input — no byte upload. Supply ONE of: characterId (a saved actor from list_characters, or a preset from list_character_library), influencerAssetId (an image asset id from list_influencer_assets), or imageUrl (any hosted image — a Studio/SeedDance render or a public URL). Returns { r2Key, fileName } to pass straight to create_character_swap. Free; JPEG/PNG/WebP, ≤20MB. This is the batch path: import N characters, then call create_character_swap N times against the same driving video.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileNameNo
imageUrlNoHosted image URL — e.g. a generated look or a public image
characterIdNoSaved actor id (list_characters) or preset id (list_character_library)
influencerAssetIdNoImage asset id of one of your influencers (list_influencer_assets)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / imageUrl / description
      Previous value: -"Hosted image URL — e.g. an influencer asset url or a generated look"New value: +"Hosted image URL — e.g. a generated look or a public image"
    • addedInput schema / properties / influencerAssetId
      Added value: +{
      +  "description": "Image asset id of one of your influencers (list_influencer_assets)",
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

The annotations already establish mutation/non-destructive/open-world behavior, and the description adds useful constraints such as free cost, supported formats JPEG/PNG/WebP, and a 20MB size limit. It also discloses the return shape, which compensates for the missing output schema, though it does not cover authentication or rate-limit behavior.

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?

The description is front-loaded with the core action and source-choice rule, then adds return value, limits, and batch context. Every sentence contributes operational information without redundant restatement of the schema or annotations.

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

Completeness4/5

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

For a 4-parameter tool with no output schema, the description supplies the return shape, format/size constraints, source routing, and downstream usage. The only notable gap is that the input fileName parameter remains unexplained, which is minor because it is not required and the description focuses on the source-selection parameters.

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 75%, with fileName lacking a description, but the description meaningfully explains the three source parameters and where their ids come from. It also adds the important constraint that exactly one of characterId, influencerAssetId, or imageUrl should be supplied, which is not captured in the schema alone.

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?

The description states a precise verb and resource: turning an existing image into a Character Swap character input without byte upload. It explicitly routes the result to create_character_swap and names the id lists for each source type, so it is readily distinguishable from upload-oriented siblings.

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?

It gives an explicit source-selection rule (supply ONE of characterId, influencerAssetId, or imageUrl) and names the upstream listing tools for each. It also describes the intended batch workflow: import N characters, then call create_character_swap N times against the same driving video.

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