Skip to main content
Glama

rigModel

Rig a 3D model: generate a skeleton and skin weights for an existing GLB so it can be animated. Accepts a URL or base64-encoded GLB in model (here model is the 3D asset file, not an AI model name - there is no model choice on the 3D tools). The job result is a downloadable model_url for the rigged GLB. rig_type selects the skeleton prior - general (default, any asset), humanoid (anime-style characters), game (classic game-character rigs), or the pinned humanoid templates for two-armed, two-legged characters: humanoid_template (standard 22-joint skeleton with named joints, required for animating from the preset library) and humanoid_template_hands (52 joints, five fingers per hand). joint_naming relabels the identified joints to a convention - smpl (default), mixamo, humanik, unreal, godot, rigify, or vroid - without changing the skeleton. Credits are held when the job is accepted and refunded if it fails or is cancelled. Rigging is non-destructive to geometry but replaces any prior skeleton, so animations made against an old rig no longer apply. Async generation job: returns {id, status} - poll getApiJob (job and credit contract: see the server instructions).

Credits: This endpoint consumes 1 credits per call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestBodyYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"URL or base64-encoded GLB to rig."New value: +"The 3D asset to rig, as a URL or base64-encoded GLB file (not an AI model name)."
    • changedInput schema / properties / requestBody / properties / request_id / description
      Previous value: -"Optional client-provided identifier, unique per request. Re-sending the same request_id returns the existing job instead of generating again. Also usable with the results endpoint."New value: +"Optional client-provided identifier, unique per request. Re-sending the same request_id returns the existing job instead of generating again. Also usable as the request_id filter of listGenerations."
    • changedInput schema / properties / requestBody / properties / rig_type / description
      Previous value: -"Which skeleton to build: general (any asset), humanoid (anime-style characters), game (classic game-character rigs), or the pinned humanoid templates with named joints required for the animation preset library - humanoid_template (22 joints) / humanoid_template_hands (52, five fingers per hand). Templates only suit two-armed, two-legged characters. Default: \"general\"."New value: +"Which skeleton to build. Pick humanoid_template (or humanoid_template_hands) if you intend to use animate3DModelPreset later - the default general rig cannot take presets. general (any asset), humanoid (anime-style characters), game (classic game-character rigs), or the pinned humanoid templates with named joints required for the animation preset library - humanoid_template (22 joints) / humanoid_template_hands (52, five fingers per hand). Templates only suit two-armed, two-legged characters. Default: \"general\"."
  2. Changed4 schema fields changed
    • removedInput schema / properties / requestBody / properties / joint_naming / default
      Removed value: -"smpl"
    • changedInput schema / properties / requestBody / properties / joint_naming / description
      Previous value: -"Bone naming convention for the identified joints: smpl (default), mixamo (Unity's humanoid auto-mapper), humanik (same names unprefixed - Maya/MotionBuilder/FBX), unreal (UE mannequin), godot (SkeletonProfileHumanoid), rigify (Blender) or vroid (VRM). Purely a relabel - the skeleton is identical."New value: +"Bone naming convention for the identified joints: smpl (default), mixamo (Unity's humanoid auto-mapper), humanik (same names unprefixed - Maya/MotionBuilder/FBX), unreal (UE mannequin), godot (SkeletonProfileHumanoid), rigify (Blender) or vroid (VRM). Purely a relabel - the skeleton is identical. Default: \"smpl\"."
    • removedInput schema / properties / requestBody / properties / rig_type / default
      Removed value: -"general"
    • changedInput schema / properties / requestBody / properties / rig_type / description
      Previous value: -"Which skeleton to build: general (any asset), humanoid (anime-style characters), game (classic game-character rigs), or the pinned humanoid templates with named joints required for the animation preset library - humanoid_template (22 joints) / humanoid_template_hands (52, five fingers per hand). Templates only suit two-armed, two-legged characters."New value: +"Which skeleton to build: general (any asset), humanoid (anime-style characters), game (classic game-character rigs), or the pinned humanoid templates with named joints required for the animation preset library - humanoid_template (22 joints) / humanoid_template_hands (52, five fingers per hand). Templates only suit two-armed, two-legged characters. Default: \"general\"."
  3. Changed2 schema fields changed
    • changedInput schema / properties / requestBody / properties / joint_naming / description
      Previous value: -"Bone naming convention for the identified joints: smpl (default), mixamo (Unity's humanoid auto-mapper), humanik (same names unprefixed — Maya/MotionBuilder/FBX), unreal (UE mannequin), godot (SkeletonProfileHumanoid), rigify (Blender) or vroid (VRM). Purely a relabel — the skeleton is identical."New value: +"Bone naming convention for the identified joints: smpl (default), mixamo (Unity's humanoid auto-mapper), humanik (same names unprefixed - Maya/MotionBuilder/FBX), unreal (UE mannequin), godot (SkeletonProfileHumanoid), rigify (Blender) or vroid (VRM). Purely a relabel - the skeleton is identical."
    • changedInput schema / properties / requestBody / properties / rig_type / description
      Previous value: -"Which skeleton to build: general (any asset), humanoid (anime-style characters), game (classic game-character rigs), or the pinned humanoid templates with named joints required for the animation preset library — humanoid_template (22 joints) / humanoid_template_hands (52, five fingers per hand). Templates only suit two-armed, two-legged characters."New value: +"Which skeleton to build: general (any asset), humanoid (anime-style characters), game (classic game-character rigs), or the pinned humanoid templates with named joints required for the animation preset library - humanoid_template (22 joints) / humanoid_template_hands (52, five fingers per hand). Templates only suit two-armed, two-legged characters."
  4. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / request_id / description
      Previous value: -"Optional client-provided id to retrieve the result later."New value: +"Optional client-provided identifier, unique per request. Re-sending the same request_id returns the existing job instead of generating again. Also usable with the results endpoint."
  5. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / model / example
      Previous value: -"<url> OR data:image/png;base64,..."New value: +"<url> OR data:model/gltf-binary;base64,..."
  6. Changed3 schema fields changed
    • addedInput schema / properties / requestBody / properties / joint_naming
      Added value: +{
      +  "default": "smpl",
      +  "description": "Bone naming convention for the identified joints: smpl (default), mixamo (Unity's humanoid auto-mapper), humanik (same names unprefixed — Maya/MotionBuilder/FBX), unreal (UE mannequin), godot (SkeletonProfileHumanoid), rigify (Blender) or vroid (VRM). Purely a relabel — the skeleton is identical.",
      +  "enum": [
      +    "smpl",
      +    "mixamo",
      +    "humanik",
      +    "unreal",
      +    "godot",
      +    "rigify",
      +    "vroid"
      +  ],
      +  "example": "smpl",
      +  "type": "string"
      +}
    • changedInput schema / properties / requestBody / properties / rig_type / description
      Previous value: -"Rigging style prior: general (any asset), humanoid (anime-style characters), game (classic game-character rigs)."New value: +"Which skeleton to build: general (any asset), humanoid (anime-style characters), game (classic game-character rigs), or the pinned humanoid templates with named joints required for the animation preset library — humanoid_template (22 joints) / humanoid_template_hands (52, five fingers per hand). Templates only suit two-armed, two-legged characters."
    • changedInput schema / properties / requestBody / properties / rig_type / enum
      Previous value: -[
      -  "general",
      -  "humanoid",
      -  "game"
      -]New value: +[
      +  "general",
      +  "humanoid",
      +  "game",
      +  "humanoid_template",
      +  "humanoid_template_hands"
      +]
  7. Added

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It discloses that rigging is non-destructive to geometry but replaces any prior skeleton, that animations made against an old rig no longer apply, that credits are held on acceptance and refunded on failure/cancellation, and that the job is async returning {id, status} with polling via getApiJob. It also explains that joint_naming is purely a relabel and does not change the skeleton. This is exemplary transparency.

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

