Skip to main content
Glama

set_anim_graph_node_pin_binding

DestructiveIdempotent

Bind an AnimGraph node input pin to a variable or property path in its property-binding map. Saves the AnimBP without recompiling.

Instructions

Bind an AnimGraph node input pin to a variable or property path in the node property-binding map (the Details-panel bind chip), e.g. "TransformTrajectory" to "Trajectory"; set_anim_graph_node_property edits the FAnimNode struct instead. Returns applied and the stored binding; saves the AnimBP without recompiling (run compile_anim_blueprint).

Returns: { node_id, pin_name, binding_path, applied, binding:{property_name, property_path[], path_as_text, is_bound, is_promotion, binding_type, pin_category}, saved }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
forceNoOptional. This command is REFUSED while a Play-in-Editor session is running: it either compiles a Blueprint (the reinstancer can retain a world, and CheckForWorldGCLeaks is Fatal -- it KILLS the editor) or writes to disk (Editor.AllowSavingAssetsDuringPIE=0 makes the engine refuse the write, so it would report success without writing a byte). Stop PIE and retry instead; force=true runs it anyway, at your own risk.
node_idYesNodeGuid of the target UAnimGraphNode_* (from get_graph_nodes).
pin_nameYesThe bound property/pin name (e.g. "TransformTrajectory").
graph_nameNoTarget graph (optional; deep-resolved; default the top-level AnimGraph).
binding_pathYesThe variable/property path to bind the pin to (e.g. "Trajectory", or nested "MyStruct.Member"). This tool does not check that the path resolves.
anim_blueprintNoAlias of anim_blueprint_path, used only when anim_blueprint_path is absent or empty.
blueprint_nameNoAlias of anim_blueprint_path, used only when anim_blueprint_path and anim_blueprint are both absent or empty.
blueprint_pathNoAlias of `blueprint_name` (same value, same meaning). Accepted because sibling tools spell this parameter differently; prefer `blueprint_name`.
anim_blueprint_pathNoPath or name of the UAnimBlueprint (aliases: anim_blueprint, blueprint_name).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.2.0
    • addedInput schema / properties / anim_blueprint / description
      Added value: +"Alias of anim_blueprint_path, used only when anim_blueprint_path is absent or empty."
    • changedInput schema / properties / binding_path / description
      Previous value: -"The variable/property path to bind the pin to (e.g. \"Trajectory\", or nested \"MyStruct.Member\")."New value: +"The variable/property path to bind the pin to (e.g. \"Trajectory\", or nested \"MyStruct.Member\"). This tool does not check that the path resolves."
    • addedInput schema / properties / blueprint_name / description
      Added value: +"Alias of anim_blueprint_path, used only when anim_blueprint_path and anim_blueprint are both absent or empty."
  2. First observedv1.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructive=true, idempotent=true, and non-read-only, so the safety profile is carried. The description adds real behavior beyond that: it writes to disk and saves the AnimBP without recompiling, the caller must follow with compile_anim_blueprint, and it does not validate that the binding path resolves. The PIE-refusal constraint is only in the schema's 'force' param rather than the top-level description, which keeps this from a 5.

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?

Front-loaded: the binding action and its target map come first, the sibling disambiguation second, the return shape last. The embedded return-shape block is dense but earns its place since no output schema exists. Still slightly overpacked for a single string.

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 mutation tool with no output schema, the description supplies the return payload (node_id, pin_name, binding_path, applied, binding{...}, saved) that would otherwise be unknown, and the schema covers all 9 parameters. The one notable gap at description level is the Play-in-Editor refusal, which lives only in the 'force' parameter text rather than the header.

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 100%, so the baseline is 3, but the description adds a concrete semantic example ("TransformTrajectory" to "Trajectory") that clarifies the distinction between pin_name and binding_path, which the identically-typed schema entries alone do not. It also hints at nested paths (MyStruct.Member) at a level the schema does not.

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+resource (bind an AnimGraph node input pin) and pins down the exact artifact affected: the node property-binding map / Details-panel bind chip. It explicitly distinguishes itself from the closest sibling, 'set_anim_graph_node_property edits the FAnimNode struct instead,' so an agent can separate the two without opening schemas.

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

Usage Guidelines4/5

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

Names the alternative tool and the condition that separates them (property-binding map vs. FAnimNode struct), and gives the required follow-up step (run compile_anim_blueprint). It stops short of stating explicit when-not conditions such as unbinding an existing binding via clear_anim_graph_node_pin_binding, but the context is clear enough to route correctly.

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