Cascadeur MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CASCADEUR_MCP_INSTANCE | No | Host and client must use the same `CASCADEUR_MCP_INSTANCE` if changed from `c01`. | c01 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_bridge_capabilitiesB | Read contracts from the actual loaded host; runtime rig and license preconditions remain unevaluated. |
| ping_cascadeurA | Confirm a live response from the Cascadeur host bridge. |
| get_scene_infoA | Read current Cascadeur scene name, frame and object count. |
| get_objectsB | Read a bounded page of object names and types; names are not unique IDs. |
| get_current_frameA | Read current frame and available animation frame count. |
| set_current_frameB | Switch to an existing frame; require expected scene name; returns actual frame. |
| get_transformB | Read world position (scene units), rotation quaternion [w,x,y,z] and track key state for a unique object name. |
| set_transformA | Set world position and/or unit quaternion [w,x,y,z] on an existing keyframe. Only isolated unlocked object tracks. Returns before/after. Timeout means unknown outcome: read back, never blindly retry. |
| get_poseA | Read an explicit object list (Phase 2) OR all real Joints under root (Phase 3), with parents and local/global transforms. One round-trip; does not move playhead. |
| set_keyframeA | Create a key on an isolated unlocked object's track at an existing frame, preserving pose. Not per-channel keying. Timeout means unknown outcome; read back before retrying. |
| get_local_transformB | Read actual parent-relative position/quaternion at frame, default current. |
| get_global_transformB | Read actual world position/quaternion at frame, default current. |
| set_poseA | Batch-write 1-32 joints in one checked host transaction and one MCP call. Requires a <=121-frame, unit-scale, isolated-track linear FK Joint subtree. Automatically captures clip snapshot; returns before/after. Timeout is unknown outcome; read back before retry. |
| save_pose_snapshotA | Capture all local/global clip transforms and topology/key guards for a Joint subtree in host memory. Up to 32 snapshots per host session; invalid after restart. Alternatively supply scene_id and character_id for full real-character state and bounded native history (16 snapshots). Durable variant: scene_id, character_id, absolute new .json path and optional frame. Saves ONE pose, all Point controls and read-only joint verification; no vendor assets. |
| restore_pose_snapshotA | Restore clip transforms from an opaque host-memory snapshot with identity/topology/key-layout guards and full readback. Not a general scene undo; refuses changed track structure. For character snapshots supply scene_id; uses bounded native Undo with full-state verification; refuses external scene edits. Durable variant: scene_id, character_id, path. Restores ONE pose across restarts; verifies joints before commit, recomputes adjacent interpolation, refuses incompatible rigs. Not a whole-clip backup. |
| set_local_transformC | Set one joint in local space using the bounded batch engine. Captures recovery snapshot first and interpolates linear FK tracks. |
| set_global_transformB | Set one joint in world space using the bounded batch engine; descendants follow through host update. Captures recovery snapshot first. |
| list_charactersA | List actual RigInfo owner UUIDs in the saved scene; names are display labels only. |
| get_character_skeletonA | Read full native joint hierarchy, rig controls, bindings, constraint references and shared tracks by character UUID. |
| get_character_poseA | Read every character joint local/global transform plus all native Point targets in ONE call. Returned pose is writable by set_character_pose. |
| set_character_poseA | Write the complete native Point target set in ONE native transaction at an EXISTING frame (0-120). Rig solves joints; constraints and IK mode retained. Captures full-scene snapshot; failures automatically verify rollback. Exclusive C01 pose editing required; timeout is unknown outcome, read back before retry. |
| play_animationA | Start a bounded native Timeline.Play observation on a stopped scene. Returns pending: call stop_animation later for measured playback/stop evidence. Never advances frames with a script. Requires exclusive playback ownership; rejects edits while active. |
| stop_animationA | Stop only playback owned by this bridge; return actual frame observations and stop verification. Idempotent after automatic end stop. Cannot stop arbitrary external playback. |
| get_rig_semanticsB | Discover and validate Cascy v1 role groups, native Point UUIDs, rig bindings and topology fingerprint. Driven joints are read-only. Refuses ambiguous names or unsupported topology. |
| get_semantic_poseA | Read named Point targets in world scene units. Defaults to all 11 roles plus read-only joint states. Optional roles selects 1-11 unique semantic roles; include_joint_state=false omits joint states. Full rig validation always runs. A partial read does not validate animation quality or whole-body motion. |
| set_semantic_poseA | Patch named role/slot world-position targets in one native transaction; omitted slots retain the target frame values. Preserves rig constraints. Read solver-adjusted result; timeout means unknown outcome. |
| set_pose_sequenceA | Write 1-8 unique existing frames of semantic Point targets in ONE MCP call / ONE checked native transaction. Patches merge with pre-transaction state. Failure checks restoration; unverified recovery locks further writes. No timeline extension. Read back after timeout. |
| get_semantic_pose_sequenceA | Read 1-8 unique existing frames in ONE MCP call, in requested frame order. Optional roles and include_joint_state select values after complete rig validation. Uses native stored values, without moving the playhead or caching a rig between requests. |
| offset_semantic_pose_sequenceA | Translate every Point slot of each named role by its world-space [dx,dy,dz] at 1-8 existing frames. Each frame uses its own current targets. ONE checked transaction with full-scene snapshot and rollback verification. Creates full-character keys and LINEAR intervals; does not preserve authored easing. Returns actual solved edited roles, not requested values. Not idempotent: another call adds the offset again. Never auto-retry after timeout; read back first. No rotation, scale, timeline extension or finger curling. |
| offset_semantic_pose_sequence_preserving_curvesA | Offset named Point role groups at 1-8 EXISTING KEYS on their tracks, in one checked transaction. Preserves key layout, track membership, interpolation, easing weights and supported tangent metadata; no key creation. Writes only selected Point channels. Checks all-frame geometry, unedited FIXED/baked tracks and Point keys outside requested frames. Rejects editing FIXED tracks, custom tangents, additive stacks, cycles or unavailable state. Edited trajectories and solver-coupled rig Points/Joints can change; read actual adjustments. Not idempotent; read back after timeout. No rotation, finger curling or timeline extension. |
| get_fbx_export_statusA | Read the current native FBX export entitlement and loader methods. No export or file writes. Method availability is not proof of a successful export. |
| inspect_character_motionB | Read native track curves, rigid-body mass-weighted COM and rig connection errors at every stored frame (max 121). Does not move the playhead. |
| retime_character_motionB | Retime 2-8 complete synchronized character keys and set native interpolation/easing weights in ONE checked transaction. Preserves solved Point poses and verifies all joint key states; only exclusive IK character tracks. Snapshot/rollback automatic. No arbitrary tangent vectors or AI interpolation. Read back after timeout. |
| save_scene_copyA | Save the active native scene to a NEW absolute .casc file; never overwrite. Returns file SHA256. Native scene identity can change: rediscover afterwards. |
| export_fbxA | Export the complete single-character scene with baked skeleton/mesh/animation via native FbxLoader. Full stored frame range only; ASCII, Y-up, Euler filter. Saves a NEW .casc copy first (scene identity changes). New FBX by default; replacing a file requires its exact expected_sha256. Rejects unsupported scopes. Read back files after timeout. |
| get_hand_poseB | Read Cascy finger local rotations and verified hierarchy bindings; body hand Points do not control finger shape. |
| set_hand_pose_sequenceA | Write 1-8 frames of semantic left/right finger local unit quaternions in one checked native transaction. Only validated Cascy finger chains, not body joints. Preserves existing body keys and interpolation; read back after timeout. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 37 tools
Multiple tools overlap heavily in purpose: reading transforms via get_transform, get_local_transform, get_global_transform, get_pose, get_character_pose, and get_semantic_pose all retrieve similar data in different contexts, and writing transforms has many parallel variants. While descriptions distinguish contexts, an agent could easily misselect among this dense set.
Tool names follow a consistent snake_case verb_noun pattern throughout (e.g., get_scene_info, set_pose, save_pose_snapshot, export_fbx). Minor variations in verb choice (e.g., inspect, retime) remain within a predictable convention.
With 37 tools, the set is heavy and exceeds the typical 25+ threshold for 'too many.' While the domain is complex, many tools could be consolidated, and the large count increases cognitive load and selection difficulty.
The toolset covers reading/writing poses, transforms, sequences, snapshots, export, and playback, but notable gaps exist: no deletion of keyframes, objects, or characters; no creation of objects or characters; and no undo beyond snapshots. These omissions may force workarounds for lifecycle management.