Conciseness4/5

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

The description is dense but well-organized, front-loading the core purpose and then covering behavior, parameters, and job semantics. It is longer than average, but every sentence earns its place given the tool's complexity and the absence of annotations. A slight deduction for the parenthetical density in the rig_type explanation, which could be tightened, but overall it is structured effectively.

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 complex async tool with no annotations and no output schema, the description is remarkably complete. It covers input format, rig type selection, joint naming, credit handling, non-destructive behavior, prior-skeleton replacement, and the async job contract with polling. An agent has everything needed to select and invoke this tool correctly, including the critical caveat about preset compatibility.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate for the schema's lack of parameter documentation. It does so comprehensively: it explains that `model` is the 3D asset file (not an AI model name), details each rig_type option including joint counts and suitability (e.g., templates only suit two-armed, two-legged characters), and explains each joint_naming convention with examples. The description adds substantial meaning beyond the bare schema.

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 opens with a specific verb and resource: 'Rig a 3D model: generate a skeleton and skin weights for an existing GLB so it can be animated.' It clearly distinguishes this from sibling tools like animate3DModel (which animates rather than rigs) and create3DModel (which creates rather than rigs). The scope is unambiguous.

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?

The description explicitly explains when to use this tool versus alternatives: it names animate3DModelPreset and states that humanoid_template (or humanoid_template_hands) is required for preset animation, while the default general rig cannot take presets. It also clarifies that the input is a 3D asset file, not an AI model name, and that there is no model choice on the 3D tools. This is strong routing guidance.

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.