Skip to main content
Glama

Scaffold a MIDI-mappable VJ deck

scaffold_vj_deck

Creates a complete A/B VJ deck with crossfader, on-screen faders, and MIDI control in one call. Provides a ready-to-play UI for mixing two video sources.

Instructions

Compose a complete, playable VJ deck UI in one call: it builds a DJ-style A/B deck mixer (create_decks) with a crossfader, adds an on-screen fader control surface (create_control_surface) with crossfade + per-deck gain faders, and creates a midiinCHOP control surface (create_external_io) whose channels are bound to the same crossfader/gain parameters for hands-on MIDI control. Pass deck_a/deck_b source TOP paths (or omit for test sources), and an optional midi_map of channel→control bindings (defaults to ch1c1→crossfader, ch1c2→gain_a, ch1c3→gain_b). This is the deck-scaffold layer on top of the create_decks primitive — it wires the existing deck, surface, and I/O tools into one UI container.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
midiNoCreate a midiinCHOP control surface and bind its channels to the deck controls (MIDI-mappable VJ deck).
nameNoBase name for the VJ-deck container COMP.vj_deck
deck_aNoAbsolute path of the source TOP for deck A. If omitted, a built-in test source is created.
deck_bNoAbsolute path of the source TOP for deck B. If omitted, a built-in test source is created.
fadersNoAdd an on-screen fader control surface (crossfader + per-deck gain faders) inside the container.
midi_mapNoExplicit MIDI channel → control bindings. When omitted, a sensible default map (ch1c1→crossfader, ch1c2→gain_a, ch1c3→gain_b) is used.
crossfadeNoInitial crossfader position: 0 = full deck A, 1 = full deck B.
parent_pathNoCOMP the VJ deck is scaffolded inside (default '/project1')./project1
Behavior4/5

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

The description discloses the full set of components created (A/B deck mixer, control surface, midiinCHOP surface) and how bindings are wired, along with default behavior for omitted sources and midi_map. Annotations already indicate readOnlyHint=false, destructiveHint=false, and openWorldHint=true; the description aligns and adds useful context about the composed side effects without contradicting the annotations.

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?

The description is three sentences with no wasted words. The first sentence front-loads the main purpose and component breakdown; the second efficiently covers the key parameters and defaults; the third clarifies the tool's relationship to the primitive. Every sentence earns its place and the structure is easy to scan.

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 an 8-parameter tool with no output schema and no required parameters, the description covers the essential context: what is created, how parameters affect the result, default behaviors, and the relationship to sibling primitives. It does not describe return values, but given the absence of an output schema, that is not necessary. Minor gaps include a lack of explicit mention of side effects on the parent container or existing nodes, though the openWorldHint annotation covers this partially.

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 100%, so the baseline is 3. The description adds a small amount of contextual meaning by explaining that deck_a/deck_b are source TOP paths and that omitting them creates test sources, and it summarizes the midi_map default behavior. However, most parameter semantics (defaults, ranges, descriptions) are already fully covered by the input schema, and the description does not significantly extend beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Compose a complete, playable VJ deck UI in one call.' It further distinguishes itself from siblings by explicitly naming the primitives it wraps (create_decks, create_control_surface, create_external_io) and positioning itself as the 'deck-scaffold layer on top of the create_decks primitive,' making its unique role 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?

The description explains the intended use case ('Compose a complete, playable VJ deck UI in one call') and contrasts with the primitive by stating it 'wires the existing deck, surface, and I/O tools into one UI container.' It also provides parameter usage guidance (pass source TOP paths or omit for test sources, optional midi_map). However, it does not explicitly state when NOT to use this tool in favor of an alternative, such as 'if you only need a deck, use create_decks.'

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lucasmaher-hash/touch-designer-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server