Skip to main content
Glama

set_ik_goal_settings

DestructiveIdempotent

Configure goal-specific settings for a solver-connected IK goal as one undo transaction, then save the IK Rig asset. Partial updates apply only provided fields.

Instructions

Set goal-specific settings for a goal connected to a solver, as one undo transaction, then save the IK Rig asset. Partial update (idempotent): only fields present in settings are applied. FullBodyIK uses snake_case keys: bone_name, chain_depth (0+), strength_alpha (0-1), pull_chain_alpha (0-1), pin_rotation (0-1). BodyMover uses its live goal struct's camelCase keys (influenceMultiplier 0-10, clamped server-side). Connect the goal first with connect_ik_goal_to_solver. Solvers without per-goal settings return an honest error. Settings that already have those values give changed false, saved false and a note, with nothing saved. A failed save makes success false, with saved=false and save_error.

Returns: { ik_rig_path: string, solver_index: int, goal_name: string, success: bool, changed: bool, saved: bool, save_error?: string, note?: string }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
settingsYesObject with goal-specific fields to set.
goal_nameYesName of the goal to modify.
ik_rig_pathYesContent path to the IK Rig asset.
solver_indexYesIndex of the solver.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare destructive=true and idempotent=true, and the description builds substantially on that: it explains the operation runs as one undo transaction followed by an asset save, that it is a partial update applying only present fields, and that it returns changed=false/saved=false with a note when values are unchanged and save_error on save failure. These are real behavioral traits an agent cannot get from the annotations.

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?

Purpose and idempotency are front-loaded, and every sentence carries information (key formats, error outcomes, prerequisites, return shape). It is dense and long, but there is essentially no filler; the trailing Returns block is justified because no output schema exists.

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 mutating tool with a free-form nested object, no output schema, and 100% required params, the description supplies everything needed: prerequisite call, per-solver key conventions, partial-update semantics, and a full enumeration of success/unchanged/failure return fields.

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?

The schema's nested `settings` object is loosely typed (additionalProperties: true) and documents no keys, so the description is the only source of parameter meaning. It enumerates FullBodyIK snake_case keys with numeric ranges and BodyMover camelCase keys with server-side clamping, far exceeding what the schema conveys.

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 ('Set goal-specific settings for a goal connected to a solver') and explicitly scopes it as goal-level, not solver-level, which distinguishes it from siblings like set_ik_solver_settings and set_ik_bone_settings. It also names the two goal types (FullBodyIK, BodyMover) that change the expected key format.

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?

Gives a clear prerequisite ('Connect the goal first with connect_ik_goal_to_solver') and a boundary condition ('Solvers without per-goal settings return an honest error'). It does not explicitly say when to prefer this over set_ik_solver_settings, but the goal-vs-solver scoping makes the split inferable.

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