Skip to main content
Glama
newsbubbles

ismail: agent DAW (MCP server)

Stage Key Interp

stage_key_interp

Sets how a keyed object moves between keys: choose stop to ease into and out of each key, or smooth to glide through them for camera-style moves. Saves the interpolation mode for animation.

Instructions

How a keyed object moves between its keys (page command: key_interp): mode 'stop' (it eases into and out of every key, so it stops at each; what an object with no mode set does) or 'smooth' (it glides through them: a camera move). Saved in anim.json "interp" with stage_anim_save. The same curves are in ismail/stage/page/interp.js (the page) and ismail/stage/interp.py (sample_anim, for a render), held equal by a test; a render that turns anim.json into keyframes must sample through interp.py or it drifts from the stage again. Errors: the object has no keys. Page replies {name, mode, keys}.

Input Schema

NameRequiredDescriptionDefault
modeYes
sceneYes
objectYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations at all, the description carries the full burden and does substantial work: it discloses that the value is persisted into anim.json via stage_anim_save, that a render must sample through interp.py or it drifts from the stage, and that an object with no keys produces an error. The only gap is that it doesn't say whether the mode change is reversible or what permissions/state preconditions apply.

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

Conciseness3/5

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

The core purpose and mode semantics are front-loaded and efficient, but the second half drifts into internal implementation detail (file paths ismail/stage/page/interp.js and ismail/stage/interp.py, a test holding them equal) that is background rather than invocation guidance. Useful as a drift warning, but verbosely delivered.

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?

Given an output schema exists, the description needn't explain the return value, yet it still gives the reply shape {name, mode, keys} and the failure mode (object has no keys), plus the persistence and render-pipeline caveats. An agent has enough to call this correctly; only the 'scene'/'object' argument formats remain unclear.

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 description coverage is 0% and there are no enums, so the description must compensate; it does so well for 'mode' by defining 'stop' and 'smooth' as the accepted values. 'scene' and 'object' receive no explicit semantics beyond the phrase 'a keyed object', so an agent must infer their format and scoping from sibling tools.

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 (a keyed object's interpolation between keys) and enumerates the two modes with concrete meanings ('stop' eases into and out of every key, 'smooth' glides through them). It also names the page command (key_interp) and the persistence sibling (stage_anim_save), which lets an agent place it among stage_key_set / stage_anim_save. The setting verb is only implied, so it falls just short of a 5.

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

Usage Guidelines3/5

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

It gives a usage signal by describing when each mode applies (per-key easing vs. a gliding camera move) and notes 'stop' is the default for objects with no mode set. However, there is no statement of when to call this tool versus stage_key_set, stage_keys_set, or stage_anim_save, nor any prerequisite (object must already have keys) stated as a usage rule rather than an error.

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