Skip to main content
Glama

anim_sample

Read-onlyIdempotent

Reports Daz-computed world bone positions at specified animation frames so you can verify motion numerically, such as foot placement or hand reach.

Instructions

World positions (cm, Y up) of bones at some frames, as Daz computes them. Use it to check a motion with numbers: is the left foot in front at frame 8, does the hand reach the cup.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "figure": "<figure>",
      "frames": "<frames>"
    },
    "name": "anim_sample"
  }
}

Input Schema

NameRequiredDescriptionDefault
bonesNoBones whose world position to report, e.g. ["l_foot", "r_foot", "l_hand"].
figureYesFigure (or node) label.
framesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the safety profile is covered. The description adds meaningful domain context beyond that: values are Daz-evaluated world positions in centimeters with Y up, meaning the agent gets sampled evaluated results rather than stored keys. It omits what happens for bones that don't exist or how results are ordered, but the core behavioral framing is solid.

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

Conciseness5/5

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

Two sentences, no waste, with the output definition and unit convention front-loaded before the example use case. Every sentence earns its place.

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?

There is no output schema, so the description must carry return semantics, and it does state the return is world positions in cm with Y up per requested bone and frame. Minor gaps remain around result ordering, missing-bone handling, and the 500-frame cap, but for a read-only sampling tool this is close to sufficient.

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

Parameters3/5

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

Schema coverage is 67%: 'bones' and 'figure' carry descriptions, while 'frames' has only minItems/maxItems constraints in the schema. The description's 'at some frames' loosely signals that a discrete frame list is sampled, but it adds no syntax or format detail (e.g. fractional frames, ordering) beyond the schema, so the baseline applies.

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 description states a specific resource and output ('World positions (cm, Y up) of bones at some frames, as Daz computes them'), including units and axis convention, so an agent knows this returns numeric world-space bone coordinates rather than keyframe data. It does not explicitly name a sibling to contrast with (e.g. anim_foot_contact for contact booleans), so sibling differentiation is only implicit.

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?

It gives a clear use context with concrete examples: 'check a motion with numbers: is the left foot in front at frame 8, does the hand reach the cup.' That tells the agent when this is the right tool (numeric verification of a pose), but it offers no explicit when-not guidance or named alternatives such as anim_foot_contact or anim_key_pose.

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