Skip to main content
Glama
newsbubbles

ismail: agent DAW (MCP server)

Stage Capture

stage_capture

Render frame-locked stage captures in the background from a scene and song time range, using cameras, setup commands, and audio without affecting the live stage.

Instructions

Capture the stage on the PC, frame-locked: frame n shows the song at t0 + n / fps (takes and loops, keyed objects, tree growth, lights and behaviours all at that time), however long a frame takes to draw; nothing drops. Runs in the background with no headset and without touching the stage the person uses (its own server and a headless browser; nothing it does is saved to the scene or reaches the live link), on the GPU slot. Replies at once with the job; stage_capture_status(scene, job) follows it. The camera, one of: camera= a camera object in the scene (keyed ones fly their keys on the stage clock); shot= a story path from cameras.json (cameras= its file; keys evenly spaced, eased in and out over the shot's seconds from t0); path= {"keys": [{"pos", "look", "lens"}], "seconds", "at"} the same inline; view= {"pos", "fwd", "up", "vfov"} fixed. All in Blender coordinates (metres, Z up), lens in mm on a 36 mm sensor; "vfov" (degrees) in path or view overrides the lens. t0, t1: song seconds. size [w, h] (default [1920, 1080]; [1440, 1080] for 4:3). The stage clock is set to clock_at + (song t - t0) every frame (clock_at defaults to t0; clock=False leaves it alone). setup: live commands run once before the first frame, e.g. [{"type": "actor_play", "person": "body_a", "take": "t1", "at_music": 0}, {"type": "sky", "mode": "night"}] (per-shot overrides; the scene files are not changed). Every load set is in the shot unless sets=False (setup can unload one: {"type": "load_set", "name": ..., "loaded": false}). A setup command with "at_song": waits for that frame and runs just before it is drawn, e.g. {"type": "behaviour_run", "object": "light_switch", "at_song": 255.0} (one at or before t0 runs at frame 0). {"type": "screen_key", "material": "screen", "color": "#00ff00"} (captures only) draws a material flat and unlit in a key colour so a comp in post finds what covers it exactly ("object": instead of "material": that object's one material; default material "screen"); "color": "off" puts it back, e.g. timed with at_song. audio: the song file, cut to t0..t1 under the video. Out: /captures//capture.mp4 (H.264, 4:2:0), frames/f_00000.png with keep_frames (or video=False).

Input Schema

NameRequiredDescriptionDefault
t0Yes
t1Yes
fpsNo
nameNo
pathNo
setsNo
shotNo
sizeNo
viewNo
audioNo
clockNo
sceneYes
setupNo
videoNo
cameraNo
scenesNo
camerasNo
clock_atNo
keep_framesNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A3.8/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden, and it does disclose important traits: asynchronous "replies at once with the job", isolation from the live link and scene files, and the exact output path/format. However, it omits cost/duration expectations, concurrency limits on the GPU slot, and what happens on failure or to an already-running job, which are material for a long render.

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?

It is front-loaded and every clause carries real information, but the opening sentence is a run-on and the whole body is a dense multi-topic block that an agent must parse linearly to find a given parameter. Restructuring into labelled groups (camera, timing, setup, output, control) would cost nothing and help selection.

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 19-parameter asynchronous render tool this is unusually complete: it states the async contract and status follow-up, the isolation guarantees, the output artifacts, and the override semantics of setup commands. With an output schema present it correctly does not spend words on return values.

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?

With 0% schema description coverage across 19 parameters, the description compensates heavily: it defines t0/t1 as song seconds, the four mutually exclusive camera modes with their shapes and Blender coordinate/lens conventions, size, clock/clock_at, setup command forms with worked examples, sets, audio, keep_frames and video. Gaps remain for name, scenes and the fps default, which are never explained.

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 first sentence gives a specific verb and resource ("Capture the stage on the PC, frame-locked") and immediately defines the semantics of frame n vs song time. It is distinctive enough to separate it from siblings like stage_take_view or stage_camera_record, though it never names an alternative explicitly.

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 clearly frames the usage context: background, headless, GPU slot, no headset, no interference with the live stage, plus the required follow-up via stage_capture_status(scene, job). That tells the agent when this is appropriate, but it does not compare against sibling capture/render tools or state when not to use it.

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