Skip to main content
Glama

add_bone

Idempotent

Add a named bone to a USkeleton reference skeleton under a parent (or as a root) with an optional local transform, then save the asset. Existing bone names are returned unchanged.

Instructions

Add a bone named bone_name to the reference skeleton of a USkeleton asset under parent_name (omitted or empty: an extra root bone), with local_transform relative to the parent (a zero or missing scale becomes 1), then save the skeleton. Idempotent by name: an existing bone is returned (added false, already_existed true) without checking its parent or saving. An unknown parent is an error, and so is a failed save. Only the skeleton changes: skeletal meshes using it get no new bone, and there is no undo entry. No commit_bone_changes is needed; set_bone_parent and set_bone_transform edit bones, add_virtual_bone adds virtual ones.

Returns: { asset_path, bone_name, bone_index, parent_index, bone_count, added, already_existed, saved, op: "add_bone" }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bone_nameYesName for the new bone; when a bone of that name already exists nothing changes (added false)
parent_nameNoParent bone name, or empty/null for a new root bone
skeleton_pathYesPath to the USkeleton asset
local_transformNoOptional {location:[x,y,z], rotation:[p,y,r], scale:[x,y,z]}, defaults to identity

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.2.0
    • changedInput schema / properties / bone_name / description
      Previous value: -"Name for the new bone (must not already exist)"New value: +"Name for the new bone; when a bone of that name already exists nothing changes (added false)"
  2. First observedv1.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly=false, idempotent=true, destructive=false) by specifying the exact idempotency semantics (existing bone returned with added false/already_existed true, parent not checked, no save), that an unknown parent or failed save is an error, that skeletal meshes are unaffected, and that there is no undo entry.

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?

Information-dense and front-loaded with the core operation, then failure modes, then side effects, then return shape. It is long and packed, but nearly every clause carries actionable detail; a little tightening would help readability.

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?

With no output schema, the description supplies the full return object shape and explains side effects, error conditions, and idempotent behavior, which is everything an agent needs to call and interpret this mutation correctly.

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 real meaning: local_transform is relative to the parent and a zero/missing scale is coerced to 1, and an omitted/empty parent_name creates an extra root bone. These details are not in the schema text.

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 specific verb and resource (add a bone to the reference skeleton of a USkeleton asset) with the exact parameters that shape the result. It explicitly distinguishes itself from siblings set_bone_parent, set_bone_transform, and add_virtual_bone, so an agent can route correctly without opening the schema.

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 when/when-not and alternatives: use set_bone_parent/set_bone_transform to edit existing bones and add_virtual_bone for virtual bones, plus the note that no commit_bone_changes call is needed. It also states the precondition (valid parent) and the idempotent no-op path.

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

Deploy Server

Other Tools