Skip to main content
Glama

attach_rig

Plug a sub-rig into a named bone of any rig, merging its clips by name with the host's clips so matching animations combine and timelines align.

Instructions

Plug a sub-rig into a named bone of ANY rig; its clips MERGE by name into the host's clips (same name = same animation, timelines added; a host clip keeps its length, loops refit to divide it exactly, one-shots retime).

kind="" lists the kinds with their layer names, default bones and options. Kinds (default bone): ears (head): ear_l/ear_r 2-bone strands with physics; clips ear_perk (exact spring overshoot), ear_flatten, ear_swivel (toward options.sound, the far ear lags), idle twitches. tail (hips): strand with physics; options.tail_mood happy | alert | angry drives idle; clips tail_happy, tail_alert, tail_angry; reacts in walk / run / win if the host has them. wings (chest): wing_l/wing_r (+ wing__feather); options.wing_type feathered | bat | insect; idle = slow breathing fold, excited = flutter; win reaction. horns (head): horn*/antler*: rigid, tiny inertia lag on head turns (physics on shear only). digitigrade (hips): leg_l/leg_r zigzag layers -> thigh, shin, metatarsus with the reversed hock, IK feet (foot_l/r ride them); walk (planted feet, sfx_step with l/r in the string), run reaction. mermaid (hips): mermaid_tail (+ fluke) as a rig_serpent chain; legs hidden; swim, idle_float, idle. snake_hair (head): snake (8-12): each a serpent with its own randomised idle; snake_look (shared IK target). fur (any): options.slots or fur*/coat*/mane*/ruff*: outline bones with physics; fur_ruffle (wind gust). glow (any): options.slots or eye*/rune*/vein*: the FX shine pulse (eyes) or electric_frame (runes) via fx_recipes.apply, tiled into options.clips (default idle) with exact loops and fx* events. name prefixes the new bones (attach the same kind twice).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
boneNo
kindNo
nameNo
optionsNo
projectNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.8/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses concrete behavioral traits: clips MERGE by name into the host's clips, same name = same animation, timelines added, host clip keeps its length, loops refit and one-shots retime. It also describes physics/reactivity per kind (physics strands, IK feet, idle reactions). It stops short of stating permission requirements, reversibility, or persistence guarantees.

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 long but front-loaded: the core merge semantics appear in the first sentence before the kind enumeration. Given 0% schema coverage and no annotations, the kind-by-kind detail is functionally necessary rather than padding, and each line conveys distinct information. Some tightening is possible but there is little waste.

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 complex tool with 5 undocumented parameters, no annotations, and no output schema, the description supplies substantial context: merge behavior, all nine kinds with default bones, options, and host-reaction behavior. It omits the project parameter's meaning and any return/validation information, so it is thorough but not fully complete.

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 description coverage is 0%, so the description must compensate, and it largely does: kind values are exhaustively enumerated with default bones and per-kind options (options.sound, options.tail_mood, options.wing_type, options.slots, options.clips), and name is explained as prefixing the new bones. The project and general bone parameters remain undescribed, leaving a gap.

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 opening sentence states a specific verb and resource: 'Plug a sub-rig into a named bone of ANY rig.' This distinguishes it from siblings that build whole characters (rig_biped, rig_quadruped, rig_creature). The purpose is clear, though the differentiation from siblings is implicit rather than stated.

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?

The description explains that kind="" lists available kinds and then enumerates each kind with its default bones and options, which gives de facto guidance on which kind to pick. However, it never states when to use this tool instead of alternatives like rig_biped or secondary, nor any prerequisites or when-not-to-use conditions.

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