Skip to main content
Glama
threejs-devtools-mcp

threejs-devtools-mcp

by DmitriyGolub

set_animation

Idempotent

Controls AnimationMixer playback in the live browser preview: play, stop, or pause actions by clip name, seek mixer time, and set timeScale or action weight. Changes apply to the preview only and are recorded as pending changes for revert.

Instructions

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Control playback: mixer timeScale/time, action play/stop/pause/weight by clip name.

Input Schema

NameRequiredDescriptionDefault
playNo
stopNo
timeNoSeek mixer time (not recorded as a change)
clipNameNoTarget action by clip name
timeScaleNoMixer time scale
mixerIndexNoFrom animation_details (default: 0)
actionPausedNo
actionWeightNo0-1
actionTimeScaleNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv0.5.0
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / actionPaused / description
      Removed value: -"Pause/unpause action"
    • removedInput schema / properties / actionTimeScale / description
      Removed value: -"Action time scale"
    • changedInput schema / properties / actionWeight / description
      Previous value: -"Action weight (0-1)"New value: +"0-1"
    • changedInput schema / properties / mixerIndex / description
      Previous value: -"Mixer index (default: 0)"New value: +"From animation_details (default: 0)"
    • removedInput schema / properties / play / description
      Removed value: -"Play the action"
    • removedInput schema / properties / stop / description
      Removed value: -"Stop the action"
    • changedInput schema / properties / time / description
      Previous value: -"Mixer current time"New value: +"Seek mixer time (not recorded as a change)"
    • changedInput schema / properties / timeScale / description
      Previous value: -"Mixer global time scale"New value: +"Mixer time scale"
  2. First observedv0.4.1

TDQS

A4.3/5.0
Behavior5/5

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

Annotations cover safety (readOnly=false, destructive=false, idempotent=true), and the description adds the critical lifecycle facts annotations cannot convey: changes are live-only, lost on reload, tracked in pending_changes, and undoable via revert_changes. That is exactly the extra behavioral context a mutation tool needs.

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, zero filler, and the most consequential fact (live preview, not saved) is front-loaded before the parameter summary. Every clause carries information.

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 9-parameter tool with no output schema, it covers the ephemeral-preview model, the persistence path, and the undo path, which is the essential missing context. Minor gaps remain: no guidance on whether play/stop/pause combine, and mixerIndex/actionTimeScale semantics are left to the schema.

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 only 56%, so the description compensates by splitting the parameters into two semantic groups — mixer-level (timeScale/time) and action-level (play/stop/pause/weight by clip name) — which clarifies intent beyond the raw schema. It still leaves mixerIndex and actionTimeScale unexplained, keeping it below a 5.

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 verb+resource: it controls animation playback via the mixer and actions, with the '[LIVE PREVIEW]' tag scoping it to the running scene. It never names sibling animation_details as the read-only counterpart, so the boundary is implied rather than explicit, but the purpose itself is unambiguous.

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 strong context for when the effect applies: browser-only, not persisted to source, recorded in pending_changes and reversible with revert_changes. It stops short of explicitly stating when to reach for this versus animation_details or pending_changes, so it's clear context without named alternatives.

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