Skip to main content
Glama

MindDesigner (tdmcp) — TouchDesigner MCP server

CI Docs npm version Node.js MCP server License: MIT tdmcp MCP server

tdmcp is a Model Context Protocol (MCP) server for TouchDesigner — build TouchDesigner from plain language. You describe a visual to an AI assistant (Claude, Claude Code, Cursor, Codex); the AI builds the actual network of nodes inside your project, checks it for errors, and shows you a preview.

"Create a feedback tunnel from noise with blur and displace, then add bloom and output it to a window."

…and the nodes appear, wired up, in your /project1.

It works because it pairs two things every other tool was missing:

  • Real knowledge — an embedded reference of 629 operators, 68 Python classes, workflow patterns, GLSL techniques and tutorials, so the AI uses real TouchDesigner operators instead of guessing.

  • Real execution — a small bridge running inside TouchDesigner that actually creates, connects, inspects and previews nodes — with a create → verify → preview loop so the AI can see and fix its own work. Every generated network is auto-arranged into a readable left→right layout.

📖 Documentation

Full guides and reference live on the docs site → https://pantani.github.io/tdmcp/

🇧🇷 Portuguese documentation: https://pantani.github.io/tdmcp/pt/

Related MCP server: tdmcp

How it works

Three pieces talk to each other on your computer:

   You + your AI            tdmcp server               TouchDesigner
  (Claude / Cursor)   ─▶   (a small program)    ─▶   (the bridge inside TD)
   "make a feedback                                      builds real nodes
    tunnel from noise"                                   in /project1
  1. Your AI assistant — where you type what you want.

  2. The tdmcp server — a small Node program that gives the AI a set of TouchDesigner "tools" and the operator knowledge base. You install it once.

  3. The bridge — a tiny piece that runs inside TouchDesigner so the server can actually drive it. You switch it on once per machine.

What you'll need

  • TouchDesigner — the free non-commercial edition is fine.

  • An MCP-capable AI assistant: Claude Desktop (easiest), Claude Code, Codex, or Cursor.

Node.js is only needed for the build-from-source path (Node 20+). The one-click Claude Desktop extension needs nothing extra — the server is bundled inside the .mcpb extension file.

Get started

You set up two sides: your AI (so it gets the tdmcp tools) and TouchDesigner (so the AI can drive it).

🤖 Easiest — let your AI install it. Using Claude Code, Codex, or Cursor? Paste this one message in:

Install and connect tdmcp for me using the official install guide:
https://pantani.github.io/tdmcp/guide/install
Do every step yourself; only stop when you need me to do the TouchDesigner bridge step.

It clones, builds and wires everything up; the only manual step is pasting one line into TouchDesigner (Step 2 below).

🟢 Claude Desktop — one-click .mcpb (no terminal, no Node). Download tdmcp.mcpb, then in Claude Desktop open Settings → Extensions and install it (drag it in or Install from file). Leave host/port at 127.0.0.1 / 9980. Full walkthrough: the install guide.

🛠️ Claude Code / Codex / Cursor — build from source.

git clone https://github.com/Pantani/tdmcp.git
cd tdmcp
npm run setup   # installs, builds, and prints the exact line to connect your client

Turn on the bridge inside TouchDesigner (everyone)

Easiest — no Textport. Download tdmcp_bridge_package.tox from the latest release, drag it into your /project1 network, and click Install on the component. The package self-bootstraps and starts the bridge on port 9980. ✅

Open the Textport (Dialogs → Textport and DATs), paste this one line and press Enter:

import urllib.request; exec(urllib.request.urlopen("https://github.com/Pantani/tdmcp/raw/v0.13.1/td/bootstrap.py").read().decode())

You should see [tdmcp] bridge running on port 9980 (/project1/tdmcp_bridge).

Either way it's safe and reversible — it adds one tidy component; remove it later with from mcp import install; install.uninstall(). Other install methods (module path, terminal, Palette package) are in the bridge docs.

Make something

With TouchDesigner open and your AI connected, ask in plain language:

"Create an audio-reactive particle galaxy and show me a preview."

The AI builds the network, checks it for errors, and returns a thumbnail. Iterate: "make it warmer," "add a feedback trail," "output it fullscreen." More ideas in the prompt cookbook.

Not connecting? The two most common fixes: make sure the bridge is on (curl http://127.0.0.1:9980/api/info returns JSON), and restart your AI client after adding the server. Full troubleshooting.

What you can do

507 tools across three layers, plus foundation primitives, CLI automation, library/packaging, AI session memory and Obsidian vault integrations — from one-line artist generators (create_feedback_network, create_audio_reactive, create_particle_system, create_generative_art, …) to building blocks (create_control_panel, animate_parameter, create_external_io for OSC/MIDI/DMX/NDI, …) down to atomic node CRUD and inspection. Many systems arrive already playable, with a control panel you can tweak, preset, or map to a controller. See the full, always-current tools reference and the recipe gallery.

Optional: Creative RAG

A local, opt-in creative repertoire of open-licensed artworks/artists/techniques the AI can search for inspiration. Off by default. Repertoire, not policy — no bridge, DMX or Python exec. Enable with TDMCP_RAG_ENABLED=1 plus a local Ollama install, then tdmcp creative-rag {sync|index|search}. Full guide: docs/CREATIVE_RAG.md.

Security

The bridge runs arbitrary Python inside your TD process and listens on port 9980 on all interfaces — treat it like an open door to that machine. Run it only on a trusted network, and for untrusted networks turn on bridge auth (TDMCP_BRIDGE_TOKEN) and/or disable the exec endpoints (TDMCP_BRIDGE_ALLOW_EXEC=0). Details: Security.

Contributing & development

Build with npm install && npm run build; run npm test, npm run typecheck, npm run lint. Work on the docs with npm run docs:dev (the tools reference is generated by scripts/gen-tool-docs.ts). See CONTRIBUTING.md, CHANGELOG.md, and the roadmap.

License

MIT — see LICENSE.

Available Tools

507 tools
add_custom_parametersManage custom parametersA
Destructive

Transactionally add, edit, delete, sort, and organize a COMP's custom parameters through an authenticated structured TouchDesigner route. Legacy page+params calls remain valid. Supports Float, Int, Toggle, Str, Menu, Pulse, Header, OP, TOP, File, Folder, XYZW, RGBA, RGB, and XYZ; EXPRESSION and BIND are reversible. EXPORT is explicitly HELD and returns an error without mutation. Built-ins are protected, failures roll back to the exact prior custom-page snapshot, and no raw Python or /api/exec fallback is used.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoCustom
paramsNo
comp_pathYes
operationsNo
idempotency_keyNo

TDQS

A4.1/5.0
Behavior5/5

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

The description significantly enriches the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=true) with concrete behavioral details: transactional rollback to prior snapshot, EXPORT returning an error without mutation, reversible EXPRESSION/BIND, protected built-ins, and no raw Python fallback. These are not present in structured data and give agents crucial expectations beyond generic mutation hints.

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

Conciseness4/5

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

The description is front-loaded with the core purpose in the first sentence, followed by compact behavioral details. It is reasonably concise for the complexity, though some clauses like 'no raw Python or /api/exec fallback is used' and 'Legacy page+params calls remain valid' are peripheral and could be trimmed without losing essential guidance.

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?

The tool is complex with nested operations and multiple parameters. The description covers transactionality, auth, supported types, and key safety behaviors, which is substantial. However, it does not explain the response format (no output schema exists) nor dive into the exact semantics of each operation action, leaving some gaps for such a multi-faceted tool. Overall, quite complete but not exhaustive.

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?

With 0% schema description coverage, the description must compensate for parameter meaning. It provides meaningful details on supported types and mode behavior (EXPRESSION/BIND reversible, EXPORT held), but does not explain the idempotency_key purpose, the precise semantics of operation actions (e.g., sort_page expects an order array), or the role of fields like menu_names vs menu_labels. Partial compensation, not fully sufficient.

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 clearly states a specific verb+resource: 'Transactionally add, edit, delete, sort, and organize a COMP's custom parameters.' It also lists supported types and the authenticated route, distinguishing it from sibling parameter tools like update_td_node_parameters which target existing parameters. The scope 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 Guidelines3/5

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

The description implies use for managing custom parameters and notes that legacy page+params calls remain valid, offering limited context. However, it does not explicitly contrast with alternative tools like update_td_node_parameters or set_parameter_expression, nor provide when-not-to-use conditions beyond implied protection of built-ins. Only guidance is implied, not explicitly stated.

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

add_timecode_overlayAdd timecode overlayA

Overlay a running HH:MM:SS:FF timecode (or a countdown) onto an input TOP as VISUAL pixels — a Text TOP whose text expression re-evaluates every frame, composited 'over' the source with a Composite TOP. Modes: clock (show time since project start — NOT the OS wall clock — as HH:MM:SS:FF), count_up (elapsed time since this overlay was built, from zero), count_down (counts down from target_seconds to 00:00:00:00 and clamps there). The formatter lives in a Text DAT module (mod('fmt').tc(...)) so it re-cooks live inside TD. FPS is probed live (me.time.rate -> project.cookRate -> 60 fallback) and reported. Distinct from sync_timecode, which syncs a CLOCK SIGNAL (no pixels) — this tool draws the timecode into the image. Ends with a Null TOP 'out'.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoclock: show total show time (since project start) as HH:MM:SS:FF. count_up: elapsed time since this overlay was built, from 00:00:00:00. count_down: counts down from `target_seconds` to 00:00:00:00 and clamps there.count_up
nameNoBase name for the container COMP that holds the chain.timecode_overlay
colorNoTimecode text color as a hex string, e.g. '#ff3366'.#ffffff
positionNoWhere the timecode text is anchored over the source frame.bottom_left
font_sizeNoTimecode font size in pixels.
source_topYesPath of the input TOP to overlay the timecode onto (e.g. '/project1/moviefilein1'). REQUIRED.
parent_pathNoWhere to build the overlay chain (a COMP path, e.g. '/project1')./project1
target_secondsNocount_down only: seconds to count down from. Ignored in clock/count_up modes.

TDQS

A4.7/5.0
Behavior4/5

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

The description adds substantial behavioral detail beyond the annotations: the timecode is live and re-evaluates every frame, count_down clamps at zero, FPS is probed live with a fallback, and the chain ends in a Null TOP 'out'. It does not contradict the annotations and clearly indicates the tool builds a node chain (consistent with readOnlyHint=false).

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 dense but every sentence earns its place: implementation approach, mode semantics, formatter location, live FPS probing, sibling distinction, and output terminal. No wasted words. The structure flows from general action to mode details to implementation specifics.

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?

Given the tool's complexity (8 parameters, no output schema, open-world behavior), the description covers everything needed: what it builds, how timecode computation behaves, what the output is ('Null TOP out'), and how it differs from sync_timecode. The schema handles parameter syntax, and the description fills in behavioral context.

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 100%, so the baseline is 3, but the description enriches several parameters: it clarifies that 'clock' shows time since project start and is 'NOT the OS wall clock,' that count_up starts from zero when the overlay is built, and that count_down clamps at 00:00:00:00. These are semantic clarifications not present in the schema.

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: 'Overlay a running HH:MM:SS:FF timecode (or a countdown) onto an input TOP as VISUAL pixels.' It immediately distinguishes itself from sync_timecode, which is a sibling tool for syncing clock signals rather than rendering pixels. This leaves no ambiguity about what the tool does.

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

Usage Guidelines5/5

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

It explicitly names the closest alternative (sync_timecode) and explains the difference: 'Distinct from sync_timecode, which syncs a CLOCK SIGNAL (no pixels) — this tool draws the timecode into the image.' The mode breakdown (clock/count_up/count_down) also clarifies when each mode should be used.

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

analyze_projectAnalyze projectA
Read-only

Diagnose a network for cleanup: report likely-dead operators (zero wired outputs, unreferenced, not displayed), broken external-file dependencies (file parameters pointing at missing files), orphan COMPs, and a dependency map of which operators reference which. Read-only and conservative — every flagged item carries a human-readable reason. Complements plan_visual (which plans a build) and snapshot_td_graph (which dumps structure).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoNetwork root to analyze (the COMP whose descendants are scanned)./project1
recursiveNoRecurse into child COMPs (true) or only inspect the root's direct children (false).

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
countsYes
unusedYes
warningsYes
recursiveYes
orphan_compsYes
dependency_mapYes
broken_file_depsYes

TDQS

A4.5/5.0
Behavior4/5

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

The annotations already indicate readOnlyHint=true and openWorldHint=true, but the description adds valuable behavioral context: 'Read-only and conservative — every flagged item carries a human-readable reason.' This goes beyond the structured hints by explaining the conservative nature (likely under-reporting) and the presence of human-readable justifications, which helps an agent calibrate expectations. No contradiction with 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 compact: two sentences containing all essential information without redundancy. It front-loads the primary action ('Diagnose a network for cleanup') and lists outputs efficiently. Every clause earns its place, making it easy to parse quickly.

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?

The description thoroughly enumerates what the tool reports (dead operators, broken dependencies, orphan COMPs, dependency map) and provides context about safety ('read-only and conservative') and relationship to sibling tools. Since an output schema is present, the description doesn't need to detail return values, and the existing coverage is sufficient for a complex analysis tool.

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?

Both parameters are fully described in the input schema (100% coverage), so the schema carries the load. The description does not add any additional semantic details about the parameters themselves, such as how path and recursive affect the analysis output. It meets the baseline for high schema coverage but doesn't exceed it.

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 uses a specific verb ('Diagnose') and resource ('a network for cleanup') and enumerates concrete report types: likely-dead operators, broken external-file dependencies, orphan COMPs, and a dependency map. It clearly distinguishes itself from siblings by naming plan_visual and snapshot_td_graph, so an agent can tell this tool's purpose apart from related ones.

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

Usage Guidelines5/5

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

The description explicitly says it 'Complements plan_visual (which plans a build) and snapshot_td_graph (which dumps structure),' providing direct comparison and alternatives. It also states 'Read-only and conservative,' giving an additional usage context that signals safety and caution. This gives an agent a clear sense of when to choose this tool over others.

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

animate_parameterAnimate parameterA

Drive one or more node parameters over time with an LFO (sine/triangle/ramp/square/pulse/random). Creates an LFO CHOP and binds each target so it oscillates between min and max with the given period — movement without manual keyframing.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoHigh end of the value sweep.
minNoLow end of the value sweep.
nameNoName for the LFO CHOP.lfo_anim
targetsYesParameters to animate, each written as 'nodePath.parName' (e.g. '/project1/sys/blur1.size'). Each is switched to expression mode so it tracks the oscillator live.
waveformNoOscillator shape. Every waveform sweeps the full min–max range.sine
container_pathNoWhere to create the LFO CHOP; defaults to the first target's parent network.
period_secondsNoSeconds for one full cycle (lower = faster).

TDQS

A4.5/5.0
Behavior5/5

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

Beyond annotations (readOnly=false, openWorldHint=true), the description reveals side effects: it creates an LFO CHOP, binds targets, and switches each parameter to expression mode. This provides significant behavioral context not captured by annotations alone.

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, front-loaded with the main action, then the mechanism and benefit. No unnecessary words.

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?

Given the tool's complexity and lack of output schema, the description covers the process, the target format, and the result. It is self-contained and sufficient for an agent to know what happens upon invocation.

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 references min, max, and period but does not add additional detail beyond the schema's own parameter descriptions.

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?

Description clearly states the verb 'Drive' and resource 'node parameters over time with an LFO', specifies the mechanism (creates an LFO CHOP and binds each target) and lists waveform types. This distinguishes it from sibling animation/parameter tools such as pulse_td_parameter or set_parameter_expression.

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 implies usage for LFO-based animation without manual keyframing, and contrasts with keyframing. It does not explicitly name alternative tools or state when not to use, but the intended context is clear.

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

apply_glsl_top_mappingApply GLSL TOP mappingA

Build a self-contained GLSL TOP network from a pre-translated mapping (fragment + uniforms + channels + controls). Foundation primitive used by Shadertoy and ISF importers; also reachable directly for power users with a hand-translated fragment.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the container COMP created under parent_path.glsl_mapping
mappingYesPre-built mapping (fragment + uniforms + channels + controls + provenance).
resolutionNoGLSL TOP output resolution [width, height].
parent_pathNoParent COMP path where the system container is created./project1
pixel_formatNoGLSL TOP pixel format.rgba8
capture_previewNoCapture a preview image of the output TOP after the build.
expose_controlsNoIf false, skip the control panel pass.

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate non-read-only and non-destructive behavior. The description adds that it builds a 'self-contained' network but does not disclose potential side effects like whether it overwrites an existing container, requires specific prerequisites, or validates the mapping. With annotations covering the safety profile, a 3 is appropriate.

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 two sentences, front-loads the core action, and contains no fluff. Every phrase earns its place by clarifying scope ('self-contained', 'pre-translated', 'foundation primitive', 'power users').

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?

Despite the complexity of the mapping object and 7 parameters, the rich schema covers parameter semantics. The description provides the missing high-level purpose and usage context. It could mention that a container COMP is created under parent_path, but that is already in the schema, so the description is complete enough for a well-documented tool.

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%, with each parameter having its own description. The tool description repeats high-level components (fragment, uniforms, channels, controls) that map to the mapping object, but adds little beyond what the schema already documents. Baseline 3 is correct.

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 states a specific action: 'Build a self-contained GLSL TOP network from a pre-translated mapping', with explicit components (fragment + uniforms + channels + controls). It distinguishes itself from siblings by positioning as a foundation primitive for Shadertoy/ISF importers and as a direct tool for power users, making it clear it is not the importer itself.

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 gives clear context on when to use: when a pre-translated mapping already exists, particularly via importers or hand-translated fragments. It does not explicitly name alternatives or state when not to use it, but the reference to importers implies that translation happens elsewhere, providing adequate usage guidance.

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

apply_lutApply LUTA

Apply a colour Look-Up Table (LUT) to an existing TOP inside a self-contained baseCOMP. Prefers an OpenColorIO TOP for .cube/.3dl/.cc/.ccc files; falls back to a Movie File In + Lookup TOP for image LUTs or when OCIO is unavailable. A .cube file with no OCIO is parsed in Python into a Script TOP ramp. Exposes Strength and Bypass controls on a custom page. Pass source_path to grade an existing TOP, or omit it for a standalone preview on a grey Constant TOP.

ParametersJSON Schema
NameRequiredDescriptionDefault
bypassNoWhen true, forces the Cross TOP crossfade to 0 so the source passes through unchanged. Also exposed as a toggle on the custom page.
preferNoBranch selection. `auto` probes OpenColorIO availability at runtime and uses it for `.cube`/`.3dl`/`.cc`/`.ccc` files, falling back to the Lookup TOP path for images. `ocio` forces the OCIO branch. `lookup` forces the Movie File In + Lookup TOP path even when OCIO is available.auto
lut_pathYesAbsolute path to the LUT file. Accepts `.cube`, `.3dl`, `.cc`, `.ccc` (routed to OpenColorIO when available, otherwise parsed in Python for `.cube` or loaded via Movie File In for image-format LUTs). PNG/EXR/etc. always use the Movie File In + Lookup TOP fallback.
strengthNoBlend amount between source (0 = untouched) and graded output (1 = full LUT). Drives the Cross TOP crossfade parameter.
parent_pathNoParent COMP network where the LUT chain container is created./project1
source_pathNoAbsolute TD path of the existing TOP to grade (e.g. '/project1/render1'). TD wires can't cross COMPs, so the source is pulled in via a Select TOP referencing the absolute path. When omitted, a Constant TOP (mid-grey, 1280×720) is created as a stand-in so the chain cooks and previews standalone.
container_nameNoBase name for the container COMP (a numeric suffix is auto-applied by TD).apply_lut
expose_controlsNoWhen true, appends custom-page parameters Strength (float 0..1) and Bypass (toggle) on the container COMP and binds them to the Cross TOP crossfade.
ocio_config_pathNoOptional absolute path to an OCIO config file (`.ocio`). Only used when the OCIO branch is taken.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations declare non-read-only, open-world, non-destructive. Description adds rich behavior: creates a self-contained baseCOMP, prefers OCIO, falls back to Movie File In + Lookup TOP, parses .cube in Python, exposes Strength/Bypass controls, and handles missing source_path with a grey Constant TOP. This goes well beyond the annotations without contradiction.

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

Conciseness4/5

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

The description is dense but well-structured: main action first, then format preferences, fallback, controls, and usage variants. Slightly long, but every sentence adds useful information; not wasteful.

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 complex tool with 9 params and no output schema, the description covers the key workflow: input formats, branch selection, fallback logic, source handling, and exposed controls. It gives an agent enough context to decide and invoke correctly.

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 covers 100% of parameters with detailed descriptions, so the description doesn't need to add parameter semantics. It does mention source_path and Strength/Bypass, but these already appear in the schema. No significant added meaning.

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+resource: 'Apply a colour Look-Up Table (LUT) to an existing TOP inside a self-contained baseCOMP.' It clearly distinguishes from siblings like create_color_grade by targeting LUT application with specific file-format handling.

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?

Provides clear context: applies LUT to an existing TOP, with fallback behavior for OCIO vs image LUTs. However, it doesn't explicitly name alternative tools or state when not to use it, so not a 5.

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

apply_post_processingApply post-processingA

Chain post-processing effects (bloom, glitch, rgb_split, vignette, etc.) onto an existing TOP, applied in the order given. Creates a new baseCOMP under parent_path that pulls the source in via a Select TOP, wires each effect (built-in TOPs or inline-GLSL passes) in series, and ends in a Null TOP. Returns a summary plus a JSON block with the container path, all created node paths, the output Null path, any node errors, warnings, and an inline preview image. Use create_color_grade or create_glitch instead when you want a single dedicated effect with its own exposed controls.

ParametersJSON Schema
NameRequiredDescriptionDefault
effectsYesEffects to apply, chained in the order listed. Each is one of: bloom, chromatic_aberration, film_grain, vignette, color_grade, sharpen, blur, edge_detect, invert, threshold, posterize, glitch, rgb_split, scanlines, halftone, dither, crt, mirror, vhs, npr_oil, npr_pencil, npr_watercolor. The 3D-aware modes ssao / ssr / dof / motion_blur are recognized but redirect to the dedicated `post_passes_3d` tool (they need depth/normal/velocity AOVs that this chain doesn't have).
parent_pathNoParent network where the effect-chain container is created (default '/project1')./project1
source_pathYesPath of the existing TOP to post-process (e.g. '/project1/render1'); pulled in via a Select TOP so it may live in another container.

TDQS

A4.7/5.0
Behavior5/5

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

The description details exactly what will be created (a new baseCOMP, Select TOP, effect chain, Null TOP), how it works (pulls source in via Select TOP, wires effects in series), and what is returned (summary, JSON with paths, errors, warnings, preview). This adds substantial behavioral context beyond the annotations, which only indicate non-read-only, non-destructive, open-world behavior.

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?

Three concise sentences: first states purpose, second explains behavior and output, third gives alternative usage. No filler; every sentence contributes value.

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?

The description is complete for a complex tool: it explains the node graph construction, the output structure, and alternatives, and the schema covers parameters and effect enums. The absence of an output schema is compensated by the explicit description of the JSON return block.

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 schema already fully describes source_path, parent_path, and effects. The description adds no new parameter-specific semantics beyond restating that effects are applied in order, which the schema also says. Baseline 3 is appropriate.

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 clearly states a specific action: 'Chain post-processing effects ... onto an existing TOP, applied in the order given.' It names the resource (existing TOP), the result (new baseCOMP with effects wired in series), and explicitly differentiates from sibling tools like create_color_grade and create_glitch.

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

Usage Guidelines5/5

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

Provides explicit guidance: 'Use create_color_grade or create_glitch instead when you want a single dedicated effect with its own exposed controls.' It also notes in the schema that 3D-aware effects are redirected to post_passes_3d, offering clear alternatives.

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

apply_recipeApply recipeA

Instantiate a built-in recipe by id (from list_recipes) inside a COMP — a tested, ready-made network you can build in one call, then tweak. Creates a new baseCOMP under parent_path, adds and wires every node the recipe declares, exposes its controls, then auto-layouts, verifies, and previews. Returns a summary plus a JSON block with the container path, all created node paths, the output path, the recipe id, exposed controls, any node errors, warnings, and an inline preview image. Returns a friendly error listing available ids if id is unknown.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRecipe id to build (see list_recipes).
parent_pathNoCOMP to build the recipe inside./project1

TDQS

A4.7/5.0
Behavior5/5

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

The description reveals detailed behavioral steps: creating a baseCOMP, wiring nodes, exposing controls, auto-layouting, verifying, and previewing. It also describes the exact return structure (summary plus JSON block) and error handling for unknown ids. This goes well beyond the annotations, providing rich context without contradicting them.

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 compact yet comprehensive: three sentences cover the purpose, the creation process, and the return/error behavior. Each sentence provides distinct value with no redundancy, and key details are front-loaded.

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?

Given the tool's moderate complexity, two parameters, and absence of an output schema, the description is exceptionally complete. It explains what the tool does, what it returns, how errors are handled, and even implies the prerequisite of listing recipes. There are no critical gaps.

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?

The schema already documents both parameters (id, parent_path) with descriptions. The tool description adds extra meaning by referencing list_recipes for the id, clarifying parent_path as the destination COMP, and noting the friendly error for unknown ids. This supplements the schema coverage rather than merely repeating it.

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 uses a specific verb ('Instantiate') and resource ('built-in recipe by id'), clearly distinguishing it from sibling tools like list_recipes (which merely lists) and apply_lut (which applies LUTs). It also specifies the context ('inside a COMP') and the outcome ('creates a new baseCOMP').

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 explicitly mentions 'from list_recipes', implying the prerequisite workflow, and states that the result is a ready-made network to tweak. However, it does not name explicit alternatives or 'when not to use' scenarios, so it falls short of a 5.

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

apply_shader_from_vaultApply a GLSL shader from the vaultA

READ a shader note from the Obsidian vault (a glsl fragment block, optional glslvert vertex block, and optional uniforms/resolution/name frontmatter) and CREATE a GLSL TOP in TouchDesigner from it. Side effect is node creation in TD, not file writes. Use this to apply a shader you keep in the vault; to supply shader code inline instead, use create_glsl_shader. Returns the created GLSL TOP (same result as create_glsl_shader). Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the GLSL TOP (defaults to the note's frontmatter `name`, else 'glsl1').
noteYesShader note: a vault-relative path, or a name resolved against the Shaders/ folder.
parent_pathYesParent COMP to create the GLSL TOP inside.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint: false, destructiveHint: false), the description clarifies that the side effect is node creation in TD, not file writes, and that it returns the created GLSL TOP. It also notes the vault path requirement, adding useful behavioral context.

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 concise, front-loaded with the primary action, and each sentence adds value—covering source, side effect, alternative, return value, and prerequisite. No filler or repetition.

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?

With annotations, full schema coverage, and a description that includes the side effect, return value, and alternative tool, the description is complete for an agent to select and invoke the tool correctly. No output schema exists, but the description states what is returned.

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 baseline is 3. The description adds context about the shader note format but does not add significant new meaning to the individual parameters beyond what the schema already provides (e.g., note as path or name).

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 clearly states the tool's action: read a shader note from the Obsidian vault and create a GLSL TOP in TouchDesigner. It specifically names the vault as the source and distinguishes itself from create_glsl_shader, which supplies inline code.

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

Usage Guidelines5/5

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

Explicit guidance is provided: 'Use this to apply a shader you keep in the vault; to supply shader code inline instead, use create_glsl_shader.' Also mentions the side effect (node creation) and the prerequisite (configured TDMCP_VAULT_PATH).

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

arrange_networkArrange network layoutA

Tidy an existing network into a readable left→right data-flow layout, or use layout_mode=explicit for one bounded, atomic exact-coordinate mutation with stale-context checks, readback and rollback. Annotation-aware automatic layout remains available, and omission of layout_mode preserves the legacy response. It never adds, deletes, or rewires nodes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesCOMP whose children to arrange, e.g. '/project1' or a container path.
positionsNoExplicit mode only: normalized absolute child path to exact [x, y] coordinates.
recursiveNoAlso arrange the nodes inside nested COMPs (each network is tidied on its own).
layout_modeNoKeep automatic layout by default, or place exact coordinates atomically.auto
target_sourceNoExplicit mode only: use the supplied paths or compare them with active selection.
include_dockedNoMove each node's docked DATs (e.g. GLSL *_pixel or callbacks DATs) with it by the same delta, like an interactive drag. Set false to reposition only the nodes themselves.
idempotency_keyNoExplicit mode only: stable response-loss recovery key.
annotation_awareNoTreat each annotation and the operators it encloses as one layout unit. Uses structured bridge routes and never raw Python.
annotation_paddingNoPadding in network-editor units when resize_annotations is enabled.
resize_annotationsNoWith annotation_aware, resize non-empty annotation bounds to the enclosed content plus annotation_padding.

TDQS

A4.6/5.0
Behavior5/5

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

The description adds substantial behavioral detail beyond the annotations: it discloses that explicit mode is atomic, bounded, has stale-context checks, readback, and rollback. It also clarifies the tool is non-destructive (never adds/deletes/rewires nodes), which complements the destructiveHint=false annotation. This significantly helps an agent predict side effects.

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 exceptionally concise: two sentences that front-load the primary purpose, then cover the explicit mode's key traits, legacy behavior, and safety guarantee. Every sentence provides essential information without any redundant filler.

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 tool with 10 parameters and complex behavior, the description covers the core behavioral aspects (modes, atomicity, non-destructive guarantee) and references the legacy response. The schema handles individual parameter details, so the description does not need to echo them. While it does not spell out the return format, no output schema exists and the description gives enough context for selection and safe invocation.

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 description coverage is 100%, so the baseline is 3. The description adds value by explaining the semantics of layout_mode (explicit atomic mutation vs automatic) and mentions annotation-aware layout, which maps to the annotation_aware parameter. While it doesn't describe every parameter, it enriches understanding of the key mode-switching parameter.

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 clearly states the tool tidies an existing network into a readable left→right data-flow layout, and also explains the alternative explicit coordinate mode. It distinguishes itself from sibling tools by explicitly stating it never adds, deletes, or rewires nodes, which differentiates it from connect/disconnect/rebuild tools.

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 provides clear context for when to use automatic vs explicit layout modes, and notes that omitting layout_mode preserves the legacy response. It implies when not to use the tool (for rewiring actions) by stating it never rewires nodes, but does not explicitly name alternative tools for those cases.

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

atem_switcher_controlATEM switcher controlA

Create an OSC control preset for an ATEM switcher routed through atemOSC, Bitfocus Companion, or another OSC relay. This does not use the Blackmagic SDK directly; it builds an offline-safe TouchDesigner OSC matrix for cut/auto/FTB and program/preview input selection.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoatemOSC, Companion, or OSC relay host/IP.127.0.0.1
nameNoName of the ATEM control container COMP.atem_switcher_control
portNoOSC receive port for atemOSC/Companion/relay.
activeNoStart OSC sending immediately.
inputsNoSwitcher input count to expose.
parent_pathNoParent COMP to build the ATEM control preset in./project1

TDQS

A4.2/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations by clarifying that it does not use the Blackmagic SDK directly, builds an offline-safe matrix, and includes specific functions (cut/auto/FTB, program/preview selection). This is useful since annotations only indicate non-read-only, non-destructive, and open-world hints. No contradiction.

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 two concise sentences. The first sentence states the primary action and routing options, the second clarifies the technical approach and scope. No filler or redundancy.

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 six parameters fully described in the schema and no output schema, the description explains the tool's purpose, method (OSC relay), and key capabilities. It is complete enough for an agent to understand what the tool does and when to use it, though it could briefly mention the 'inputs' parameter's effect on the created matrix.

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 does not add specific parameter semantics beyond what the schema already provides for host, port, inputs, etc. It mentions 'cut/auto/FTB and program/preview' which implies input selection but does not elaborate on parameter syntax or constraints beyond the schema.

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 clearly states the tool's function: 'Create an OSC control preset for an ATEM switcher routed through atemOSC, Bitfocus Companion, or another OSC relay.' It specifies the verb (create), the resource (OSC control preset), and distinguishes itself from direct SDK tools and sibling tools like 'connect_blackmagic_atem' by emphasizing it builds an offline-safe TouchDesigner OSC matrix.

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 provides clear context for when to use this tool: when routing through atemOSC, Companion, or another OSC relay, and when you need an offline-safe preset without SDK access. It does not explicitly name alternatives or exclusions, but the context is sufficiently clear to guide selection.

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

attach_docs_as_assetsAttach docs as assetsA
Destructive

Copy documentation files into a package and register them in its manifest's docs list. Use after make_portable_tox to bundle a README or usage notes with a component so they travel with it; writes into the package folder (destructive).

ParametersJSON Schema
NameRequiredDescriptionDefault
docsNo
asset_dirNodocs
help_snapshotNoAttach an exact-build installed OfflineHelp snapshot for the packaged TOX.
manifest_pathYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, but the description adds that the tool 'writes into the package folder (destructive)' and registers docs in the manifest, specifying exactly what gets modified. This goes beyond the annotation and provides useful behavioral context with no contradiction.

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 two sentences, action-first, with usage context and a destructive warning. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While purpose and usage are clear, the description leaves significant gaps around parameter semantics, especially for the help_snapshot object and the expected format of docs paths. With no output schema and only 25% schema coverage, an agent lacks sufficient detail to confidently invoke the tool with all parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, and the description does not explain the meaning of docs, asset_dir, or manifest_path beyond the vague 'documentation files.' It fails to compensate for the low schema coverage with parameter-level guidance.

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 states 'Copy documentation files into a package and register them in its manifest's docs list,' which is a specific verb+resource combination. It distinguishes the tool from siblings by explicitly referencing make_portable_tox and the package manifest context.

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 explicitly says 'Use after make_portable_tox' and explains the intended outcome (so docs travel with the component), giving clear context. However, it does not specify when not to use the tool or mention alternatives like bundle_dependencies or collect_project_assets.

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

audio_fingerprint_to_visualAudio fingerprint → visualA

Sample a few seconds of audio inside TouchDesigner, compute a 4-feature fingerprint (tempo, spectral centroid, onset density, dynamic range), run a deterministic heuristic mapping to pick a matching Layer 1 generator (create_glitch / create_audio_reactive / create_kaleidoscope / create_feedback_tunnel / create_feedback_network / create_gpu_particle_field), and dispatch it with parameters tuned to the fingerprint. Default audio_source='synthetic' to avoid macOS mic-permission hangs. dry_run=true returns the chosen mapping without building. apply_top_op composites the result over an existing TOP.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoWhen true: sample the audio, classify, and return the chosen mapping + params without instantiating the generator.
sample_secNoSample window length in seconds the fingerprint is averaged over.
parent_pathNoParent COMP for the transient sampler and the dispatched generator./project1
apply_top_opNoOptional path of a TOP to composite the chosen generator's output over (via a compositeTOP('over') built in apply_top_op's parent).
audio_sourceNoAudio source for fingerprinting. Defaults to 'synthetic' (a gated tone at the global tempo) because 'device' can hang TD on a macOS mic-permission modal — same rationale as detect_tempo.synthetic
force_familyNoOverride the heuristic and force a family; params still tuned from the fingerprint.auto
audio_file_pathNoAudio file path. Required when audio_source='file'.
expose_controlsNoForwarded to the dispatched generator's expose_controls flag.
existing_chop_pathNoPath of an existing audio CHOP. Required when audio_source='existing_chop'. Pulled in via Select CHOP (cross-container wires fail).

TDQS

A4.4/5.0
Behavior5/5

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

The description reveals important behavioral traits beyond annotations: it samples audio (potential latency), uses a deterministic heuristic, can hang on macOS if 'device' is used (mitigated by default), and supports dry_run to avoid building. It also explains the composite behavior of apply_top_op. These details exceed the sparse readOnlyHint/destructiveHint annotations.

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

Conciseness4/5

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

The description is three sentences and effectively packs the entire workflow, key defaults, and important caveats. The first sentence is long but densely informative; while it could be split for readability, it contains no fluff. It earns a 4 for appropriate brevity despite the complexity.

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 9-parameter orchestrator with no output schema, the description gives a complete high-level story: sample audio → analyze → map → dispatch. It also clarifies the most critical behaviors (dry_run, apply_top_op, default audio_source). Schema covers the remaining parameter details, so the combination is sufficient.

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 baseline is 3. The tool description adds minimal parameter semantics beyond what's already in the schema; it mentions audio_source default, dry_run, and apply_top_op, but the schema already documents all parameters with similar or greater detail. No significant new meaning is added.

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 uses specific verbs and a clear workflow: samples audio, computes a 4-feature fingerprint, runs deterministic heuristic mapping, and dispatches a generator. It explicitly lists the candidate generators, distinguishing it from siblings like create_glitch or create_audio_reactive by being an automatic dispatcher.

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 implies its primary use case: automatically select a generator based on audio fingerprint. It gives practical context (default synthetic source to avoid mic-permission hangs, dry_run for testing, apply_top_op for compositing) but doesn't explicitly state exclusions vs alternatives. The list of possible generators hints at when it's appropriate, though it stops short of saying 'use this instead of manual selection.'

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

author_script_operatorAuthor Script operatorA
Destructive

Scaffold a Script CHOP/DAT/SOP/TOP with a ready-to-edit onCook(scriptOp) stub and optional custom parameters. Creates the Script op plus its companion callbacks DAT, writes a per-family stub (chan/row/point/numpy) — or your on_cook_body — and appends Float/Toggle/Str custom pars inferred from each default's type. Returns {op_path, callbacks_path, params_added, warnings}. Note: Script ops only cook when something requests them, so a paused timeline + no downstream consumer means no cook (not a bug).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the Script op; TD auto-names when omitted.
familyYesScript op family — selects the operator type and the onCook stub signature.
parent_pathNoParent COMP to create the Script op inside./project1
on_cook_bodyNoOptional body for onCook(scriptOp); injected verbatim. When omitted a per-family no-op stub is used.
custom_paramsNoCustom parameters to append on the Script op's 'Custom' page.

TDQS

A4/5.0
Behavior4/5

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

No contradiction with annotations (readOnlyHint=false, destructiveHint=true). The description adds valuable context beyond annotations: it creates the op plus callbacks DAT, returns a structured dict, and warns about cooking behavior. However, it doesn't clarify what destructive actions might occur (e.g., overwriting existing ops), which would be useful given the destructiveHint.

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 lean and well-structured: it opens with the action and resource, lists key outputs, and closes with a behavioral caveat. Every sentence serves a purpose without redundancy.

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 the tool's moderate complexity (5 params, no output schema), the description covers the main workflow, return values, and a key runtime nuance. It lacks details on edge cases like existing node overwrites or the meaning of 'warnings', but overall it is sufficiently complete for an agent to use correctly.

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 baseline is 3. The description adds no new parameter semantics beyond what the schema already explains (e.g., type inference for custom_params, on_cook_body injection). It mostly restates schema info.

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 clearly states the tool scaffolds a Script CHOP/DAT/SOP/TOP with an onCook stub and custom parameters. It distinguishes itself from sibling creation tools by detailing the companion callbacks DAT and per-family stub generation.

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?

The description implies usage by describing the creation process, but does not explicitly mention when to use this tool versus alternatives like create_td_node or add_custom_parameters. The cooking note provides some context, but no clear exclusions or 'when-not-to-use' guidance.

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

auto_repair_loopAuto-repair loop (bounded)A

Driver: scan a subtree for cook errors, cluster them, route each cluster to the right fix (calls repair_network for structural/expression/flag issues; surfaces fix_shader / fix_reactivity as prompt hand-offs the agent must execute next turn), re-check, and iterate until clean, no-progress (stalled), or max_iterations (exhausted). Dry-run by default — one planning iteration, no writes. The loop CANNOT fix shaders or dead reactivity itself; it points the agent at them via recommended_prompts. Returns {status, iterations[], errors_before, errors_after, remaining[], recommended_prompts[], warnings}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoRoot of the subtree to scan + repair./project1
dry_runNoWhen true (default), PLAN routes only (no writes). Propagated to repair_network; the loop runs exactly one iteration in dry-run mode.
min_progressNoConvergence threshold — if an iteration clears fewer than this many errors, the loop stops (stalled).
allowed_fixersNoSubset of fixers the loop may route to. Drop 'repair_network' to make the loop advisory only (prompts + remaining, no writes).
max_iterationsNoHard cap on outer iterations — each iteration = one scan + one route + one apply.
include_warningsNoWhen true, treat 'warning' severity errors as in-scope. Default ignores warnings (no-op until the bridge surfaces severity).

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only state readOnly=false, openWorld=true, destructive=false. The description adds substantial behavioral detail: dry-run does no writes and runs exactly one planning iteration, non-dry-run propagates to repair_network, loop stops on clean/stalled/exhausted, and it returns a structured result. No contradiction with 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 dense but well-structured: it starts with an overview, then adds dry-run behavior, a key limitation, and the return envelope. Each sentence contributes non-redundant information without bloat.

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?

Even with no output schema, the description fully specifies the return shape {status, iterations[], errors_before, errors_after, remaining[], recommended_prompts[], warnings} and explains termination conditions and fixer hand-offs. For a complex orchestrator, this is sufficient for an agent to invoke and interpret results.

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 100% with already detailed parameter descriptions, so baseline is 3. The description enriches meaning by tying dry_run to one planning iteration with no writes, allowed_fixers to advisory-only behavior, and max_iterations to the 'exhausted' termination state.

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 'Driver: scan a subtree for cook errors...' and clearly describes a bounded iterative repair loop. It explicitly specifies the fixers it calls (repair_network) and those it only hands off (fix_shader/fix_reactivity), distinguishing it from sibling fix and repair tools.

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

Usage Guidelines5/5

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

It states when the loop is appropriate (subtree cook errors), its iteration bounds, dry-run default, and explicitly notes that shaders/dead reactivity are not fixed directly but surfaced via recommended_prompts for the agent to execute next turn. This gives clear routing guidance versus repair_network and fix_shader/fix_reactivity.

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

auto_tag_library_assetAuto-tag a vault library assetA

Inspect a captured library asset (a vault recipe/component note, or a live TD COMP) and emit a suggested tag set, difficulty, and one-line description from a deterministic operator-family heuristic; with write:true, merge the suggestion into the note's frontmatter (preserving '*'-pinned user tags). Use this to backfill consistent tags across a library so browse_vault_library can find by category. Requires a configured TDMCP_VAULT_PATH; target='td_comp' additionally requires the bridge.

ParametersJSON Schema
NameRequiredDescriptionDefault
writeNoWhen false, returns the suggestion as a dry-run. When true, merges the suggestion into the note's frontmatter and rewrites it.
targetNoWhat to scan. 'vault_note' reads an existing note via the vault adapter; 'td_comp' captures a live COMP through the bridge.vault_note
max_tagsNoHard cap on suggested tag count after ranking.
comp_pathNoCOMP path captured when target='td_comp'./project1
note_pathNoVault-relative path of the note to tag (e.g. 'Recipes/audio_pulse.md'). Required when target='vault_note'; optional for 'td_comp'.
category_hintNoHelps frontmatter shape; 'auto' infers from the note location (Recipes/* vs Components/*).auto
min_confidenceNoDrop suggestions whose score falls below this threshold.
include_difficultyNoEmit a 'beginner'|'intermediate'|'advanced' estimate from node count + complexity.
include_descriptionNoGenerate a one-line description; only fills frontmatter.description when it is currently empty (never overwritten).
overwrite_existing_tagsNoWhen false, union with existing frontmatter.tags. When true, replace them (user-pinned tags prefixed '*' are always kept).

TDQS

A4.7/5.0
Behavior5/5

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

Building on annotations (readOnlyHint=false, destructiveHint=false), the description adds meaningful behavioral specifics: write mode merges only when write:true, preserves '*'-pinned user tags, and uses a deterministic heuristic. It also discloses conditional requirements for target types, going well beyond the structured 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?

Two sentences, front-loaded with the core purpose, then the use case and prerequisites. No wasted words; every clause contributes to understanding. Excellent density without becoming a wall of text.

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 10-parameter tool with no output schema, the description covers the essential behavior (what it emits), the primary use case, and environmental prerequisites. The detailed parameter descriptions in the schema fill in the rest, so the description is complete enough for an agent to select and invoke the tool confidently.

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 description coverage is 100%, so the schema already explains each parameter. The description adds marginal value by clarifying the write flag's effect and target-specific bridge requirements. This is a slight bump above baseline without duplicating the schema.

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 clearly states the tool 'inspects a captured library asset' and emits a 'suggested tag set, difficulty, and one-line description', with an optional write mode that merges into frontmatter. It differentiates itself by naming the downstream consumer 'browse_vault_library' and by the 'auto-' prefix in the name, distinguishing it from sibling tagging/search tools.

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 explicitly says 'Use this to backfill consistent tags across a library so browse_vault_library can find by category', giving a clear when-to-use directive. It also states prerequisites (TDMCP_VAULT_PATH, bridge for td_comp). It does not provide when-not-to-use or explicit alternative tools, but the directive is strong enough for a 4.

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

auto_ui_from_paramsAuto UI from parametersA

Generate a performable control panel from an existing node/COMP's primitive parameters. It reads source_path, infers sliders/toggles/text fields, appends them as custom parameters on comp_path (default source_path), and optionally binds each control back to the source parameter. Use when a generated component has useful parameters but no playable UI yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
bindNoBind generated controls back to source_path parameters.
pageNoCustom-parameter page name for the controls.Auto UI
excludeNoParameter names to skip.
comp_pathNoCOMP that receives the generated control panel. Defaults to source_path.
parametersNoOnly expose these parameter names. Omit to infer useful primitive parameters.
source_pathYesNode or COMP whose parameters should become controls.
max_controlsNoMaximum inferred controls when parameters is omitted.

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses concrete mutation behavior: 'appends them as custom parameters on comp_path (default source_path), and optionally binds each control back to the source parameter.' It also reveals inference behavior ('infers sliders/toggles/text fields'). Annotations only state non-readonly/non-destructive, so the description adds meaningful behavioral context beyond them, though it doesn't cover edge cases like existing controls or overwriting.

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?

Three sentences, all dense and front-loaded. The first sentence states the core action, the second explains mechanics, and the third gives usage context. No filler or redundancy.

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 7 parameters and no output schema, the description covers the core workflow (read, infer, append, bind) and primary use case. It doesn't specify return values or behavior with pre-existing controls, but within the open-world context it is sufficiently complete for an agent to decide when and how to invoke it.

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 coverage is 100%, so the baseline is 3. The description adds context for source_path (read from), comp_path (defaults to source_path), and bind (optional binding), but does not elaborate on page, exclude, parameters, or max_controls, which are already fully documented in the schema.

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 starts with a specific verb and resource: 'Generate a performable control panel from an existing node/COMP's primitive parameters.' It clearly distinguishes this tool from siblings like create_control_panel by emphasizing automatic inference from existing parameters and optional binding.

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 final sentence gives explicit usage context: 'Use when a generated component has useful parameters but no playable UI yet.' This provides clear guidance but does not state explicit exclusions or name alternatives, making it a clear context without exhaustive exclusions.

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

batch_operationsBatch operationsA

Run an ordered list of create / connect / setParam operations in one call (fail-forward, per-operation warnings; not transactional). Exposes the network builder as a general primitive — distinct from set_parameters_batch, which only sets parameters. Names created earlier can be referenced by later connect/setParam operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationsYesOrdered list of create / connect / setParam operations. Runs in order, fail-forward: a failing operation becomes a warning and the rest still run (not transactional). Names created earlier can be referenced by later connect/setParam operations.
default_parentNoParent path for `create` operations that omit `parent_path`./project1

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsYes
warningsYes
default_parentYes

TDQS

A4.5/5.0
Behavior5/5

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

The description discloses critical behavioral traits beyond annotations: 'fail-forward, per-operation warnings; not transactional' and 'Names created earlier can be referenced by later connect/setParam operations.' These are not derivable from the readOnlyHint/destructiveHint annotations and are essential for the agent to predict partial failure behavior and cross-referencing semantics.

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 two sentences, front-loaded with the core purpose, followed immediately by the key behavioral caveat and a sibling distinction. Every sentence earns its place with no filler or redundant repetition of schema details.

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 tool with a complex nested schema and multiple operation types, the description covers all essential aspects: what it does, the non-transactional behavior, name referencing, and relationship to a similar tool. Since an output schema exists, not explaining return values is acceptable. The description fully equips an agent to select and invoke the tool correctly.

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?

The input schema already provides comprehensive descriptions for all parameters (100% coverage), including the operations array's ordering and fail-forward behavior. The description reinforces these points but adds no new parameter-level details. The baseline of 3 is appropriate given the schema's completeness; the description does not need to compensate.

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 states exactly what the tool does: 'Run an ordered list of create / connect / setParam operations in one call.' It clearly identifies the resource (network builder) and the scope of operations. It also distinguishes itself from a sibling tool ('distinct from set_parameters_batch'), leaving no ambiguity about its purpose.

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 explicitly names an alternative tool (set_parameters_batch) and explains the difference, which helps with selection. It implies use for multi-step network construction via 'Exposes the network builder as a general primitive,' but doesn't explicitly state when not to use it (e.g., for single operations). This is clear context but lacks formal exclusions.

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

bind_audio_reactiveMake a component react to audioA

Make a whole COMP react to the music in one call — the core VJ move. Point target at a COMP with numeric custom-parameter knobs and source_chop at an audio-feature CHOP (e.g. an extract_audio_features Null carrying level/bass/mid/treble), and each knob is switched to expression mode tracking an audio band. Omit mappings to auto-map knobs by name heuristic (bright/level/opacity→level, scale/size/zoom→bass, hue/color→treble, speed/rate/rot→mid; unrecognized knobs are skipped), or pass explicit param→channel bindings with per-binding scale/offset. By default appends a master 'Reactivity' float knob (0–2, default = intensity) that scales every binding so the artist can dial the whole network's reactivity from one control. Fail-forward: a missing source CHOP, an absent channel, or an already-bound parameter are warnings, not failures — only a missing/non-COMP target is fatal. This tool only WIRES an existing COMP to an existing CHOP, building no nodes: produce the feature CHOP with extract_audio_features (or create_spectrum) first, use create_audio_reactive when you want a whole new reactive network with its own visual, and bind_to_channel for finer single-parameter control.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesCOMP whose numeric custom parameters (knobs) should react to the music.
mappingsNoExplicit param→channel bindings. Omit to auto-map the target COMP's numeric custom parameters by name heuristics.
intensityNoMaster reactivity amount (0=off, 1=normal, 2=strong) — scales every binding.
add_masterNoAppend a 'Reactivity' master float knob (0-2, default = intensity) on the target COMP that scales every binding.
source_chopYesCHOP carrying audio feature channels (e.g. an extract_audio_features Null). Expected channels: level, bass, mid, treble.

TDQS

A5/5.0
Behavior5/5

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

The description discloses key behavioral traits beyond the annotations: it switches knobs to expression mode, appends a master knob, and fails forward with warnings rather than errors. It explicitly states that only a missing/non-COMP target is fatal, and that missing CHOPs/channels/already-bound parameters are non-fatal warnings. This is rich behavioral context not present in the minimal 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 long but every sentence earns its place, covering purpose, mechanism, parameters, error behavior, and alternatives. It is front-loaded with the core value proposition and structured logically from how-to to edge cases to sibling tool distinctions.

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?

The description is complete for this mutating tool with 5 params and no output schema. It covers prerequisites, exact parameter semantics, auto-mapping heuristics, master knob behavior, fail-forward error handling, and explicit alternatives to sibling tools. Nothing important appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the schema's 100% coverage, detailing the auto-mapping heuristic (bright/level/opacity→level, scale/size/zoom→bass, hue/color→treble, speed/rate/rot→mid) and clarifying the interplay between intensity and add_master (master knob scales every binding). It also explains the fail-forward behavior for missing channels, which is not in the schema.

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 clearly states the tool's purpose: 'Make a whole COMP react to the music in one call' and explains the mechanism (point target at a COMP, source_chop at an audio CHOP). It distinguishes itself from siblings by explicitly naming create_audio_reactive and bind_to_channel as alternatives for different needs.

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

Usage Guidelines5/5

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

The description gives explicit usage guidance: 'This tool only WIRES an existing COMP to an existing CHOP, building no nodes' and directs users to produce the feature CHOP first, then use this tool. It clearly states when to use alternatives: create_audio_reactive for a whole new network, bind_to_channel for finer single-parameter control.

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

bind_to_channelBind parameter to channelA

Drive one or more node parameters from a CHOP channel by expression — the link that makes a visual react. Point it at an audio_features channel (bass/mid/treble/level) or a tempo_sync channel (ramp/pulse/beat) with a scale and offset, and each target parameter tracks that signal live. This is how you wire extract_audio_features / create_tempo_sync into a visual system. Optionally add attack/release smoothing (in seconds) — or a single smooth time — to insert a Lag CHOP between the channel and the parameter so reactivity follows a clean envelope instead of flickering on raw audio (e.g. a fast attack + slow release for a punchy hit that decays smoothly).

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleNoMultiply the channel value (mapping gain).
attackNoSmoothing rise time in seconds — how slowly the bound value follows the channel UP. 0 = instant (no smoothing on the way up). A small attack with a larger release gives a snappy hit that decays smoothly (envelope follow).
offsetNoAdd to the scaled value (mapping offset).
smoothNoConvenience: symmetric smoothing time in seconds applied to BOTH rise and fall (sets attack=release=smooth). Use this for simple low-pass-style de-jitter; use attack/release separately for an envelope follower.
channelYesChannel name to read from the source CHOP (e.g. 'bass', 'level', 'ramp', 'pulse').
releaseNoSmoothing fall time in seconds — how slowly the bound value follows the channel DOWN. 0 = instant (no smoothing on the way down). Set release > attack to remove flicker while keeping transients punchy.
targetsYesParameters to drive, each written as 'nodePath.parName' (e.g. '/project1/sys/transform1.scale'). Each is switched to expression mode so it tracks the channel live.
source_chopYesPath of the CHOP that carries the driving channel (e.g. an audio_features Null).
smoothing_containerNoWhere to create the Select+Lag smoothing CHOPs when smoothing is active; defaults to the first target's parent network. Ignored when no smoothing is requested.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnly=false, destructive=false), the description discloses the key mutation: 'Each is switched to expression mode so it tracks the channel live.' It also details the smoothing mechanism ('insert a Lag CHOP between the channel and the parameter'). This adds important behavioral context that annotations do not provide.

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

Conciseness4/5

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

The description is two sentences but is somewhat long. However, each clause contributes meaningful information: purpose, typical sources, smoothing options, and a concrete example. The structure front-loads the core action ('Drive one or more node parameters...') then elaborates, making it 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 a tool with 9 parameters and no output schema, the description covers purpose, usage context, parameter semantics, and side effects. It doesn't discuss potential failure modes or prerequisites beyond pointing at a source CHOP, but for this complexity it is quite complete.

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 100%, so baseline is 3. The description adds extra meaning by explaining how smoothing parameters work together ('fast attack + slow release for a punchy hit that decays smoothly') and explains the 'smooth' convenience parameter as symmetric attack/release. This adds value beyond the schema's individual parameter descriptions.

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 clearly states the tool's function: 'Drive one or more node parameters from a CHOP channel by expression' and its purpose ('the link that makes a visual react'). It also distinguishes from sibling tools by explicitly naming the upstream tools it connects: 'This is how you wire extract_audio_features / create_tempo_sync into a visual system.'

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 provides clear when-to-use context by pointing at specific channel types ('audio_features channel (bass/mid/treble/level) or a tempo_sync channel') and referencing upstream tools. It does not explicitly state when not to use or name alternative tools, so it stops short of full explicit exclusions.

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

bind_vault_textBind a Text DAT to a vault noteA

CREATE a Text DAT in TouchDesigner whose file parameter points at a vault note, so the note's text loads into TD (and, with sync:true, stays live as you edit it in Obsidian) — turning the vault into the text/lyrics source for your visuals. Side effect is node creation in TD plus reading the note file; it does not write to the vault. Wire the DAT into a Text TOP to render it. Returns the DAT path, the resolved note, the absolute file path, and whether sync is on. Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the Text DAT (defaults to a slug of the note).
noteYesVault-relative note to read into TD (lyrics, poetry, any text content).
syncNoKeep the DAT synced to the file, so edits in Obsidian show up live in TD.
parent_pathYesParent COMP to create the Text DAT inside.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond annotations, the description details side effects (node creation + file read), explicitly states it does not write to the vault, explains sync behavior, and lists return values. This adds significant context over the readOnlyHint/destructiveHint/openWorldHint 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?

Concise at 4 sentences, action-first opening, includes side effects, usage, returns, and requirement without extraneous detail. Every sentence contributes.

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 tool without an output schema, the description adequately explains return values, side effects, and prerequisites. It covers the full workflow and boundaries, making it sufficient for an agent to invoke correctly.

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 covers 100% of parameters with descriptions, so baseline is 3. The description does not add much parameter-level meaning; it mentions sync's live-editing effect, but the schema already states that. No new parameter insights are provided.

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 'CREATE a Text DAT in TouchDesigner whose file parameter points at a vault note', specifying the exact action and resource. It clearly differentiates from sibling tools like create_td_node or edit_dat_content by focusing on vault-note-binding behavior.

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?

Provides clear context: use this to turn the vault into text/lyrics source for visuals, and mentions a workflow step (wire into Text TOP). It notes prerequisites (TDMCP_VAULT_PATH) and boundaries (does not write to vault), but does not explicitly name alternative tools or when-not-to-use conditions.

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

blender_scene_importBlender scene importA

Create a self-contained TouchDesigner render scaffold for a Blender scene or Blender-exported asset: File In SOP (or fallback primitive), Geometry COMP, PBR material, environment/key lights, Camera, Render TOP, and Null TOP output. Supports .blend/.fbx/.obj/.gltf/.glb/.usd/.usdz paths and warns when a .blend may need export from Blender first.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the generated container under parent_path.blender_scene
metallicNoPBR metallic amount. Ignored for material_mode=clay.
rotate_yNoInitial Y rotation of the imported scene in degrees.
roughnessNoPBR roughness amount.
base_colorNoRGB material base color, normalized 0..1.
scene_pathNoPath to a Blender scene or exported model file (.blend/.fbx/.obj/.gltf/.glb/.usd/.usdz). Omit to create a renderable fallback primitive.
parent_pathNoParent COMP path where the self-contained Blender import container is created./project1
import_scaleNoUniform scale applied to the imported scene geometry.
material_modeNopbr keeps metallic/roughness controls; clay uses a neutral matte material.pbr
camera_distanceNoCamera distance from the scene along Z.
expose_controlsNoExpose RotateY, CameraDistance, Scale, Metallic, and Roughness controls.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate this is a write operation (readOnlyHint=false) and non-destructive. The description adds value by disclosing that it warns when a .blend may need export from Blender first, and that it falls back to a primitive if no scene_path is provided. These behaviors go beyond what annotations convey, though it does not detail side effects like potential node creation at parent_path or any prerequisites beyond file format support.

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 two sentences, each earning its place. The first front-loads the purpose and component list; the second concisely covers formats and the warning behavior. No redundant phrases or filler, making it easy to scan and understand quickly.

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?

The tool is complex (11 parameters, no output schema), yet the description covers the main deliverable (render scaffold), supported formats, and a behavioral warning. It does not explicitly state what the tool returns (e.g., the container path), but given the rich schema and annotations, the description is reasonably complete. Missing explicit output/return information is a minor gap in an otherwise thorough description.

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 every parameter already has a meaningful description. The tool description does not add additional parameter-level semantics; it mentions supported file formats which maps to scene_path, but the schema already lists the same formats. Baseline 3 is appropriate since the schema carries the full burden and the description does not enhance it.

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 clearly states the tool's function with a specific verb ('Create') and resource ('self-contained TouchDesigner render scaffold for a Blender scene or Blender-exported asset'). It enumerates the major components (File In SOP, Geometry COMP, PBR material, lights, Camera, Render TOP, Null TOP) which distinguishes it from simple model import tools like 'import_model'. The supported file formats and caveat about .blend export further clarify its scope.

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 provides clear context: use this when you need a full render scaffold for Blender scenes or exported assets. It implies the scenario (importing Blender geometry into TouchDesigner for rendering) but does not explicitly contrast with alternatives like 'import_model' or 'create_3d_scene'. There are no exclusions or 'when not to use' notes, but the context is unambiguous enough to guide selection.

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

browse_libraryBrowse libraryA
Read-only

Browse built-in/vault recipes and optional local component packages. Read-only discovery step before instantiating a recipe (apply_recipe) or installing a package (install_library_package); returns the matching recipes and packages so an agent can pick one by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
queryNo
package_dirNo
include_recipesNo
include_packagesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
recipesYes
packagesYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it's a discovery step returning matching recipes/packages for selection, which is useful context beyond the annotations. No contradictions found.

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 two sentences with the main purpose front-loaded. The second sentence packs in usage context and output without wasting words. No redundant phrases or filler.

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?

Has an output schema, so return values are covered. The description explains the purpose, the workflow context, and what the tool returns (matching recipes/packages). Minor gaps in parameter semantics remain, but given five optional parameters and a rich output schema, the description is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the tags, query, or package_dir parameters. It only loosely maps to include_recipes/include_packages via the terms 'recipes' and 'packages'. The word 'matching' implies filtering but gives no specifics, so the description fails to compensate for the missing schema descriptions.

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 clearly states 'Browse built-in/vault recipes and optional local component packages' with a specific verb and resource. It also distinguishes this tool from apply_recipe and install_library_package by describing it as a discovery step, making its unique role obvious.

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

Usage Guidelines5/5

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

Explicitly says 'Read-only discovery step before instantiating a recipe (apply_recipe) or installing a package (install_library_package)', which clearly tells when to use this tool versus the named alternatives. It also explains the expected outcome ('returns the matching recipes and packages'), giving solid guidance.

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

browse_vault_libraryBrowse vault libraryA
Read-only

Read-only: list the vault's recipes, shaders, presets, components, and setlists with title, tags, and description so the agent can pick from the library without opening individual notes. Filter by category (kinds) and/or a substring query. Returns a flat items array and per-category counts. No TouchDesigner connection required — reads the local vault on disk. Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindsNoWhich library categories to list. 'all' lists every known category.
queryNoCase-insensitive substring filter on note title/tags.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
countsYesNumber of matched items per category.
warningsYesPer-folder read problems; browse continues on error.
vault_pathYesAbsolute path of the configured vault root.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with "Read-only". It adds valuable context: "No TouchDesigner connection required — reads the local vault on disk" and "Requires a configured TDMCP_VAULT_PATH". It also describes the return format (flat items array and per-category counts), going beyond 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, front-loaded with the primary purpose. Every sentence adds value: purpose, filtering options, and important constraints/returns. No wasted words.

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 simple list tool with two optional parameters and an existing output schema, the description is complete. It covers what the tool does, how to filter, what it returns, and the required environment variable, making it fully self-sufficient.

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 says "Filter by category (kinds) and/or a substring query", which paraphrases the schema's parameter descriptions. It adds no new syntax or format details beyond what the schema already provides.

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 clearly states the verb "list" and the resource "the vault's recipes, shaders, presets, components, and setlists" with specific fields (title, tags, description). It distinguishes from siblings by emphasizing the local vault on disk and no TouchDesigner connection needed.

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 says "so the agent can pick from the library without opening individual notes", which clarifies when to use this tool. It also notes "No TouchDesigner connection required", helping choose this over TD-connected tools. It does not explicitly name alternatives, but the context is clear.

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

build_chop_chainBuild CHOP chainA

Declarative Layer-2 builder for an ordered CHOP processing chain. Pass an ops list (type + optional name + optional params); each op[i] is wired output 0 → input 0 of op[i+1] under parent (default /project1). Per-op create/param/connect failures become warnings (fail-forward) — a partial chain still returns useful info. Tip: end the chain in a nullCHOP to make it bind_to_channel-ready.

ParametersJSON Schema
NameRequiredDescriptionDefault
opsYesOrdered list of CHOPs. Each op[i] is wired output 0 → input 0 of op[i+1].
nameYesBase name for the chain; used as a name prefix when ops omit `name`, and as the chain's reported id.
parentNoParent component path. Defaults to /project1./project1

TDQS

A4.1/5.0
Behavior4/5

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

The description reveals key behavioral traits not in annotations: fail-forward warnings, partial chain returns, and the wiring pattern. It adds useful context beyond the readOnly/destructive hints. No contradiction with 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?

Three sentences, each earning its place: purpose, usage/wiring, and failure behavior plus a tip. Front-loaded and free of fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema richly covers inputs, but with no output schema the description only vaguely says 'returns useful info' without specifying the return format. For a side-effecting builder, this is a gap, though fail-forward behavior is helpfully disclosed.

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 coverage is 100%, and the description repeats what the schema already documents (ops list structure, wiring, parent default). It adds no new param-level semantics, so a baseline score of 3 is appropriate.

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 clearly states the tool builds an ordered CHOP processing chain declaratively, identifying the resource (CHOP chain) and distinguishing it from sibling tools like build_pop_chain. The verb 'builder' plus specific 'CHOP' resource makes the purpose 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 core usage pattern (pass an ops list, wiring output 0 to input 0, parent default) and offers a practical tip about ending with nullCHOP for bind_to_channel readiness. It does not explicitly list alternative tools or when-not-to-use, but the context is clear.

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

build_pop_chainBuild POP chainA

Declarative Layer-2 builder for an ordered POP (Point OPerator) chain. Pass a chain list of { type, name?, params?, extra_inputs? } entries; each chain[i] is wired output 0 → input 0 of chain[i+1] under parent (default /project1). Per-kind safe defaults are applied before user params; unknown par names become warnings (fail-forward). Multi-input POPs (merge, copy, feedback, proximity, switch, blend) accept extra_inputs paths wired into input 1, 2, …. POPs are Experimental — result carries unverified marker. Tip: end the chain in a null_pop for a stable handoff to Wave-3 render rigs.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBase name; used as prefix for auto-named ops and as the chain id.
chainYesOrdered POP chain. chain[i] is wired output 0 → input 0 of chain[i+1]; extra_inputs of chain[i] are wired into input 1, 2, …
parentNoParent COMP path (default '/project1'). Same semantic as build_chop_chain./project1

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description reveals that unknown parameter names are tolerated with warnings (fail-forward), that results carry an 'unverified' experimental marker, and that nodes are wired under a specified `parent`. These are useful behavioral details not encoded in 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 roughly 100 words, front-loaded with the core purpose, and every sentence earns its place: structure, defaults, multi-input handling, experimental status, and a practical tip. There is no redundant filler.

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 complex tool with 77 POP types and multi-input wiring, the description covers the essential behavioral model, wiring semantics, failure mode (warnings), and result marker. It does not describe the return value structure or re-run/overwrite behavior, but the annotations and schema mitigate those gaps. Overall it is a solid, near-complete description.

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 100%, so the baseline is 3, but the description adds meaning by stating that per-kind safe defaults are applied before user params and that unknown names become warnings. This goes beyond the schema's generic 'Par overlay' explanation and helps the agent understand how to handle arbitrary params.

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+resource: 'Declarative Layer-2 builder for an ordered POP (Point OPerator) chain.' It clearly distinguishes itself from sibling tools like build_chop_chain by explicitly targeting POPs, and the chain-building mechanism is precisely described.

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 provides concrete usage instructions: pass a `chain` list, each entry wired output 0 → input 0 of the next, with `extra_inputs` for multi-input POPs, and a tip to end with `null_pop`. However, it does not explicitly contrast with alternative tools or state when not to use it, so it lacks explicit exclusions.

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

build_sop_geometryBuild SOP geometry chainA

Declarative Layer-2 builder for an ordered SOP geometry chain. Pass an ops list (type + optional name + optional params); each op[i] is wired output 0 → input 0 of op[i+1] under parent (default /project1). Per-op create/param/connect failures become warnings (fail-forward) — a partial chain still returns useful info. Tip: end the chain in a nullSOP for a stable handoff to Geometry COMPs, SOP-to-CHOP, or convertSOP. Use connect_nodes for multi-input fan-in (e.g. mergeSOP, copySOP template).

ParametersJSON Schema
NameRequiredDescriptionDefault
opsYesOrdered list of SOPs. Each op[i] is wired output 0 → input 0 of op[i+1].
nameYesBase name for the chain; used as a name prefix when ops omit `name`, and as the chain's reported id.
parentNoParent component path. Defaults to /project1./project1

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate a non-read-only, non-destructive operation. The description adds valuable behavioral disclosure: per-op failures become warnings (fail-forward), partial chains still return useful info, and wiring occurs under a configurable parent. It does not detail what the returned 'useful info' contains, but this is a minor gap given the annotation coverage.

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 compact and well-structured: a one-sentence purpose, a concise explanation of the wiring pattern, a note on failure behavior, a useful tip, and an explicit alternative. Every sentence adds value without redundancy or fluff.

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 the schema covers all parameters and the description explains the wiring, failure handling, and best-practice tip, the tool is well contextualized. The only notable omission is a precise description of the return value (especially since there is no output schema), though 'returns useful info' partially addresses this.

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?

The input schema has 100% parameter description coverage, so the description does not need to explain each parameter in depth. It reinforces that `ops` contains type/name/params and mentions the parent default, but adds little beyond the schema. The special string-resolution behavior for params is already documented in the schema.

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 clearly identifies the tool as a 'Declarative Layer-2 builder for an ordered SOP geometry chain' with a specific verb ('builds') and resource ('SOP geometry chain'). It explains the linear wiring model (op[i] output 0 → op[i+1] input 0) and explicitly contrasts with `connect_nodes` for multi-input fan-in, distinguishing it from sibling tools.

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

Usage Guidelines5/5

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

The description states when to use this tool (for ordered, linear SOP chains) and explicitly directs users to `connect_nodes` for multi-input scenarios, serving as a clear when-not/alternative. The tip about ending with `nullSOP` for stable handoff adds practical usage context.

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

bundle_dependenciesBundle dependencies (self-contained package)A
Destructive

Make a COMP self-contained: recursively scan its subtree for external file references (movie/image files, fonts, LUTs, externaltox links — reusing the collect_project_assets scan), COPY each existing asset into /assets/, rewrite each referencing parameter in the LIVE network to the copied relative path (assets/), then save the COMP as a .tox beside its assets with a tdmcp-component manifest. The result is a folder you can move to another machine and open without broken links. Delta vs make_portable_tox (which saves the .tox only, leaving external assets behind) and collect_project_assets (which only reports refs). Rewriting mutates the live network — set rewrite_refs=false to copy-and-report without touching parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoPackage/.tox stem. Defaults to the last path segment of comp_path.
out_dirYesLocal folder to write the self-contained package into (created if missing). The .tox and an assets/ subfolder land here.
comp_pathYesFull path of the COMP subtree to bundle (assets are gathered recursively).
rewrite_refsNoWhen true, rewrite each referencing parameter in the LIVE network to the copied relative path (assets/<file>) BEFORE saving the .tox, so the saved component points at the bundled copies. When false, assets are copied but the network is left untouched (a report-and-copy pass).
include_missingNoIf true, still record assets whose source file is missing on disk (they cannot be copied and their ref is not rewritten). If false, missing refs are skipped with a warning.

Output Schema

ParametersJSON Schema
NameRequiredDescription
compYesEchoed COMP path that was bundled.
out_dirYesAbsolute package folder.
skippedYesRefs that were not bundled (missing source, or duplicate collision).
tox_pathYesAbsolute path of the saved .tox.
warningsYes
tox_bytesYesSize of the saved .tox in bytes, or null if unknown.
copied_countYes
assets_copiedYesEvery external file that was copied into the package.
manifest_pathYesAbsolute path of the tdmcp-component.json manifest written.

TDQS

A4.9/5.0
Behavior5/5

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

The annotations already flag destructiveHint=true and readOnlyHint=false, but the description goes further by disclosing exactly what is mutated (parameters in the live network), what is created (assets folder, .tox, manifest), and how missing files are handled. No contradiction with 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?

Every sentence in the description carries essential, non-redundant information. It is front-loaded with the main purpose, then covers output structure, sibling distinctions, and a critical mutation warning—all without filler.

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?

Given the complexity of a 5-parameter tool with destructive side effects, the description is remarkably complete. It covers the full process, the delivered artifact, how it differs from alternatives, and the key caveat about live network mutation. An output schema exists, so return values are already covered.

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 description coverage is 100%, so a baseline of 3 applies. The description adds contextual meaning by explaining the relationship between the workflow and parameters, especially rewrite_refs (mutation behavior) and out_dir/assets structure. It doesn't add per-parameter detail beyond schema but augments understanding of the overall flow.

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 begins with 'Make a COMP self-contained' and details the exact workflow: scan, copy, rewrite, save with manifest. It also explicitly distinguishes itself from make_portable_tox (which leaves assets behind) and collect_project_assets (which only reports), so the agent knows exactly what this tool accomplishes.

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

Usage Guidelines5/5

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

The description explicitly contrasts this tool with sibling tools make_portable_tox and collect_project_assets, telling the agent when this is the right choice. It also provides a critical usage caveat: rewriting mutates the live network, and setting rewrite_refs=false enables a copy-and-report mode without mutations.

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

caption_topCaption a TOP (is the output alive?)A
Read-only

Read-only: render a TOP's preview and return a plain-text description of it — the headless 'is the output alive?' primitive. Two paths: (a) a configured vision LLM endpoint when available, (b) a DETERMINISTIC luma/colour-histogram fallback decoded from the preview PNG pixels (always works, no model needed). Reports dominant colours, mean luma, near-black fraction, a coarse classification ('black'/'very dark'/'dark'/'bright'/'colorful'/'mid'), and a friendly caption. Returns {node_path, width, height, source:'vision'|'histogram', caption, stats{...}, warnings}. Use it after a build to confirm the network is actually rendering instead of a black frame. The vision path is currently inert (no vision field on the tool context) and falls back to the histogram.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoWidth to render the preview at before describing it. Smaller is faster.
heightNoHeight to render the preview at before describing it. Smaller is faster.
node_pathYesPath of the TOP to caption.
use_visionNoUse the configured vision LLM endpoint when available; else fall back to a deterministic histogram description.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnly, openWorld, non-destructive), the description discloses crucial behaviors: the deterministic luma/color-histogram fallback that 'always works, no model needed', the current inert vision path, and the return structure including 'source: vision|histogram' and warnings. This provides rich context about reliability, fallback logic, and potential warnings, going well beyond the structured 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 front-loaded with the core action ('Read-only: render a TOP's preview and return a plain-text description'), then efficiently explains the two paths, the outputs, the use case, and a caveat about the vision path. Every sentence contributes value without redundancy, and the structure flows logically.

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?

Despite no output schema, the description explicitly enumerates the return fields ('{node_path, width, height, source:... caption, stats{...}, warnings}'). It explains both execution modes, the deterministic fallback, the intended usage scenario, and a current limitation. For a tool with 4 parameters and no output schema, this description is exceptionally complete and self-contained.

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?

The input schema already provides thorough descriptions for all four parameters (width, height, node_path, use_vision), including defaults and the 'smaller is faster' note. The description adds context about the two paths (vision vs histogram) and the inert vision path, but most parameter-specific information is already in the schema. Since coverage is 100%, a baseline score of 3 is appropriate.

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 clearly states the tool's function: 'render a TOP's preview and return a plain-text description of it'. It also labels it as the 'headless is the output alive? primitive', and specifies the exact outputs (dominant colors, mean luma, near-black fraction, classification, caption). This is a specific verb+resource and distinguishes it from sibling tools like get_inline_preview or render_output.

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 gives an explicit use case: 'Use it after a build to confirm the network is actually rendering instead of a black frame.' It also clarifies the two execution paths and warns that the vision path is currently inert. However, it doesn't explicitly state when not to use this tool or compare it to alternative tools, so it lacks exclusions.

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

capture_to_vaultCapture a still to the vault galleryA

Captures a preview still from a TOP and appends it to a dated gallery note in the Obsidian vault, building a visual look-book over time. Each call writes the PNG image under /images/ and appends a new section to /.md (defaulting to today's date so all daily captures land in one note). Use this to document looks, reference frames, or build a browsable gallery of your session's visuals. Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoGallery note name (defaults to today's date, so captures accumulate into one daily look-book).
widthNoCapture width.
heightNoCapture height.
captionNoCaption for this capture.
galleryNoVault subfolder for the gallery note + images.Gallery
node_pathYesTOP to capture a still from.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate a non-read-only, open-world operation. Description adds crucial side effects: writes PNG to <gallery>/images/ and appends to <gallery>/<note>.md, plus default date behavior and prerequisite TDMCP_VAULT_PATH. No contradiction with 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?

Three sentences, each adds value: purpose, mechanics, and use cases/prerequisite. Well-structured and front-loaded with the main action.

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 write tool with 6 params and no output schema, description covers purpose, side effects, location details, and required environment variable. It is sufficiently complete for an agent to know when to call it and what to expect.

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 covers 100% of parameters with descriptions, so baseline is 3. The description adds workflow context (defaults to today's date, daily accumulation) but does not elaborate on individual parameters beyond the schema. It is acceptable but not exceptional.

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?

Description clearly states 'Captures a preview still from a TOP and appends it to a dated gallery note in the Obsidian vault', identifying both the action and target. This differentiates it from sibling vault tools like save_component_to_vault or export_network_to_vault, which target different resources.

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?

Provides explicit use cases: 'Use this to document looks, reference frames, or build a browsable gallery of your session's visuals.' It does not mention alternatives or exclusions, but the context is sufficient for when to use it.

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

check_operator_availabilityCheck operator availabilityA
Read-only

Reconcile the operator knowledge base against the RUNNING TouchDesigner's ground-truth creatable-optype list (GET /api/optypes). Flags which documented operators are actually creatable in this build vs deprecated/unavailable, and (optionally) which live optypes the knowledge base doesn't yet document. Pass a single operator name to check just that one. Survives TDMCP_BRIDGE_ALLOW_EXEC=0.

ParametersJSON Schema
NameRequiredDescriptionDefault
operatorNoOptional single operator name/optype to check (e.g. 'noiseTOP' or 'Noise TOP'). Omit to reconcile the whole knowledge base against the live TouchDesigner.
include_kb_gapNoAlso list creatable optypes the live TD exposes that the static knowledge base does not document (build/plugin drift).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare read-only and non-destructive behavior. The description adds valuable context beyond annotations: it retrieves data from a live API endpoint, works even when TDMCP_BRIDGE_ALLOW_EXEC=0, and indicates which operators are deprecated or unavailable. This enriches the behavioral picture 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 four concise sentences, each contributing unique information: the reconciliation purpose, the flagging behavior, single-operator usage, and the environment-survival note. No wasteful repetition; information is front-loaded with the core purpose.

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?

The description covers the main function, optional modes, and a special environment condition, making it reasonably complete for a reporting-style tool. It lacks an explicit description of the output format (e.g., flag structure), but given the simple nature of the tool and lack of an output schema, this is a minor gap.

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?

The schema already describes both parameters thoroughly (100% coverage). The description adds a small usage note about passing a single operator name, but largely restates what the schema already conveys, so it meets the baseline without adding significant new semantic meaning.

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 clearly states the tool's purpose: reconciling the operator knowledge base against the live TouchDesigner creatable-optype list. It uses a specific verb ('Reconcile') and names both the knowledge base and the running TouchDesigner, distinguishing it from sibling tools like search_operators.

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 provides clear context for when to use the tool (checking documentation against a running build) and how to use the single-operator mode. However, it does not explicitly mention alternative tools or exclusions, so it stops short of a full when/when-not explanation.

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

checksum_and_verify_packChecksum and Verify PackA

Compute or verify SHA-256 checksums for tdmcp artifacts (.tox, .recipe.json, bundles). action=compute walks a path and writes a tdmcp-checksums.json manifest. action=verify re-hashes files and reports ok/mismatch/missing/extra. No TD bridge required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
actionYes
strictNo
manifestNo
manifest_outNo
exclude_globsNo
include_globsNo
max_file_bytesNo
follow_symlinksNo

TDQS

A3.9/5.0
Behavior4/5

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

With sparse annotations, the description carries the burden of explaining side effects and outputs. It states that 'action=compute walks a path and writes a tdmcp-checksums.json manifest' and 'action=verify re-hashes files and reports ok/mismatch/missing/extra'. This discloses the write behavior and report format. It does not mention potential overwrites or error conditions, but the provided detail is solid.

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, each providing essential information: what it does, how compute behaves, and how verify behaves. No filler or redundant phrasing. It is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 params, nested manifest object, no output schema), the description is too sparse to be complete. It does not mention the manifest format beyond the filename, nor the meaning of 'strict', glob filters, size limits, or symlink behavior. For a sophisticated tool with no output schema, more detail is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It only explicitly explains 'action' and 'path' (the required params). The other seven parameters (strict, manifest, manifest_out, exclude_globs, include_globs, max_file_bytes, follow_symlinks) are left completely unexplained. This is a significant gap for a tool with 9 parameters.

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 clearly states the tool's purpose: 'Compute or verify SHA-256 checksums for tdmcp artifacts'. It specifies the resource (tdmcp artifacts) and the two primary actions (compute/verify). This distinguishes it from siblings that deal with other artifact operations.

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 provides clear context for when to use the tool: for checksum computation or verification of tdmcp artifacts. It also notes 'No TD bridge required', which is a pertinent usage constraint. However, it does not explicitly name alternatives or state when not to use it, so a perfect score is not warranted.

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

clip_audio_transportClip/audio transportA

Create a synchronized clip transport container: a Movie File In TOP video lane, optional Audio File In CHOP lane, Null outputs, deterministic layout, and Play/Loop/Speed controls bound across both lanes. Use it as a reusable building block before clip launchers, VJ decks, or stream/output chains.

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoInitial loop state for movie/audio file inputs.
nameNoName of the transport container COMP to create.clip_audio_transport
speedNoInitial playback speed. Negative values reverse where the operator supports it.
autoplayNoInitial play state for movie/audio file inputs.
audio_fileNoOptional audio file path for the Audio File In CHOP.
movie_fileNoOptional movie file path for the Movie File In TOP.
parent_pathNoParent COMP path where the transport container is created./project1
include_audioNoCreate an Audio File In CHOP transport lane alongside the movie lane.
expose_controlsNoExpose Play, Loop and Speed custom parameters on the transport container.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate this is a non-read-only, non-destructive operation. The description adds behavioral specifics: 'synchronized', 'deterministic layout', 'Null outputs', and 'Play/Loop/Speed controls bound across both lanes.' It also notes the audio lane is optional, matching the include_audio parameter. No contradictions with annotations. It could go further by noting what happens when file paths are missing or whether existing container paths are overwritten.

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 with zero filler. The first sentence front-loads the primary action and components; the second sentence provides usage context. Every phrase contributes value, making it a model of concise, structured description.

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 tool with 9 parameters, full schema documentation, and annotations providing safety cues, the description is largely complete. It explains what is created and when to use it. However, since there is no output schema, the description does not disclose whether the tool returns a path or reference to the created container, and it omits potential failure conditions (e.g., invalid file paths). Still, it is well above the minimum viable level.

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 schema already documents each parameter with descriptions. The description only lightly references parameters conceptually (e.g., 'Play/Loop/Speed controls' maps to loop/speed/autoplay, 'optional Audio File In CHOP lane' maps to include_audio/audio_file) but adds no technical detail beyond the schema. Baseline 3 is appropriate.

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 clearly states the tool's function with a specific verb and resource: 'Create a synchronized clip transport container.' It enumerates the core components (Movie File In TOP video lane, optional Audio File In CHOP lane, Null outputs, deterministic layout, Play/Loop/Speed controls), distinguishing it from generic create tools and sibling tools like create_clip_launcher or create_video_player.

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 provides a clear use case: 'Use it as a reusable building block before clip launchers, VJ decks, or stream/output chains.' This indicates when to apply the tool and implicitly positions it as a foundation for those downstream systems. However, it does not explicitly state when not to use it or name specific alternative sibling tools, so it falls short of a full 5.

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

collect_project_assetsCollect project assetsA
Destructive

Scan a COMP subtree for every external file dependency (movie/image file pars, fonts, LUTs, externaltox links) and report each referenced file, the node+parameter that references it, and whether the file currently exists on disk. The TouchDesigner scan is read-only and copies/rewrites nothing in the network; when out_manifest is set, this tool writes that local JSON path and may overwrite an existing manifest. File-par detection uses par.style ('File'/'Folder') when readable, falling back to a suffix/exact name heuristic (file, fontfile, lut, externaltox, moviefile, imagefile) — both UNVERIFIED across TD builds; style_supported records whether par.style was available.

ParametersJSON Schema
NameRequiredDescriptionDefault
parent_pathNoRoot of the COMP subtree to scan recursively for external file dependencies./project1
out_manifestNoOptional filesystem path to write the JSON asset manifest to. Empty string means do not write a file — just return the inventory.
include_missing_onlyNoWhen true, only report assets whose referenced file does not exist on disk.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of assets reported (after filtering).
assetsYesEvery external file dependency found in the subtree (after include_missing_only).
parentYesEchoed root path that was scanned.
warningsYesPer-op / per-par problems encountered while scanning (fail-forward).
manifest_pathNoPath the JSON manifest was written to, when out_manifest was set.
missing_countYesHow many reported assets are missing from disk.
style_supportedNoWhether par.style was readable in this TD build (UNVERIFIED attr). When false, only the name heuristic was used.

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond annotations by clarifying that the scan is read-only but writing out_manifest may overwrite an existing file, which explains the readOnlyHint=false and destructiveHint=true annotations. Also discloses that file-par detection heuristics are UNVERIFIED across TD builds and that style_supported records reliability. No contradiction with annotations.

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

Conciseness4/5

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

The first sentence front-loads the core purpose, and the rest provides necessary safety and reliability caveats. Longer than average but every sentence carries information essential for correct invocation and expectation-setting. Could be tightened slightly but not wasteful.

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?

Given the tool's moderate complexity and the existence of an output schema, the description covers purpose, safety, parameter behavior, and reliability of heuristics. It fully explains what will be reported and the side effects, making it complete for an agent to select and invoke correctly.

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 already covers all three parameters with descriptions (100% coverage), baseline is 3. Description adds meaningful context by warning that out_manifest may overwrite and by explaining the heuristic fallback behavior related to par.style, which enriches understanding of parent_path and output behavior.

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?

Clearly states a specific action: scan a COMP subtree for external file dependencies and report each referenced file, the referencing node+parameter, and file existence. Distinguishes from siblings like make_portable_tox or bundle_dependencies by emphasizing it only reports and does not copy/rewrite the network.

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?

Implies usage by describing the read-only scan and optional manifest write, and hints at a contrast with tools that copy dependencies, but does not explicitly state when to use this tool over alternatives or provide exclusions. The guidance is context, not direct instruction.

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

compact_graph_digestCompact graph digest (token-cheap)A
Read-only

Read-only: compress a TD subtree into a structured digest under max_tokens (default 500). Returns {header, nodeCount, connectionCount, primaryOutput, families{count,topTypes}, outputChain, errors{total,topGroups}, warnings, approxTokens}. Uses getNetworkTopology + getNetworkErrors — no new bridge work. Cheaper than get_td_topology / snapshot_td_graph for planning turns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoTD container/subtree path to digest. Defaults to /project1./project1
max_tokensNoHard ceiling on approximate output tokens (chars/4 heuristic). Default 500.
include_errorsNoInclude top-3 grouped error keys. Off for purely structural turns.
family_top_typesNoPer family, list up to N most-frequent operator types. 0 = counts only.
output_chain_depthNoHow far upstream to walk from the output TOP. 6 fits typical tails.
include_output_chainNoWalk the primary output TOP upstream up to output_chain_depth.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
errorsYes
headerYes
cachedAtYes
familiesYes
warningsYes
nodeCountYes
overBudgetNo
outputChainYes
approxTokensYes
primaryOutputYes
connectionCountYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds valuable context beyond that: it reveals the tool uses getNetworkTopology and getNetworkErrors, performs 'no new bridge work,' and returns an approxTokens count. This gives the agent a clear mental model of cost and side effects.

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, front-loaded with the read-only flag, and every sentence carries unique information: what it does, what it returns, and how it compares to alternatives. There is no wasted text.

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?

An output schema exists, so the return shape is already documented, and the description covers the tool's purpose, underlying mechanism, and relative cost vs. siblings. For a read-only planning digest, this is complete enough for an agent to select and invoke it correctly.

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 all six parameters already have robust descriptions. The tool description mentions max_tokens as a default budget but does not add new per-parameter semantics beyond what the schema already provides, so the baseline score of 3 is appropriate.

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-resource pairing: 'compress a TD subtree into a structured digest,' which clearly states the tool's function. It further differentiates from siblings by explicitly naming get_td_topology and snapshot_td_graph as costlier alternatives, so purpose and differentiation are both strong.

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 gives a clear use case ('for planning turns') and explicitly names alternatives ('Cheaper than get_td_topology / snapshot_td_graph'), which tells the agent when this is preferable. However, it does not explicitly state when not to use it, so it falls just short of a full 5.

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

compare_operator_docsCompare operator docsA
Read-only

Read-only: compare two TouchDesigner operator types from the embedded offline knowledge base, including overview metadata plus shared and unique documented parameters. This compares operator documentation, not live node settings; use compare_td_nodes for live node parameter diffs.

ParametersJSON Schema
NameRequiredDescriptionDefault
operator_aYesFirst TouchDesigner operator name, display name, or slug.
operator_bYesSecond TouchDesigner operator name, display name, or slug.
parameter_limitNoMaximum parameter entries to return in each shared/unique parameter list.
include_parametersNoInclude shared and unique parameter detail arrays in the structured result.

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYesCounts before and after applying include_parameters / parameter_limit.
overviewYesHigh-level comparison of the two operator documents.
operatorAYesResolved first operator.
operatorBYesResolved second operator.
uniqueToAYesParameters only present on operator_a.
uniqueToBYesParameters only present on operator_b.
sharedParametersYesParameters present on both operators by compact normalized name.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint, so the 'Read-only' prefix aligns with them rather than adding new safety info. However, the description adds useful context about the embedded offline knowledge base and the exact comparison scope (overview metadata, shared/unique parameters), which goes beyond 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?

Two sentences, front-loaded with the key action and safety qualifier. Every clause adds value: read-only indicator, comparison target, offline KB, parameter types, and explicit distinction from live-node comparison.

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?

With a rich output schema, clear annotations, and a precise description of purpose and scope, the tool is fully contextualized. The distinction from compare_td_nodes and mention of the offline KB cover the main potential confusions. No material gaps remain.

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 coverage is 100%, so the schema already documents all four parameters in detail. The description adds contextual value by explaining the comparison nature and what "documented parameters" means, but it doesn't describe the parameters themselves beyond what the schema provides. Baseline of 3 is appropriate.

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 clearly states a specific verb ('compare') and resource ('two TouchDesigner operator types from the embedded offline knowledge base'), and explicitly distinguishes from sibling tool compare_td_nodes by clarifying it compares documentation, not live node settings.

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

Usage Guidelines5/5

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

It explicitly states when to use this tool (for comparing offline documentation) and when not to (for live node parameter diffs), naming the alternative tool compare_td_nodes. This provides clear usage boundaries.

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

compare_td_nodesCompare two nodesA
Read-only

Read-only: diff the parameters of two nodes, returning only the values that differ (by default). Returns {type_match, differing_count, differing[], same_count}. Useful for aligning settings across similar operators; compares two live nodes, whereas diff_snapshots compares two whole-network snapshots over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
path_aYesFirst node path.
path_bYesSecond node path.
only_diffNoReturn only the parameters that differ (true) or also list the identical ones.

Output Schema

ParametersJSON Schema
NameRequiredDescription
aYesPath of the first node compared.
bYesPath of the second node compared.
type_aYesOperator type of the first node.
type_bYesOperator type of the second node.
differingYesEvery parameter that differs, with each node's value.
identicalNoNames of identical parameters; present only when only_diff is false.
same_countYesNumber of parameters that are identical on both nodes.
type_matchYesTrue if both nodes are the same operator type.
differing_countYesNumber of parameters whose values differ.

TDQS

A4.5/5.0
Behavior4/5

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

Description says 'Read-only' which complements readOnlyHint: true and adds the default behavior of returning only differing values. The return object structure is disclosed. No contradiction with annotations, and no hidden side effects beyond what is implied.

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?

Three sentences with a clear flow: operation + default behavior, return structure, and usage guidance. Every sentence adds value with no redundancy.

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?

Given the presence of an output schema and annotations covering safety, the description fully covers purpose, usage, and the distinction from the key sibling. It is complete enough for an agent to select and invoke the tool correctly.

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?

Input schema has 100% coverage with descriptions for all three parameters (path_a, path_b, only_diff with default). Description adds no extra parameter-level information beyond referring to 'by default', so baseline 3 is appropriate.

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?

Clearly states the tool diffs parameters of two nodes and returns differing values by default. Includes the exact return structure and explicitly mentions it operates on live nodes, distinguishing it from diff_snapshots.

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

Usage Guidelines5/5

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

Gives a concrete use case (aligning settings across similar operators) and explicitly contrasts with diff_snapshots (whole-network snapshots over time). This provides clear when-to-use guidance and naming of an alternative.

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

component_changelog_trailComponent Changelog TrailA

Maintains an append-only per-component revision history as a JSONL trail (<component>.trail.jsonl) inside the Obsidian vault, next to the .tox and its provenance sidecar. Three actions: append a new revision entry (with optional sha256 of the .tox, changed-param list, author, and timestamp); read all entries back as JSON; export the trail as a human-readable markdown changelog note rendered into the vault. Offline — no TD bridge required. Pairs with save_component_to_vault and provenance_stamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
entryNoRequired when action='append'. Ignored for read/export.
actionNoappend: add a new revision entry. read: return all entries as JSON. export: render the trail as a markdown changelog note next to the .tox.read
includeShaNoOn append, hash the .tox bytes with sha256 and store it on the entry — lets you cross-reference with provenance_stamp's sidecar.
componentPathYesVault-relative path to the .tox file (e.g. 'Components/MyFx.tox'). The trail is stored as a sibling file '<componentPath>.trail.jsonl'.
exportNoteNameNoOn export, the markdown filename (defaults to '<component>.CHANGELOG.md' next to the .tox).

TDQS

A4.5/5.0
Behavior4/5

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

Adds behavioral context beyond annotations: append-only nature, offline operation, and file output behavior (rendering markdown into vault). The annotations already indicate readOnly=false and destructive=false, and the description aligns without contradiction.

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 appropriately sized for the tool's complexity, front-loads the core purpose, then systematically covers the three actions, location, offline capability, and related tools. Every sentence contributes meaningful information without redundancy.

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?

Given 5 parameters (one nested object), no output schema, and multiple actions, the description covers all key aspects: file format, storage location, action semantics, and relationships. It's sufficient for an agent to understand and invoke the tool correctly without needing additional clues.

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 100%, so baseline is 3. The description adds value by explaining the meaning of actions ('read' returns JSON, 'export' renders markdown), clarifies the trail file naming convention, and mentions the optional sha256 hash and changed-param list, which enriches understanding beyond the schema.

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 specifies a clear verb ('Maintains') and resource (append-only per-component revision history as JSONL trail), with three distinct actions. It distinguishes itself from siblings by noting it pairs with save_component_to_vault and provenance_stamp, and explicitly states it operates offline.

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?

Provides clear context: it's for maintaining revision history offline, and mentions complementary sibling tools. However, it doesn't explicitly state when NOT to use it or compare against alternatives like version_library_asset or manage_component_storage, so it lacks exclusions.

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

compose_cue_listCompose cue list (NL → setlist)A

Turn a natural-language show description into a validated cue list (SetlistSchema, scenes[] variant). Uses the local LLM when configured, falls back to a deterministic grammar parser otherwise. Optionally chains into create_cue_sequencer.

ParametersJSON Schema
NameRequiredDescriptionDefault
bpmNoShow tempo. Defaults to 120 if neither bpm nor a parsed cue overrides.
barsNoHint at total length in bars; LLM/grammar fits cues within.
applyNoIf true, also build a cue_sequencer rig from the produced setlist.
styleNoStylistic prior — biases default cue names + morph times.generic
titleNoOptional show/setlist title for the output `title` field.
preferLlmNoIf false, skip the LLM and use the grammar parser directly.
descriptionYesNatural-language show plan.
containerNameNoWhen apply=true, passed through to create_cue_sequencer as `name`.

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses the LLM vs deterministic parser fallback, which is a behavioral trait beyond the annotations. It also mentions optional chaining into create_cue_sequencer, indicating potential side effects. Annotations already cover readOnly/destructive hints, so this adds value.

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?

Three sentences, front-loaded with purpose, no redundant content. Every sentence adds information about behavior or chaining.

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?

The tool has 8 parameters but all are well-documented in the schema. The description clearly states input, output (via schema hint), and fallback/chaining behavior. It lacks explicit return format but is adequate given no output 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 has 100% coverage, so baseline is 3. The description adds context for apply/containerName by mentioning optional chaining, and for preferLlm by discussing the LLM vs grammar parser. This elevates to 4.

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 uses a specific verb 'turn into' and identifies the resource (natural-language show description → validated cue list). It distinguishes from siblings by naming the specific schema variant (scenes[]) and explicitly referencing create_cue_sequencer as a downstream chain.

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?

The description implies usage context (NL show description to cue list) but does not provide explicit when-to-use vs alternatives, nor exclusions. It mentions the LLM/grammar fallback and optional chaining, which are behavioral details rather than usage guidelines.

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

connect_a1111_webui_bridgeConnect A1111 WebUI bridgeB

Create an AUTOMATIC1111/Forge Stable Diffusion WebUI handoff scaffold with prompt slots, result maps, ControlNet hints, and adapter notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.a1111_webui_bridge
activeNo
server_urlNoWebUI or adapter base URL.http://127.0.0.1:7860
parent_pathNoParent COMP for the WebUI scaffold./project1
endpoint_kindNotxt2img
output_folderNo./generated/a1111
prompt_slot_countNo
include_controlnetNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations indicate a non-read-only, non-destructive, open-world operation. Description adds context by listing scaffold contents but does not disclose side effects like filesystem writes, component creation, or modifications to existing project structure. Some value beyond annotations but limited.

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?

Single sentence, no redundancy, immediately states the primary action and target. Every phrase carries meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complex tool with 8 parameters, no output schema, minimal annotations; description omits parameter semantics, invocation context, and return behavior. Incomplete for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 38%, and the description does not explain any parameters. Terms like prompt slots and ControlNet hints vaguely map to prompt_slot_count and include_controlnet, but no specific parameter meanings, defaults, or relationships are described.

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?

Description clearly specifies the verb 'Create' and the resource 'AUTOMATIC1111/Forge Stable Diffusion WebUI handoff scaffold', enumerating specific components (prompt slots, result maps, ControlNet hints, adapter notes). This uniquely identifies the tool among many connect_* bridge siblings by naming the target system.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. Does not specify prerequisites, use cases, or exclusions. Context only implied by name and title.

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

connect_adsb_aircraft_busConnect ADS-B aircraft busC

Create an ADS-B aircraft scaffold with sanitized aircraft rows, altitude bands, track history metadata, adapter source, and feed/privacy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.adsb_aircraft_bus
activeNo
providerNodump1090
adapter_urlNohttp://127.0.0.1:9074/aircraft
parent_pathNoParent COMP for the ADS-B scaffold./project1
adapter_modeNorest_json
aircraft_countNo
airspace_labelNovenue_airspace
altitude_band_countNo
track_history_countNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations indicate openWorldHint=true and readOnlyHint=false, warning of side effects, but the description does not elaborate on what those side effects are. It does not mention that the scaffold may connect to an external adapter URL, fetch live data, or that existing components might be modified. The phrase 'sanitized aircraft rows' hints at data processing but not at runtime behavior or dependencies.

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 a single sentence that front-loads the primary action and then lists the scaffold's contents. It is concise, scannable, and contains no filler or duplication of structured data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and an openWorldHint, the description is insufficient for an agent to anticipate the tool's full impact. It does not explain what the agent should expect after creation, whether it returns a reference, how the adapter is used, or how the privacy notes are applied. The tool likely has network and lifecycle implications that are left undisclosed.

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 low (20%), so the description needs to compensate. It provides thematic links: 'altitude bands' to altitude_band_count, 'track history metadata' to track_history_count, 'adapter source' to provider/adapter_url/adapter_mode, and 'aircraft rows' to aircraft_count. However, parameters like 'active', 'airspace_label', and 'adapter_mode' remain unexplained, and the mapping is implicit rather than explicit.

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 clearly states a specific action ('Create an ADS-B aircraft scaffold') and lists key components (aircraft rows, altitude bands, track history, adapter source, feed/privacy notes). This distinguishes it from most sibling tools. However, the tool name/title use 'connect' while the description says 'create', creating a minor mismatch about whether the tool connects to an existing bus or builds a new scaffold.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternative bus-creation tools. There are dozens of similar tools (e.g., connect_ais_vessel_bus, create_blacktrax_tracking_bus), and the description does not state the intended context, prerequisites, or that this is the tool for ADS-B aircraft data. It relies solely on the domain in the name.

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

connect_airtable_content_busConnect Airtable content busA

Create an Airtable content scaffold with record maps, field maps, sync policy, adapter source, and token/rate-limit safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.airtable_content_bus
activeNo
base_idNoapp_show_base
view_nameNoApproved
table_nameNoShow Content
adapter_urlNohttp://127.0.0.1:9061/airtable
field_countNo
parent_pathNoParent COMP for the Airtable content-bus scaffold./project1
adapter_modeNorest_json
record_countNo
sync_directionNoread_only

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate non-readOnly and openWorld behavior, so the description is not required to restate that. It does add 'token/rate-limit safety notes' as a scaffold component, which is extra context. However, it doesn't detail actual side effects (e.g., external Airtable access, local file creation) beyond what annotations imply.

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 a single, front-loaded sentence with no filler or redundancy. Every phrase adds information about what the scaffold includes, making it appropriately concise for the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, no output schema, and only 18% schema coverage, a one-sentence description is insufficient. It lacks prerequisites, expected outputs, and clarification of what 'content scaffold' actually entails, leaving significant gaps for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 18%, and the description provides no parameter-level explanations. It references high-level components like 'record maps' and 'sync policy' but never connects them to the 11 parameters (e.g., base_id, sync_direction), so it fails to compensate for the low schema coverage.

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 uses a specific verb 'Create' and identifies the resource as 'Airtable content scaffold' with explicit deliverables (record maps, field maps, sync policy, adapter source, and token/rate-limit safety notes). This clearly differentiates it from generic 'connect' sibling tools and states a clear action.

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?

Usage context is implied by the name and description ('create an Airtable content scaffold'), but there is no explicit guidance on when to use this tool versus alternatives, nor any when-not-to-use exclusions. The description says what it does but not when to choose it.

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

connect_ais_vessel_busConnect AIS vessel busC

Create an AIS vessel scaffold with sanitized vessel rows, zone maps, route hints, adapter source, and receiver/privacy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.ais_vessel_bus
activeNo
providerNoais_receiver
zone_countNo
adapter_urlNows://127.0.0.1:9075/ais
parent_pathNoParent COMP for the AIS scaffold./project1
route_countNo
adapter_modeNowebsocket_json
vessel_countNo
waterway_labelNoharbor

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate that this is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds context about 'sanitized vessel rows' and 'receiver/privacy notes', which hints at data sanitization and privacy handling, but it does not elaborate on side effects, permissions, or reversibility.

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

Conciseness4/5

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

The description is a single sentence that is front-loaded with the primary action and resource, and it enumerates scaffold components compactly. It is concise without unnecessary filler, though the list format could be clearer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and limited annotation detail, a high-level one-sentence overview is insufficient. The description does not explain what the scaffold includes beyond a few components, nor does it describe return values or how the scaffold is structured, leaving gaps for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (2 of 10 parameters have descriptions). The description mentions concepts like 'zone maps' and 'route hints' that loosely map to zone_count and route_count, but it does not explain individual parameters such as adapter_mode, adapter_url, vessel_count, or waterway_label. The description does not compensate for the low schema coverage.

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 uses a specific verb 'Create' and identifies the resource as an 'AIS vessel scaffold', listing key components (sanitized vessel rows, zone maps, route hints, adapter source, receiver/privacy notes). It clearly distinguishes the tool's purpose from generic 'connect' tools, though the name says 'connect' while description says 'create', causing slight ambiguity.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like connect_adsb_aircraft_bus or other connect_* bus tools. No exclusions or prerequisites are mentioned, so the agent must infer usage from the name alone.

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

connect_arkit_face_captureConnect ARKit Face CaptureA

Create an ARKit Face Capture OSC scaffold with blendshape and head-transform maps for iPhone-driven facial performance.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.arkit_face_capture
activeNo
face_countNo
parent_pathNoParent COMP for the ARKit scaffold./project1
receive_portNo
blendshape_countNo
include_head_transformNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate this is a mutating operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds that it creates a scaffold with OSC maps, but does not disclose side effects like network changes or dependencies. This is adequate but not rich.

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 a single, focused sentence that front-loads the verb and essential details. It contains zero filler words and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and only 29% schema description coverage, the description does not provide enough context about what the scaffold includes, how parameters affect the result, or what the output looks like. It is too sparse for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29%, so the description must compensate for lack of parameter documentation. It vaguely references 'blendshape and head-transform maps' but does not explain key parameters like face_count, receive_port, active, or name. The description adds little beyond the schema fields.

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 uses a specific verb ('Create') and resource ('ARKit Face Capture OSC scaffold') with concrete details (blendshape and head-transform maps, iPhone-driven). This clearly distinguishes it from siblings like setup_face_tracking, making the purpose unmistakable.

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?

The phrase 'for iPhone-driven facial performance' implies the intended use case, but there is no explicit statement of when to use this tool versus alternatives, nor any exclusions or prerequisites. Context is clear but guidance is minimal.

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

connect_blackmagic_atemConnect Blackmagic ATEMB

Create a Blackmagic ATEM command-map scaffold with UDP transport placeholders, input maps, macro maps, and operator approval notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.blackmagic_atem
activeNo
atem_hostNoBlackmagic ATEM switcher host.192.168.10.240
send_portNo
input_countNo
macro_countNo
parent_pathNoParent COMP for the ATEM scaffold./project1
receive_portNo
include_cut_autoNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate this is not read-only and not destructive, and the description adds useful context about creating placeholders and maps. However, it does not disclose potential side effects like overwriting existing components or whether network access is required, which would enhance transparency beyond annotations.

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

Conciseness4/5

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

The description is a single sentence that packs substantial detail without excessive verbosity. It could be more structured (e.g., separated into two sentences) but remains efficient and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no output schema, and no mention of return values or prerequisites, the description is incomplete for a tool of this complexity. It does not state what the scaffold will include in relation to the parameters or what the agent should expect after invocation, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, and the tool description does not compensate by explaining individual parameters. While some parameter names are self-explanatory, ambiguous ones like 'include_cut_auto' and 'active' remain undocumented, providing minimal guidance for agents.

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 clearly states the tool creates a Blackmagic ATEM command-map scaffold, specifying the verb 'Create' and the resource. It distinguishes itself from sibling tools like 'atem_switcher_control' by noting it builds a scaffold with placeholders, input maps, macro maps, and operator approval notes.

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?

The description implies this tool is for initial scaffolding rather than direct control, but it does not explicitly state when to use it versus alternatives. No alternatives or exclusions are mentioned, leaving the agent to infer the intended context from the tool name and sibling list.

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

connect_ble_beacon_busConnect BLE beacon busB

Create a BLE beacon proximity scaffold with sanitized beacon rows, zone maps, smoothing policy, adapter source, and device-privacy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.ble_beacon_bus
activeNo
site_labelNogallery_floor
zone_countNo
adapter_urlNows://127.0.0.1:9085/ble
parent_pathNoParent COMP for the BLE scaffold./project1
adapter_modeNowebsocket_json
beacon_countNo
scanner_countNo
smoothing_window_secNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already convey readOnly=false and destructive=false. The description adds a concrete list of created scaffold elements, which goes beyond the schema. However, it does not disclose side effects such as whether existing components are overwritten, whether connections are established, or what 'device-privacy notes' implies behaviorally.

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

Conciseness4/5

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

The description is a single sentence that front-loads the core action and resource, then packs a list of included artifacts without wasted words. It is concise and easy to scan, though it could be structured more explicitly around inputs and outputs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and minimal annotations, the one-sentence description is insufficient for reliable invocation. It omits usage context, return/result behavior, side-effect expectations, and detailed parameter semantics, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, so the description must compensate. It hints at mappings (zone maps -> zone_count, smoothing policy -> smoothing_window_sec, adapter source -> adapter_url/adapter_mode) but leaves several parameters (name, active, site_label, parent_path, etc.) unexplained and provides no defaults or constraints beyond the schema.

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 uses a specific verb and resource: 'Create a BLE beacon proximity scaffold', and then enumerates its key components (sanitized beacon rows, zone maps, smoothing policy, adapter source, device-privacy notes). This clearly differentiates the tool from sibling tracking-bus creators by domain and artifact type.

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

Usage Guidelines2/5

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

No explicit guidance is provided on when to use this tool versus alternative tracking/scaffold tools. The phrase 'BLE beacon proximity' implies a context, but there are no exclusions, prerequisites, or mentions of sibling tools to help an agent choose this over a similar bus.

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

connect_calendar_schedule_busConnect calendar schedule busC

Create a venue calendar scaffold with event rows, reminder maps, blackout windows, adapter source, and credential/privacy safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.calendar_schedule_bus
activeNo
providerNoics
timezoneNoUTC
adapter_urlNohttp://127.0.0.1:9066/calendar.ics
event_countNo
parent_pathNoParent COMP for the calendar scaffold./project1
adapter_modeNoics_feed
calendar_refNovenue-show-calendar
reminder_countNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate non-readonly, non-destructive, and open-world behavior, and the description's 'create' aligns with those. The description adds some context by enumerating scaffold contents and mentioning credential/privacy safety notes, but it does not disclose side effects, reversibility, or whether existing components are modified. This is acceptable but not rich.

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

Conciseness4/5

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

The description is a single sentence that efficiently lists key components without fluff. It is front-loaded with the primary action and resource, though the dense chain of technical terms could be more readable. Overall, it is appropriately concise for a scaffolding tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters, no output schema, and minimal annotations, the description is too brief to provide a complete picture. It omits return values, side effects, common usage patterns, and parameter semantics. Given the complexity, a longer description with structured examples or parameter explanations would be necessary for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (2 of 10 parameters have descriptions). The description provides a high-level mapping to some concepts (adapter source, reminder maps) but does not clarify the meaning or expected format of most parameters (e.g., provider, timezone, event_count, adapter_mode). With such low coverage, the description does not adequately compensate for the missing parameter documentation.

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 clearly states a specific action ('Create') and resource ('venue calendar scaffold'), listing several concrete components (event rows, reminder maps, blackout windows, adapter source, credential/privacy safety notes). It is distinct from sibling connect_* tools that focus on external integrations, though the term 'scaffold' is somewhat domain-specific.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives such as create_scheduler or other calendar-related creation tools. There are no explicit use cases, prerequisites, or exclusion criteria, leaving the agent to infer usage from the name alone.

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

connect_casparcg_serverConnect CasparCG serverC

Create a CasparCG AMCP/playout scaffold with channel/layer command templates and media manifest notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.casparcg_server
activeNo
amcp_portNo
caspar_hostNo127.0.0.1
layer_countNo
parent_pathNoParent COMP for the CasparCG scaffold./project1
channel_countNo
media_root_hintNomedia/

TDQS

C2.9/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false. The description adds context by specifying the scaffold includes command templates and manifest notes, but it does not disclose any side effects, external interactions, or post-conditions beyond what the annotations imply. This is minimal but not contradictory.

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

Conciseness4/5

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

The description is a single, concise sentence that front-loads the primary action. It avoids unnecessary words, though it could be more informative without becoming verbose. It is appropriately sized for a simple statement of purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 optional parameters, no output schema, and limited schema descriptions, the description is insufficient. It does not explain the expected outcome, how parameters affect the scaffold, or how to determine if this tool is appropriate. The openWorldHint annotation suggests potential side effects, but the description does not clarify them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at only 25%, the description should compensate for the undocumented parameters. However, it does not explain the meaning or usage of amcp_port, caspar_host, layer_count, channel_count, active, or media_root_hint. The mention of 'channel/layer templates' hints at layer_count/channel_count but does not clarify their syntax or role.

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 ('Create') and resource ('CasparCG AMCP/playout scaffold'), with additional detail about channel/layer command templates and media manifest notes. This distinguishes it from sibling tools that target other systems (vmix, resolume, etc.), though the term 'scaffold' remains somewhat ambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like connect_vmix_production or connect_obs_recorder. The description lacks any context about prerequisites, use cases, or exclusions, leaving the agent to infer applicability solely from the tool name.

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

connect_comfyuiConnect ComfyUIA

Bridge a running ComfyUI server: drops the TDComfyUI .tox if installed, otherwise builds a stock webclientDAT skeleton. The container exposes a Null TOP at /out as the downstream output.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'auto' tries tox_drop first then falls back to webclient. Force one explicitly when you know which is installed.auto
nameNoContainer name; defaults to 'comfyui'.
activeNoStart polling / streaming immediately. Default off so the artist can sanity-check first.
tox_pathNoExplicit .tox path. When omitted, candidates are probed in order: olegchomp/TDComfyUI, JiSenHua/ComfyUI-TD.
server_urlNoComfyUI server base URL — host:port of `python main.py --listen`.http://127.0.0.1:8188
output_modeNoHow the generated frame is pulled back into TD. 'file_watch' reloads ComfyUI's output folder via a movieFileInTOP.syphon
parent_pathNoCOMP that will receive the ComfyUI container./project1
watch_folderNo(output_mode=file_watch) Folder ComfyUI writes outputs to. The movieFileInTOP cycles the newest file.
output_top_nameNoName of the Null TOP exposed inside the container as the downstream output.out
source_top_pathNo(webclient) TOP whose current frame is sent as the workflow input image via Syphon/Spout re-broadcast.
output_source_nameNoSpout sender / Syphon server / NDI source name to receive on. Must match the ComfyUI side.ComfyUI
workflow_json_pathNoAbsolute path to a ComfyUI workflow JSON exported from the web UI (Save (API Format)). Required for webclient mode.
poll_interval_secondsNo(webclient) How often to poll /history for completion.

TDQS

A3.9/5.0
Behavior4/5

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

The description discloses key behavioral details beyond the annotations: the fallback logic between tox_drop and webclient modes, and the exposed Null TOP output. It adds useful context about what the tool does internally, though it omits potential side effects like overwriting existing components or network-level changes.

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 two sentences long and front-loaded with the primary action and outcome. Every phrase earns its place without redundancy, making it concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 13 parameters and no output schema, the description provides a high-level overview but does not fully explain the workflow, prerequisites, or failure modes of the webclient path. The schema supplements this, but the tool description alone feels incomplete for such a complex tool.

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 coverage is 100%, so the baseline is 3. The description references the mode and output behavior (tox drop, webclient, Null TOP) but does not add parameter-level meaning beyond the already thorough schema descriptions. The schema carries the semantic load.

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 clearly states the tool's purpose: to bridge a running ComfyUI server. It specifies the two distinct approaches (dropping TDComfyUI .tox or building a stock webclientDAT skeleton) and the resulting output (Null TOP at <container>/out), which distinguishes it from other connection tools like connect_a1111_webui_bridge.

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?

The context is clear (for connecting to a running ComfyUI server), but the description does not explicitly say when to use this tool over alternatives, nor does it provide exclusions or prerequisites. The guidance is implied by the tool's name and opening phrase, not explicitly addressed.

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

connect_companion_surfaceConnect Companion OSC surfaceB

Build an OSC Companion-style button surface inside TouchDesigner: an OSC In CHOP listens for button addresses, each button gets a Select CHOP and Null CHOP row, optional target parameters are expression-bound, and an OSC Out CHOP is configured for feedback. A mapping table records label/address/target/mode/feedback for later editing.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the Companion OSC surface baseCOMP.companion_surface
buttonsNoButton mappings to create as Select CHOP -> Null CHOP rows.
listen_portNoLocal OSC port for Companion/button input.
parent_pathNoParent COMP where the companion surface baseCOMP is created./project1
feedback_hostNoRemote host that receives outgoing OSC feedback.127.0.0.1
feedback_portNoRemote OSC port that receives outgoing feedback.
create_mapping_datNoCreate/populate a tableDAT listing label, address, target, mode, and feedback.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds behavioral context by listing the components it creates and mentioning that target parameters are expression-bound, which is a side effect. However, it does not disclose whether existing expressions are overwritten or how reversible the changes are, though the non-destructive annotation mitigates this concern.

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 concise and front-loaded with the primary purpose ('Build an OSC Companion-style button surface'). It uses a compact two-part structure that efficiently conveys the internal workflow and the mapping table purpose, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is moderately complex (7 parameters, nested objects) and has no output schema. The description explains the build process but does not mention what the function returns (e.g., the created baseCOMP path) or any follow-up steps. Given the openWorldHint and complexity, it would benefit from clarifying the output or return value.

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?

The input schema provides 100% coverage with descriptions for all 7 parameters, so the baseline is 3. The description adds some context by explaining how buttons and the mapping table are used, but it does not significantly enhance the parameter meaning beyond what the schema already provides.

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 clearly states the tool builds a Companion-style OSC button surface and outlines the internal structure (OSC In CHOP, Select CHOP/Null CHOP rows, expression binding, OSC Out CHOP, mapping table). However, it does not differentiate itself from the similarly named sibling tool 'create_companion_surface', which likely also creates a Companion surface, causing potential ambiguity.

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

Usage Guidelines2/5

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

No explicit guidance is provided on when to use this tool versus alternatives like 'create_companion_surface' or 'create_control_surface'. The description explains what it does but does not state prerequisites, exclusions, or contrasting use cases, leaving the agent to infer the appropriate context.

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

connect_daydream_cloudConnect Daydream CloudA

Create a Daydream cloud-hosted StreamDiffusion bridge in TD. A webclientDAT POSTs the encoded source TOP frame to Daydream's REST endpoint; the diffused result is pulled back via a Syphon/Spout/NDI receiver and exposed as a null TOP. API key is read from DAYDREAM_API_KEY in the TD process environment — never inlined. Live probe SKIPPED (requires Daydream account + outbound HTTPS).

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNoOutbound POST cadence; clamped 1–30 (cloud rate-limit guard).
nameNoContainer name; defaults to daydream_cloud1.
seedNoOptional seed.
activeNoStart polling immediately (default off so artist can confirm API key is set).
promptNoText prompt sent in the request body.
model_idNoDaydream model slug.streamdiffusion-v1
strengthNoDiffusion strength.
server_urlNoDaydream inference endpoint. Override for self-hosted or staging.https://api.daydream.live/v1/stream
output_modeNoReceiver TOP to instantiate for the relay output.syphon
parent_pathNoCOMP to create the bridge sub-network in./project1
expose_controlsNoAdd custom-page sliders (Prompt, Strength, FPS, Active).
source_top_pathYesTOP whose frames are POSTed to Daydream.
output_source_nameNoNDI source / Syphon-Spout sender name to subscribe to.daydream_out

TDQS

A4.2/5.0
Behavior4/5

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

The description adds substantial behavioral context beyond the annotations: API key is read from the environment and never inlined, live probe is skipped because it requires a Daydream account and outbound HTTPS, and the tool creates a webclientDAT plus receiver TOP. This discloses network activity and setup prerequisites that the annotations (readOnlyHint: false, openWorldHint: true) only hint at. No contradictions with 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?

Three sentences, each earning its place: purpose, operational flow, and a critical behavioral caveat. No fluff, well-structured, and front-loaded with the main verb and resource.

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 13-parameter tool with no output schema, the description gives a strong mental model of the bridge architecture and key environmental requirements. It could go further by explicitly stating the return value (e.g., the created container COMP), but the flow description adequately covers the main behavior. The schema handles parameter details, so the description is reasonably complete.

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?

Input schema covers all 13 parameters with descriptions, so the baseline is 3. The description adds high-level context (e.g., source TOP frames are POSTed, output_mode maps to receiver type), but it does not elaborate on individual parameters beyond what the schema already provides. Thus the description adds marginal value over the schema.

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: 'Create a Daydream cloud-hosted StreamDiffusion bridge in TD.' This clearly distinguishes the tool from siblings like connect_comfyui or connect_replicate_prediction_bridge. It further details the data flow (webclientDAT POSTs to REST, receiver pulls back, exposed as null TOP), leaving no ambiguity about what the tool accomplishes.

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 provides clear context for when to use this tool: when a Daydream cloud-hosted StreamDiffusion bridge is needed in TouchDesigner. It also flags a key usage consideration (live probe skipped due to account/HTTPS requirements). However, it does not explicitly mention alternatives or exclusion criteria, so it stops short of the highest rating.

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

connect_discord_interaction_busConnect Discord interaction busC

Create a Discord interaction scaffold with command rows, message rows, approval policy, adapter source, and bot-token/signature safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.discord_interaction_bus
activeNo
adapter_urlNows://127.0.0.1:9079/discord
guild_labelNoshow_guild
parent_pathNoParent COMP for the Discord scaffold./project1
adapter_modeNogateway_json
channel_labelNostage-chat
command_countNo
message_countNo
approval_requiredNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint=false) and not destructive. The description adds some useful context by mentioning 'bot-token/signature safety notes,' implying security-related behavior. However, it does not disclose side effects, reversibility, or what actually gets created beyond a vague list of components.

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

Conciseness4/5

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

The description is a single sentence that is reasonably concise and front-loaded with the primary action ('Create a Discord interaction scaffold'). The list of components is compact and not overlong. It earns its place with useful detail, though it could be slightly more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 10 parameters and no output schema, the description is insufficiently complete. It does not explain the scaffold's structure, purpose, or how the parameters control the result. The one-sentence overview leaves major gaps for an agent attempting to invoke the tool with meaningful arguments, especially regarding adapter configuration and safety notes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only 20% of the input schema parameters are described (name and parent_path). The description vaguely references 'command rows,' 'message rows,' and 'approval policy,' which hint at command_count, message_count, and approval_required, but does not explicitly map them to schema parameters or explain their meaning. With eight undocumented parameters and low schema coverage, the description fails to compensate adequately.

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 clearly states the tool creates a Discord interaction scaffold, enumerating key components like command rows, message rows, approval policy, adapter source, and safety notes. It is specific about the resource and action, though it does not explicitly distinguish from sibling tools. This is a clear purpose statement.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool, what prerequisites exist, or how it differs from alternatives. It simply says 'Create' with no context for selection among the many sibling tools. There is no mention of when this scaffold would be preferred over other integration tools.

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

connect_disguise_stageConnect disguise stageB

Create a disguise/d3 HTTP and OSC show-control scaffold with timeline, layer, and approval maps.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.disguise_stage
activeNo
api_hostNo127.0.0.1
api_portNo
osc_portNo
layer_countNo
parent_pathNoParent COMP for the disguise scaffold./project1
timeline_countNo

TDQS

B3.1/5.0
Behavior3/5

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

The annotations declare readOnlyHint=false and openWorldHint=true, which is consistent with the description's 'Create' action. The description adds scaffold components (timeline, layer, approval maps) and protocols (HTTP, OSC), but does not disclose side effects like network listeners or project modifications. With annotations covering the safety profile, the added context is moderate but not rich.

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 a single sentence that front-loads the primary action 'Create a disguise/d3 HTTP and OSC show-control scaffold'. It contains no filler or redundancy, and the length is appropriate for a high-level purpose. However, its brevity comes at the cost of detail, which is captured in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no output schema, and an open-world annotation, the description is too minimal to fully orient an agent. It doesn't explain the scaffold's structure, what the returned result is, or how parameters like active, api_host, and osc_port are used. The description leaves significant gaps for a tool this complex.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (just name and parent_path have descriptions), and the description does not explain any parameters. It mentions 'timeline, layer, and approval maps' but does not map them to parameters like timeline_count or layer_count, and there is no approval_map parameter. The description fails to compensate for the low schema coverage.

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 clearly states the tool creates a disguise/d3 HTTP and OSC show-control scaffold with timeline, layer, and approval maps, which is a specific verb+resource combination. It differentiates from sibling connect_* tools by naming the target system (disguise/d3) and the scaffold's components. The title is ambiguous but the description resolves it.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives or any prerequisites. There is no mention of conditions for use, exclusion criteria, or references to sibling tools. The usage context is only implied by the tool name and the generic 'Create' action.

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

connect_door_access_busConnect door-access busB

Create a door-access monitoring scaffold with sanitized door events, door maps, adapter source, and lock-control safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.door_access_bus
activeNo
door_countNo
adapter_urlNows://127.0.0.1:9092/door-access
event_countNo
parent_pathNoParent COMP for the door scaffold./project1
policy_modeNomonitor_only
venue_labelNovenue
adapter_modeNowebsocket_json

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds context about creating a scaffold with sanitized events and lock-control safety notes, aligning with open-world creation. However, it doesn't disclose whether it actually connects to a live door system, modifies existing nodes, or what side effects occur beyond creating a scaffold. No contradictions.

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

Conciseness4/5

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

The description is a single sentence with a clear verb and a compact list of scaffold components. It is concise without fluff, though the 'Connect' vs 'Create' inconsistency and vague list could be clearer. It earns its length, but slightly more structure would help.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no output schema, and low description coverage, the description is too brief to be complete. It doesn't explain what the scaffold looks like, how parameters affect the output, or what the return value is. The high-level list of components gives some context but leaves significant gaps for a complex creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22% (name and parent_path have descriptions). The description references 'adapter source' and 'door maps' but doesn't map them to specific parameters like adapter_url, adapter_mode, or door_count. It leaves event_count, policy_mode, venue_label, and active unexplained, failing to compensate for the low schema coverage.

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 clearly states the tool creates a door-access monitoring scaffold with specific elements (sanitized door events, door maps, adapter source, lock-control safety notes). This distinguishes it from numerous sibling bus tools. Minor inconsistency: title says 'Connect' while description says 'Create', but the intent 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 Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or compare with other bus/scaffold tools. The door-access use case is implied by the name and description, but no clear context or alternatives are provided.

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

connect_environmental_sensor_busConnect environmental sensor busC

Create an environmental sensor scaffold with normalized readings, sensor maps, adapter source, and building-control safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.environmental_sensor_bus
activeNo
zone_countNo
adapter_urlNohttp://127.0.0.1:9093/environment
parent_pathNoParent COMP for environment sensors./project1
adapter_modeNohttp_json
sensor_countNo
sensor_profileNoco2_temp_humidity

TDQS

C2.7/5.0
Behavior3/5

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

The description adds context by naming the scaffold's components, which goes beyond annotations already provided (readOnlyHint=false, destructiveHint=false). It implies a write operation that creates artifacts, but it does not disclose potential side effects, network usage (adapter_url), or effects on existing nodes. With annotations present, the bar is lower, but more behavioral clarity would be beneficial.

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

Conciseness4/5

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

The description is a single sentence and front-loads the core action (create scaffold) followed by a list of included artifacts. It is compact and avoids repetition, though the packed list of specialized terms could be clearer. Overall, it earns its place without wasting words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with eight parameters, no output schema, and minimal schema descriptions, a one-sentence description is inadequate. It conveys the high-level outcome but leaves out usage guidelines, parameter semantics, and behavioral caveats. The agent is under-informed to correctly select and invoke this complex scaffold tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (2 of 8 parameters have descriptions), and the description provides no additional parameter-level information. It does not explain adapter_mode, sensor_profile, zone_count, or sensor_count. The listed artifacts (e.g., adapter source) are too vague to infer parameter meanings. The description fails to compensate for the low schema coverage.

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 uses a specific verb+resource: it 'creates an environmental sensor scaffold' and lists concrete artifacts (normalized readings, sensor maps, adapter source, building-control safety notes). This distinguishes it from generic connect/create tools. However, the tool name is 'connect' while the description says 'create', causing slight ambiguity about the primary action.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not state prerequisites, typical scenarios, or situations where another tool would be better. The single sentence describes the output but provides no contextual usage direction.

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

connect_figma_design_tokensConnect Figma design tokensB

Create a Figma design-token scaffold with token rows, component-review rows, style preview metadata, adapter source, and access-token safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.figma_design_tokens
activeNo
file_keyNofigma_file_key
team_labelNodesign_team
adapter_urlNohttp://127.0.0.1:9063/figma
parent_pathNoParent COMP for the Figma token scaffold./project1
token_countNo
adapter_modeNorest_json
token_formatNostyle_dictionary
component_countNo

TDQS

B3.1/5.0
Behavior2/5

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

The annotations already indicate the tool is a write operation with potential external side effects (readOnlyHint=false, openWorldHint=true). The description only lists scaffold contents and does not disclose operational behavior such as how it interacts with Figma, whether it requires authentication, or what gets modified outside the scaffold. It adds minimal behavioral insight beyond 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.

Conciseness4/5

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

The description is a single, understandable sentence that leads with the action and resource. It lists key output elements without excess verbiage, though it is slightly dense with listing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives a reasonable overview of what the tool creates, but for a tool with 10 parameters and no output schema, it lacks context about the target environment (TouchDesigner), prerequisites, and how parameters affect the scaffold. It is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 20% schema description coverage, the description should compensate by explaining parameters, but it does not. The listed scaffold components vaguely correspond to parameters like token_count and token_format, but no parameter is explicitly tied to the scaffold elements, leaving most of the 10 parameters unexplained.

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 clearly states the tool creates a Figma design-token scaffold and enumerates the specific components included (token rows, component-review rows, style preview metadata, adapter source, access-token safety notes). This distinguishes it from the many sibling tools by naming the exact resource and action.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. The intended use can be inferred from the resource name, but the text does not help the agent decide between this and other connect/create scaffolding tools.

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

connect_geojson_feature_busConnect GeoJSON feature busC

Create a GeoJSON feature scaffold with feature rows, property maps, style rules, adapter source, and projection/privacy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.geojson_feature_bus
activeNo
adapter_urlNohttp://127.0.0.1:9072/features.geojson
parent_pathNoParent COMP for the GeoJSON scaffold./project1
adapter_modeNowebclient_json
source_labelNogeojson_source
feature_countNo
geometry_modeNomixed
property_countNo
style_rule_countNo

TDQS

C2.8/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false and openWorldHint=true, but the description only says 'Create a scaffold' without additional behavioral context. It does not explain side effects, external connections, overwrite behavior, or anything beyond what annotations already imply, adding little transparency.

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 a single, front-loaded sentence with no filler. It communicates the core purpose and key deliverables efficiently, every phrase adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, no output schema, and minimal annotations, the description lacks essential context such as prerequisites, post-conditions, or what the scaffold is used for. It does not explain the 'connect' aspect of the tool name or the impact of the openWorldHint, leaving the operation contextually incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (name and parent_path have descriptions), leaving 8 parameters undocumented. The description lists high-level components like 'feature rows, property maps, style rules' but does not map these to specific parameters or explain defaults, enums, or relationships, so it fails to compensate for the low schema coverage.

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 uses a specific verb 'Create' and names the resource 'GeoJSON feature scaffold' with enumerated components (feature rows, property maps, style rules, adapter source, projection/privacy notes). This distinguishes it from most siblings, though the tool name says 'connect' while description says 'create', causing slight ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With a large sibling list including many 'connect_*' and 'create_*' tools, there is no mention of preferred scenarios, exclusions, or alternative tools.

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

connect_google_sheets_cue_tableConnect Google Sheets cue tableB

Create a Google Sheets cue-table scaffold with source adapter, cue rows, column validation, sync policy, and OAuth/writeback safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.google_sheets_cue_table
activeNo
cue_countNo
sheet_urlNohttps://docs.google.com/spreadsheets/d/show-cues
adapter_urlNows://127.0.0.1:9060
parent_pathNoParent COMP for the Google Sheets cue-table scaffold./project1
adapter_modeNocsv_export
column_countNo
sync_directionNoread_only
worksheet_nameNocues

TDQS

B3.3/5.0
Behavior3/5

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

The description adds some behavioral context beyond annotations by mentioning 'OAuth/writeback safety notes,' which hints at authentication and write-safety implications not covered by readOnlyHint=false and openWorldHint=true. However, it does not provide concrete details about side effects, reversibility, or prerequisites, so the extra disclosure is limited.

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 a single, dense sentence that front-loads the core action and lists key components without unnecessary words. Every phrase adds value, and the structure is efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, no output schema, sparse annotations), the description is far too high-level for an agent to invoke correctly. It does not explain what a 'scaffold' entails, what 'column validation' involves, or how the sync policy is configured. It also fails to distinguish itself from many similar creation tools in the sibling list, making the missing context critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, and the description does not compensate by explaining any of the ten parameters. It mentions abstract concepts like 'source adapter' and 'sync policy' but does not map them to parameters such as adapter_mode or sync_direction, leaving the agent without meaningful parameter-level guidance.

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 uses a specific verb ('Create') and resource ('Google Sheets cue-table scaffold'), clearly distinguishing it from sibling connect_* tools that merely establish connections. It enumerates key deliverable components (source adapter, cue rows, column validation, sync policy, OAuth/writeback safety notes), making the tool's purpose unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It does not reference sibling tools such as create_cue_sequencer or manage_cue, leaving the agent without a clear decision framework for selecting this tool.

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

connect_gps_fleet_trackerConnect GPS fleet trackerA

Create a GPS/fleet tracking scaffold with sanitized asset rows, geofence maps, privacy policy, adapter source, and credential/privacy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.gps_fleet_tracker
activeNo
providerNotraccar
adapter_urlNows://127.0.0.1:9073/gps
fleet_labelNovenue_fleet
parent_pathNoParent COMP for the GPS scaffold./project1
adapter_modeNowebsocket_json
geofence_countNo
update_rate_hzNo
tracked_asset_countNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the tool as write-oriented (readOnlyHint=false), non-destructive, and open-world. The description adds context by listing the scaffold's contents (privacy policy, credential notes, geofence maps), which clarifies what the side effects create. It does not contradict annotations and provides useful artifact-level detail.

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

Conciseness4/5

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

The description is a single sentence that front-loads the primary verb and resource ('Create a GPS/fleet tracking scaffold'). The enumeration of contents is somewhat dense but each phrase is meaningful. It is appropriately sized without redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a scaffold tool with 10 parameters and no output schema, the description gives a high-level overview but leaves key questions unanswered: what exactly are 'sanitized asset rows'? What does 'adapter source' entail? What are the prerequisites or side effects on the project? Annotations cover the safety profile, but the description could provide more operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, with only name and parent_path described. The tool description does not explain most parameters (provider, adapter_mode, geofence_count, update_rate_hz, tracked_asset_count, adapter_url, fleet_label, active). It offers only implicit hints like 'geofence maps' for geofence_count and 'adapter source' for adapter_url/adapter_mode, which is insufficient for a 10-parameter tool with low schema coverage.

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 clearly states the tool creates a GPS/fleet tracking scaffold and enumerates its components (sanitized asset rows, geofence maps, privacy policy, adapter source, credential/privacy notes). The verb 'Create' and specific resource distinguish it from sibling integration tools like connect_blackmagic_atem or create_blacktrax_tracking_bus.

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?

The description implies usage when a GPS fleet tracking scaffold is needed, but it does not explicitly state when to use this tool over alternatives or mention any exclusions. No sibling comparisons or conditionals are provided.

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

connect_grafana_annotation_bridgeConnect Grafana annotation bridgeC

Create a Grafana annotation/event-marker scaffold with dashboard, panel, tag, and annotation maps plus token-safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.grafana_annotation_bridge
activeNo
base_urlNohttp://127.0.0.1:3000
tag_countNo
panel_countNo
parent_pathNoParent COMP for the Grafana scaffold./project1
adapter_modeNowebclient_json
dashboard_uidNoshow-dashboard

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate this is not read-only, not destructive, and may interact with the external world (openWorldHint). The description adds 'token-safety notes' which is useful context, but does not explain side effects like file creation or whether Grafana credentials are required. No contradiction with annotations.

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

Conciseness4/5

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

The description is a single, concise sentence that front-loads the action. It includes relevant details without excessive verbosity. Loses a point because the phrase 'scaffold' is also in the tool name and the list of maps could be clearer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 optional parameters, no output schema, and minimal annotations, this description is too brief. It does not explain what the maps represent, what the scaffold produces, or how parameters like adapter_mode and base_url affect behavior. The tool is more complex than the description conveys.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (2 of 8 parameters described). The description mentions dashboard, panel, tag, and annotation maps but does not connect these to specific parameters like base_url, dashboard_uid, tag_count, or panel_count. It fails to compensate for the low schema coverage.

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 clearly states the tool creates a Grafana annotation/event-marker scaffold with maps and token-safety notes. The verb 'create' and specific resource distinguish it from generic siblings, though it doesn't explicitly contrast with similar connect tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No mention of prerequisites, typical use cases, or exclusions. Siblings include many connect_* tools, so context for when to choose this scaffold would be valuable.

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

connect_gtfs_transit_feedConnect GTFS transit feedB

Create a GTFS static/realtime transit scaffold with route maps, stop maps, arrival predictions, adapter source, and public-data notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.gtfs_transit_feed
activeNo
feed_modeNogtfs_realtime
stop_countNo
adapter_urlNohttp://127.0.0.1:9070/gtfs
parent_pathNoParent COMP for the GTFS scaffold./project1
route_countNo
agency_labelNolocal_transit
prediction_countNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false and openWorldHint=true, implying the tool may create resources and interact with external data. The description adds that the scaffold includes an 'adapter source' and 'public-data notes', suggesting possible external data interactions, but it does not disclose specifics like network calls, file creation, or setup behaviors. With annotations covering the basic safety profile, the description provides modest additional context.

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

Conciseness4/5

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

The description is a single, efficient sentence with no fluff. It front-loads the main action and then lists key deliverables. It is appropriately concise, though a bit dense; a structured list could improve readability, but it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no output schema, and no nested objects, the description is too brief to cover important context such as return values, the nature of the 'adapter source', whether data is fetched live or simulated, or how the scaffold integrates with the existing network. The description does not explain what the final result looks like or how parameters influence it, leaving significant ambiguity for an agent selecting and configuring this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22% (2 of 9 parameters documented), and the tool description does not mention parameters at all. Parameter names like stop_count, route_count, and prediction_count are somewhat self-explanatory, but 'active', 'feed_mode', and 'adapter_url' lack meaningful context. The description lists output artifacts but does not map them to input parameters, leaving the agent to infer how each parameter affects the scaffold.

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 clearly states a specific action ('Create') and resource ('GTFS static/realtime transit scaffold'), listing concrete components (route maps, stop maps, arrival predictions, adapter source, public-data notes). This distinguishes it from siblings like connect_casparcg_server or create_data_source, as it is uniquely scoped to GTFS transit feeds.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, nor any mention of prerequisites, exclusions, or related tools. In a large sibling set of connect_* and create_* tools, the description does not help the agent decide when this is the right choice.

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

connect_homeassistant_state_busConnect Home Assistant state busB

Create a Home Assistant state/service scaffold with REST/WebSocket adapter nodes, entity maps, service maps, and physical-action safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.homeassistant_state_bus
activeNo
base_urlNohttp://homeassistant.local:8123
area_countNo
parent_pathNoParent COMP for the Home Assistant scaffold./project1
adapter_modeNowebsocket_json
entity_countNo
entity_domainNosensor
service_countNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the tool as non-read-only, non-destructive, and open-world. The description adds that it creates a scaffold with specific components and includes safety notes, but it does not disclose side effects, authentication requirements, or what happens if the scaffold already exists. Some value is added beyond annotations, but depth is limited.

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

Conciseness4/5

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

The description is a single sentence that is front-loaded with the core action and target, containing no filler or redundant details. It efficiently conveys the high-level purpose, though it sacrifices depth for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no output schema, and no return-value documentation, the description is too sparse. It lists scaffold components but does not explain what the tool returns, prerequisites like a reachable Home Assistant instance, or how the scaffold integrates with the existing project. The description leaves significant gaps for an agent trying to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22% (2 of 9 parameters have descriptions). The description hints at adapter_mode via 'REST/WebSocket adapter nodes' but does not explain the meaning of any parameters, their defaults, or how they relate to the scaffold. It fails to compensate for the low schema coverage.

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 clearly states the action ('Create') and the specific resource ('Home Assistant state/service scaffold'), and details the scaffold's components (REST/WebSocket adapter nodes, entity maps, service maps, safety notes). This distinguishes it from sibling connect_* tools that target other systems like MQTT or serial devices.

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?

The intended use is implied by the name and description (connecting to Home Assistant), but there is no explicit guidance on when to use this tool versus alternatives, nor any mention of prerequisites or exclusions. The description does not say 'Use this when...' or 'For other integrations, use...'.

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

connect_houdini_engine_bridgeConnect Houdini Engine bridgeC

Create a Houdini Engine/HDA/cache handoff scaffold with HDA manifests, parameter maps, cook-status ingest, and geometry cache notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.houdini_engine_bridge
activeNo
hda_fileNo./houdini/show_asset.hda
server_urlNows://127.0.0.1:9876
parent_pathNoParent COMP for the Houdini bridge./project1
asset_formatNobgeo
cache_folderNo./houdini/cache
handoff_modeNofile_watch
receive_portNo
parameter_countNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, and the description's 'Create' aligns with a write operation. It adds useful context by listing what is scaffolded (manifests, parameter maps, cook-status ingest, cache notes). However, it does not disclose potential network behavior implied by server_url and receive_port parameters, nor does it describe side effects or prerequisites, so transparency is only partially addressed beyond annotations.

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

Conciseness4/5

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

The description is a single sentence with no fluff, effectively using a list of technical components. However, it is dense and jargon-heavy, which can obscure rather than clarify. Overall, it is appropriately sized for the information it contains.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with 10 parameters, no output schema, and only 20% parameter documentation. The one-sentence description does not explain the scaffold's behavior, how to use it, or what the parameters control. It is inadequate for an agent to correctly select and invoke the tool in diverse scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (only 2 of 10 parameters have descriptions), and the tool description does not mention any parameter names, meanings, or relationships. It adds no value beyond the minimal schema defaults, leaving the agent with little guidance on how to set parameters like asset_format, handoff_mode, or receive_port.

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 clearly identifies a specific verb ('Create') and resource ('Houdini Engine/HDA/cache handoff scaffold') and lists concrete components (manifests, parameter maps, cook-status ingest, cache notes). It distinguishes itself from sibling 'connect' tools by focusing on scaffold creation rather than a live bridge, though it doesn't explicitly contrast with them.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. The description implies it is for setting up a Houdini Engine handoff scaffold, but does not mention when not to use it, prerequisites, or how it compares to the many other bridge and connectivity tools in the sibling list.

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

connect_huggingface_inference_bridgeConnect Hugging Face inference bridgeB

Create a Hugging Face Inference Endpoint scaffold with task input maps, output contracts, token-env hints, and adapter notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.huggingface_inference_bridge
taskNotext_to_image
activeNo
output_modeNoimage
parent_pathNoParent COMP for the Hugging Face scaffold./project1
endpoint_urlNohttps://api-inference.huggingface.co/models/model-id
token_env_nameNoHF_TOKEN
input_slot_countNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false. The description adds that it creates a scaffold with specific artifacts, which implies side effects, but it does not explain what gets created, where, or if external resources (e.g., Hugging Face API) are accessed. No contradiction with 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 a single sentence that front-loads the core action ('Create a Hugging Face Inference Endpoint scaffold') and then lists the scaffold's components. No redundant words or excessive detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no output schema, and minimal parameter descriptions, the description leaves significant unknowns: expected values for task/output_mode, the meaning of 'output contracts,' whether endpoint_url is required, and what the tool returns. It is not sufficient for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 25% (2 of 8 parameters have descriptions). The description mentions 'task input maps' and 'token-env hints', loosely relating to task and token_env_name, but it does not clarify parameter meanings or how they should be set. It fails to compensate for the low schema coverage.

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 clearly states the tool's function: 'Create a Hugging Face Inference Endpoint scaffold' and enumerates what it includes (task input maps, output contracts, token-env hints, adapter notes). This specific verb+resource combination distinguishes it from other connect/create tools in the sibling list.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not state prerequisites, whether this is for initial setup or reconfiguration, or how it differs from other connect_* bridges. The description only implies usage through the tool name.

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

connect_influxdb_timeseries_bridgeConnect InfluxDB time-series bridgeB

Create an InfluxDB telemetry scaffold with measurement maps, field maps, query/write adapter notes, and token-safety warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
orgNotdmcp
nameNoGenerated baseCOMP name.influxdb_timeseries_bridge
activeNo
bucketNoshow
field_countNo
parent_pathNoParent COMP for the InfluxDB scaffold./project1
adapter_modeNowebclient_json
endpoint_urlNohttp://127.0.0.1:8086
poll_secondsNo
measurement_countNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds context about token-safety warnings and adapter notes, which gives some behavioral insight. However, it omits side effects, permission requirements, or reversibility. No contradiction with 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 a single, focused sentence that leads with the action verb and lists the key deliverables without redundant or extraneous wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and a nontrivial operation, the description is under-specified. It does not describe expected results, return values, prerequisites, or how the parameters collectively shape the scaffold. It also lacks integration guidance among the many similar tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (2 of 10 parameters documented). The description mentions constructs like measurement maps and field maps that roughly relate to measurement_count, field_count, and adapter_mode, but it does not explain any parameter directly or compensate for the missing schema descriptions.

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 clearly states the action ('Create') and the resource ('InfluxDB telemetry scaffold') with specific components (measurement maps, field maps, query/write adapter notes, token-safety warnings). This distinguishes it from other connectors by explicitly targeting InfluxDB and its scaffold contents.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus the many sibling connector/bridge tools. It does not state prerequisites, use cases, or recommend alternatives, leaving the agent to infer based solely on the name.

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

connect_isadora_patchConnect Isadora patchB

Create an Isadora OSC actor, watcher, and scene exchange scaffold with stable namespace mapping.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.isadora_patch
activeNo
namespaceNo/tdmcp
send_portNo
actor_countNo
parent_pathNoParent COMP for the Isadora scaffold./project1
scene_countNo
isadora_hostNo127.0.0.1
receive_portNo
watcher_countNo

TDQS

B3/5.0
Behavior3/5

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

Annotations indicate a non-readonly, open-world, non-destructive operation. The description adds that it creates a scaffold with stable namespace mapping, but does not disclose side effects like node creation, network modifications, or whether existing components are affected. It is consistent with annotations but not enriching.

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 a single, well-structured sentence with no redundant wording. It front-loads the action (Create) and key components, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters and complex integration scope, the description is too minimal. It does not explain what the scaffold entails, how actor/watcher/scene elements interact, or what the output of the operation is. The agent would lack essential context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (2 of 10 parameters), and the description does not explain critical parameters like send_port, receive_port, actor_count, watcher_count, scene_count, isadora_host, or active. The description adds no meaningful parameter semantics and fails to compensate for the low schema coverage.

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 clearly identifies the tool as creating an Isadora OSC scaffold with actor, watcher, and scene exchange components, and references stable namespace mapping. This distinguishes it from other connect_* tools by specifying Isadora and OSC, though 'scaffold' is somewhat abstract and doesn't fully detail the operations.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as other connect_* or create_* tools. The description lacks any mention of prerequisites, exclusions, or typical scenarios, leaving the agent without explicit usage context.

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

connect_kafka_event_busConnect Kafka event busA

Create a Kafka/Redpanda event-bus scaffold with adapter ingest, topic maps, schema hints, consumer group metadata, and policy-gated producer notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.kafka_event_bus
activeNo
brokerNoKafka/Redpanda broker hint.127.0.0.1:9092
server_urlNoExternal adapter URL.ws://127.0.0.1:9050
topic_rootNoTopic prefix for show events.tdmcp.show
parent_pathNoParent COMP for the Kafka scaffold./project1
topic_countNo
adapter_modeNowebsocket_json
schema_formatNojson
consumer_groupNotdmcp-touchdesigner

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and openWorldHint=true, indicating mutation and external side effects. The description adds that this creates a scaffold with certain elements, but it doesn't disclose concrete behaviors such as creating a base COMP under parent_path, whether a broker connection is required at creation time, or any side effects on existing components. No contradiction with annotations exists.

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

Conciseness4/5

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

The description is a single dense sentence with a front-loaded purpose and no filler. It efficiently covers the core deliverable and included features, though terms like 'policy-gated producer notes' add jargon without explanation, so it is not perfect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters (all optional), no output schema, and a variety of sibling tools, the description is too sparse for an agent to fully understand the tool's scope. It omits prerequisites (e.g., whether parent_path must exist), behavior details, return values, and how the scaffold is materialized, leaving significant ambiguity for a complex scaffolding operation.

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?

Only 5 of the 10 parameters have schema descriptions (50% coverage). The description provides thematic hints that map to parameters — 'adapter ingest' suggests adapter_mode, 'topic maps' suggests topic_root/topic_count, 'schema hints' suggests schema_format, and 'consumer group metadata' suggests consumer_group — but it doesn't explicitly name or explain these parameters, leaving the agent to infer the mapping. This is partial compensation but not comprehensive.

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 clearly specifies the verb ('Create') and the resource ('Kafka/Redpanda event-bus scaffold') and lists specific components (adapter ingest, topic maps, schema hints, consumer group metadata, policy-gated producer notes). This distinguishes it from sibling connect_* and create_* tools, especially other event-bus integrations like MQTT or Redis.

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?

The use case is implied by the phrase 'Create a Kafka/Redpanda event-bus scaffold' — it is for scaffolding a Kafka/Redpanda event bus, not for connecting an existing one. However, there is no explicit when-to-use statement, no mention of alternatives, and no exclusions, so guidance about selecting this over sibling tools is underdeveloped.

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

connect_lighting_console_oscConnect lighting console OSCA

Create a safety-gated OSC command scaffold for grandMA3, ETC Eos, ChamSys, Avolites, or generic lighting consoles without sending direct DMX.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.lighting_console_osc
activeNo
cue_countNo
send_portNo
parent_pathNoParent COMP for the lighting-console OSC scaffold./project1
safety_modeNodry_run
console_hostNo127.0.0.1
receive_portNo
console_familyNogeneric_osc
executor_countNo

TDQS

A3.7/5.0
Behavior3/5

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

The description discloses that the tool creates a scaffold and does not send direct DMX, complementing the annotations (readOnlyHint=false, destructiveHint=false). It mentions 'safety-gated' but does not elaborate on side effects like network connections or port binding—important given openWorldHint=true. No contradiction with annotations exists.

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 a single, front-loaded sentence that packs essential information (verb, resource, console types, safety gating, no direct DMX) without wasting words. It is concise yet informative, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 10 parameters, no output schema, and minimal annotation context, the description is too high-level. It does not describe what the scaffold contains, how it should be configured, or what the agent can expect as a result, leaving significant gaps for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 20% (2 of 10 parameters have descriptions), and the tool description does little to compensate. It only gives domain context (lighting consoles, safety-gating), which helps infer console_family and safety_mode, but it leaves parameters like cue_count, executor_count, send_port, receive_port, and console_host unexplained.

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 clearly states a specific verb ('Create') and resource ('OSC command scaffold for lighting consoles'), and adds exclusions ('without sending direct DMX') and safety qualifiers ('safety-gated'). It distinguishes itself from sibling tools by naming the specific console families it supports, making its purpose unmistakable.

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 provides explicit context for when to use the tool (for grandMA3, ETC Eos, ChamSys, Avolites, or generic lighting consoles) and implies a limitation (does not send direct DMX), which helps rule out scenarios where direct DMX is needed. However, it does not explicitly name alternatives or state when-not-to-use relative to sibling tools.

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

connect_madmapper_surfaceConnect MadMapper surfaceB

Create a MadMapper OSC surface/media control scaffold with source handoff notes for Syphon/Spout or NDI.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.madmapper_surface
activeNo
send_portNo
media_countNo
parent_pathNoParent COMP for the MadMapper scaffold./project1
handoff_modeNosyphon_spout
receive_portNo
surface_countNo
madmapper_hostNoMadMapper OSC host.127.0.0.1
source_top_pathNoOptional TD TOP intended for projection handoff.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and openWorldHint=true, so the agent knows this is a creation operation. The description adds that it creates a scaffold with handoff notes, but does not disclose side effects, prerequisites, or what the scaffold entails. Given the annotations cover the mutation aspect, this is adequate but minimal.

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 a single, focused 18-word sentence that is front-loaded and contains no filler. It conveys the essential purpose without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and minimal annotations, the description is too terse to be complete. It doesn't explain what the scaffold will include, how to configure the handoff, or what the function returns. For a creation tool of this complexity, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 40% (4 of 10 params described). The description mentions OSC and Syphon/Spout/NDI handoff, which maps to handoff_mode and ports, but does not explain media_count, surface_count, active, or other parameters. It does not compensate for the low schema coverage.

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 clearly states the specific action (Create) and resource (MadMapper OSC surface/media control scaffold), and adds detail about source handoff options (Syphon/Spout or NDI). This distinguishes it from sibling tools that connect to other software or create generic control surfaces.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or reference any sibling tools, which is a gap given the large number of similar connect/create tools in the sibling list.

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

connect_map_tile_overlayConnect map tile overlayC

Create a map-tile overlay scaffold with tile layer maps, viewport metadata, attribution rows, adapter source, and token/cache safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.map_tile_overlay
activeNo
providerNoopenstreetmap
style_idNostandard
center_latNo
center_lngNo
zoom_levelNo
layer_countNo
parent_pathNoParent COMP for the map scaffold./project1
tile_url_templateNohttps://tile.openstreetmap.org/{z}/{x}/{y}.png
attribution_requiredNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds a useful feature list and mentions 'token/cache safety notes' as part of the scaffold, but does not explain the actual behavior, side effects, or what the adapter source entails. This is acceptable given the annotation coverage.

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

Conciseness4/5

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

The description is a single sentence that starts with the core action ('Create a map-tile overlay scaffold') and then lists what is included. The list is somewhat long but each item contributes meaning. It is reasonably concise and front-loaded, though the long en-dash list makes it dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters and no output schema, the description provides only a high-level outline of the scaffold's contents. It omits critical context such as return values, where the scaffold is created, how to configure it, or what 'token/cache safety' entails. For a complex scaffolding tool, this is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 18%, so the description carries a heavy burden. While it lists high-level constituents like viewport metadata and attribution rows, it does not map them to the 11 parameters (provider, style_id, center_lat, etc.) or explain their meaning. The description is far from compensating for the sparse schema documentation.

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 clearly states the tool creates a map-tile overlay scaffold and enumerates its key components (tile layer maps, viewport metadata, attribution rows, adapter source, token/cache safety notes). This distinguishes it from the many other connect_* and create_* sibling tools. However, the name says 'connect' while the description says 'create', causing slight ambiguity.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives. The description implies it is for creating a map-tile overlay scaffold, but it does not mention prerequisites, exclusions, or similar tools to consider instead. The openWorldHint annotation hints at general usability but is not leveraged in the text.

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

connect_matrix_room_busConnect Matrix room busC

Create a Matrix room scaffold with sanitized room events, reaction maps, approval policy, adapter source, and token/encryption safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.matrix_room_bus
activeNo
room_aliasNo#show:example.org
adapter_urlNohttp://127.0.0.1:9081/matrix
parent_pathNoParent COMP for the Matrix scaffold./project1
adapter_modeNosync_json
reaction_countNo
homeserver_labelNomatrix
room_event_countNo
approval_requiredNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description only needs to add context beyond safety. It does add some value by mentioning 'sanitized room events' and 'token/encryption safety notes,' which hint at data hygiene and security considerations. However, it does not disclose the actual side effects of creation, such as whether external systems are contacted, whether existing room data is modified, or what the scaffold's runtime behavior will be. The description adds moderate context but is not rich.

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

Conciseness4/5

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

The description is a single sentence that packs in the key components without redundancy. It is front-loaded with the main action and resource, and then lists included features. It could be slightly clearer with breaking into two sentences, but it is efficient and free of filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and low schema description coverage, the description carries a heavy burden that it does not fulfill. It omits details about where the scaffold is created (beyond the parent_path parameter), what the adapter source implies, how the approval policy works, and what the token/encryption safety notes actually do. The description is a high-level summary but leaves many operational questions unanswered for an agent attempting to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, with only 'name' and 'parent_path' having descriptions. The tool description does not map its mentioned components (sanitized events, reaction maps, approval policy, etc.) to specific parameters like room_alias, adapter_mode, reaction_count, room_event_count, or approval_required. With 10 parameters and minimal schema descriptions, the description should compensate by explaining parameter roles; it fails to do so, leaving most parameters semantically opaque.

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 uses a clear verb ('Create') and identifies the resource ('a Matrix room scaffold'), and further specifies the scaffold includes sanitized room events, reaction maps, approval policy, adapter source, and token/encryption safety notes. This makes the tool's purpose fairly specific and distinct from generic connect/create tools, though it doesn't explicitly differentiate from sibling tools that also create scaffolds or buses.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There are many sibling tools with similar names (e.g., connect_websocket_control_bus, create_blacktrax_tracking_bus, connect_mqtt_iot_bus), but the description does not mention any of these or specify conditions for selecting this Matrix-specific tool. No exclusions or alternative scenarios are given.

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

connect_max_msp_bridgeConnect Max/MSP bridgeA

Create a Max/MSP OSC bridge scaffold with parameter and audio-feature channel maps.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.max_msp_bridge
activeNo
max_hostNoMax/MSP OSC host.127.0.0.1
namespaceNoOSC namespace prefix./tdmcp
send_portNo
parent_pathNoParent COMP for the Max/MSP scaffold./project1
receive_portNo
channel_countNo
include_audio_featuresNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already disclose readOnlyHint=false, openWorldHint=true, and destructiveHint=false, and the description does not contradict these. The description adds that it creates a scaffold with channel maps, which is useful, but it does not detail side effects such as where the scaffold is created, whether existing components are modified, or network/port implications. It provides basic transparency but lacks depth.

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 a single sentence with a clear verb and object, no redundant wording, and gets straight to the point. It is compact and easy to scan, which is ideal for an agent evaluating tool options.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no output schema, and a complex operation (creating a scaffold), this one-sentence description is too sparse. It omits critical details about what exactly is created, where (parent_path), how ports are used, and what constitutes the channel maps. An agent would not fully understand the tool's behavior or prerequisites from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 44%, with 5 of 9 parameters lacking descriptions. The description mentions parameter and audio-feature channel maps, hinting at include_audio_features and channel_count, but it does not explain send_port, receive_port, active, parent_path, or other fields. This insufficiently compensates for the low schema coverage.

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 uses a specific verb 'Create' and names a concrete resource: 'Max/MSP OSC bridge scaffold' with 'parameter and audio-feature channel maps.' This clearly distinguishes it from sibling bridge tools like connect_unity_osc_bridge or connect_vmix_production by targeting a specific system and purpose.

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?

No explicit guidance on when to use this tool versus alternatives such as connect_unity_osc_bridge or connect_resolume_arena. The name and description imply it is for Max/MSP integration, but there is no stated context, exclusions, or comparison to other tools. Usage is inferred rather than explained.

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

connect_midi_mpe_controllerConnect MIDI MPE controllerC

Create an expressive MIDI MPE input/output scaffold with zone and expression maps for pressure, timbre, pitch bend, and note channels.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.midi_mpe_controller
activeNo
device_nameNoMPE Controller
parent_pathNoParent COMP for the MPE scaffold./project1
include_outputNo
expression_countNo
lower_zone_channelsNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate readOnly=false, openWorldHint=true, and destructiveHint=false, so the 'Create' action is consistent. The description adds that it builds an expressive scaffold with zone/expression maps, but does not disclose side effects like whether it modifies the project, requires a physical device, or creates outputs beyond a scaffold.

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

Conciseness4/5

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

The description is a single sentence that is reasonably concise and immediately states the core action. It is front-loaded with 'Create an expressive MIDI MPE input/output scaffold', though the term 'expressive' is somewhat subjective and adds little semantic value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and no usage guidance, the description is insufficient for an agent to fully understand tool behavior. It does not explain what happens after creation, how the scaffold is exposed, or what the parameters mean, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29%, and the description compensates poorly. It does not explain any parameter by name; 'device_name', 'include_output', 'expression_count', and 'lower_zone_channels' remain unclear beyond their names, and the description only vaguely hints at zones and expression maps.

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 uses a specific verb ('Create') and names the resource ('MIDI MPE input/output scaffold') with concrete elements like zone/expression maps for pressure, timbre, pitch bend, and note channels. This distinguishes it from the many sibling connect/create tools, though the verb 'Create' slightly clashes with the tool name's 'Connect'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It does not mention the openWorldHint or any conditions for connecting an MPE controller, leaving the agent to infer usage from the name alone.

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

connect_millumin_showConnect Millumin showA

Create a Millumin OSC layer, column, and dashboard control scaffold with command maps and setup notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.millumin_show
activeNo
send_portNo
layer_countNo
parent_pathNoParent COMP for the Millumin scaffold./project1
column_countNo
receive_portNo
millumin_hostNoMillumin OSC host.127.0.0.1
dashboard_pageNomain

TDQS

A3.5/5.0
Behavior3/5

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

Annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) already cover safety and mutability. The description adds that the tool creates command maps and setup notes, but does not disclose additional behavioral traits like side effects or prerequisites. No contradiction exists, and the description supplements annotations minimally.

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 a single, front-loaded sentence that communicates the action, target, and key deliverables without wasted words. It is appropriately sized for the information provided.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters and no output schema, the description is too sparse. It does not clarify what the scaffold contains, how command maps function, or what setup notes cover, leaving the agent without sufficient understanding of the tool's output and behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (3 of 9 parameters have inline descriptions), and the tool description does not explain any parameter meanings. It fails to compensate for the low coverage, leaving layer_count, ports, and other fields without added context.

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 clearly states the tool's action ('Create') and the specific resource (Millumin OSC layer, column, dashboard control scaffold), adding details like command maps and setup notes. This distinctly separates it from sibling connect_* tools by naming Millumin and the scaffold elements.

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?

The description implies use for creating a Millumin OSC scaffold, but it does not explicitly state when to use it or mention alternatives. No exclusions or comparisons to other connectivity tools are provided, leaving context-dependent usage unaddressed.

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

connect_mqtt_iot_busConnect MQTT IoT busA

Create an MQTT Client DAT bus scaffold for IoT sensors, installation telemetry, and policy-gated operator commands.

ParametersJSON Schema
NameRequiredDescriptionDefault
qosNo
nameNoGenerated baseCOMP name.mqtt_iot_bus
activeNo
client_idNotdmcp_touchdesigner
topic_rootNoRoot MQTT topic for show data.tdmcp/show
broker_hostNoMQTT broker host.127.0.0.1
broker_portNo
parent_pathNoParent COMP for the MQTT scaffold./project1
topic_countNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, providing the safety profile. The description adds the 'policy-gated operator commands' nuance and 'scaffold' language, but does not disclose side effects such as broker connectivity requirements, component creation details, or error handling.

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 a single, front-loaded sentence with no wasted words. It concisely communicates the primary action and purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 params, no output schema), the description is too terse. It does not explain what a 'DAT bus scaffold' entails, what happens on execution, or what the effects are. The low schema coverage further increases the need for a more detailed description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not explain any of the 9 parameters. Schema description coverage is only 44%, leaving qos, active, client_id, broker_port, and topic_count without descriptions. The high-level purpose does not compensate for the missing parameter explanations.

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 clearly states 'Create an MQTT Client DAT bus scaffold' with specific use cases (IoT sensors, installation telemetry, policy-gated operator commands). This distinguishes it from sibling tools like connect_kafka_event_bus or connect_redis_pubsub_bus.

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 provides clear context for when to use the tool (IoT sensor data, telemetry, operator commands) but does not explicitly mention when not to use it or name alternative tools. It implies usage rather than stating exclusions.

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

connect_nfc_tap_busConnect NFC tap busB

Create an NFC tap scaffold with sanitized tap events, station maps, consent policy, adapter source, and tag-privacy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.nfc_tap_bus
activeNo
adapter_urlNows://127.0.0.1:9084/nfc
parent_pathNoParent COMP for the NFC scaffold./project1
adapter_modeNowebsocket_json
consent_modeNoopt_in_required
station_countNo
tap_event_countNo
installation_labelNointeractive_installation

TDQS

B3/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false, openWorldHint=true, and destructiveHint=false, and the description's 'Create' action aligns with these. The description adds context by listing the scaffold components, but it does not disclose potential side effects like network connections, modifications to existing components, or what the scaffold will be used for. It is consistent with annotations but adds only moderate behavioral context beyond them.

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 a single sentence of 16 words, front-loaded with the action and resource, followed by a compact list of components. Every word earns its place, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no output schema, and only basic annotations, this one-sentence description is insufficient to fully inform an agent about the scaffold's structure, return value, or post-conditions. It doesn't explain what 'scaffold' entails, how the resulting component is organized, or what the agent can do with the result. The description is too minimal for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22% (only name and parent_path have descriptions), so the description should compensate for the remaining 7 parameters. It mentions high-level concepts like consent policy and adapter source, which loosely map to consent_mode and adapter_url, but it does not explain individual parameters such as active, installation_label, or tap_event_count. The description offers only vague semantic clues and does not adequately compensate for the low schema coverage.

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 uses the specific verb 'Create' and identifies the resource as an 'NFC tap scaffold' with a clear list of included components (sanitized tap events, station maps, consent policy, adapter source, tag-privacy notes). It is clear and specific, though it does not explicitly distinguish this from sibling bus-creating tools like connect_rfid_badge_bus or connect_ble_beacon_bus, so it doesn't fully achieve sibling differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description only states what it creates, leaving the agent to infer usage from the tool name. There are no prerequisites, exclusions, or references to alternative tools, which is a significant gap given the large number of sibling bus/scaffold tools.

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

connect_nodesConnect two nodesA

Wire one node's output connector into another node's input connector inside TouchDesigner, creating a single link between two existing nodes. Uses the bridge's batch endpoint when available and falls back to a Python connect otherwise. Use create_node_chain instead when you are creating several new nodes and want them auto-wired in sequence. Returns the source and target paths, the connector indices used, and which method made the connection.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_pathYesPath of the source node (output side).
target_pathYesPath of the target node (input side).
target_inputNoWhich input connector of the target node to wire into (0-based; default 0).
source_outputNoWhich output connector of the source node to wire from (0-based; default 0).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate a non-read-only, non-destructive operation. The description adds valuable behavioral context by disclosing the fallback mechanism ('Uses the bridge's batch endpoint when available and falls back to a Python connect otherwise') and what is returned, without contradicting 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?

Three sentences, front-loaded with the core action, followed by fallback behavior, alternative usage, and return info. Every sentence earns its place with no redundancy.

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?

Covers the operation, fallback behavior, return values, and an explicit alternative. With full parameter schema coverage and annotations, this is sufficient for a simple 4-parameter tool, though it could mention edge cases like occupied connectors but that is not essential.

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%, with each parameter already described. The description does not add extra parameter semantics beyond the schema, though it does mention connector indices in the return context, which slightly reinforces their purpose. Baseline of 3 is appropriate.

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 clearly states the specific action: 'Wire one node's output connector into another node's input connector inside TouchDesigner, creating a single link between two existing nodes.' It names the verb, resource, and scope, and distinguishes from siblings like create_node_chain and disconnect_nodes.

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

Usage Guidelines5/5

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

Explicitly says when to use an alternative: 'Use create_node_chain instead when you are creating several new nodes and want them auto-wired in sequence.' Also implies it's for connecting existing nodes, giving clear context and an exclusion.

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

connect_noise_level_busConnect noise-level busB

Create a noise-level telemetry scaffold with aggregate decibel readings, sample windows, adapter source, and PA/safety policy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.noise_level_bus
activeNo
limit_dbNo
weightingNodba
zone_countNo
adapter_urlNows://127.0.0.1:9095/noise
parent_pathNoParent COMP for noise level data./project1
venue_labelNovenue
adapter_modeNowebsocket_json
sample_countNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false, which covers the safety profile. The description adds useful context about the scaffold's components but does not disclose operational behaviors such as network side effects, return values, or dependencies beyond the schema hints. This is adequate but not rich.

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

Conciseness4/5

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

The description is a single sentence that efficiently conveys the core purpose without wasted words. However, it could benefit from a brief mention of what the scaffold produces operationally, but it remains appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and annotations that only cover safety, the description is incomplete. It does not explain what the scaffold actually creates (e.g., a COMP), how the parameters interact, or what the tool returns. The minimal description may be insufficient for an agent to use this tool correctly in a complex project.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, so the description must compensate. It mentions 'aggregate decibel readings', 'sample windows', and 'adapter source', which loosely map to parameters like limit_db, sample_count, and adapter_url/mode, but it does not explain specific parameters such as weighting, zone_count, or venue_label. The description adds only vague semantic hints and fails to fully compensate for the low schema coverage.

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 uses a specific verb ('Create') and a clear resource ('noise-level telemetry scaffold'), and distinguishes itself from siblings by detailing the scaffold's contents (aggregate decibel readings, sample windows, adapter source, PA/safety policy notes). This makes the tool's purpose unmistakable.

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

Usage Guidelines2/5

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

The description does not state when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It only says what it creates, leaving the agent to infer the appropriate context from the name and description.

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

connect_notion_show_rundownConnect Notion show rundownB

Create a Notion show-rundown scaffold with scene maps, property maps, approval policy, adapter source, and token-safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.notion_show_rundown
activeNo
adapter_urlNohttp://127.0.0.1:9062/notion
database_idNonotion_show_database
parent_pathNoParent COMP for the Notion rundown scaffold./project1
scene_countNo
adapter_modeNorest_json
rundown_labelNomain_show
property_countNo
approval_requiredNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already indicate write behavior (readOnlyHint=false, openWorldHint=true) and non-destructiveness (destructiveHint=false). The description adds some value by enumerating scaffold contents (e.g., approval policy, token-safety notes), which suggests internal structure, but it does not disclose side effects, API dependencies, or how the scaffold is materialized beyond the annotation baseline.

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 entire description is a single, front-loaded sentence that immediately names the action and resource, followed by a compact list of key features. No filler, no repetition, and every clause adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and minimal annotations, the description is underspecified. It does not explain prerequisites (e.g., Notion API credentials), return values, failure modes, or how the scaffold integrates with other COMPs. The brief list of components is not enough to give an agent full operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, with only 'name' and 'parent_path' described. The description names high-level components that map loosely to parameters (scene maps -> scene_count, property maps -> property_count, approval policy -> approval_required, adapter source -> adapter_mode), but it doesn't explain default values, allowed enums, or relationships. The agent must infer parameter meanings from defaults and names, which is insufficient for a 10-parameter tool.

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 clearly states the action ('Create') and the resource ('Notion show-rundown scaffold') and lists specific components (scene maps, property maps, approval policy, adapter source, token-safety notes), making it distinguishable from generic 'connect' tools. However, it doesn't explicitly differentiate from related scaffold/creation tools in the sibling list, so it stops 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 Guidelines2/5

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

There is no guidance on when to use this tool versus sibling scaffold/connect tools. No alternatives, exclusions, or prerequisite context are provided. The description merely states what it does, leaving the agent to infer appropriate usage.

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

connect_obs_recorderConnect OBS RecorderA

Create a TouchDesigner-side OBS control scaffold with obs-websocket v5 request templates, status/setup DATs, and optional NDI or Syphon/Spout TOP publishing for OBS capture. The optional OBS password is passed only to the bridge payload and is redacted from all returned reports.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoContainer name for the OBS scaffold.obs_recorder
activeNoStart websocket/sender operators active immediately. Defaults off for setup.
obs_urlNoOBS obs-websocket URL. OBS 28+ includes obs-websocket by default.ws://127.0.0.1:4455
passwordNoOptional OBS websocket password. Never echoed in returned reports.
scene_nameNoOptional OBS scene name for scene switch requests.
output_modeNoHow to expose source_top_path for OBS capture.ndi
parent_pathNoCOMP that will receive the OBS recorder control scaffold./project1
source_top_pathNoOptional TD TOP to publish to OBS through NDI or Syphon/Spout.
recording_profileNoOperator-facing recording profile label stored in the scaffold status.rehearsal

TDQS

A4/5.0
Behavior4/5

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

The description adds security-relevant context by stating the OBS password is passed only to the bridge payload and redacted from reports, which is not in the annotations. It also discloses what the scaffold includes, complementing the readOnlyHint=false and destructiveHint=false annotations without contradiction.

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, front-loaded with the action verb and a clear object, with no filler. Every phrase adds value, covering the scaffold contents and the password redaction behavior.

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 scaffold tool with no output schema, the description conveys the core purpose, security handling, and publishing options. It does not detail return values or the exact scaffold structure, but the schema and openWorldHint annotation fill some gaps, making this adequate if not exhaustive.

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?

All 9 parameters are fully described in the input schema, so the description carries minimal additional parameter meaning. It mentions 'optional NDI or Syphon/Spout TOP publishing,' which corresponds to output_mode and source_top_path, but the schema already covers these fields.

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 uses a specific verb ('Create') and resource ('TouchDesigner-side OBS control scaffold'), listing concrete components (obs-websocket v5 request templates, status/setup DATs, NDI/Syphon/Spout publishing). This clearly distinguishes it from sibling tools like obs_stream_control or connect_vmix_production.

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?

The description implies usage—setting up OBS control in TouchDesigner—but does not explicitly state when to use this over alternatives or provide exclusion criteria. No sibling tool is named, so guidance is implied rather than explicit.

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

connect_omniverse_usd_bridgeConnect Omniverse USD bridgeA

Create an NVIDIA Omniverse/USD stage sync scaffold with Nucleus/stage metadata, layer maps, variant maps, and live-session notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.omniverse_usd_bridge
activeNo
sync_modeNousd_file_watch
server_urlNows://127.0.0.1:8899
stage_pathNo./usd/show_stage.usd
layer_countNo
nucleus_urlNoomniverse://localhost/Projects/show
parent_pathNoParent COMP for the USD bridge./project1
variant_countNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, which aligns with the 'Create' action. The description adds specific scaffold contents but does not disclose additional behavioral traits like side effects, prerequisites, or impact on the current TouchDesigner session. It provides some context but not rich behavior beyond 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 a single sentence, approximately 20 words, with the verb and resource front-loaded. It is efficient and contains no unnecessary words or repetition of the tool name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no output schema, and low parameter descriptions, the one-sentence description is insufficient. It does not explain return values, side effects, prerequisites, or how the scaffold integrates into the environment. The enumeration of scaffold features gives some idea, but missing critical operational details makes it incomplete for such a parametrized tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22% (2 out of 9 params have descriptions). The description must compensate but only vaguely references concepts like Nucleus, layer maps, and variant maps, without explaining specific parameters (e.g., sync_mode enum values, server_url, active). This leaves the agent under-informed about most parameter meanings and valid options.

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 uses a specific verb ('Create') and resource ('NVIDIA Omniverse/USD stage sync scaffold'), and enumerates distinct components like Nucleus/stage metadata, layer maps, variant maps, and live-session notes. This clearly differentiates it from other bridge tools in the sibling list (e.g., Unreal, Blender) by naming the Omniverse platform and USD format.

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 clearly implies usage context by naming Omniverse/USD and scaffold components, making it evident when to choose this tool. However, it lacks explicit 'when not to use' guidance or mention of alternatives, such as other bridge creation tools, so it falls short of a 5.

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

connect_opcua_industrial_busConnect OPC UA industrial busB

Create an OPC UA industrial telemetry scaffold with node maps, adapter ingest options, status tables, and read-only safety-policy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.opcua_industrial_bus
activeNo
poll_msNo
node_countNo
parent_pathNoParent COMP for the OPC UA scaffold./project1
adapter_modeNomanual
endpoint_urlNoopc.tcp://127.0.0.1:4840
adapter_ws_urlNows://127.0.0.1:9084/opcua
namespace_indexNo
security_policyNoexternal_adapter
adapter_http_urlNohttp://127.0.0.1:9084/opcua
adapter_udp_portNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, and the description adds context about scaffold contents including safety-policy notes. However, it doesn't disclose what exactly gets created or modified (e.g., COMPs, node network) or any side effects beyond 'create', which is still vague for a mutation tool.

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 a single, front-loaded sentence with no redundant words. It efficiently communicates the tool's purpose and primary inclusions, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters, no output schema, and minimal schema descriptions, one sentence is insufficient. The description doesn't explain return values, expected behavior, or the relationship between parameters and the scaffold's functional parts, leaving an agent under-equipped to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17% (2 of 12 parameters have descriptions), and the description does not compensate by explaining key parameters like poll_ms, namespace_index, security_policy, or adapter_mode. It mentions high-level features like 'adapter ingest options' but provides no mapping to actual parameters or guidance on how to set them correctly.

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 clearly states the tool creates an OPC UA industrial telemetry scaffold and lists its contents (node maps, adapter ingest options, status tables, read-only safety-policy notes). This is a specific verb+resource combination that is easy to understand, though it doesn't explicitly distinguish itself from sibling connect_* tools in the same domain.

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

Usage Guidelines2/5

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

The description only implies usage (when you need an OPC UA scaffold) but provides no explicit guidance on when to choose this tool over alternatives like connect_mqtt_iot_bus or connect_udp_telemetry_bridge. There are no exclusions, prerequisites, or alternative references.

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

connect_oscquery_namespaceConnect OSCQuery namespaceB

Create an OSCQuery HTTP namespace and OSC send/receive scaffold with action maps for live-control apps.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.oscquery_namespace
activeNo
http_portNo
parent_pathNoParent COMP for the OSCQuery scaffold./project1
action_countNo
service_hostNoOSCQuery HTTP service host.127.0.0.1
osc_send_portNo
namespace_rootNoOSCQuery namespace root path./
osc_receive_portNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false, destructiveHint=false, openWorldHint=true, which suggests creation is expected. The description adds that it creates an HTTP namespace and OSC send/receive scaffold, but does not disclose details like network port binding, cleanup behavior, or side effects on existing components. No contradiction with annotations.

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

Conciseness4/5

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

The description is a single, concise sentence that front-loads the primary action and resource. It is efficient but omits important context, making it slightly too terse for a tool with 9 optional parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no output schema, and only basic annotations, the description lacks critical context. It does not explain what 'action maps' are, expected return behavior, or what the scaffold includes, leaving the agent without enough information to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 9 parameters with only 44% description coverage. The tool description does not mention any parameter names or meaning, failing to compensate for the schema's gaps. It provides no semantic value for parameters like http_port, action_count, or osc_send_port.

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 clearly states the action ('Create') and the resource ('OSCQuery HTTP namespace and OSC send/receive scaffold with action maps'). This distinguishes it from sibling tools like connect_vmix_production or create_touchosc_layout, which target different protocols or applications.

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?

The phrase 'for live-control apps' implies a use case, but there is no explicit guidance on when to use this tool over other OSC/connect tools, nor any exclusions or alternatives. The usage context is only implied, not clarified.

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

connect_pangolin_beyondConnect Pangolin BeyondA

Create a safety-gated Pangolin Beyond laser-control scaffold with zone maps, cue maps, blackout notes, and no live-output claim.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.pangolin_beyond
zoneNozone_1
activeNo
cue_countNo
zone_countNo
output_rateNo
parent_pathNoParent COMP for the Pangolin scaffold./project1
source_modeNochop
safety_blackoutNo

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true), the description adds key behavioral context: it creates a scaffold, not a live-output system, and includes safety gating. This clarifies that the tool does not claim to provide real-time laser output, which is valuable behavioral information not captured in 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 a single, concise sentence that front-loads the primary action ('Create a safety-gated Pangolin Beyond laser-control scaffold') and then lists key features. Every phrase earns its place, with no redundant or filler content.

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?

The description covers the essential purpose, safety characteristics, and key outputs (zone maps, cue maps, blackout notes). It also clarifies the 'no live-output' limitation, which is critical for agent decision-making. However, it does not detail the scaffold's structure or return value, and with no output schema, some additional information could be expected.

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 low (22%), so the description has a burden to clarify parameters. It adds some meaning by linking 'zone maps' to zone_count, 'cue maps' to cue_count, and 'blackout notes' to safety_blackout. However, it does not explain individual parameter values, defaults, or relationships in detail, leaving gaps for 9 parameters.

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 clearly states the tool's function: 'Create a safety-gated Pangolin Beyond laser-control scaffold' with specific features like zone maps, cue maps, and blackout notes. It uses a specific verb ('Create') and resource ('Pangolin Beyond laser-control scaffold'), distinguishing it from other connect/create tools in the sibling list.

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?

The description implies usage context by mentioning 'safety-gated' and 'no live-output claim', suggesting it is for building a controlled scaffold rather than actual live control. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any competing tools or exclusions.

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

connect_parking_occupancy_busConnect parking occupancy busB

Create a parking/queue occupancy scaffold with zone occupancy, sensor maps, signage policy, adapter source, and privacy safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.parking_occupancy_bus
activeNo
capacityNo
providerNoiot_counter
lot_labelNomain_lot
zone_countNo
adapter_urlNohttp://127.0.0.1:9071/parking
parent_pathNoParent COMP for the parking scaffold./project1
adapter_modeNorest_json
sensor_countNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the 'Create' action is consistent and non-destructive. The description adds that it builds a scaffold with certain components, but it does not explain potential side effects, idempotency, or what actually changes in the TouchDesigner network.

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 a single sentence that front-loads the verb and resource, then lists the scaffold components in a compact series. It contains no filler or repetition and is appropriately concise for a scaffold-creation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and sparse annotations, the description is insufficiently complete. It gives a high-level component list but lacks usage context, alternative tool differentiation, and parameter semantics, leaving the agent without enough information to invoke the tool correctly for a complex scaffold.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (only name and parent_path have descriptions). The description mentions concepts like 'adapter source' and 'sensor maps' but does not map them to the actual parameters, and it leaves active, capacity, provider, zone_count, adapter_url, adapter_mode, and sensor_count unexplained. It fails to compensate for the low schema coverage.

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 uses a specific verb 'Create' and names the resource 'parking/queue occupancy scaffold', listing components like zone occupancy, sensor maps, and signage policy. However, it does not explicitly distinguish this tool from sibling tools such as connect_queue_length_bus or connect_people_counting_bus, and 'parking/queue' introduces some ambiguity.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. Sibling tools include many similar connect_* bus creators, but the description never states why an agent should choose this one over connect_queue_length_bus or connect_people_counting_bus, nor does it mention conditions or exclusions.

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

connect_people_counting_busConnect people-counting busB

Create a people-counting scaffold with aggregate zone counts, sample windows, adapter source, and privacy policy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.people_counting_bus
activeNo
zone_countNo
adapter_urlNows://127.0.0.1:9090/people-count
parent_pathNoParent COMP for the people-count bus./project1
venue_labelNovenue
adapter_modeNowebsocket_json
sample_countNo
privacy_levelNoaggregate_only

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate mutability (readOnlyHint=false) and non-destructive nature (destructiveHint=false). The description adds scaffold content context but does not disclose side effects like where the scaffold is created, whether it modifies the active project, or what the 'scaffold' implies operationally in TouchDesigner.

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 one concise, front-loaded sentence that immediately states the action and result. It contains no filler and effectively conveys the primary purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter creation tool with no output schema, the description leaves significant gaps: it doesn't specify return value, where the scaffold is created, or its effect in the TouchDesigner environment. It also doesn't clarify what 'scaffold' entails beyond listing component categories.

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 low (22%), so the description must compensate. It maps key concepts (zone counts, sample windows, adapter source, privacy) to several parameters, but it doesn't explain parameters like active, venue_label, or parent_path beyond schema defaults, nor does it clarify constraints like zone_count max 128.

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 clearly states it creates a people-counting scaffold with specific components (zone counts, sample windows, adapter source, privacy notes), distinguishing it from other bus/connect tools. However, the verb 'Create' mismatches the tool name 'connect', introducing slight ambiguity about whether it connects an existing bus or creates a new one.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternative connectivity/scaffolding tools. It only states what it creates, with no context about prerequisites, typical use cases, or exclusions.

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

connect_pos_sales_telemetryConnect POS sales telemetryB

Create a POS aggregate-telemetry scaffold with sales metrics, revenue buckets, privacy policy, adapter source, and PCI/PII safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.pos_sales_telemetry
activeNo
providerNosquare
adapter_urlNohttp://127.0.0.1:9068/pos
parent_pathNoParent COMP for the POS scaffold./project1
store_labelNovenue_bar
adapter_modeNorest_json
metric_countNo
aggregation_windowNo5m
revenue_bucket_countNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds context about the scaffold's contents, including privacy policy and PCI/PII safety notes, which is useful but does not disclose side effects such as where the scaffold is created or what files are modified. It does not contradict the annotations, and the added detail is moderate.

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 a single sentence that front-loads the action and uses a compact list to enumerate the scaffold's components. There is no redundant or filler text; every phrase contributes to understanding what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, only 20% schema coverage, no output schema, and minimally descriptive annotations, the description is not sufficient for an agent to understand invocation details. It does not describe what the tool returns, how the scaffold is structured in the project, or how parameters influence the generated output. For a tool of this complexity, the description is too brief to ensure correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (only 2 of 10 parameters have descriptions), so the description has a low baseline to work from. It mentions 'revenue buckets' and 'adapter source' which loosely correspond to revenue_bucket_count and adapter_url/adapter_mode, but it does not explain the meaning or relationships of most parameters (e.g., store_label, aggregation_window, metric_count). The description only partially compensates for the sparse schema, leaving many parameters underspecified.

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 clearly states a specific action ('Create a POS aggregate-telemetry scaffold') and identifies the resource ('POS sales telemetry'). It lists key components (sales metrics, revenue buckets, privacy policy, adapter source, PCI/PII safety notes) that distinguish it from sibling integration tools. However, the 'connect_' prefix is misleading since this is a creation/scaffold tool, and 'scaffold' could be more concretely defined.

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?

The description implies usage by specifying the domain (POS sales telemetry), which differentiates it from sibling connect tools that target external services (e.g., connect_resolume_arena, connect_vmix_production). However, it does not explicitly state when to use this tool versus alternatives, nor does it provide any exclusions or conditions. The guidelines are inferred rather than explicit.

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

connect_power_meter_busConnect power-meter busB

Create a power-meter telemetry scaffold with read-only meter readings, circuit maps, adapter source, and electrical-control safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.power_meter_bus
activeNo
warning_kwNo
adapter_urlNohttp://127.0.0.1:9094/power
meter_countNo
parent_pathNoParent COMP for the power scaffold./project1
venue_labelNovenue
adapter_modeNohttp_json
circuit_countNo

TDQS

B3.1/5.0
Behavior2/5

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

Beyond annotations, the description only mentions 'read-only meter readings' and 'electrical-control safety notes' as scaffold contents, but it does not disclose tool behavior such as side effects, overwriting of existing components, external network connections, or required setup. Given openWorldHint is true, more transparency about the adapter_url connection and scaffold creation side effects would be valuable.

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 a single concise sentence, front-loaded with the action and resource, and includes a compact list of scaffold contents. No waste, easy to read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters and no output schema, the description is far too brief. It does not explain how the parameters affect the scaffold, what the resulting component looks like, or what the tool returns or modifies. Missing context likely leaves the agent uncertain about how to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is very low (only 22% of parameters have descriptions). The description loosely references 'circuit maps' and 'adapter source' which hint at circuit_count and adapter_url, but it fails to explain the semantics of most parameters like warning_kw, meter_count, venue_label, active, and adapter_mode. The description does not compensate for the missing schema descriptions.

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 clearly states the tool creates a 'power-meter telemetry scaffold' with a specific list of contents (read-only meter readings, circuit maps, adapter source, electrical-control safety notes). The verb 'Create' is specific and the resource is well-defined, distinguishing it from the many other 'connect_*' sibling tools by focusing on power-meter telemetry.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It does not mention use cases, prerequisites, exclusions, or scenarios where a different connect tool would be more appropriate. The description only states what it does, not when to apply it.

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

connect_prometheus_metrics_panelConnect Prometheus metrics panelC

Create a Prometheus metrics scaffold with PromQL/client adapter notes, metric maps, alert routes, and operator-dashboard safety guidance.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.prometheus_metrics_panel
activeNo
job_nameNotdmcp-show
alert_countNo
parent_pathNoParent COMP for the Prometheus scaffold./project1
adapter_modeNowebclient_promql
endpoint_urlNohttp://127.0.0.1:9090
metric_countNo
scrape_interval_secondsNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations (readOnlyHint=false, destructiveHint=false) are consistent with the description claiming creation. The description adds some context by mentioning 'operator-dashboard safety guidance' and 'alert routes', but does not disclose side effects, external dependencies (e.g., endpoint_url), or whether existing files are modified. No contradiction with annotations.

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

Conciseness4/5

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

The description is a single sentence, which is concise. It front-loads the main action ('Create a Prometheus metrics scaffold') and then lists contents. It earns its place without unnecessary fluff, though the long list of items makes it slightly dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 optional parameters and no output schema, the description is too high-level. It doesn't specify what the scaffold consists of in concrete terms, how parameters affect the output, or what the user should expect after invocation. It needs more detail on functionality and parameter influence to be complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22% (2 of 9 parameters have descriptions). The description mentions high-level concepts (metric maps, alert routes) but does not explain key parameters like alert_count, adapter_mode, metric_count, or scrape_interval_seconds. It fails to compensate for the low schema coverage.

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 clearly states the tool creates a Prometheus metrics scaffold with specific components (PromQL/client adapter notes, metric maps, alert routes, safety guidance). It distinguishes itself from sibling connect_* tools by focusing on Prometheus metrics panel scaffolding, though the title says 'Connect' while the description says 'Create', causing slight ambiguity.

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

Usage Guidelines2/5

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

No explicit guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites, scenarios, or exclusions. It's a single declarative sentence with no context on selection among the many similar connect_* tools.

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

connect_public_alerts_busConnect public alerts busC

Create a public-alert scaffold with advisory alert rows, severity maps, routing policy, adapter source, and safety/escalation notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.public_alerts_bus
activeNo
providerNocap_feed
adapter_urlNohttp://127.0.0.1:9076/alerts
alert_countNo
parent_pathNoParent COMP for the alert scaffold./project1
route_countNo
adapter_modeNorest_json
region_labelNovenue_region
severity_countNo

TDQS

C2.9/5.0
Behavior3/5

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

The description adds useful context beyond annotations by listing specific scaffold elements (advisory alert rows, severity maps, routing policy, adapter source, safety/escalation notes). However, it does not disclose behavioral implications such as creating external connections, modifying project structure, or any side effects beyond what the annotations (readOnlyHint=false, destructiveHint=false) already imply. It is adequate but not rich.

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

Conciseness4/5

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

The description is a single sentence that front-loads the main action and then lists the scaffold components. It is concise and each component adds information, though the list is somewhat packed and could be split for clarity. No wasteful words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and an openWorldHint indicating external interactions, the description is too minimal. It does not explain what a 'scaffold' consists of in TouchDesigner terms, whether it creates a node, returns a reference, or how the adapter source is configured. The context provided is only partially complete, leaving many operational details unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (only name and parent_path have descriptions). The description provides high-level hints that map loosely to parameters (e.g., 'adapter source' relates to adapter_url/provider/adapter_mode, 'routing policy' to route_count), but it does not explicitly explain any of the eight undocumented parameters. This is insufficient to compensate for the low schema coverage.

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 action (Create a public-alert scaffold) and enumerates the components included (advisory alert rows, severity maps, routing policy, adapter source, safety/escalation notes). It clearly distinguishes this from sibling tools by focusing on public alerts, though the name uses 'connect' while the description says 'create,' introducing slight ambiguity about whether it connects an existing bus or creates a new one.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or alternatives such as other connect_* or create_* tools for different data sources. The intended use case is only implicit from the name and description.

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

connect_qlab_cue_stackConnect QLab cue stackA

Create a QLab OSC cue-stack scaffold with cue command maps, status, and rehearsal-focused setup notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.qlab_cue_stack
activeNoActivate OSC operators immediately.
cue_countNo
qlab_hostNoQLab OSC host.127.0.0.1
send_portNo
parent_pathNoParent COMP for the QLab scaffold./project1
receive_portNo
workspace_idNoOptional QLab workspace identifier/label.
include_transportNoInclude GO/STOP/PAUSE/RESUME rows.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate a non-read-only, non-destructive, open-world operation. The description adds that it creates a scaffold with specific components, which aligns with annotations. However, it does not disclose prerequisites, side effects, or any system changes beyond what is obvious from 'Create'. No contradiction exists.

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 a single sentence, front-loaded with the core action and resource, with no filler or repetition. Every word contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides the basic purpose and some content details, but omits prerequisites, behavioral nuances, and parameter clarifications. With 9 parameters and no output schema, it is minimally adequate but lacks depth for informed usage decisions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no information about the nine parameters. It only mentions high-level scaffold contents. Since schema coverage is 67%, three parameters (cue_count, send_port, workspace_id) remain undocumented both in the schema and the description, forcing the agent to guess their semantics.

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 uses the specific verb 'Create' and identifies a precise resource: 'QLab OSC cue-stack scaffold'. It further enumerates contents (cue command maps, status, rehearsal-focused setup notes), clearly distinguishing it from sibling connectivity tools like connect_vmix_production or qlab_osc_bridge.

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?

The description implies use when scaffolding a QLab cue stack is desired, but it offers no explicit when/when-not guidance or alternatives. It does not mention when to prefer this over related tools like qlab_osc_bridge or compose_cue_list, leaving the choice to the agent's inference.

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

connect_qr_scan_busConnect QR scan busC

Create a QR scan scaffold with sanitized scan events, route maps, sanitization policy, adapter source, and token/URL safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.qr_scan_bus
activeNo
adapter_urlNohttp://127.0.0.1:9087/qr-scans
parent_pathNoParent COMP for the QR scaffold./project1
route_countNo
adapter_modeNohttp_json
campaign_labelNovisitor_scan
scan_event_countNo
sanitization_levelNoroute_only

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate non-read-only and non-destructive behavior. The description adds context about sanitized events and safety notes but does not disclose side effects like where the scaffold is created, whether it overwrites existing components, or any external network interactions implied by 'adapter source'.

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

Conciseness4/5

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

The description is a single sentence without redundant fluff, front-loaded with the primary action. The list of components is slightly unwieldy but remains concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters, no output schema, and minimal annotations, the description is too thin. It omits what the tool returns, prerequisites, and how the scaffold integrates into a project, leaving significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 22%, and the description offers only conceptual hints (sanitization policy, adapter source) that loosely map to parameters. It fails to explain specific parameter behavior, enums, or how values like route_count and scan_event_count affect the scaffold.

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 clearly states the tool creates a QR scan scaffold and enumerates key components (sanitized scan events, route maps, sanitization policy, adapter source, token/URL safety notes). This is specific enough to distinguish from generic 'bus' tools, though it doesn't explicitly differentiate from similar named sibling tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling bus-creation tools, the absence of use-case context or prerequisites makes selection difficult.

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

connect_queue_length_busConnect queue-length busB

Create a queue-length scaffold with aggregate queue metrics, sample windows, adapter source, and alert policy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.queue_length_bus
activeNo
adapter_urlNows://127.0.0.1:9091/queue
parent_pathNoParent COMP for the queue scaffold./project1
queue_countNo
queue_labelNomain_queue
adapter_modeNowebsocket_json
sample_countNo
alert_threshold_peopleNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already signal that this is a non-read-only, open-world operation. The description adds that the result is a scaffold with certain components, which is useful. However, it does not disclose side effects such as whether it opens a websocket connection, requires an external adapter, or modifies existing components, leaving much to inference.

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 a single, tightly worded sentence that front-loads the primary action and resource, then enumerates key included features without redundancy. Every phrase earns its place, and the structure is appropriately compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter scaffold tool with no output schema, the description gives a high-level summary of the scaffold's contents but omits important context: prerequisites, connection behavior, and what exactly the scaffold does after creation. It is adequate for a simple builder but leaves gaps that an agent would need to resolve through defaults or assumptions.

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?

With schema description coverage only at 22%, the description partially compensates by grouping parameters into conceptual categories (sample windows -> sample_count, adapter source -> adapter_url/adapter_mode, alert policy -> alert_threshold_people). However, it does not map all parameters (e.g., active, queue_count, queue_label) and leaves some ambiguity about their precise roles, so it adds moderate value beyond the sparse schema.

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 clearly states the action ('Create') and the resource ('queue-length scaffold'), and it lists the scaffold's key components (aggregate queue metrics, sample windows, adapter source, alert policy notes), giving a specific picture. It does not explicitly differentiate from sibling bus-connection tools, but the unique resource name and listed components make the purpose recognizable.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It neither states typical use cases nor mentions related tools like connect_people_counting_bus or connect_parking_occupancy_bus. The description is purely about what the tool creates, so an agent must infer appropriate usage context from the tool name alone.

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

connect_reaper_transportConnect REAPER transportB

Create a REAPER OSC transport, track, and marker bridge scaffold with operator-approved recording templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.reaper_transport
activeNo
send_portNo
parent_pathNoParent COMP for the REAPER scaffold./project1
reaper_hostNo127.0.0.1
track_countNo
marker_countNo
project_nameNoshow
receive_portNo
include_recordNo

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already indicate non-read-only, non-destructive, open-world behavior. The description adds the context that this creates a 'scaffold' rather than a live connection, which is useful, but it does not disclose side effects such as whether existing components are overwritten, whether REAPER must be running, or what 'operator-approved recording templates' actually entails.

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 a single, front-loaded sentence with no filler or redundant phrasing. It is concise and to the point, though 'operator-approved' is unexplained jargon.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with no output schema and sparse annotations, a one-sentence description is insufficient. It leaves out key behavior such as return values, error conditions, port/host semantics, how recording templates are selected, and whether this tool actually connects to REAPER or only creates a scaffold.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only 20% of the 10 parameters have schema descriptions, and the tool description adds almost no parameter-specific meaning. It loosely aligns with track/marker counts but does not explain send_port, receive_port, reaper_host, include_record, project_name, or active.

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 starts with a specific verb 'Create' and identifies a clear resource: a 'REAPER OSC transport, track, and marker bridge scaffold.' It clearly distinguishes this tool from the dozens of sibling connection tools by naming the exact target system and the scaffold components.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the many sibling connect_* tools, such as connect_ableton_link_session or connect_qlab_cue_stack. It does not mention prerequisites, exclusions, or when an alternative should be preferred.

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

connect_redis_pubsub_busConnect Redis Pub/Sub busC

Create a Redis Pub/Sub/Streams scaffold with adapter ingest, channel maps, keyspace safety notes, and read-first operations policy.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.redis_pubsub_bus
activeNo
redis_hostNo127.0.0.1
redis_portNo
server_urlNows://127.0.0.1:9051
parent_pathNoParent COMP for the Redis scaffold./project1
stream_modeNopubsub
adapter_modeNowebsocket_json
adapter_portNo
channel_rootNotdmcp:show
channel_countNo
database_indexNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false), with which the description is consistent. However, the description adds little behavioral context: it mentions 'keyspace safety notes' and 'read-first operations policy' but does not explain side effects, whether existing components are modified, or what the scaffold actually does at runtime.

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

Conciseness4/5

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

The description is a single compact sentence with a meaningful list of features. It is front-loaded with the main verb and resource, and most words add value. However, the jargon-heavy phrasing ('adapter ingest', 'keyspace safety notes') could be clearer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters, no output schema, and sparse annotations, the description is incomplete. It does not explain the scaffold's purpose, configuration, return value, or how it integrates with the broader system. The high parameter count and low schema coverage make this description insufficient for an agent to use the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17% (name and parent_path have descriptions), so the description must compensate. It does not: none of the 12 parameters (e.g., stream_mode, adapter_mode, channel_root, database_index) are explained beyond their names. The phrase 'channel maps' hints at channel-related params but is too vague.

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 clearly states the specific action ('Create a Redis Pub/Sub/Streams scaffold') and the resource. It lists key components (adapter ingest, channel maps, keyspace safety notes, read-first operations policy), which distinguishes it from sibling connect/create tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like connect_mqtt_iot_bus or create_external_io. There is no mention of prerequisites, exclusions, or preferred use cases. The description only implies it is for creating a Redis scaffold.

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

connect_replicate_prediction_bridgeConnect Replicate prediction bridgeA

Create a Replicate-style prediction handoff scaffold with request templates, polling/webhook maps, output contracts, and credential-safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.replicate_prediction_bridge
activeNo
model_refNoModel/version reference hint.owner/model:version
output_modeNoimage
parent_pathNoParent COMP for the Replicate scaffold./project1
webhook_urlNoOptional webhook callback URL or adapter route.
endpoint_urlNoPrediction endpoint or local adapter URL.https://api.replicate.com/v1/predictions
poll_secondsNo
request_modeNowebclient_json

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare it is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false), aligning with 'Create'. The description adds what the scaffold contains (e.g., credential-safety notes) but does not disclose whether the tool calls the Replicate API, requires credentials, or has other side effects. No contradiction with 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 a single, front-loaded sentence starting with the verb 'Create'. It efficiently lists the scaffold components without filler, earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a 9-parameter tool with no output schema and no required parameters. The description does not explain the tool's return value, what executing it actually does (e.g., does it build files, modify a project?), or prerequisites like Replicate API credentials. The listed artifacts give some context but are insufficient for an agent to fully understand the operation.

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 56%, with key params (name, model_ref, parent_path, webhook_url, endpoint_url) already described. The description's mention of 'polling/webhook maps' provides loose context for poll_seconds and request_mode, but it does not explain individual parameters beyond what the schema already provides.

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 is specific: 'Create a Replicate-style prediction handoff scaffold' with concrete artifacts (request templates, polling/webhook maps, output contracts, credential-safety notes). It clearly distinguishes from sibling connect_* tools by naming Replicate predictions.

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?

The description implies the use case (Replicate prediction integration) via the name and 'Replicate-style' wording, but there is no explicit 'use when' context or comparison to alternative bridges. No exclusions or alternative tool names are given, so guidance is only implied.

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

connect_resolume_arenaConnect Resolume ArenaB

Create a Resolume Arena/Avenue OSC control scaffold with command maps, status DATs, and preview handoff notes. Runtime validation against Resolume remains explicit.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.resolume_arena
activeNoActivate OSC operators immediately.
send_portNo
clip_countNo
deck_countNo
layer_countNo
parent_pathNoParent COMP for the Resolume scaffold./project1
preview_modeNonone
receive_portNo
resolume_hostNoResolume OSC host.127.0.0.1
composition_nameNoLabel stored in status metadata.composition

TDQS

B3.2/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and openWorldHint=true, which align with the description's 'Create' action. The description adds some behavioral context by listing scaffold components (command maps, status DATs, preview handoff notes) and noting that runtime validation against Resolume is explicit. However, it doesn't disclose side effects, prerequisites, or failure behavior beyond that.

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

Conciseness4/5

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

The description is concise, with two sentences and front-loaded purpose. The phrase 'Runtime validation against Resolume remains explicit' is somewhat cryptic but doesn't bloat the text. It earns a solid score for efficiency, though it could be clearer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, no output schema, and open-world semantics, the description is under-specified. It names three output types without relating them to parameters or explaining the scaffold's structure. Missing prerequisites like whether Resolume must be running, and no details on validation behavior, leave the agent with insufficient context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 45%, so the description should compensate for the undocumented parameters. It doesn't mention any of the 11 parameters (e.g., send_port, clip_count, preview_mode) or explain how they influence the scaffold. The description adds no parameter-level meaning beyond the sparse schema.

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 clearly states the tool's purpose: 'Create a Resolume Arena/Avenue OSC control scaffold with command maps, status DATs, and preview handoff notes.' The verb 'Create' and specific resources distinguish it from siblings like connect_vdmx_workspace or scaffold_vj_deck.

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

Usage Guidelines2/5

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

No guidance on when to use this tool or how it compares to alternatives. It doesn't mention cases like 'use this when connecting to Resolume' or exclude similar tools such as resolume_vdmx_output_chain. The description only defines the action, leaving usage context implicit.

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

connect_rfid_badge_busConnect RFID badge busB

Create an RFID badge-reader scaffold with sanitized badge events, reader maps, privacy policy, adapter source, and access-control safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.rfid_badge_bus
activeNo
adapter_urlNows://127.0.0.1:9083/rfid
parent_pathNoParent COMP for the RFID scaffold./project1
venue_labelNoinstallation
adapter_modeNowebsocket_json
reader_countNo
privacy_levelNopseudonymous
badge_event_countNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate the tool is not read-only and not destructive; the description adds that it 'creates a scaffold' and lists the scaffold's contents, which provides some context. However, it does not disclose side effects or specific behavioral traits such as project modifications, file generation, or configuration implications beyond the scaffold itself.

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 a single concise sentence that front-loads the primary action and enumerates the scaffold's contents without redundancy. It earns its place with every word.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With nine parameters, no required fields, and low schema coverage, a one-sentence description is insufficient. It does not address return values, how the scaffold is delivered, or any post-creation behavior, leaving the agent without crucial operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22%, and the description does not explicitly explain the meaning of the nine parameters. It lists components like 'sanitized badge events' and 'reader maps' which vaguely map to parameters, but offers no concrete guidance on parameter usage or defaults.

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 clearly states the tool creates an RFID badge-reader scaffold and enumerates key components (sanitized badge events, reader maps, privacy policy, adapter source, access control safety notes). This distinctive focus differentiates it from the many sibling connect/create tools.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives. The description only states what it does, with no context about prerequisites, preferred scenarios, or exclusions.

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

connect_rss_feed_busConnect RSS feed busB

Create an RSS/Atom/editorial feed scaffold with sanitized item rows, category maps, refresh policy, adapter source, and copyright/sanitization notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.rss_feed_bus
activeNo
feed_labelNoeditorial_feed
item_countNo
adapter_urlNohttp://127.0.0.1:9082/feed.xml
parent_pathNoParent COMP for the RSS scaffold./project1
adapter_modeNorss_atom
category_countNo
refresh_interval_secNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already set readOnly=false and destructive=false, indicating a non-destructive write operation. The description adds some context by enumerating scaffold contents (sanitized rows, category maps, refresh policy, adapter source, copyright notes), but it does not disclose side effects, required environment, or return behavior. This partial addition warrants a middle score.

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 a single, concise sentence that front-loads the action and resource, then efficiently lists key components. Every word contributes to the understanding, and there is no wasted verbiage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no output schema, and minimal annotations, the description is too sparse. It does not mention return values, how to observe the created scaffold, prerequisites, or how it fits into the broader system. The lack of this information makes it incomplete for a tool of this complexity.

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 low (22%), so the description must compensate. It hints at parameter meanings through phrases like 'refresh policy' (refresh_interval_sec), 'adapter source' (adapter_url/adapter_mode), and 'category maps' (category_count), but leaves many parameters (active, feed_label, item_count) unexplained. It adds some meaning but not enough for a 9-parameter tool.

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 clearly states it creates an RSS/Atom/editorial feed scaffold, specifying both the verb (Create) and the resource (feed scaffold). It lists several distinctive features such as sanitized item rows, category maps, and refresh policy, which distinguishes it from other connect_* tools in the sibling list.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention exclusions, prerequisites, or context. It simply states what the tool creates, leaving the user without criteria for selecting it.

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

connect_runway_video_bridgeConnect Runway video bridgeC

Create a Runway-style video generation handoff scaffold with prompt maps, input/result contracts, polling status, and adapter notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.runway_video_bridge
activeNo
project_idNoshow_project
parent_pathNoParent COMP for the Runway scaffold./project1
endpoint_urlNohttps://api.runway.example/v1/jobs
prompt_countNo
output_folderNo./generated/runway
generation_modeNotext_to_video
input_clip_pathNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already cover readOnlyHint=false and destructiveHint=false, so the creation behavior aligns. The description adds context about scaffold components (prompt maps, contracts, polling status, adapter notes) but does not disclose potential side effects, external dependencies, or whether it overwrites existing content.

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

Conciseness4/5

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

The description is a single sentence with no filler, front-loading the main action and then listing deliverables. It is dense but somewhat jargon-heavy ('handoff scaffold'), though still concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no required params, no output schema, and low schema coverage, the description is too sparse to convey the full scope. It does not explain return values, setup prerequisites, or how the scaffold is connected or used after creation, leaving significant gaps for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22%, and the description does not elaborate on any of the 9 parameters. It mentions high-level scaffold components but no mapping to specific parameters like endpoint_url, prompt_count, or generation_mode. The description fails to compensate for the low schema coverage.

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 clearly states it creates a Runway-style video generation handoff scaffold, with specific components listed. The verb 'Create' is specific, though the tool name says 'connect' which creates minor ambiguity. It does distinguish from sibling bridge tools by the Runway-specific context.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives such as connect_replicate_prediction_bridge or connect_comfyui. The description only states what it does, not when it should be preferred, nor any prerequisites or exclusions.

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

connect_rvc_voice_conversion_busConnect RVC voice conversion busC

Create an RVC-style voice conversion scaffold with source audio, model maps, output contracts, latency notes, and consent warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.rvc_voice_conversion_bus
activeNo
audio_fileNo
index_pathNo./models/rvc/voice.index
model_pathNo./models/rvc/voice.pth
server_urlNows://127.0.0.1:9040
parent_pathNoParent COMP for the RVC scaffold./project1
request_urlNohttp://127.0.0.1:9040/convert
source_modeNoaudio_file
speaker_countNo
transpose_semitonesNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, and the description aligns by saying 'Create'. It adds modest context by mentioning consent warnings and latency notes, but doesn't reveal side effects like network connections despite openWorldHint=true. This is a minor gap but not a contradiction.

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

Conciseness4/5

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

The description is a single sentence that efficiently lists the scaffold components without extraneous words. It is properly sized and front-loaded with the action and resource, though the list of items is somewhat lengthy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, low schema coverage, no output schema, and a complex creation task, the description is too terse. It doesn't explain the scaffold's integration with TouchDesigner, what the tool returns (e.g., a component path), or how parameters like server_url and request_url are used. The mention of consent warnings and latency notes adds some value but fails to provide a complete picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 18%, with 11 parameters and almost no descriptions. The description does not explain any parameter's meaning beyond vague references like 'source audio' which could relate to audio_file, but no explicit mapping or semantic help for parameters such as source_mode, speaker_count, or transpose_semitones.

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 clearly states the tool creates an RVC-style voice conversion scaffold, specifying components like source audio, model maps, output contracts, latency notes, and consent warnings. This goes beyond a tautology and is specific to the resource, though it doesn't explicitly differentiate from sibling bus-creation tools.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or which sibling tools (e.g., connect_whisper_transcription_bus, create_voice_prompt_pipeline) might be more appropriate for different use cases. The description only states what it creates.

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

connect_s3_media_bucketConnect S3 media bucketA

Create an S3-compatible media-bucket scaffold with manifest rows, cache policy, ingest status, adapter source, and credential/signing safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.s3_media_bucket
activeNo
bucketNoshow-media
prefixNoapproved/
providerNoaws_s3
asset_countNo
parent_pathNoParent COMP for the S3 media bucket scaffold./project1
adapter_modeNomanifest_json
cache_policyNomanual
manifest_urlNohttp://127.0.0.1:9065/media-manifest.json

TDQS

A3.7/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description adds meaningful behavioral context by mentioning 'credential/signing safety notes' and 'adapter source', signaling important security and integration details. It does not contradict the annotations and provides extra depth about the scaffold's contents.

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

Conciseness4/5

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

The description is a single sentence that front-loads the primary action and resource, then lists included features. It is concise and efficient, though slightly dense with compound items; overall no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 optional parameters and no output schema, the description captures the scaffold's purpose and key components, but it lacks guidance on configuration choices and the meaning of several parameters. It is adequate as a high-level summary but not complete enough for an agent to confidently decide how to use the tool without additional schema exploration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (name and parent_path), so the description must compensate for the other eight parameters. It references cache_policy, adapter_mode, and manifest-related concepts, but it does not explain parameters like provider, prefix, or active. The vague term 'ingest status' does not map directly to a schema field, so parameter meaning remains under-specified.

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 uses the specific verb 'Create' and clearly identifies the resource as an 'S3-compatible media-bucket scaffold'. It enumerates constituent elements (manifest rows, cache policy, ingest status, adapter source, credential/signing safety notes), making it distinct from sibling connect_* tools that target different systems. The purpose is unmistakable.

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?

The description implies use when an S3 media-bucket scaffold is needed, but it offers no explicit when-to-use or when-not-to-use guidance. It does not name alternatives or exclusions, leaving the agent to infer applicability from the name and description alone.

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

connect_serial_device_busConnect serial device busA

Create a Serial DAT/CHOP scaffold for microcontrollers, sensors, and show-control devices with parse maps.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.serial_device_bus
activeNo
deviceNoCOM1
baud_rateNo
parent_pathNoParent COMP for the serial device scaffold./project1
include_chopNo
message_countNo

TDQS

A3.7/5.0
Behavior3/5

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

The description adds context beyond annotations by mentioning 'DAT/CHOP scaffold' and 'parse maps', but it does not disclose side effects, prerequisites, or what exactly gets created. With annotations already indicating a mutating operation and open-world behavior, this is acceptable but not rich.

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 a single, front-loaded sentence with no wasted words. It states the action, the resource type, and the intended use cases efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter creation tool with no output schema, the description is too thin. It gives a high-level purpose but lacks guidance on parameter semantics, configuration choices, or expected results, leaving the agent under-informed for accurate invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29%, and the description does little to compensate. Parameters like device, baud_rate, include_chop, and message_count are left unexplained; the only vague connection is 'parse maps' potentially relating to message parsing, but this is not explicit.

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 uses a specific verb ('Create') and names the exact resource ('Serial DAT/CHOP scaffold'), including the target device types and parse maps. This clearly distinguishes it from sibling connect/create tools, which target other protocols or systems.

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 gives clear context by indicating the tool is for microcontrollers, sensors, and show-control devices over serial. It does not explicitly state when not to use it or mention alternatives, so it stops short of full guidance, but the intended use case is reasonably clear.

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

connect_slack_ops_bridgeConnect Slack ops bridgeC

Create a Slack operator-alert scaffold with webhook/socket adapter, alert rows, approval-gated command rows, and token/signing safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.slack_ops_bridge
activeNo
socket_urlNows://127.0.0.1:9064/slack
adapter_urlNohttp://127.0.0.1:9064/slack
alert_countNo
parent_pathNoParent COMP for the Slack ops scaffold./project1
adapter_modeNoincoming_webhook
channel_nameNo#show-ops
command_countNo
workspace_labelNovenue_workspace
approval_requiredNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and openWorldHint=true, so the tool is expected to create/modify. The description adds value by enumerating what gets created (adapter, alert rows, command rows, safety notes), which is useful behavioral context. However, it does not disclose whether existing components are overwritten, side effects beyond the scaffold, or permission requirements.

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

Conciseness4/5

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

The description is a single sentence, efficient and free of redundancy. It front-loads the main action and lists key components compactly. Minor phrasing like 'operator-alert' could be clearer, but overall it is concise and structured well.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, no output schema, and no sibling differentiation, the description is too sparse. It does not explain what a 'Slack ops bridge' is, when it is needed, what the scaffold includes beyond a list, or how to interact with it. The tool appears to be a creation/scaffold action requiring more context about its role and outputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 18% (2/11 params described). The description loosely maps to some parameters (adapter_mode via 'webhook/socket adapter', alert_count via 'alert rows', approval_required/command_count via 'approval-gated command rows') but leaves many params (socket_url, adapter_url, channel_name, workspace_label, active, etc.) unexplained. Given the low schema coverage, the description should compensate more but does not fully.

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 clearly states the tool creates a 'Slack operator-alert scaffold' with specific components (webhook/socket adapter, alert rows, approval-gated command rows, token/signing safety notes), identifying a distinct resource and purpose. However, the name/title say 'connect' while the description says 'Create', creating slight ambiguity, and 'operator-alert scaffold' is somewhat jargon-heavy.

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

Usage Guidelines2/5

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

No explicit guidance is provided about when to use this tool versus alternatives (e.g., other bridge creation tools like connect_discord_interaction_bus). The description implies usage via 'Create a Slack operator-alert scaffold' but gives no context on scenarios, prerequisites, or exclusions.

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

connect_spout_syphon_routerConnect Syphon/Spout routerC

Create a platform-gated Syphon/Spout texture-sharing router scaffold with route maps and explicit setup notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoroundtrip
nameNoGenerated baseCOMP name.spout_syphon_router
activeNo
output_nameNoSyphon/Spout sender name to publish.tdmcp_output
parent_pathNoParent COMP for the router scaffold./project1
route_countNo
source_nameNoSyphon/Spout sender to receive.tdmcp_source

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate this is not read-only and not destructive, so the bar is lower. The description adds that it is a 'scaffold' and 'platform-gated,' providing some context. However, it does not disclose any side effects, permissions needed, or behavioral nuances beyond creation, so it only partially covers the burden with annotations present.

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

Conciseness4/5

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

The description is a single sentence, front-loaded with the verb 'Create,' and uses concise language. It is appropriately sized but includes jargon like 'platform-gated' that might need elaboration. Still, it earns a high score for efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and a complex domain (Syphon/Spout), the description is too minimal. It does not explain what the scaffold entails, how route maps are structured, platform requirements, or what 'explicit setup notes' contain. An agent would lack sufficient context to invoke this tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 57% (4 of 7 parameters have descriptions), which is moderate. The description does not explain any parameters directly, only mentioning 'route maps' which could be related to route_count but is not explicit. Since coverage is below 80%, the description should compensate but does not.

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 clearly uses the verb 'Create' with a specific resource: 'a platform-gated Syphon/Spout texture-sharing router scaffold with route maps and explicit setup notes.' This is distinct from generic actions and mentions platform gating. However, it does not differentiate from similar sibling tools like connect_ndi_router_matrix or osc_router_matrix.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no mention of prerequisites, and no scenarios provided. The description simply states what it does without any context for selection.

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

connect_supercollider_synthConnect SuperCollider synthA

Create a SuperCollider OSC synth/bus bridge scaffold with explicit port maps and no code-evaluation behavior.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.supercollider_synth
activeNo
sc_hostNo127.0.0.1
bus_countNo
send_portNo
parent_pathNoParent COMP for the scaffold./project1
synth_countNo
receive_portNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, and the description adds a meaningful safety guarantee: 'no code-evaluation behavior'. This goes beyond the annotations by clarifying a critical behavioral boundary. However, it does not mention side effects or permissions, so it is not a 5.

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 a single, front-loaded sentence that conveys key information efficiently. Every clause adds value: what is created, for what, what it includes, and a critical constraint. There is no wasted verbiage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter scaffold tool with no output schema, the description is too sparse. It does not explain what the scaffold contains, how the port maps are structured, or any prerequisites or side effects. The 'no code-evaluation' note is useful but insufficient for an agent to fully understand the tool's behavior and return expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 25% schema description coverage, the description must compensate for the 6 undocumented parameters, but it does not. It mentions 'port maps' which relates to send_port/receive_port but provides no details on syntax, defaults, or relationships. The parameter names are somewhat self-explanatory, but the description adds minimal value.

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 clearly states the specific verb 'Create' and the resource 'SuperCollider OSC synth/bus bridge scaffold', with additional distinguishing details like 'explicit port maps' and 'no code-evaluation behavior'. It differentiates from the many sibling connect_* bridge tools by naming SuperCollider directly.

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?

The description implies its use for creating a SuperCollider bridge scaffold but does not explicitly state when to use it versus alternatives or mention any prerequisites/exclusions. Since the purpose is clear from the name and description but lacks explicit guidance, it falls into 'implied usage'.

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

connect_ticketing_checkin_busConnect ticketing check-in busC

Create a ticketing/check-in scaffold with aggregate gate counts, ticket-tier maps, gate status, adapter source, and PII/token safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.ticketing_checkin_bus
activeNo
event_idNovenue_event
providerNoeventbrite
gate_countNo
venue_zoneNofront_gate
adapter_urlNohttp://127.0.0.1:9067/ticketing
parent_pathNoParent COMP for the ticketing scaffold./project1
adapter_modeNorest_json
expected_capacityNo
ticket_tier_countNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, and the description adds some context by naming the scaffold's contents and PII/token safety notes. However, it does not disclose side effects, where the component is created, or how the adapter source is wired, so it adds only moderate value beyond 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.

Conciseness4/5

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

The description is a single front-loaded sentence with no filler words. It efficiently captures the primary action and key deliverables, though the long list of scaffold components makes it somewhat dense and could benefit from better structuring.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, no output schema, and minimal schema descriptions, the description only offers a high-level summary. It omits default behavior, what the returned component represents, and how parameters interact. For a complex generation tool, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only 2 of 11 parameters have schema descriptions (18% coverage). The description references high-level concepts like gate counts, ticket-tier maps, and adapter source, but it does not map these to specific parameters or clarify meanings of enums like provider and adapter_mode. This fails to compensate for the low schema coverage.

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 clearly states the tool 'Create[s] a ticketing/check-in scaffold' and lists concrete scaffold contents like aggregate gate counts, ticket-tier maps, gate status, adapter source, and PII/token safety notes. This is specific enough to distinguish it from generic node creation tools, though the tool name says 'connect' while the description says 'Create', creating a minor verb inconsistency.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, nor does it compare with sibling tools like connect_pos_sales_telemetry or create_blacktrax_tracking_bus. Usage is only implied by the scaffold topic.

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

connect_tidalcycles_livecodingConnect TidalCycles live codingA

Create a TidalCycles/SuperDirt OSC scaffold with pattern and orbit maps for live-coded audiovisual sets.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.tidalcycles_livecoding
activeNo
send_portNo
tidal_hostNoTidalCycles/SuperDirt OSC host.127.0.0.1
orbit_countNo
parent_pathNoParent COMP for the Tidal scaffold./project1
receive_portNo
pattern_countNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, which align with the description's 'Create' action. The description adds context about scaffold contents (pattern and orbit maps) but does not disclose whether it creates new components or modifies existing ones, how it interacts with parent_path, or other side effects. No contradiction with annotations, so the lower bar is met with modest additional detail.

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 a single, densely informative sentence. It front-loads the action ('Create') and the resource, with no filler or repetition. Every word contributes to conveying the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters and no output schema, the description gives a reasonable overview but leaves questions about what the scaffold actually looks like in TouchDesigner, how the parameters interact, and what the tool returns. The description is adequate for a scaffolding tool but lacks structural details that would fully inform an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 38%, so the description should compensate for undocumented parameters. It mentions 'pattern and orbit maps', which loosely relates to pattern_count and orbit_count, but provides no meaning for send_port, receive_port, tidal_host, or active. Parameter names are self-explanatory, but the description adds little semantic value beyond the schema.

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 clearly states a specific action ('Create') on a specific resource ('TidalCycles/SuperDirt OSC scaffold') and includes the distinctive elements of pattern and orbit maps. This distinguishes it from many 'connect_*' and 'create_*' sibling tools, making its purpose immediately clear.

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?

The description implies usage for live-coded audiovisual sets but does not explicitly state when to choose this tool over alternatives like connect_supercollider_synth or connect_oscquery_namespace. There are no exclusions or comparisons to other connect tools, so guidance is only implied rather than explicit.

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

connect_tiktok_live_events_busConnect TikTok Live events busA

Create a TikTok Live-style event scaffold with sanitized event rows, gift tiers, moderation policy, adapter source, and auth/client safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.tiktok_live_events_bus
activeNo
adapter_urlNows://127.0.0.1:9080/tiktok-live
event_countNo
parent_pathNoParent COMP for the TikTok scaffold./project1
adapter_modeNowebsocket_json
creator_labelNoshow_creator
gift_tier_countNo
moderation_levelNofiltered

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the mutation aspect is known. The description adds that it creates a scaffold with sanitized rows and safety notes, but does not disclose specific side effects like file creation or network access. No contradiction with 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?

A single, dense sentence that packs all the key information without fluff. Every phrase adds value; it is appropriately front-loaded with the main action.

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 scaffold-creation tool with no output schema, the description gives a good high-level overview of the output composition. However, it omits any mention of return values, side effects, or usage context, which is a gap for a complex 9-parameter tool.

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 coverage is only 22%, so the description must compensate. It does map some parameters to concepts (gift tiers, moderation policy, adapter source) but leaves others (event_count, active, creator_label) unaddressed. This gives a partial semantic layer beyond the schema.

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 clearly states the tool's action: creating a TikTok Live-style event scaffold. It lists specific components (sanitized event rows, gift tiers, moderation policy, adapter source, auth/client safety notes), which distinguishes it from sibling bus-creation tools. Even though the tool name says 'connect', the description's 'create' 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or compare with other live-event bus tools. An agent would not know if this is the right choice for a TikTok Live integration scenario.

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

connect_touchengine_notchConnect TouchEngine NotchB

Create a TouchEngine/Notch bridge scaffold with stable output TOP, control channels, NDI/Syphon fallback modes, and explicit licensing/runtime warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNotouchengine
nameNoGenerated baseCOMP name.touchengine_notch
activeNoStart engine/fallback active where supported.
output_nameNoStable output Null TOP name.notch_out
parent_pathNoParent COMP for the bridge scaffold./project1
input_top_pathNoOptional TOP to feed into the engine/fallback.
control_channelsNoNamed control channels to scaffold.
tox_or_block_pathNoTouchEngine tox/block path or Notch block path.

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already communicate that this is a mutating (readOnlyHint=false) but non-destructive (destructiveHint=false) operation. The description adds some behavioral context by mentioning NDI/Syphon fallback modes and 'explicit licensing/runtime warnings,' which are real scaffolds behaviors. However, it does not disclose side effects such as whether existing comps are overwritten, where objects are created, or what specific warnings are added, leaving meaningful gaps beyond what annotations provide.

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

Conciseness4/5

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

The description is a single sentence that front-loads the verb and object, then lists the key features without filler. It is dense and packed with multiple ideas, but it remains readable and efficient. It could be slightly better structured with separate clauses, but it earns a strong score for no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters, no output schema, and modest annotation coverage, the description provides a solid high-level summary of the tool's purpose and key features. However, it omits usage context, return behavior, prerequisites (e.g., licenses), and side-effect details, leaving notable gaps for an agent attempting to use the tool correctly in a real workflow.

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 coverage is high (88%), so the baseline is 3. The description reinforces the mapping between high-level features and parameters (output TOP→output_name, control channels→control_channels, fallback modes→mode), but it adds no new syntax or format details. The undocumented parameters (mode, input_top_path) are not fully explained by either the schema or the description.

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 clearly states the action ('Create') and the resource ('TouchEngine/Notch bridge scaffold'), and it lists specific deliverables (stable output TOP, control channels, NDI/Syphon fallback modes, licensing/runtime warnings). However, it does not explicitly distinguish this tool from the sibling 'notch_touchengine_bridge' or other bridge-creation tools, so it falls just short of fully differentiating among similar options.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, nor any mention of prerequisites, exclusions, or fallback conditions beyond the feature names themselves. The only implied context is 'if you need this kind of scaffold,' which provides little help for an agent choosing among the many sibling connect/create tools.

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

connect_tuio_touch_surfaceConnect TUIO touch surfaceA

Create a TUIO touch-surface scaffold with TUIO DAT, optional raw OSC, cursor maps, and surface maps.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.tuio_touch_surface
activeNo
listen_portNo
parent_pathNoParent COMP for the TUIO surface scaffold./project1
cursor_countNo
surface_countNo
include_raw_oscNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the description's mention of 'create' is consistent and adds that it produces a scaffold with specific components. However, it does not disclose side effects (e.g., whether existing nodes are overwritten) or setup prerequisites, leaving the description to carry minimal added behavioral context.

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?

This is a single, front-loaded sentence that efficiently communicates the tool's essence without wasted words. It lists the key components and the optional raw OSC feature, making it both concise and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is minimally sufficient for a simple scaffold-creation tool. It identifies the components and parameters but does not explain the purpose of the TUIO DAT or maps in a broader TouchDesigner context, nor any post-creation steps. Given no output schema, this is adequate but could be richer.

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 coverage is only 29%, so the description needs to compensate. It does by mapping 'optional raw OSC' to include_raw_osc, 'cursor maps' to cursor_count, and 'surface maps' to surface_count. However, listen_port, active, and parent_path are not elaborated, though they are relatively self-explanatory. The description partially compensates for the low coverage.

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 clearly states the tool creates a TUIO touch-surface scaffold and lists the components included (TUIO DAT, optional raw OSC, cursor maps, surface maps). This distinguishes it from other connect/create tools for different protocols or touch surfaces.

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?

The description implies usage for setting up a TUIO touch surface but does not explicitly state when to use this tool vs. alternatives or any exclusions. Given the large number of sibling tools, this lack of explicit guidance is a notable gap.

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

connect_twitch_eventsub_busConnect Twitch EventSub busB

Create a Twitch EventSub/chat scaffold with sanitized event rows, reward maps, moderation policy, adapter source, and OAuth/webhook safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.twitch_eventsub_bus
portNo
activeNo
netaddressNo127.0.0.1
event_countNo
parent_pathNoParent COMP for the Twitch scaffold./project1
webhook_urlNohttp://127.0.0.1:9077/twitch
adapter_modeNowebsocket_json
reward_countNo
channel_loginNoshow_channel
moderation_levelNofiltered

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already establish readOnlyHint=false, openWorldHint=true, destructiveHint=false, so the safety profile is known. The description adds a list of scaffold contents but does not disclose side effects, permission requirements, or what happens to existing components. This adds moderate context without contradiction.

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 a single, front-loaded sentence that efficiently lists the scaffold's major components without wasted words. It is appropriately sized and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, no output schema, and only 18% schema description coverage, the description leaves significant ambiguity. It does not explain parameters, return values, or operational context, making it incomplete for an AI agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 18% (just name and parent_path). The description does not explain any of the 11 parameters, though it vaguely references 'reward maps' and 'moderation policy' that could map to reward_count and moderation_level. It fails to compensate for the low schema coverage.

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 uses the specific verb 'Create' and identifies the resource as a 'Twitch EventSub/chat scaffold' with enumerated components (sanitized event rows, reward maps, moderation policy, adapter source, OAuth/webhook safety notes). This clearly distinguishes it from the many sibling connect_* bus tools and makes the tool's function unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus siblings like connect_youtube_live_chat_bus or connect_tiktok_live_events_bus. The description only states what it does, not when to choose it, and no alternatives or exclusions are mentioned.

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

connect_udp_telemetry_bridgeConnect UDP telemetry bridgeA

Create a UDP In/Out DAT scaffold for telemetry packets, replies, status maps, and diagnostics.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.udp_telemetry_bridge
activeNo
listen_portNo
parent_pathNoParent COMP for the UDP telemetry scaffold./project1
remote_portNo
packet_countNo
remote_addressNo127.0.0.1

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false, which the description does not contradict. The description adds minimal context beyond the annotations, noting it creates a 'scaffold' and listing the intended data categories (packets, replies, status maps, diagnostics), but does not detail side effects, permissions, or lifecycle behavior.

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 a single, focused sentence that starts with the action verb 'Create' and directly states the object and scope. It contains no filler or redundant information, earning full marks for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, low schema coverage, and no output schema, the description is too thin to fully equip an agent. It does not explain what the resulting scaffold looks like, how parameters affect the outcome, what success/failure returns, or any prerequisites. The description is adequate for a high-level overview but insufficient for safe and correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29% (only 'name' and 'parent_path' have descriptions). The tool description does not explain any of the seven parameters, such as listen_port, remote_port, packet_count, or active, nor how they relate to the UDP scaffold. This is a significant gap for a 7-parameter tool.

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 clearly states the tool's action: 'Create a UDP In/Out DAT scaffold' for telemetry-related data. It distinguishes itself from sibling bridge tools by specifying the UDP protocol and telemetry purpose, making it unmistakable among many connect_* alternatives.

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?

The description implies use for setting up a UDP telemetry bridge scaffold, but provides no explicit guidance on when to prefer this tool over other bridge/connect tools (e.g., connect_oscquery_namespace or connect_websocket_control_bus). No exclusions or alternative recommendations are mentioned.

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

connect_unity_osc_bridgeConnect Unity OSC bridgeA

Create a Unity OSC and preview handoff scaffold for object transforms, events, and NDI/Syphon notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.unity_osc_bridge
activeNo
namespaceNo/tdmcp
send_portNo
unity_hostNo127.0.0.1
event_countNo
parent_pathNoParent COMP for the Unity bridge./project1
object_countNo
preview_modeNonone
receive_portNo

TDQS

A3.5/5.0
Behavior3/5

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

With annotations indicating openWorldHint=true and destructiveHint=false, the description adds some context by specifying it creates a scaffold for transforms, events, and NDI/Syphon notes. However, it does not disclose what a 'preview handoff' entails, whether it creates a COMP in the network, or any side effects beyond the creation.

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 a single, front-loaded sentence that clearly communicates the core action and purpose. It contains no redundant or filler words, making it concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 10 parameters and no output schema, the description is too terse to be complete. It does not explain the overall workflow, what the scaffold consists of, how preview handoff works, or any prerequisites. An agent would need significant additional information to invoke this tool correctly for real-world scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, and the description barely compensates. It only hints at parameters like object_count, event_count, and preview_mode through 'object transforms, events, and NDI/Syphon notes', but does not explain send_port, receive_port, namespace, active, etc. The description adds minimal value beyond the schema, leaving most parameters under-documented.

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 clearly states the tool creates a Unity OSC bridge scaffold, specifically mentioning object transforms, events, and NDI/Syphon preview handoff. This distinguishes it from sibling bridge tools like those for Unreal or other external systems, making the purpose unambiguous.

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?

The tool's usage is implied by its name and description: it is for connecting to Unity via OSC with preview support. However, it does not explicitly state when to use this versus alternative bridge tools (e.g., Unreal LiveLink) nor any prerequisites like running Unity, which would be helpful given the large set of sibling bridge creators.

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

connect_uwb_anchor_busConnect UWB anchor busB

Create a UWB RTLS scaffold with sanitized tag positions, anchor maps, spatial policy, adapter source, and tag-privacy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.uwb_anchor_bus
activeNo
tag_countNo
zone_countNo
adapter_urlNows://127.0.0.1:9086/uwb
parent_pathNoParent COMP for the UWB scaffold./project1
space_labelNotracked_space
adapter_modeNowebsocket_json
anchor_countNo
position_unitsNometers

TDQS

B3.1/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond annotations: it explicitly mentions 'sanitized tag positions' and 'tag-privacy notes', indicating the tool applies privacy sanitization and generates privacy-related documentation. This is more specific than the readOnly/destructive hints and aligns with them. It does not contradict annotations, though it stops short of detailing network side effects or idempotency.

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

Conciseness4/5

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

The description is a single, information-dense sentence that front-loads the core action ('Create a UWB RTLS scaffold') and then lists the key components. It avoids redundancy and is well-structured, though the use of jargon like 'sanitized' and 'spatial policy' slightly reduces immediate clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters, low schema coverage, and no output schema, the description is too high-level. It does not specify what the tool returns, how to configure the scaffold, or any prerequisites or side effects. The privacy-related context is useful but insufficient for an agent to invoke the tool correctly without additional guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 20% schema description coverage, the description needed to clarify parameter meanings but does not. It loosely references concepts like 'anchor maps' and 'spatial policy' that might map to anchor_count or space_label, but it never explicitly links them or explains how to choose values for fields like tag_count, zone_count, adapter_mode, or position_units. The 10 parameters are left mostly unexplained.

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 clearly states the tool creates a UWB RTLS scaffold and enumerates its contents (sanitized tag positions, anchor maps, spatial policy, adapter source, tag-privacy notes), which distinguishes it from other tracking/bus tools. However, the title says 'Connect' while the description focuses on 'Create a scaffold', introducing mild ambiguity about whether it directly connects to hardware or just sets up the system.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The description does not mention prerequisites, use cases, or contrast with sibling tools like create_optitrack_tracking_bus. Usage is only implied by the tool name and the scaffold elements listed.

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

connect_vdmx_workspaceConnect VDMX workspaceA

Create a VDMX OSC/Syphon workspace scaffold with layer, clip, preview, and setup maps.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.vdmx_workspace
activeNo
send_portNo
vdmx_hostNo127.0.0.1
clip_countNo
layer_countNo
parent_pathNoParent COMP for the VDMX scaffold./project1
preview_modeNosyphon_spout
receive_portNo

TDQS

A3.5/5.0
Behavior3/5

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

The description states that it creates a scaffold with specific maps, which adds some context beyond the annotations. However, it does not disclose potential side effects such as adding nodes to the network, requiring a running VDMX instance, or what 'setup maps' entail. The openWorldHint signals external effects, but the description could be richer.

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 a single, concise sentence that front-loads the action and resource. Every word contributes meaning without waste, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters and no output schema, the description is too sparse. It does not explain return values, prerequisites, or the structure of the scaffold. The agent lacks guidance on how the scaffold is laid out, what maps are created, or how the parameters influence the result, making it incomplete for complex usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 22% schema description coverage, the description must compensate for undocumented parameters. It only vaguely references 'layer, clip, preview' which can map to layer_count, clip_count, and preview_mode, but it does not explain critical parameters like send_port, receive_port, vdmx_host, or parent_path. This adds minimal value over the raw schema.

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 uses the specific verb 'Create' with a clear resource: 'VDMX OSC/Syphon workspace scaffold' and lists key components (layer, clip, preview, setup maps). This clearly identifies the tool's function and distinguishes it from sibling integration tools by explicitly naming VDMX and its scaffold components.

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?

The description implies usage for creating a new VDMX workspace scaffold, but it does not explicitly state when to use this tool versus alternatives like connect_resolume_arena or connect_oscquery_namespace. No prerequisites or exclusions are mentioned, leaving the agent to infer from the name and context.

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

connect_video_stream_receiverConnect video stream receiverA

Create a Video Stream In TOP scaffold for RTSP, HLS, SRT, or WebRTC ingest with stream maps and setup notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNortsp://127.0.0.1:8554/live
modeNortsp
nameNoGenerated baseCOMP name.video_stream_receiver
activeNo
latency_msNo
parent_pathNoParent COMP for the Video Stream In scaffold./project1

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and openWorldHint=true, indicating a mutating creation operation, which the description aligns with ('Create a Video Stream In TOP scaffold'). The description adds value by specifying the protocol types and the inclusion of stream maps and setup notes, giving more concrete behavioral context beyond 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 a single concise sentence that communicates the core purpose without redundancy. Every phrase adds information: the action, the target component, the protocol list, and the included artifacts.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters and no output schema, the description is insufficient for an agent to understand how to correctly configure the tool. It does not explain parameter semantics, default behaviors, or what the scaffold will look like. While the annotations provide safety cues, the description leaves significant gaps for a tool with this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%, with descriptions only for 'name' and 'parent_path'. The description mentions protocols (RTSP, HLS, SRT, WebRTC) that map to the 'mode' enum, but it does not clarify the meaning or expected values for 'url', 'active', 'latency_ms', or 'parent_path'. Given the low schema coverage, the description fails to compensate for the lack of parameter clarity.

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 clearly states the specific action ('Create a Video Stream In TOP scaffold') and resource, listing supported protocols (RTSP, HLS, SRT, WebRTC) and additional outputs (stream maps, setup notes). This distinguishes it from broader 'connect' siblings by naming the specific TOP type and purpose.

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?

The description implies usage for setting up video ingestion via a Video Stream In TOP, but it does not explicitly state when to use this tool versus alternatives like connect_webrtc_browser_input or other connect_* tools. There are no exclusions or alternative recommendations, leaving some ambiguity.

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

connect_vmix_productionConnect vMix productionA

Create a vMix HTTP/API production-control scaffold for input switching, overlays, recording, and streaming command templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.vmix_production
activeNo
api_portNo
vmix_hostNo127.0.0.1
input_countNo
parent_pathNoParent COMP for the vMix scaffold./project1
overlay_countNo
include_record_streamNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already convey readOnlyHint=false and destructiveHint=false, so the agent knows it is a mutating but non-destructive operation. The description adds that it creates a scaffold of command templates, but does not disclose side effects, prerequisites, or what the scaffold entails. The openWorldHint=true and mention of HTTP/API imply external interaction, but without detail.

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 a single sentence that is front-loaded with the primary action and succinctly enumerates key features. It contains no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 optional parameters and no output schema, the description is too thin. It does not explain what 'scaffold' means, what result the user should expect, or any setup requirements. More context about the tool's creation behavior and return value is needed to be complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (25%), so the description should compensate for undocumented parameters. It loosely maps capabilities (input switching, overlays, recording, streaming) to some parameters (input_count, overlay_count, include_record_stream), but it does not clarify important parameters like api_port, vmix_host, active, or parent_path. This is minimal compensation.

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 uses a specific verb ('Create'), names the resource ('vMix HTTP/API production-control scaffold'), and lists the key capabilities (input switching, overlays, recording, streaming command templates). This clearly distinguishes it from sibling connect_* tools targeting other systems.

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?

There is no explicit guidance on when to use this tool versus alternatives. The purpose implies usage for vMix production control, but no clear context for selection is provided, and alternative tools are not referenced.

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

connect_weather_forecast_busConnect weather forecast busB

Create a weather forecast/station scaffold with forecast rows, sensor maps, alert maps, adapter source, and safety-policy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.weather_forecast_bus
activeNo
providerNoopenweather
adapter_urlNohttp://127.0.0.1:9069/weather
alert_countNo
parent_pathNoParent COMP for the weather scaffold./project1
adapter_modeNorest_json
sensor_countNo
location_labelNovenue
forecast_hour_countNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate a non-read-only, non-destructive open-world operation. The description adds context about what the scaffold includes, which is useful, but it does not disclose side effects, generated structure details, or runtime behavior beyond listing component categories.

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 a single, front-loaded sentence that conveys the core purpose and key components without wasted words. It is appropriately sized for its role.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, no output schema, and minimal annotation context, this short description is insufficient. It does not explain the meaning of parent_path, active, provider, or count parameters, nor what the created scaffold will look like or how to verify success.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 20% schema description coverage, the description needed to compensate, but it does not mention any parameter names or map its component words to schema properties. The phrase 'forecast rows' hint at forecast_hour_count and 'adapter source' at adapter_url/adapter_mode, but this is too vague to guide correct values for the eight undocumented parameters.

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 uses a specific verb ('Create') and identifies a clear resource ('weather forecast/station scaffold') with enumerated components (forecast rows, sensor maps, alert maps, adapter source, safety-policy notes). This makes it distinct from broader 'create' and 'connect' siblings.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus the many similar bus/scaffold creation tools in the sibling list. There are no exclusions, prerequisites, or alternative tool references, leaving the agent to infer appropriate usage.

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

connect_webrtc_browser_inputConnect WebRTC browser inputB

Create a browser/WebRTC input scaffold for webcam, screen, pointer, and sensor data supplied by an external signaling app.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.webrtc_browser_input
activeNo
room_idNotdmcp
input_modeNomixed
parent_pathNoParent COMP for the WebRTC scaffold./project1
signaling_urlNows://127.0.0.1:8787
include_data_channelsNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and openWorldHint=true, so the mutation and external side effects are known. The description adds that it creates a 'scaffold' and that data is supplied by an external signaling app, but it does not disclose concrete side effects like adding a COMP at parent_path or attempting to connect to signaling_url. No contradiction with 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 a single sentence with no filler, front-loaded with the verb 'Create' and the resource. It efficiently packs the key aspects: scaffold type, data sources, and the external signaling dependency, making it very concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters and no output schema, the description is too thin. It does not explain what the tool returns, what 'scaffold' concretely entails, or prerequisites like browser-side setup. The external signaling app note is useful, but the description leaves too much to inference for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29%, so the description must compensate. It clarifies input_mode by listing data types (webcam, screen, pointer, sensor) and indirectly references signaling_url, but it leaves active, room_id, include_data_channels, and name without meaningful explanation. The description adds partial value but is insufficient for several parameters.

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 clearly states the tool creates a browser/WebRTC input scaffold for webcam, screen, pointer, and sensor data. It uses a specific verb and resource, and the mention of 'external signaling app' adds scope. It does not explicitly distinguish from sibling tools like connect_video_stream_receiver, but the name and description are specific enough.

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?

The description implies usage when browser-based media input is needed, but it does not explicitly state when to use this tool versus alternatives or provide exclusions. The context about an external signaling app hints at a use case, but there is no direct comparison to other connect_* tools.

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

connect_websocket_control_busConnect WebSocket control busB

Create a WebSocket DAT scaffold with command maps, message schema hints, status, and safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
tlsNo
nameNoGenerated baseCOMP name.websocket_control_bus
pathNo/
portNo
activeNo
net_addressNo127.0.0.1
parent_pathNoParent COMP for the WebSocket control scaffold./project1
command_countNo

TDQS

B3/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, so the mutating but non-destructive behavior is already known. The description adds context by listing scaffold contents (command maps, message schema hints, status, safety notes), but no deeper behavioral details like permissions or side effects.

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 a single, front-loaded sentence with no unnecessary words. It immediately states the action and key output characteristics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters and no output schema, the description is too sparse. It does not clarify how the scaffold is created, what 'command maps' and 'safety notes' mean, or how the parameters affect the result. This is inadequate for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, and the description does not explain any of the 8 parameters. It mentions high-level scaffold features but adds no meaning to parameters like port, path, tls, active, net_address, or command_count. The description should compensate for low schema coverage but does not.

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 clearly states the tool creates a WebSocket DAT scaffold, which is a specific verb+resource. It slightly distinguishes from siblings by mentioning WebSocket and control bus, but does not explicitly contrast with other connection tools.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. The name implies WebSocket control bus usage, but there are no explicit exclusions or alternative tool references.

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

connect_whisper_transcription_busConnect Whisper transcription busC

Create a Whisper-compatible transcription scaffold with audio/file/chunk ingest, segment maps, status tables, and privacy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.whisper_transcription_bus
activeNo
audio_fileNo
server_urlNows://127.0.0.1:9030
parent_pathNoParent COMP for the Whisper scaffold./project1
source_modeNoaudio_file
language_hintNoauto
segment_countNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, openWorldHint=true, and destructiveHint=false. The description adds that it creates a scaffold, which is consistent with these annotations, but does not disclose additional behavioral traits such as side effects, required permissions, or what the scaffold entails at runtime. It adds some context but not rich detail.

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

Conciseness4/5

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

The description is a single sentence that is direct and front-loaded with the main action. It efficiently lists the key components without excessive fluff. However, it is slightly dense with multiple clauses, but still concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no output schema, and only 25% schema coverage, the description is too brief to provide a complete understanding. It does not mention return values, how the scaffold is connected, or the significance of parameters like server_url or active. The description gives high-level intent but lacks essential operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (only name and parent_path), so the description must compensate. The description mentions 'audio/file/chunk ingest' and 'segment maps' which loosely map to source_mode and segment_count, but it does not explain parameters like audio_file, server_url, active, language_hint, or their meanings. The description adds minimal value beyond the schema.

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 clearly states the tool creates a Whisper-compatible transcription scaffold with specific components (audio/file/chunk ingest, segment maps, status tables, privacy notes). This distinguishes it from other connect_* and create_* tools. However, the verb 'Create' conflicts slightly with the tool name 'connect', and it doesn't explicitly differentiate from any sibling alternatives.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, use cases, or when not to use it. The description only states what it does, leaving the agent to infer appropriate usage from the name and context.

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

connect_wifi_presence_busConnect Wi-Fi presence busB

Create a Wi-Fi presence scaffold with aggregate occupancy rows, dwell buckets, privacy policy, adapter source, and device-privacy notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.wifi_presence_bus
activeNo
site_labelNovenue_floor
zone_countNo
adapter_urlNohttp://127.0.0.1:9088/wifi-presence
parent_pathNoParent COMP for the Wi-Fi scaffold./project1
adapter_modeNohttp_json
dwell_bucket_countNo
aggregate_window_secNo

TDQS

B3.1/5.0
Behavior4/5

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

The description adds behavioral context by enumerating what the scaffold includes (aggregate occupancy rows, dwell buckets, etc.), going beyond the basic openWorldHint and readOnlyHint annotations. It correctly implies a create operation (matching openWorldHint true) with no destructive side effects. No contradictions found, but it does not mention side effects like existing node modifications or failure modes.

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

Conciseness4/5

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

The description is a single sentence that front-loads the action and resource, then lists key components. It is concise with no filler words. However, the list of components is dense and lacks expansion, making it efficient but potentially unclear without external context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no required fields, low schema coverage, and no output schema, the description is insufficient for an agent to understand how to customize the scaffold or predict its return value. The tool relies heavily on defaults, but the agent has no way to know which parameters matter for a given use case. The description does not explain parameter relationships, constraints, or what happens after creation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22% (2 of 9 parameters described). The description mentions concepts like 'dwell buckets' and 'adapter source' which map to parameters (dwell_bucket_count, adapter_url, adapter_mode), but it also introduces 'privacy policy' and 'device-privacy notes' that have no corresponding schema properties. It fails to explain most parameters (active, site_label, zone_count, parent_path, etc.) and does not compensate for the low schema coverage.

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 clearly states it creates a Wi-Fi presence scaffold with specific components (aggregate occupancy rows, dwell buckets, privacy policy, adapter source, device-privacy notes). This distinguishes it from sibling tools like generic bus connectors. However, the tool title says 'Connect' while the description says 'Create', creating a minor verb mismatch that could confuse agents looking for connection tools.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or scenarios where other tools (e.g., create_blacktrax_tracking_bus) would be more appropriate. The agent receives no context for choosing this over similar scaffold/connect tools.

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

connect_xsens_mvn_mocapConnect Xsens MVN mocapA

Create an Xsens MVN mocap scaffold with OSC/UDP/TCP ingest, actor/segment mapping, normalized skeleton tables, and coordinate-space notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.xsens_mvn_mocap
activeNo
actor_countNo
parent_pathNoParent COMP for the Xsens scaffold./project1
server_hostNo127.0.0.1
source_modeNomvn_osc
receive_portNo
segment_countNo
coordinate_spaceNomvn_y_up

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the agent knows this is a mutating but non-destructive operation. The description adds what gets created (scaffold with ingest, mapping, tables, notes) but does not disclose deeper behavioral traits such as network side effects, dependencies on external Xsens software, or what happens to existing nodes. This meets the minimum bar but lacks extra context.

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 a single, front-loaded sentence that packs essential information without wasted words. It enumerates the scaffold's key components efficiently and avoids filler, making it easy to scan and understand.

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 creation tool with no output schema and 9 parameters, the description gives a solid high-level picture of what the tool does and what components are included. It does not explain return values or prerequisites, but the main purpose and feature set are clear enough for an agent to decide to invoke it. Given the lack of output schema, a bit more detail on outcomes would be better, but the overall completeness is adequate.

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 description coverage is only 22%, with only name and parent_path having descriptions. The description compensates by associating key features with parameters: 'OSC/UDP/TCP ingest' maps to source_mode and receive_port, 'actor/segment mapping' to actor_count and segment_count, and 'coordinate-space notes' to coordinate_space. This adds meaning beyond the bare schema, though it does not cover every parameter explicitly.

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 clearly states the action ('Create') and the specific resource ('an Xsens MVN mocap scaffold'), while listing distinguishing features such as OSC/UDP/TCP ingest, actor/segment mapping, normalized skeleton tables, and coordinate-space notes. This distinguishes it from sibling mocap tools like create_optitrack_tracking_bus or create_nuitrack_body_bus.

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 provides clear context for when to use this tool: when an Xsens MVN mocap scaffold with specific ingest protocols and mapping capabilities is needed. It does not explicitly name alternatives or exclusions, but the specificity of 'Xsens MVN' and the listed features make the usage scenario clear.

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

connect_youtube_live_chat_busConnect YouTube Live Chat busB

Create a YouTube Live Chat scaffold with sanitized message rows, Super Chat tiers, moderation policy, adapter source, and API/quota safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.youtube_live_chat_bus
activeNo
channel_idNoyoutube_channel
adapter_urlNohttp://127.0.0.1:9078/youtube-chat
parent_pathNoParent COMP for the YouTube scaffold./project1
adapter_modeNopolling_json
live_chat_idNolive_chat
message_countNo
moderation_levelNofiltered
super_chat_tier_countNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already signal a non-read-only, non-destructive write operation. The description adds detail about scaffold contents (e.g., moderation policy, API/quota safety notes) but does not disclose side effects like overwriting existing COMPs, need for YouTube API credentials, or rate limiting behavior. This is consistent with annotations but adds limited behavioral context.

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 a single sentence that efficiently lists the key scaffold features. It is front-loaded with the verb 'Create' and contains no redundant phrases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 10 parameters and no output schema, yet the description only offers a high-level component list. It omits configuration details (e.g., adapter_mode options, moderation_level semantics) and does not describe the resulting COMP structure or project impact, leaving gaps for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, and the description references components like 'sanitized message rows' and 'Super Chat tiers' without clarifying how they map to parameters such as message_count or super_chat_tier_count. The description does not explain parameter meanings, allowed values, or relationships, so the low schema coverage is not compensated.

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 uses a specific verb ('Create') and identifies a concrete resource ('YouTube Live Chat scaffold'), listing key components like sanitized message rows and Super Chat tiers. It is clear about the tool's goal, but does not explicitly distinguish it from the many similar scaffold/bus creation sibling tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool over alternatives. It does not mention prerequisites, scenarios, or exclusions. Usage is only implied by the tool name and component list.

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

controlled_disorder_gridControlled disorder gridA

Generate a rows×cols grid of quads (or outlined cells) with a single order↔chaos disorder knob: 0 = a perfect grid, 1 = full chaos. The one knob scales per-cell position, rotation, and scale jitter together — each hashed from the cell index in a single GLSL TOP so the pattern is stable and reproducible (the classic generative-design 'controlled randomness' / Schotter study, no external source). Set outline: true for line cells. Creates a new baseCOMP under parent_path. Exposes the live Disorder knob plus CellColor/Background swatches. Returns a summary plus a JSON block with node paths, exposed controls, node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
colsNoNumber of grid columns (left to right).
fillNoCell size within its slot (0..1); leaves gutters between cells.
rowsNoNumber of grid rows (top to bottom).
outlineNoDraw outlined cells instead of filled quads (classic Schotter look).
disorderNoThe single order↔chaos knob. 0 = a perfect grid; 1 = full chaos. Scales all per-cell position/rotation/scale jitter together.
backgroundNoBackground colour hex. Live RGB swatch 'Background'.#101014
cell_colorNoCell / line colour hex (e.g. '#f2f2f2'). Live RGB swatch 'CellColor'.#f2f2f2
line_widthNoOutline thickness (fraction of a cell); used only when outline=true.
pos_jitterNoMax per-cell position offset at disorder=1 (fraction of a cell).
resolutionNoOutput resolution [width, height] of the GLSL TOP (square suits a grid).
rot_jitterNoMax per-cell rotation at disorder=1 (radians).
parent_pathNoParent COMP path the self-contained 'disorder_grid' container is created inside./project1
scale_jitterNoMax per-cell scale variation at disorder=1 (fraction).
expose_controlsNoExpose the live Disorder knob (and CellColor/Background swatches).

TDQS

A4.5/5.0
Behavior5/5

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

The description transparently discloses side effects: 'Creates a new baseCOMP under parent_path', determinism via 'each hashed from the cell index in a single GLSL TOP', and the shape of the return value including node errors and warnings. This goes well beyond the annotations (readOnlyHint: false, openWorldHint: true) by explaining what will be created and what the response contains. No contradiction.

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?

Four sentences with no wasted words. The first sentence specifies the core function and the disorder range, and subsequent sentences cover customization, creation side effects, and return value in a compact, front-loaded structure.

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?

Given 14 parameters, no output schema, and only basic annotations, the description covers all essential context: what it generates, how it achieves stability, what side effects occur, what live controls are exposed, and exactly what the response includes (summary, node paths, errors, warnings, preview image). The return-value detail compensates for the missing output 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 100%, so the baseline is 3. The description adds cross-parameter meaning by explaining that the disorder knob 'scales per-cell position, rotation, and scale jitter together', connecting the individual jitter parameters (pos_jitter, rot_jitter, scale_jitter) into a single mental model. It also clarifies parent_path as the creation location. These are meaningful additions beyond the schema.

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 leads with a specific verb and resource: 'Generate a rows×cols grid of quads (or outlined cells)' and uniquely identifies the disorder knob. This clearly distinguishes it from generic siblings like create_generative_art or create_glsl_shader.

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?

The description implies usage context through 'classic generative-design controlled randomness / Schotter study' and explains the single-knob mechanism, but it never explicitly states when to choose this tool over alternatives or names any exclusion cases. Usage is largely implied rather than directed.

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

control_timeline_transportControl Timeline TransportA

Drive the TouchDesigner project timeline: play, pause, seek to a frame, jump to a named cue, or set playback rate. Returns the timeline state after the action so a copilot can verify the change took effect. NOTE: pausing will freeze any downstream motion/feedback/frame-diff chain — expected behaviour, not a bug.

ParametersJSON Schema
NameRequiredDescriptionDefault
rateNoPlayback rate multiplier for rate (required when action='rate'). 1.0=normal, 0.5=half, 2.0=double.
frameNoTarget frame for seek (required when action='seek').
actionYesTransport verb: play — start playback; pause — stop playback; seek — jump to a frame; cue — jump to a named cue point; rate — set playback rate.
cueNameNoNamed cue point for cue (required when action='cue').

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark it as a mutation (readOnlyHint=false). The description adds valuable context: it returns the timeline state for verification, and it discloses the side effect of pausing freezing downstream chains. This exceeds what annotations alone convey.

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?

Three concise sentences: purpose, return value, and a side-effect warning. Every sentence earns its place and information is front-loaded.

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 tool with good annotations and 100% schema coverage, the description covers all essential aspects: actions, return behavior, and a notable side effect. No output schema exists, but the return value is described, so no critical gaps remain.

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 does not add parameter details beyond what the schema already provides; it only maps high-level actions to parameter names implicitly.

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 clearly states the tool drives the TouchDesigner project timeline with specific verbs (play, pause, seek, jump, set rate), distinguishing it from sibling tools that manage cues or query info.

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?

Usage is implied through the enumerated actions, but the description does not explicitly state when to use this tool versus alternatives like manage_cue or execute_python_script, nor any exclusions.

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

copilot_visionAsk the LLM about a TOP (multimodal)A
Read-only

Capture a TOP as a preview image and ask the configured multimodal LLM a question about it. Numeric-loopback endpoints need no extra opt-in; remote, client-managed, or unknown backends require allow_remote_image_egress=true for that frame. Returns redacted egress locality/transport and calibration: not_checked; this read-only tool is NOT the calibrated visual-mutation authority. Uses ctx.llm.complete() with an image part. Different from caption_top, which is deterministic-by-default.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoWidth to render the preview at before sending.
heightNoHeight to render the preview at before sending.
systemNoOptional system instruction (defaults to a TouchDesigner vision-assistant prompt).
questionYesQuestion or instruction about the image (e.g. 'what colors dominate?').
max_tokensNoUpper bound on response tokens.
source_topYesPath of the TOP to send to the vision LLM.
allow_remote_image_egressNoExplicitly allow this captured frame to leave numeric loopback through a remote OpenAI-compatible endpoint or MCP sampling client. Required for every non-loopback call.

TDQS

A4.6/5.0
Behavior5/5

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

The description adds meaningful behavioral context beyond the readOnlyHint annotation: it explains egress requirements for remote backends, states that returns are redacted, and notes `calibration: not_checked`. It also discloses implementation via ctx.llm.complete(). No contradiction with 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?

Three concise sentences with no fluff. The main purpose is front-loaded, followed by key constraints and a sibling differentiation.

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?

The description covers the core operation and key edge-case constraints (egress, calibration). However, since there is no output schema, it would be helpful to explicitly state that the response contains the LLM's answer; it is implied but not stated. Overall, it is fairly complete for the tool's complexity.

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?

All parameters are already described in the schema (100% coverage), so baseline is 3. The description adds value by clarifying when `allow_remote_image_egress` is needed and by explaining the role of `source_top` in the capture process, enhancing the schema descriptions.

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 clearly states the tool captures a TOP as a preview image and asks a multimodal LLM a question about it. It distinguishes itself from sibling `caption_top` by noting the different behavior (deterministic vs open-ended).

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?

Provides context on when to use the tool by contrasting with `caption_top` (deterministic vs open-ended) and states it is not the calibrated visual-mutation authority. It also gives configuration guidance for when `allow_remote_image_egress` is required, but does not explicitly enumerate all alternative tools or exclusion cases.

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

create_3d_audio_reactiveCreate 3D audio-reactive sceneA

Build a 3D scene that reacts to sound — the 3D counterpart of create_audio_reactive (use that for a 2D spectrum visual instead). Creates a new baseCOMP under parent_path. An FFT spectrum chain feeds geometry: 'instanced_bars' renders a row of bands boxes/spheres whose individual heights track each frequency bin (a 3D spectrum bar-graph), while 'bass_pulse' swells a single primitive with the low-frequency energy. Includes a Camera, Light, and Render TOP, output as a Null TOP. Exposes Sensitivity (audio gain), Zoom (camera distance), and Spin (whole-scene rotation) knobs. Source can be the live device (mic/line — may prompt for macOS permission), an audio file, a synthetic oscillator (for testing), or an existing CHOP. Returns a summary plus a JSON block with the container path, created node paths, the spectrum/geometry/camera/render/output paths, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'instanced_bars' = a row of `bands` boxes/spheres, each one's height driven by one frequency bin (a 3D spectrum bar-graph). 'bass_pulse' = a single primitive that swells with the low-frequency energy (the guaranteed-visible fallback).instanced_bars
spinNoWhole-scene rotation around Y in degrees/sec (0 = still). Spins the entire bar row / object over time.
bandsNoNumber of bars in 'instanced_bars' mode — one per frequency bin.
sourceNoAudio source. 'device' = live microphone/line in (the real-world default; creating it may pop a one-time macOS microphone-permission dialog — click Allow). 'file' = an audio file. 'oscillator' = a synthetic tone (white noise → energy in every band, handy for testing without any device permission). 'existing_chop' = reuse a CHOP you already have.device
primitiveNoGeometry rendered for each bar / the pulsing object.box
parent_pathNoParent network where the scene container is created (default '/project1')./project1
audio_file_pathNoPath to an audio file to play; used only when source='file'.
expose_controlsNoWhen true (default), expose live Sensitivity (audio gain), Zoom (camera distance), and Spin knobs.
existing_chop_pathNoPath of an existing audio CHOP to analyze; used only when source='existing_chop'.

TDQS

A4.9/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint false, openWorldHint true, destructiveHint false), the description discloses specific behavioral traits: creates a baseCOMP under parent_path, includes Camera/Light/Render TOP and Null TOP output, exposes Sensitivity/Zoom/Spin controls, warns about a macOS microphone-permission prompt, and describes the return payload (summary + JSON block with paths, errors, warnings, preview image). No contradiction with 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 well-structured and front-loaded with the core purpose, then systematically explains modes, components, controls, sources, and return value. Every sentence adds information; there is no filler or repetition of schema field text. Despite its length, it remains appropriately concise for a complex build tool.

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?

This is a complex tool with 9 parameters, no output schema, and only basic annotations. The description fully compensates by covering the generated node structure, source options, permission caveat, exposed controls, return format, and fallback behavior. It provides enough context for an agent to invoke the tool correctly and interpret the result.

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?

Input schema covers 100% of parameters with detailed descriptions, so baseline is 3. The description adds extra semantic value beyond schema: 'bass_pulse' is described as the guaranteed-visible fallback, 'oscillator' is 'handy for testing without any device permission', and it explains the FFT spectrum mapping context. These nuances help parameter selection beyond what the schema already provides.

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+resource ('Build a 3D scene that reacts to sound') and clearly distinguishes this from the sibling create_audio_reactive (2D counterpart). It also differentiates from other 3D creation tools like create_3d_scene by focusing on audio reactivity and FFT-driven geometry.

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

Usage Guidelines5/5

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

The description explicitly names the alternative tool (create_audio_reactive) for 2D spectrum visuals and provides guidance on choosing between modes (instanced_bars vs bass_pulse fallback) and sources (device/file/oscillator/existing_chop), including when oscillator is handy for testing without device permission. This is clear when-to-use and alternative guidance.

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

create_3d_sceneCreate 3D sceneA

Build a renderable 3D scene: a Geometry COMP holding the chosen primitive (sphere/box/grid), a Camera, a Light, and a Render TOP, output as a Null. Creates a new baseCOMP under parent_path holding all of these — optionally instanced into a grid of instances copies via GPU instancing, with scale_variation for per-copy random sizes and spin for per-copy rotation over time. Exposes RotateY (whole-scene spin) and Zoom (camera distance) knobs. The starting point for 3D visuals — bind RotateY to a tempo ramp or an audio feature to make it move. Use create_3d_audio_reactive instead when you want the geometry driven by sound, or create_pbr_scene for physically-based materials. Returns a summary plus a JSON block with the container path, created node paths, the geometry/camera/render/output paths, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
spinNoPer-instance spin around Y in degrees/sec (0 = still). Each copy rotates in place over time; needs instances > 1.
instancesNoCopies to scatter via GPU instancing on a grid (1 = a single object).
primitiveNoGeometry to render.sphere
parent_pathNoParent network where the 3D-scene container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live RotateY (spin) and Zoom (camera distance) knobs.
scale_variationNoPer-instance size variation: 0 = all the same size, 1 = sizes range from 0 to full. Needs instances > 1.

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses detailed behavioral traits: what nodes are created (baseCOMP with Geometry, Camera, Light, Render TOP, Null), options like GPU instancing with scale_variation and spin, exposed controls (RotateY, Zoom), and return value details (summary plus JSON block with paths, errors, warnings, preview image). This goes well beyond the minimal annotations (readOnlyHint=false, destructiveHint=false) and adds meaningful context about side effects and output.

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

Conciseness4/5

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

The description is information-dense and well-structured, starting with the core action, then optional behaviors, usage suggestion, alternatives, and return format. It is slightly longer than strictly necessary but every sentence adds value; no filler or redundancy.

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?

The description completely covers the tool's purpose, usage, parameters, side effects, alternatives, and return value in the absence of an output schema. It even informs about node errors and warnings in the return, making it self-sufficient for an AI agent to invoke correctly.

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 100% with each parameter already having descriptions. The description adds conceptual cohesion by explaining how instances, scale_variation, and spin interact in the scene, and how expose_controls relates to the knobs. While it doesn't add new syntax details, it provides helpful context that ties the parameters together.

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 explicitly states the tool 'Build a renderable 3D scene' and enumerates the exact composition: Geometry COMP, Camera, Light, Render TOP, output as Null. It also names the primitive choices and differentiates from sibling tools by explicitly mentioning create_3d_audio_reactive and create_pbr_scene as alternatives for different use cases.

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

Usage Guidelines5/5

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

The description provides clear when-to-use guidance: it positions the tool as 'The starting point for 3D visuals' and recommends binding RotateY to tempo/audio. It explicitly states 'Use create_3d_audio_reactive instead when you want the geometry driven by sound, or create_pbr_scene for physically-based materials,' giving direct alternative conditions.

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

create_ai_mirrorCreate AI MirrorA

Layer 1 COMBO: wires the canonical 2026 AI-mirror installation in one MCP call — camera (or synthetic / existing TOP) → StreamDiffusion (img2img live, delegated to drive_streamdiffusion) → Syphon/Spout/NDI/internal output → a prompt+strength+cfg control panel whose sliders and textDATs drive SD pars via .expr expressions. Panel only binds pars present in drive_streamdiffusion's validated_pars; missing pars are warned, not errored. Camera source on macOS triggers the OS permission dialog on first cook; fallback_to_synthetic keeps the rig alive when the camera is unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
cfgNoClassifier-free guidance scale; SD sweet spot 1–2.
nameNoContainer name.ai_mirror
seedNo-1 = random per frame.
stepsNoStreamDiffusion 1–4 step LCM.
promptNoInitial StreamDiffusion prompt.ethereal water
sourceNoInput source: USB camera (hype default), self-animated synthetic TOP, or an existing TOP routed through a Select.camera
strengthNoimg2img mix; surfaced in the panel.
output_modeNoOutput: syphon_spout (macOS/Windows showcase form), ndi (cross-host), or internal (no sender).syphon_spout
parent_pathNoParent COMP./project1
negative_promptNoInitial StreamDiffusion negative prompt.blurry, low quality, deformed
camera_device_idxNoUSB camera device index when source='camera'.
existing_top_pathNoRequired when source='existing_top'.
output_sender_nameNoSender / NDI name.ai_mirror
show_camera_previewNoAdd a small selectTOP preview of the camera inside the panel.
expose_control_panelNoBuild the prompt+sliders panel and wire .expr expressions to SD pars.
fallback_to_syntheticNoIf camera creation fails, build a synthetic noise source instead of aborting.

TDQS

A4.6/5.0
Behavior5/5

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

With annotations only saying non-read-only, non-destructive, and open-world, the description adds substantial behavioral detail: camera permission dialog on macOS, fallback_to_synthetic behavior, and the warning-not-error handling of missing pars. It also explains the delegation to drive_streamdiffusion and how the panel binds pars via .expr expressions, which is far beyond what annotations reveal.

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

Conciseness4/5

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

The description is a dense single paragraph with every sentence carrying useful operational detail. The first sentence is long and packed, but it front-loads the purpose and pipeline, so it remains effective without being wasteful.

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 complex tool with 16 parameters and no output schema, the description covers the full pipeline, output modes, delegation, parameter binding behavior, error handling, OS permission side effects, and fallback semantics. This is more than enough context for an agent to decide and invoke correctly.

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 100%, giving a baseline of 3. The description adds integration-level semantics by explaining how cfg, strength, and prompt feed the control panel and drive StreamDiffusion pars, and how fallback_to_synthetic keeps the rig alive. It does not restate every parameter but meaningfully enriches the schema.

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 clearly states it wires a complete AI-mirror installation in one MCP call, detailing the exact pipeline: camera/synthetic/existing TOP -> StreamDiffusion -> output -> control panel. It distinguishes itself from sibling tools like drive_streamdiffusion by framing itself as the 'Layer 1 COMBO' that delegates to that tool.

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 provides strong context for when to use the tool ('canonical 2026 AI-mirror installation in one MCP call') and references drive_streamdiffusion as the delegated sub-tool. However, it does not explicitly state when NOT to use this tool or name alternative tools for simpler/composable setups, so it stops short of a 5.

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

create_artnet_discovery_panelCreate Art-Net discovery panelA

Create an Art-Net DAT discovery scaffold with optional DMX In monitor, device maps, and universe maps.

ParametersJSON Schema
NameRequiredDescriptionDefault
netNo
nameNoGenerated baseCOMP name.artnet_discovery_panel
activeNo
subnetNo
parent_pathNoParent COMP for the Art-Net discovery scaffold./project1
device_countNo
universe_countNo
include_dmx_monitorNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint=false, destructiveHint=false). The description adds the concept of a 'scaffold' with optional components, but does not disclose behaviors like whether existing components are modified or if network/hardware access is required. No contradiction with 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?

A single sentence with no filler, front-loading the core action and artifact. Every word adds meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters and no output schema, the description fails to explain what the scaffold contains, how the parameters interact, or what the tool returns. It is sufficient only as a high-level intent cue, not as a complete operational guide.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has only 25% description coverage, yet the description provides no parameter explanations. It mentions 'DMX In monitor, device maps, and universe maps,' which loosely correspond to include_dmx_monitor, device_count, and universe_count, but does not clarify net, subnet, active, or parent_path semantics.

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 uses a specific verb 'Create' and clearly identifies the resource as an 'Art-Net DAT discovery scaffold' with optional features. This distinguishes it from sibling tools like create_control_panel or create_led_mapper by naming the exact artifact.

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?

Usage context is implied by the name and description, but there is no explicit guidance on when to choose this tool over alternatives, nor any exclusions. The agent must infer that this is for Art-Net/DMX discovery panels, but no alternative tools are mentioned.

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

create_ascii_renderCreate ASCII renderA

Turn any TOP into a character-grid ASCII render: quantise input luminance into a (W/cell × H/cell) grid, then look up each glyph from a monospace character atlas. Supports mono, source-color (per-cell tint), and two-color (lerp by luminance) modes. Phosphor-green default for the Severance / CRT terminal look. Creates a resolutionTOP (cells), textTOP (atlas), glslTOP, and nullTOP output inside a new baseCOMP. Exposes Mix, CellSize, and Charset controls.

ParametersJSON Schema
NameRequiredDescriptionDefault
mixNoBlend between original (0) and ASCII output (1). Live-tweakable.
fontNoMonospace font fed to the atlas textTOP.Courier New
nameNoBase name for the created container.ascii
sourceNoAbsolute path of an existing TOP to render as ASCII (e.g. '/project1/movie1'). If omitted, a self-contained animated colour-noise source is used (no device permissions).
charsetNoDark→light glyph ramp. Min 2 chars, max 32. Leading spaces add more 'black' room. .:-=+*#%@
bg_colorNoBackground colour [r,g,b] 0–1. Used in all modes.
fg_colorNoForeground glyph colour [r,g,b] 0–1. Phosphor-green default. Used in mono/two-color.
cell_sizeNoPixel size of each character cell. min 4, max 64.
color_modeNomono: fixed fg on bg; source-color: per-cell average tint; two-color: lerp(bg,fg) by luminance.source-color
resolutionNoOutput resolution [width, height] in pixels.
parent_pathNoParent COMP path the ASCII render container is created inside./project1

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false, and the description adds meaningful detail by specifying that it creates a new baseCOMP containing resolutionTOP, textTOP, glslTOP, and nullTOP, plus exposed controls. This goes beyond the structured annotations while remaining consistent with them.

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, front-loaded with the core purpose, and each sentence contributes unique information: algorithm, modes/aesthetic, and output structure/controls. No redundant or filler content.

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 the tool's complexity (11 params, no output schema), the description offers a solid overview: what it does, how it works, what it creates, and key controls. The schema covers all parameters with descriptions. It doesn't mention limitations or prerequisites, but the source-optional fallback is captured in the schema, so the description is sufficiently complete for selection and invocation.

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 100% schema coverage, the baseline is 3. The description enhances parameter understanding by explaining the luminance quantization grid (connecting resolution and cell_size), the color modes (aligning with color_mode), and the glyph atlas (relating to charset/font). This adds conceptual clarity beyond the schema descriptions.

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 states a specific verb ('Turn any TOP') and resource ('into a character-grid ASCII render'), clearly distinguishing it from other create_* siblings like create_halftone. It also details the algorithmic process and outputs, leaving no ambiguity about the tool's function.

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 clearly implies when to use the tool: whenever an ASCII/character-grid render of a TOP is needed. It provides context about supported modes and default aesthetic, but does not explicitly name alternatives or exclusion criteria, so it falls short of a 5.

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

create_asemic_writingCreate asemic writingA

Generate a page of procedural asemic writing — random-but-writing-like glyph strokes that flow left-to-right along stacked baselines but spell nothing. A Script SOP lays out rows × glyphs cells; each glyph is a short chain of strokes control points walking a noise-perturbed pen, with italic slant, per-stroke jitter, and occasional pen-lifts (lift_chance) that break marks apart. The polylines are thickened into tube ink strokes and rendered with an orthographic camera as calligraphic line art on a coloured page. Deterministic per seed. Genuinely distinct from create_growth_system (L-system branches) and create_vector_lines (image-traced contours). Creates a new baseCOMP under parent_path. Exposes Jitter, Slant, Thickness, and Seed controls. Returns a summary plus a JSON block with the container path, created node paths, output path, exposed controls, node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsNoNumber of baselines (lines of writing) stacked top to bottom.
seedNoRNG seed — same seed reproduces the same page of writing.
slantNoItalic slant applied to every glyph (x-shear per unit height). 0 = upright.
glyphsNoGlyphs per row, laid left to right along the baseline.
jitterNoHow far the pen wanders vertically per stroke (fraction of the line height). 0 = flat dashes, 1 = wild scrawl.
strokesNoControl points per glyph — more strokes = more elaborate, script-like marks.
ink_colorNoStroke (ink) colour (RGB 0..1).
thicknessNoTube SOP radius for the rendered ink strokes.
backgroundNoPage / background colour (RGB 0..1).
lift_chanceNoProbability the pen lifts (breaks the polyline) between adjacent strokes, giving disconnected marks.
parent_pathNoParent network where the asemic-writing container is created (default '/project1')./project1

TDQS

A4.8/5.0
Behavior5/5

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

Beyond annotations (readOnly=false, openWorld=true, destructive=false), the description discloses deterministic seeding, creation of a new baseCOMP under parent_path, and the complete return structure (summary, JSON block, preview image). It also details the rendering pipeline, providing rich behavioral context without contradicting annotations.

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

Conciseness4/5

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

The description is dense and front-loaded with the core purpose. Technical details like 'Script SOP', 'tube ink strokes', and 'orthographic camera' are all relevant. It is slightly longer than minimal, but every sentence contributes useful information, making it appropriately sized for the complexity.

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?

With no output schema, the description compensates by enumerating the return payload (container path, node paths, output path, exposed controls, errors, warnings, preview image). It also covers creation location, exposed parameters, and rendering behavior, making it complete for an agent to decide when and how to invoke the tool.

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 100%, so the baseline is 3. The description enhances this by explaining parameter interactions (rows × glyphs layout, strokes control points, lift_chance breaking marks) and how they affect the visual result, adding value beyond the schema's isolated parameter descriptions.

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 'Generate a page of procedural asemic writing', a specific verb and resource, and elaborates on the exact output (glyphs, baselines, randomness). It explicitly distinguishes itself from create_growth_system and create_vector_lines, making its purpose unmistakable.

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

Usage Guidelines5/5

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

The description explicitly names two sibling tools and explains how this tool differs ('Genuinely distinct from...'), giving the agent clear selection criteria. This satisfies the requirement for explicit alternatives, even if it does not list all when-not scenarios.

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

create_audio_glsl_uniformsBind audio CHOP channels to GLSL TOP uniform slotsA

Writes CHOP-reference expressions onto the seq.vec uniform slots of an existing glslTOP, so named channels (low/mid/high/rms etc.) drive shader uniforms every cook. Creates no operators — pure parameter binding. Idempotent and composable with create_glsl_shader.

ParametersJSON Schema
NameRequiredDescriptionDefault
bindingsYesChannel → uniform/component map. Multiple entries can target the same slot (different components) to build a multi-component uniform.
expand_capacityNoIf true, grow g.seq.vec.numBlocks to fit the highest slot index. If false, an out-of-range slot is a hard error.
source_chop_pathYesPath to the CHOP whose channels are read (must contain every `chan` listed in bindings).
target_glsl_pathYesPath to an existing glslTOP whose seq.vec slots will be bound.

TDQS

A4/5.0
Behavior4/5

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

The description discloses behavioral traits beyond the annotations: it is idempotent, creates no operators, and the binding takes effect every cook. These details add value over the readOnlyHint/destructiveHint annotations, which only state it is non-read-only and non-destructive. No contradiction with 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 extremely concise: two sentences that front-load the core action and then provide a couple of high-value behavioral notes (no operators, idempotent/composable). No fluff, every clause earns its place.

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 4-parameter tool with 100% schema coverage and no output schema, the description covers the key non-obvious details: it writes to existing glslTOP slots, is idempotent, and composes with create_glsl_shader. It does not mention return values, but for a parameter-binding operation this is not critical. The description is sufficiently complete for its complexity.

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?

The input schema provides 100% parameter description coverage, including details for bindings, expand_capacity, source_chop_path, and target_glsl_path. The description adds high-level context (e.g., named channels drive uniform slots) but does not elaborate on parameter syntax or semantics beyond what the schema already covers. Baseline 3 is appropriate.

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 clearly specifies the action ('Writes CHOP-reference expressions onto the seq.vec uniform slots'), the target resource ('existing glslTOP'), and the effect ('drive shader uniforms every cook'). It distinguishes itself from sibling tools by emphasizing it creates no operators and is a pure parameter binding, which differentiates it from create_glsl_shader.

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?

The description implicitly conveys when to use it (with an existing glslTOP and a CHOP source) and mentions composability with create_glsl_shader, but it does not explicitly state exclusions or name alternative tools for other binding scenarios (e.g., bind_to_channel or bind_audio_reactive). The usage context is clear but not fully explicit.

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

create_audio_reactiveCreate audio-reactive visualA

Build an audio analysis chain (spectrum + level + optional beat) and a spectrum visual driven by it. Creates a new baseCOMP under parent_path holding the audio source, an Audio Spectrum CHOP, an Analyze level, an optional Beat CHOP, a CHOP-to-TOP texture with a Sensitivity gain, the GLSL visual, and a Null output. Each visual_style renders the spectrum its own way: glsl=horizontal bars, geometric=radial bars, particle=dot field, feedback=ring tunnel, instancing=LED grid. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings, and an inline preview image. This is the only audio tool that produces a built-in visual: use extract_audio_features for level/bass/mid/treble channels or create_spectrum for per-band channels (no visual), and bind_audio_reactive to wire those channels onto an existing COMP's knobs.

ParametersJSON Schema
NameRequiredDescriptionDefault
duck_depthNoHow deeply the duck pulls toward 0 at peak level (0–1).
parent_pathNoParent network where the audio-reactive container is created (default '/project1')./project1
audio_sourceNoWhere audio comes from: 'microphone'/'device_in' create an Audio Device In CHOP, 'file' an Audio File In CHOP (set audio_file_path), 'existing_chop' reuses an audio CHOP you already have (set existing_chop_path).microphone
visual_styleYesHow the spectrum is rendered: glsl=horizontal bars, geometric=radial bars, particle=dot field, feedback=ring tunnel, instancing=LED grid.
beat_detectionNoWhen true (default), add a Beat CHOP driven by the audio source for tempo/beat signals.
sidechain_duckNoWhen true, add an inverted duck-envelope channel to the modulation Null CHOP (`mod1`).
transient_gateNoWhen true, add a transient/onset channel to a new modulation Null CHOP (`mod1`) for binding to parameters.
audio_file_pathNoPath to an audio file to play; used only when audio_source='file'.
duck_release_msNoRelease time of the duck envelope in ms.
expose_controlsNoWhen true (default), expose a live 'Sensitivity' knob controlling how strongly the audio drives the visual.
frequency_bandsNoSpectrum resolution: sets the Audio Spectrum CHOP output length (TouchDesigner clamps it to 128–4096 bins). Higher = finer spectrum.
transient_hold_msNoTransient hold time in ms before decay; used only when transient_gate=true.
existing_chop_pathNoPath of an existing audio CHOP to analyze; used only when audio_source='existing_chop'.
transient_thresholdNoTransient threshold (0–1); used only when transient_gate=true.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already indicate this is a mutating, non-destructive, open-world tool. The description adds valuable detail about the concrete side effects (creating a baseCOMP with a specific node chain) and what the return payload includes (summary, node paths, preview image). It does not mention any potential edge-case behaviors like overwriting existing nodes, but this is minor given the annotation coverage.

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 dense but every sentence delivers critical information: the build steps, style options, return format, and alternatives. It is well-organized and does not waste words on repetition or filler.

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 the tool's complexity (14 parameters, creation of multiple nodes) and absence of an output schema, the description covers the essential output structure and alternatives. It could be more explicit about prerequisites (e.g., requiring existing audio files or CHOP paths) but the schema already documents those parameter conditions and the description returns node errors to diagnose issues.

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 100% schema description coverage, the baseline is 3. The description adds extra meaning by explicitly mapping each visual_style enum value to a rendering description ('glsl=horizontal bars, geometric=radial bars' etc.) and by referencing the Sensitivity gain and optional Beat CHOP, which clarifies how parameters like expose_controls and beat_detection fit into the built chain.

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+resource ('Build an audio analysis chain... and a spectrum visual driven by it') and enumerates the exact node components created. It unambiguously distinguishes this tool from siblings by stating 'This is the only audio tool that produces a built-in visual' and names the alternatives.

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

Usage Guidelines5/5

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

It provides explicit when-to-use and when-not-to-use guidance: the tool is for creating a complete audio-reactive visual, whereas extract_audio_features and create_spectrum are for channel extraction without visuals, and bind_audio_reactive is for wiring channels onto existing COMPs. This directly addresses alternative selection.

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

create_automation_laneCreate automation laneA

Build a per-parameter automation lane that records a live parameter sweep into a circular buffer over N bars, then loops the recording back into the parameter on a bar-phase clock. Two modes: record (sample the target param every cook into a ring buffer) or loop (read the buffer back via Lookup CHOP bound to the target param). Re-calling with the same name and a different mode flips the state without rebuilding the network. Uses Beat CHOP → Select CHOP (rampbar) → Lookup CHOP playback, with COMP storage tracking mode/write_head/armed state. Returns a summary plus a JSON block with container path, mode, samples count, target, and any warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
bpmNo
barsNo
modeNorecord
nameYesSystem container name, e.g. 'auto_lane_filter'
parentNoParent COMP path, defaults to '/'
targetParamYesOP path + param tuple, e.g. '/project1/filter1:cutoff'

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses key runtime behaviors beyond the annotations: the two modes, the internal CHOP chain (Beat→Select→Lookup), the fact that re-calling with the same name and different mode flips state without rebuilding, and the return of a summary and JSON block. This complements the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) with actionable details.

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 dense but every sentence contributes: purpose, modes, re-call semantics, implementation details, and return format. It packs substantial information without redundancy.

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 6-parameter tool with no output schema, the description covers the workflow, modes, return structure, and state management. It does not list per-parameter details for bpm/parent, but these are self-explanatory and not critical to the tool's core function.

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?

The schema has 50% description coverage, and the description adds conceptual meaning to key parameters: it explains 'record' and 'loop' modes (matching the mode enum) and 'N bars' for the bars parameter. However, it does not elaborate on bpm or parent, which are left to their self-explanatory names and schema defaults.

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 uses the specific verb 'Build' and defines a concrete resource: 'a per-parameter automation lane that records... into a circular buffer over N bars, then loops...'. It clearly differentiates from siblings by focusing on the automation lane concept and its two modes.

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 when the tool is appropriate by detailing the record/loop modes and the state-flip behavior on re-invocation, giving clear context for usage. It does not explicitly name alternative tools or state when not to use it, but the context is sufficient for an agent to match the tool to the task.

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

create_auto_montageCreate auto montageA

Point at a folder and build a self-running clip montage: scans the folder for clips/stills, builds one Movie File In TOP per file feeding a Switch TOP (fractional-index crossfade) → Null TOP, and adds an auto-advance brain on top — a Beat CHOP (clock='beat' or 'bar' with division) or LFO CHOP (clock='interval') drives a CHOP-Execute DAT that picks the next clip per mode (sequential / random / shuffle-no-repeat / weighted) and animates the Switch index with a crossfade. Exposes Play / Index / Next / Prev / Crossfade / Bpm / Division / Mode / Seed custom pars on the container; emits a state_out Null CHOP so bind_to_channel can read clip_index/beat. Folder is read inside TD. Missing folder → empty pointable montage instead of error.

ParametersJSON Schema
NameRequiredDescriptionDefault
bpmNoTempo when clock=beat|bar.
modeNoSequence policy: sequential, random, shuffle (no immediate repeat), weighted (per-clip Weight par).shuffle
nameNoContainer COMP name.auto_montage
seedNoIf set, seeds the RNG (reproducible).
clockNoTrigger source: beat/bar (Beat CHOP) or interval (LFO CHOP).bar
folderYesFolder on the TD machine to scan for clips/stills.
autoplayNoStart in playing state.
divisionNoAdvance every N beats (beat) or N bars (bar).
crossfadeNoCrossfade seconds (0 = hard cut).
max_clipsNoCap clip count.
extensionsNoAllow-listed extensions (lower-case, no dot).
interval_sNoSeconds between advances when clock=interval.
resolutionNoSwitch TOP output resolution [w,h].
parent_pathNoWhere to build it./project1

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate non-read-only, non-destructive, and open-world behavior; the description adds valuable context about scanning folders, building the TOP network, exposing custom pars, emitting a state_out CHOP, and handling a missing folder gracefully. This goes beyond the annotations and provides actionable behavioral details.

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

Conciseness4/5

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

The description is a single dense paragraph that is front-loaded with the core purpose. It contains technical jargon that may be more than necessary, but every sentence adds meaningful information about behavior, exposed pars, and error handling, making it useful without being overly verbose.

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 the complexity (14 parameters, no output schema), the description thoroughly covers the tool's function, internal architecture, exposed interface (pars and state_out), and failure handling. It does not explicitly state a return value, but the created container and output CHOP are inferable from the context.

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?

All 14 parameters are fully documented in the schema with descriptions (100% coverage), so the baseline is 3. The description adds architectural context linking mode and clock to the CHOP execution logic, but it does not significantly redefine parameter semantics beyond what the schema already provides.

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 clearly states the tool 'build a self-running clip montage' from a folder, with a specific verb and resource. It distinguishes itself from siblings by focusing on the auto-advance/montage structure, including the TOP network and CHOP-based brain.

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 provides clear usage context: point at a folder to build a montage, and it explains behavior when the folder is missing. However, it does not explicitly compare against sibling tools like create_video_player or create_clip_launcher, nor does it 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.

create_autopilotCreate autopilotA

Build a beat-driven auto-VJ: a Beat CHOP + a CHOP Execute DAT that, every N beats, either randomizes a target COMP's numeric controls (a hands-free drift, set by Amount) or cycles through its stored cues — so a set keeps evolving on its own. Creates a new baseCOMP under parent_path holding the Beat CHOP and the engine DAT; it modifies the target COMP at comp_path (its custom controls or stored cues) live at runtime. Live Active/Beats/Amount knobs let you pause or retune on stage. Reuses the tempo clock, randomize_controls and manage_cue mechanisms. Pair with a generated system (or a control panel) as the target. Returns a summary plus a JSON block with the container path, created node paths, the target, mode, beats, amount, engine path, any node errors, and warnings (no preview image — the output is a CHOP engine, not a TOP).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'randomize' nudges the COMP's numeric controls toward new random values each trigger (works on any COMP with controls). 'cue' cycles through the COMP's stored cues (needs cues from manage_cue).randomize
beatsNoFire an action every N beats (4 = once per bar at 4/4).
amountNo(randomize) How far to move toward random each trigger: 1 = full scramble, low = gentle drift.
comp_pathNoCOMP the autopilot drives — its numeric custom controls (randomize mode) or its stored cues (cue mode). Usually a generated system container or a control panel./project1
parent_pathNoWhere to create the autopilot engine./project1

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses that it creates a new baseCOMP under parent_path, modifies the target COMP live at runtime, and returns a summary plus warnings. It also clarifies the output is a CHOP engine, not a TOP, adding context beyond the annotations. No contradiction with readOnlyHint/destructiveHint.

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

Conciseness4/5

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

The description is multi-sentence but every sentence adds necessary context: purpose, mechanism, runtime controls, reuse, pairing, and return value. It is front-loaded and appropriately sized for a tool of this complexity.

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?

Despite no output schema, the description lists detailed return contents (container path, node paths, target, mode, beats, amount, engine path, errors, warnings) and the caveat about no preview image. It covers practical usage and side effects thoroughly.

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?

Input schema covers all 5 parameters with descriptions (100% coverage). The description adds context about parameter interactions (e.g., Amount scales randomize drift) but does not significantly extend the schema's semantic detail. Baseline of 3 is appropriate given full schema coverage.

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 uses specific verb 'Build' and clearly states the tool creates a beat-driven auto-VJ with a Beat CHOP and CHOP Execute DAT. It distinguishes from siblings by detailing the two operating modes (randomize vs cue) and explicitly references reusing randomize_controls and manage_cue mechanisms.

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 gives usage context: 'Pair with a generated system (or a control panel) as the target' and explains when each mode is appropriate. It doesn't explicitly state when not to use it, but the reference to reusing randomize_controls and manage_cue implies this is an orchestration layer rather than those direct tools.

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

create_azure_kinect_body_busCreate Azure Kinect body busA

Create an Azure Kinect body/depth scaffold with Kinect Azure TOP/CHOP placeholders, stream maps, and calibration notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.azure_kinect_body_bus
activeNo
body_countNo
parent_pathNoParent COMP for the Azure Kinect scaffold./project1
device_indexNo
include_color_topNo
include_depth_topNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, openWorldHint=true, and destructiveHint=false. The description adds that it creates a scaffold with placeholders and calibration notes, which gives some context about what gets generated. However, it does not disclose side effects, requirements (e.g., a connected device), or what 'stream maps' entail, so it adds only modest context beyond 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 a single, well-structured sentence that immediately states the core function and includes key components. There is no filler or redundancy, making it highly concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 7 parameters and no output schema, the description provides only a high-level overview. It does not explain how parameters influence the scaffold, what the generated network includes beyond vague 'stream maps,' or any required setup or environmental context. The one-sentence description is insufficient for the complexity of the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29% (2 of 7 parameters have descriptions), and the tool description provides no additional parameter explanations. It does not clarify the role of body_count, device_index, include_color_top, or include_depth_top. With low schema coverage, the description should compensate but does not, leaving parameter semantics inadequate.

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 clearly states a specific verb ('Create') and resource ('Azure Kinect body/depth scaffold'), and adds concrete details (TOP/CHOP placeholders, stream maps, calibration notes). This distinguishes it from other depth-camera or body-tracking tools like create_zed_depth_bus or create_nuitrack_body_bus.

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?

The name and description imply the tool is for Azure Kinect hardware scaffolding, but there is no explicit guidance on when to use it over alternatives (e.g., other depth buses) or when not to use it. Usage is implied by the hardware-specific wording but lacks clear exclusions or alternative references.

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

create_band_routerCreate band routerA

Split an audio signal into EQ bands and route each band to its own target parameter(s) — the musician-friendly 'bass -> this, highs -> that' patch. Builds a container with: a Select CHOP isolating the source audio by absolute path (no cross-container wire), N audiofilterCHOP band-pass slices tiling the spectrum in log-frequency space (the same audioFilter idiom extract_audio_features uses), an Analyze CHOP per band measuring its level via rmspower, a Merge + Lag smoothing the per-band envelope (release in seconds), and a Null 'bands_out' carrying one channel per band named band0..bandN-1 (band0 = lowest). Each target route binds a band's smoothed level to a parameter by expression (op('')['band'] * scale + offset). The bands_out Null is also directly bind_to_channel-able for routes you add later. EXTENSION sibling of extract_audio_features (that one extracts named features; this one is the band-split + multi-target router). NOTE: the analyze 'rmspower' function value and the channel-rename pars are UNVERIFIED across TD builds — they are set in guarded tries with fallbacks (abs envelope / upstream channel names), and a single audiospectrumCHOP is the fallback if audiofilterCHOP is unavailable; per-item failures surface as warnings rather than failing the build.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoBase name for the container COMP that holds the EQ split + router.band_router
bandsNoNumber of EQ bands to split the signal into (e.g. 4 = sub / low / mid / high). The output Null carries one channel per band, named band0..bandN-1 (band0 = lowest).
smoothNoRelease/lag time in seconds applied to every band level — smooths the per-band envelope so reactivity follows a clean curve instead of flickering on raw audio (e.g. 0.05 punchy, 0.2 smooth).
targetsNoOptional band->parameter routes. Each binds one band's smoothed level to a parameter by expression (op('<bands_out>')['band<i>'] * scale + offset). Omit to just build the split (bind later with bind_to_channel against the bands_out Null).
parent_pathNoWhere to build the band-router container (a COMP path, e.g. '/project1')./project1
source_chopYesPath of the raw audio CHOP to split (e.g. an Audio Device In or Audio File In, '/project1/audiodevin1'). REQUIRED.

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses internal composition (Select CHOP, audiofilterCHOP, Analyze CHOP, Merge, Lag, Null) and explicitly flags unverified details across TD builds with fallbacks and warning behavior ('UNVERIFIED across TD builds — they are set in guarded tries...'). This goes well beyond the annotations' limited hints.

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

Conciseness4/5

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

The description is substantial but well-organized, front-loaded with the core purpose and using a list format for internals. It repeats some schema content (e.g., the expression format) but each section earns its place; a minor trim of redundancy would be possible.

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 build tool with no output schema, it thoroughly explains what is built, the naming conventions, the routing expression, and fallback behavior, plus how to use the result via bind_to_channel. It even notes failure modes.

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 descriptions cover 100% of parameters and already explain bands, smooth, targets, etc. The description adds little new parameter-specific meaning beyond restating the expression format and band naming already present in the schema.

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 first sentence clearly states the tool's function: 'Split an audio signal into EQ bands and route each band to its own target parameter(s)'. It also explicitly distinguishes from sibling extract_audio_features, naming the alternative.

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

Usage Guidelines5/5

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

Explicitly names extract_audio_features as an EXTENSION sibling and contrasts their purposes ('that one extracts named features; this one is the band-split + multi-target router'). Also states the option to omit targets for later binding via bind_to_channel.

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

create_beat_grid_sequencerCreate beat-grid sequencerA

Build a programmable step-grid sequencer driven by a Beat CHOP on the global TD tempo: a Table DAT holds the per-step pattern (values or 1/0 flags), and a CHOP Execute DAT fires on every beat boundary, reads the current step (count % steps) from the table, and dispatches — action=param sets a custom parameter to the step value; action=cue recalls the cue for active steps (cues stored with manage_cue). The deterministic, repeating-rhythm instrument between create_autopilot (random drift) and create_cue_sequencer (linear list): program a strobe on beats 1+3, a hue shift on the bar, etc. Reprogramme the grid live by editing the step_table DAT. NOTE: beat-callback timing is UNVERIFIED offline — check op().time.play if steps don't fire when the TD timeline is paused.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the sequencer COMP.beat_grid
paramNo(action=param) The custom-parameter name on the target COMP to set on each active step.
stepsNoNumber of steps in the grid (e.g. 16 = one bar of 16th notes at 4/4).
actionNoparam: set a target custom-parameter value per active step; cue: recall a named cue per active step (cues stored with manage_cue).param
targetYesCOMP whose parameter or cue each active step fires on a beat boundary.
patternNoPer-step values (action=param) or 1/0 active flags (action=cue); length should match 'steps'. Omit to auto-generate an example pattern.
bpm_sourceNoPath to an existing Beat CHOP or tempo source. Omit to create a new Beat CHOP (on the global TD tempo).
parent_pathNoParent COMP path to create the sequencer inside./project1

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true), the description discloses the internal architecture (Table DAT, CHOP Execute, count % steps), how actions dispatch, and a critical unverified timing caveat with a suggested workaround. This is substantial behavioral context that helps the agent anticipate side effects and edge cases.

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 dense but every sentence contributes: purpose, mechanism, differentiation, examples, live-edit tip, and a critical caveat. It is well-structured, starting with the main purpose and ending with a warning, with no filler.

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 complex tool with 8 parameters and no output schema, the description covers the architecture, both action modes, typical use cases, and the timing limitation. It gives enough detail for an agent to decide whether this tool fits a request and what parameters matter.

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?

Even though schema coverage is 100%, the description adds operational meaning: it explains how 'pattern' relates to action (values vs 1/0 flags), how 'steps' is used in count % steps, and how 'param' and 'cue' actions behave. It links 'target' to the COMP being fired on beat boundaries, adding more than the bare schema fields.

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 clearly states the tool builds a programmable step-grid sequencer driven by a Beat CHOP, with a specific mechanism (Table DAT + CHOP Execute) and explicit differentiation from create_autopilot and create_cue_sequencer. It includes concrete examples (strobe on beats 1+3, hue shift) that make the purpose unmistakable.

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

Usage Guidelines5/5

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

The description explicitly positions this tool as the 'deterministic, repeating-rhythm instrument between create_autopilot (random drift) and create_cue_sequencer (linear list)', giving clear when-to-use guidance. It also notes live reprogramming via the step_table DAT and distinguishes the two action modes.

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

create_blacktrax_tracking_busCreate BlackTrax tracking busB

Create a BlackTrax tracking scaffold with receiver, trackable maps, zone maps, and calibration notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.blacktrax_tracking_bus
portNo
activeNo
zone_countNo
parent_pathNoParent COMP for the BlackTrax scaffold./project1
trackable_countNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description's 'Create' is consistent. The description adds context by listing the components created (receiver, trackable maps, etc.), but it does not elaborate on side effects like network modifications or whether it overwrites existing components. This is adequate but not rich.

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 a single, directly worded sentence. It is front-loaded with the action and resource, and every word contributes to the meaning. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description conveys the core purpose and components, but for a tool with 6 parameters and no output schema, it is thin. It does not explain what the tool returns (e.g., created COMP path) or how parameters like counts and port affect the scaffold. More detail would be needed for a complete picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (two of six parameters have descriptions). The description provides zero information about parameters like port, active, zone_count, or trackable_count. Since low schema coverage requires the description to compensate, and it does not, parameter semantics fail to add value.

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 uses a specific verb ('Create') and a specific resource ('BlackTrax tracking scaffold') and details the key components it will include (receiver, trackable maps, zone maps, calibration notes). This clearly distinguishes it from sibling tools like create_optitrack_tracking_bus or create_ncam_camera_tracking_bus.

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?

The description implies usage: if you need a BlackTrax tracking setup, this tool creates the scaffold. However, it does not explicitly state when to use it over alternatives (e.g., other tracking bus tools), nor does it mention any prerequisites or exclusions.

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

create_blender_scene_bridgeCreate Blender scene bridgeB

Create a Blender-to-TouchDesigner scene handoff scaffold for file-watch, OSC, or WebSocket metadata workflows.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.blender_scene_bridge
activeNo
server_urlNows://127.0.0.1:8765
parent_pathNoParent COMP for the Blender bridge./project1
sync_cameraNo
sync_lightsNo
asset_formatNogltf
handoff_modeNofile_watch
receive_portNo
watch_folderNo./blender_exports

TDQS

B3.3/5.0
Behavior2/5

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

Given the annotations already indicate this is a write operation (readOnlyHint false) with potential external effects (openWorldHint true), the description adds little behavioral context. It does not describe what the scaffold consists of (e.g., a baseCOMP, CHOP/DAT nodes, or external files), nor does it mention side effects or prerequisites. The description only restates the general purpose without elaborating on the actual behavior beyond 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 a single, well-structured sentence that front-loads the verb and resource. It includes the key scope (Blender-to-TouchDesigner handoff) and the three workflow modes with zero wasted words. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and no nested objects, the description is far too minimal. It does not explain what a 'handoff scaffold' comprises, what the agent can expect after execution, or how the modes and parameters interact. The description provides only the high-level concept, leaving an agent without enough information to correctly configure or validate the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (2 of 10 parameters documented), so the description should compensate. It mentions 'file-watch, OSC, or WebSocket' which loosely maps to the handoff_mode enum, but it does not explain any of the other parameters (asset_format, sync_camera, receive_port, etc.) or how the workflows relate to the bridge's operation. This leaves the agent with little guidance for parameter selection.

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 uses the specific verb 'Create' and names a clear resource: a 'Blender-to-TouchDesigner scene handoff scaffold'. It also specifies the supported workflows (file-watch, OSC, or WebSocket metadata), which clearly distinguishes it from sibling bridge tools like create_unreal_livelink_bridge or create_shared_memory_bridge.

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?

The description implies its use case by naming the integration (Blender-to-TouchDesigner) and the three handoff modes, but it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites. The context is present but not fully developed.

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

create_blob_reactiveCreate blob reactiveA

Build a blob-position-tracking chain that drives parameters from the POSITIONS of multiple objects/hands in a camera (or a TOP) — the per-blob counterpart to create_motion_reactive's single aggregate motion value. Creates a container under parent_path with a Video Device In TOP (or a Select TOP pulling an existing TOP), a Monochrome + Threshold TOP to isolate bright blobs, a Blob Track operator assigning each blob a persistent slot, and a Script CHOP that normalizes the tracker's per-blob output into a deterministic 'blobs' Null CHOP with channels blob0_x, blob0_y, blob0_size, blob1_x, … Bind any parameter to op('…/blob_reactive/blobs')['blob0_x'] (or pass targets to bind by expression as value*scale+offset). Camera source may prompt for (and briefly hang on) a macOS camera-permission dialog. The Blob Track operator is a palette/CV op whose optype and channel naming vary by TD build — the chain is built fail-forward and warns (rather than failing) if it is unavailable, and the Script CHOP normalizes whatever channels the tracker emits. Returns a summary plus a JSON block with the container path, the blobs CHOP path, the tracked output TOP, the tracker type used, channel names, bound targets, and warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoBase name for the container COMP that holds the chain.blob_reactive
sourceNoBlob source. 'camera' = live webcam/capture device (the real-world default; creating it may pop a one-time macOS camera-permission dialog — click Allow, and note it can briefly hang TD at the modal). 'top' = analyze an existing TOP you name in source_top.camera
targetsNoPer-blob parameter bindings. Each entry binds one node parameter by expression to op('…/blobs')['blob<blob>_<axis>'] * scale + offset. Omit to just build the tracking chain and bind later.
max_blobsNoMaximum number of blobs to track simultaneously, each given a persistent slot/ID.
thresholdNoLuma threshold [0–1] for isolating blobs: pixels brighter than this are considered part of a blob. Lower catches dim/large blobs, higher only bright ones. Drives both the Threshold TOP mask and the blob tracker's own threshold.
source_topNoPath of an existing TOP to track blobs in; used only when source='top' (a Select TOP pulls it in so no cross-container wire is needed).
parent_pathNoParent network where the blob-reactive container is created (default '/project1')./project1
camera_indexNoWhich capture device to use when source='camera' (0 = the first/default camera). Maps to the Video Device In TOP's device index.

TDQS

A5/5.0
Behavior5/5

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

The description discloses important behaviors beyond the annotations: possible macOS camera-permission dialog hang, build-dependent Blob Track operator optype/naming, fail-forward warning behavior, and Script CHOP normalization. This is substantial extra context not present in 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 front-loaded with the primary purpose and every sentence carries essential information: build steps, alternatives, warnings, output format, and parameter behavior. It is dense but not bloated relative to the complexity of the tool.

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?

With no output schema, the description compensates by clearly stating the return payload (summary plus JSON block) and its contents. It covers container path, CHOP path, tracked TOP, tracker type, channel names, bound targets, and warnings, making it complete for operational use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 100% schema coverage, the description adds expression syntax (value*scale+offset), concrete channel names (blob0_x), and explains threshold drives both the Threshold TOP and the tracker. It maps targets, source, max_blobs, and camera_index to actual behavior, going beyond schema descriptions.

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-resource statement ('Build a blob-position-tracking chain') and immediately distinguishes it from create_motion_reactive as the per-blob counterpart. It clearly states what is created and its purpose.

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

Usage Guidelines5/5

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

It explicitly names create_motion_reactive as the alternative for aggregate motion and explains the camera vs. TOP source choices. It also tells when to omit targets and how to bind later, giving practical usage context.

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

create_blob_traceCreate blob traceA

Trace the contour/outline of a blob or silhouette into vector line art: source → monochrome → blur → threshold (the blob mask, optionally inverted) → optional Edge (boundary-band only) → Trace SOP (mask-to-polyline) → wireframe render. This is the CONTOUR-TRACE complement to create_vector_lines (full image vectoriser) and export_sop_to_svg, and is distinct from create_blob_reactive (which tracks blob position/reactivity — it does not draw the outline). Source can be the live camera (may prompt for macOS permission), a movie file, an animated synthetic blob (testable without a camera), or an existing TOP. Creates a new baseCOMP under parent_path. Exposes Threshold, Blur, and LineWidth controls. Returns a summary plus a JSON block with the container path, created node paths, output path, exposed controls, node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
invertNoInvert the mask so dark regions become the traced blob instead of bright ones.
sourceNoBlob source. 'camera' = live webcam (may prompt for macOS camera permission). 'file' = a movie file (movie_file_path). 'synthetic' = an animated noise blob so the trace is testable with no device (the default). 'existing_top' = trace a TOP you already have (existing_top_path).synthetic
pre_blurNoGaussian blur (pixels) before thresholding — smooths noisy edges into clean contours. Live 'Blur'.
edge_onlyNoRun an Edge TOP before tracing so only the blob's boundary band is traced (hollow outline).
thresholdNoLuminance cutoff that separates blob (foreground) from background. Live 'Threshold'.
backgroundNoBackground colour behind the traced contour (RGB 0..1).
line_colorNoContour line colour (RGB 0..1).
line_widthNoContour line width for the wireframe material.
resolutionNoOutput resolution [width, height].
parent_pathNoParent network where the blob-trace container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live Threshold, Blur, and LineWidth controls.
movie_file_pathNoPath to a movie file to trace; used only when source='file'.
existing_top_pathNoPath of an existing TOP to trace; used only when source='existing_top'.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations are minimal (readOnlyHint=false, openWorldHint=true, destructiveHint=false), and the description adds valuable context: it creates a new baseCOMP under parent_path, may prompt for macOS camera permission, follows a specific node pipeline, and returns a detailed JSON result. It does not mention potential overwrites or cleanup behavior, but 'new baseCOMP' implies non-destructive creation consistent with destructiveHint=false.

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 dense but efficient: four sentences cover pipeline, sibling relationships, source options, node creation, exposed controls, and return value. Every sentence carries substantive information with no filler or redundant restatement of the tool name.

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?

Despite having no output schema, the description fully specifies what the tool returns (summary plus JSON block with container path, node paths, output path, controls, errors, warnings, and inline preview). It also explains creation location, source options, and exposed controls, making it complete for a complex 13-parameter tool.

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 100%, so baseline is 3, but the description adds pipeline-level meaning (source → monochrome → blur → threshold → Edge → Trace SOP), clarifying how parameters like pre_blur, threshold, edge_only, and invert fit together. It also ties expose_controls to the named Threshold, Blur, and LineWidth controls.

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: 'Trace the contour/outline of a blob or silhouette into vector line art' followed by a clear pipeline. It explicitly distinguishes itself from siblings: 'complement to create_vector_lines (full image vectoriser) and export_sop_to_svg, and is distinct from create_blob_reactive (which tracks blob position/reactivity — it does not draw the outline).'

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

Usage Guidelines5/5

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

Usage is explicitly scoped via sibling differentiation, including when to prefer alternatives (full image vectoriser vs contour trace) and what create_blob_reactive does differently. It also gives practical guidance on source selection: camera, file, synthetic (testable without a camera), or existing TOP.

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

create_body_bubblesCreate body bubblesA

Create a MediaPipe-ready interactive bubble installation over the live camera: a detected open palm emits soap-like bubbles, body and hand landmarks act as soft colliders that can bat or lift them, a visible body contour is rendered in the same output so the interaction reads clearly, bubbles stay inside the screen box, settle on the lower floor, and pop/fade after a configurable lifetime (default 30 seconds). By default it keeps the bubble count low and disables pose-wrist emission, so bubbles are created only by an open palm. Builds a self-contained Base COMP with a Script CHOP physics solver, Script SOP bubble outlines, Script SOP body contour, camera-background composite, Geometry/Render/Null TOP output, a frame cooker, and live controls for emission rate, gravity, drag, buoyancy, skeleton impulse, bubble repulsion, tracking smoothing, body radius, body contour, camera opacity, lifetime, and bounce. Provide hand_chop_path from setup_hand_tracking and body_chop_path from setup_body_tracking/create_pose_tracking for full interaction.

ParametersJSON Schema
NameRequiredDescriptionDefault
dragNoAir drag applied to bubble velocity each second; higher settles faster.
nameNoName for the generated bubble-physics Base COMP.body_bubbles
gravityNoDownward acceleration in screen-space units per second squared.
buoyancyNoSmall upward force countering gravity; keep below gravity for weighted bubbles.
body_radiusNoCollision radius around each tracked body/hand landmark, in screen-space units.
parent_pathNoParent COMP where the body-bubble system is created./project1
wall_bounceNoEnergy retained when bubbles hit the left/right/top screen bounds.
bubble_countNoMaximum number of live/recyclable bubbles in the simulation.
floor_bounceNoEnergy retained when bubbles hit the lower screen floor.
body_chop_pathNoOptional body/pose CHOP from setup_body_tracking or create_pose_tracking: 33 samples with tx/ty/tz/confidence. Landmarks collide with bubbles.
camera_opacityNoOpacity for the camera background when show_camera_background is enabled.
hand_chop_pathNoOptional hand-tracking CHOP from setup_hand_tracking: 21 samples per hand with tx/ty/tz/confidence. Open palm emits bubbles.
hand_emit_rateNoBubbles emitted per second while the palm is open.
camera_top_pathNoTOP to use as the visible camera background. The MediaPipe plugin exposes the live camera at /project1/MediaPipe/video./project1/MediaPipe/video
expose_controlsNoExpose live EmitRate/Gravity/BodyRadius/Lifetime/Bounce controls on the container.
bubble_repulsionNoSoft collision force between bubbles so they do not collapse into one point.
lifetime_secondsNoSeconds each bubble remains visible before popping and disappearing.
skeleton_impulseNoHow strongly moving body/hand landmarks transfer motion to bubbles.
emit_on_open_palmNoWhen true, emit only while an open palm is detected in hand_chop_path.
output_resolutionNoRender resolution [width, height] for the output TOP.
show_body_contourNoRender the tracked body as a visible contour in the same output as the bubbles, so collisions read as performer interaction.
body_contour_widthNoLine width in pixels for the visible body contour overlay.
tracking_smoothingNoTemporal smoothing for body/hand colliders inside the bubble solver.
palm_open_thresholdNoWorld-space average wrist-to-fingertip distance required to treat the hand as an open palm.
show_camera_backgroundNoComposite the camera TOP behind the body contour and bubbles.
fallback_to_pose_wristsNoOptional fallback: when hand tracking has no landmarks, emit from pose wrist landmarks. Disabled by default so bubbles are created only by an open palm.
hide_camera_tracking_overlaysNoWhen camera_top_path belongs to the MediaPipe plugin, turn off its built-in tracking overlays so only the clean camera appears behind this system.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the minimal annotations (readOnly=false, openWorld=true, destructive=false), the description discloses specific behavioral traits: it 'Builds a self-contained Base COMP with a Script CHOP physics solver, Script SOP bubble outlines...' and details runtime behaviors like 'bubbles stay inside the screen box, settle on the lower floor, and pop/fade after a configurable lifetime.' It also notes default configurations and dependency on tracking CHOPs.

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

Conciseness4/5

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

The description is long but information-dense, front-loading the main purpose, then behavioral details, technical internals, and dependencies in a logical order. Each sentence contributes valuable context. It could be slightly trimmed, but the complexity justifies the length.

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?

Given 27 parameters, no output schema, and the complexity of the generated network, the description is thorough: it explains what is built (Base COMP with specific components), the required setup inputs, default behaviors, and the visual output. It provides enough context for an agent to invoke it correctly without needing an output schema.

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?

The schema has 100% description coverage for all 27 parameters, so the description is not required to explain each one. It adds only a high-level grouping ('live controls for emission rate, gravity, drag, buoyancy...') and mentions the default lifetime, which provides context but no significant new syntax or format details beyond the schema.

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+resource: 'Create a MediaPipe-ready interactive bubble installation over the live camera.' It further details the unique interaction (open palm emits bubbles, landmarks act as colliders, body contour rendered), clearly distinguishing it from sibling creation tools like create_body_reactive or create_particle_system.

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 gives clear context by stating dependencies: 'Provide hand_chop_path from setup_hand_tracking and body_chop_path from setup_body_tracking/create_pose_tracking for full interaction.' It also explains the default behavior (low bubble count, no pose-wrist emission), which helps decide when to use it. However, it does not explicitly compare to alternatives 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.

create_body_reactiveCreate body reactiveA

Build a body-reactive visual driven by full-body pose tracking: glowing marks that follow the 33 landmarks (head, hands, elbows, hips, knees, feet), rendered to a Null TOP. Creates a new baseCOMP under parent_path holding the pose source, a Geometry COMP (dots copied onto the landmark point cloud), a Camera, a Render TOP, and per-style post-processing. Styles: 'points' (crisp dots), 'glow' (bloomed dots), 'trails' (motion smears that follow the body). Source defaults to a SYNTHETIC animated pose so it builds and previews instantly with no camera and no plugin; switch to 'mediapipe' (the free torinmb plugin), 'osc', or an existing pose CHOP (e.g. from create_pose_tracking) for the real performer. The visual counterpart of create_audio_reactive, for the body instead of sound. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoDot colour as hex ('#rrggbb'). Drives the Constant MAT; default is hot magenta.#ff40cc
sourceNoWhere the 33-landmark pose stream comes from. 'synthetic' (default) = a self-contained animated human pose that needs NO camera and NO plugin — use it to build and preview the look instantly. 'mediapipe' = the live CHOP from the free torinmb/mediapipe-touchdesigner plugin (point mediapipe_chop_path at its pose landmarks CHOP). 'osc' = landmarks arriving over OSC (osc_port). 'existing_chop' = a pose CHOP you already built (e.g. the output of create_pose_tracking).synthetic
dot_sizeNoRadius of each landmark dot (world units). Exposed as a live knob.
osc_portNoUDP port the OSC In CHOP listens on (source='osc').
glow_amountNoBloom blur size for visual_style='glow' (Blur TOP size). Exposed as a live knob.
parent_pathNoParent network where the body-reactive container is created (default '/project1')./project1
trail_decayNoHow much of the previous frame survives for visual_style='trails' (feedback opacity). Higher = longer trails. Exposed as a live knob.
visual_styleNoLook of the body-reactive visual: 'points' = crisp dots at each landmark; 'glow' = dots with a bloom halo; 'trails' = dots that smear into motion trails as the body moves.glow
expose_controlsNoWhen true (default), expose live DotSize (+ style-specific Glow/TrailDecay) knobs and a Color swatch.
existing_chop_pathNoPath of an existing pose CHOP — 33 samples, tx/ty/tz channels (source='existing_chop').
mediapipe_chop_pathNoPath to the MediaPipe plugin's pose-landmarks CHOP (source='mediapipe'). The plugin emits 33 samples with tx/ty/tz channels.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and openWorldHint=true, and the description adds that it creates a new baseCOMP under parent_path, lists the node hierarchy, and details the return payload with node errors, warnings, and preview. It also explains that the default synthetic source needs no camera or plugin, going beyond the basic mutation flags.

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?

Although it is a single dense paragraph, every sentence earns its place: pipeline, node list, styles, source defaults, sibling relationship, and return value. It is front-loaded with the main action and avoids repeating schema details verbatim.

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 an 11-parameter creator with no output schema, the description covers the full invocation reality: what is built, how the visual styles differ, which source to choose for which scenario, and what the tool returns (paths, controls, errors, warnings, preview). This is more than enough for an agent to select and invoke the tool correctly.

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 100%, so the baseline is met. The description adds extra meaning by connecting visual_style to dot_size/glow_amount/trail_decay and explaining source enum options with concrete CHOP paths, which helps the agent wire parameters to behavior.

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 — 'Build a body-reactive visual driven by full-body pose tracking' — and then details the concrete components created (Null TOP, baseCOMP, Geometry COMP, Camera, Render TOP). It also distinguishes itself from siblings by explicitly calling itself the visual counterpart of create_audio_reactive.

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 provides clear context for source selection — synthetic for instant preview, mediapipe/osc/existing_chop for a real performer — and references create_audio_reactive. It does not name or exclude deeper pose-specific siblings like create_pose_reactive, so it lacks an explicit 'when not to use' statement, but the guidance is otherwise clear.

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

create_capture_loopCreate capture loopA

Build a bidirectional inter-app video bridge to another program (Resolume, OBS, MadMapper, a game engine…) in one container: receive an external feed IN and publish a TOP OUT at the same time. Picks the right operators per protocol — NDI (network, macOS & Windows), or Syphon (macOS) / Spout (Windows). direction 'in' only subscribes, 'out' only publishes, 'both' runs a full round-trip loop. The receive half is a receiver TOP → Null 'in_out'; the send half pulls source_top through a Select TOP into a publisher TOP. ANTI-FEEDBACK: the two halves are never wired together, so 'both' won't loop this app's own output back in. PLATFORM-GATED & largely UNVERIFIED-live: Spout needs Windows, Syphon needs macOS, and sender/receiver-name parameter names vary by TD build (probed at runtime) — the wrong platform or a real signal needs the actual sender present. This is the combined in+out version of create_live_source (in) and setup_output (out).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoBase name for the container COMP that holds the in/out bridge.capture_loop
protocolNoInter-app video transport. ndi works on macOS & Windows (network). spout is Windows-only; syphon is macOS-only — both use the same Syphon/Spout TOPs in TouchDesigner (PLATFORM-GATED: the wrong platform fails to create the op, reported as a warning).ndi
directionNoin: only receive an external feed. out: only publish a TOP. both: do both at once (a full round-trip loop to another app, e.g. send to Resolume and receive its output back).both
resolutionNoWorking resolution [w, h] applied to the receiver TOP (Output Resolution = Custom). The publisher inherits its input TOP's resolution.
source_topNo(out) Path of the TOP to publish when direction includes 'out' (e.g. '/project1/final'). Empty together with an 'out' direction publishes nothing and is flagged as a warning.
parent_pathNoCOMP to build the capture-loop container in (e.g. '/project1')./project1
sender_nameNo(out) The public name THIS app publishes its feed under, so the other app can find it. Used for direction 'out'/'both'.tdmcp_out
receiver_nameNo(in) The name of the EXTERNAL sender to subscribe to. Empty = pick the first available sender on the network/machine. Used for direction 'in'/'both'.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds substantial behavior: anti-feedback wiring (two halves never wired together), platform gating, runtime probing of parameter names, and warning about unverified live behavior. It clearly explains what the tool does internally, which is well beyond annotations.

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

Conciseness4/5

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

The description is about 170 words, which is detailed but not overly long given complexity. It is front-loaded with purpose, then flows through mechanics, warnings, and comparison. A few technical details (like 'receiver TOP → Null') are dense and could be clearer, but overall each sentence earns its place.

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 tool with 8 params, no output schema, and open-world hints, the description thoroughly covers purpose, internal wiring, platform constraints, warnings, and relationship to siblings. It leaves little ambiguity about when and how to use it, making it highly complete given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds high-level meaning beyond schema: it explains how direction 'both' creates a round-trip, how resolution is applied, that publisher inherits resolution, and the anti-feedback logic. It ties parameters to the overall bridge behavior, which enriches understanding beyond the individual property descriptions.

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 clearly states the tool builds a bidirectional inter-app video bridge, with specific mention of receive (IN) and publish (OUT) functionality. It explicitly distinguishes itself from create_live_source and setup_output, and names the sibling tools it combines.

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

Usage Guidelines5/5

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

Explicitly explains when to use: for inter-app video bridging to programs like Resolume, OBS, etc. It contrasts with create_live_source (in) and setup_output (out), and warns about platform-specific requirements (Spout/Syphon/NDI) and unverified live behavior, helping the agent choose appropriately.

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

create_chop_recorderCreate CHOP recorderA

Build a CHOP recorder/player container that captures a source CHOP's channels over a fixed window using a Trail CHOP, snapshots the trail into a Table DAT on Stop, and plays the take back via a Datto CHOP indexed by a Timer CHOP–driven Lookup CHOP, terminating on a Null CHOP ready for bind_to_channel. Re-entrant: re-running with the same name updates controls without rebuilding. The last take is persisted in comp.store so it survives a .toe reload. Large takes (nchan × samples > 250k) are saved to disk instead of stored in the .toe. Note: time-dependent playback reads 0 when the TD timeline is paused — that is expected behavior.

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoWhen true, timer cycles; when false, plays once then holds
nameYesContainer name, e.g. 'chop_rec_hand'
parentNoParent COMP path, defaults to '/'
autoBindNoOptional 'opPath:parName' to auto-bind the Null CHOP output channel
takeNameNoStorage key for persisted taketake1
sourceChopYesPath to source CHOP, e.g. '/project1/null_audio'
lengthSecondsNoTrail window + take duration in seconds (0.25–120)
recordOnCreateNoIf true, sets Record=1 on creation so the trail begins filling immediately

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description discloses important behaviors: re-entrant updates without rebuilding, persistence of the last take in comp.store, disk storage for large takes, and the timeline-paused playback returning 0. These are valuable details not present in the structured metadata, and there is no contradiction with annotations.

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

Conciseness4/5

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

The description is five sentences and technically dense, but every sentence provides necessary detail: the operational pipeline, re-entrancy, persistence, disk offloading, and timeline behavior. It is appropriately sized for a tool of this complexity, though slightly long for a succinct overview.

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?

Given the complexity of the tool (building a multi-node network) and the absence of an output schema, the description is remarkably complete. It covers the internal architecture, the binding endpoint (Null CHOP), persistence, scale limits, and an expected edge-case behavior, which is sufficient for an agent to understand the full scope.

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 parameters are already well-documented. The description adds contextual information about the recording flow (e.g., 'fixed window', 'on Stop') and persistence behavior, which briefly relates to takeName and lengthSeconds, but it does not add significant meaning beyond the schema's own descriptions.

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 clearly states the tool builds a CHOP recorder/player container with a specific technical pipeline (Trail CHOP → Table DAT → Datto CHOP → Null CHOP). It distinguishes itself from sibling tools like create_capture_loop by specifying the exact mechanism and the intended use for capturing and playing back CHOP channels.

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 makes the tool's purpose evident: to record a source CHOP's channels over a fixed window and play it back. It mentions being ready for bind_to_channel, indicating a downstream use case, but it does not explicitly state when not to use this tool or compare it to alternatives like build_chop_chain. Context is clear, but exclusions are absent.

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

create_chroma_reactiveCreate Chroma Reactive (experimental)A

[experimental] Builds a 12-channel pitch-class chroma vector (chroma_0..chroma_11) from an audio bus via FFT bin → pitch-class fold. Outputs a Null CHOP ready for bind_to_channel. Shares audioSource convention with create_transient_reactive / create_energy_reactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNochroma_reactive
parentNo/
fftSizeNoFFT size for the Audio Spectrum CHOP.
smoothingNoTemporal smoothing on chroma vector (0 = raw, 1 = frozen). Maps to Filter CHOP width.
audioSourceNoOptional path to an existing CHOP to use as audio input. If omitted, an internal Audio Device In CHOP is created (may prompt for macOS microphone permission).

TDQS

A4/5.0
Behavior3/5

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

Annotations already flag readOnlyHint=false, so the fact that the tool creates something is not new. The description adds useful behavioral detail: the output is a Null CHOP ready for bind_to_channel, and the audioSource convention is shared with certain siblings. It does not disclose side effects like behavior on repeated runs or conflict with existing nodes, but given the annotations cover safety, a 3 is appropriate.

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?

Three sentences, each earning its place: the experimental tag, the core build function and output type, and the relationship to sibling tools. Front-loaded with the main purpose, no wasted words.

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 5-parameter creation tool with no output schema, the description does enough: names the output (Null CHOP ready for bind_to_channel), mentions the FFT fold, and establishes the audioSource pattern. The experimental tag is noted. It could add more about prerequisites or error conditions, but given the schema covers audioSource's permission issue, it's fairly complete.

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 coverage is 60%, so the description needs to compensate partially. The description mentions the audioSource convention and the FFT-to-pitch-class mechanism, which adds meaning to audioSource and fftSize. However, name and parent remain undocumented, and the description does not elaborate on fftSize choices or smoothing beyond the schema.

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 clearly states the tool's function: it builds a 12-channel pitch-class chroma vector from an audio bus via FFT bin folding. It also distinguishes itself from related tools by naming create_transient_reactive and create_energy_reactive and noting the shared audioSource convention, making it unmistakable what this tool does.

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 provides clear context on when to use this tool: when you need a chroma vector for pitch-class analysis, ready for bind_to_channel. It also references sibling tools and a shared audioSource convention, implying alternatives exist. However, it does not explicitly state when NOT to use it or contrast use cases beyond the mention of the two siblings.

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

create_chrome_blobsCreate Chrome BlobsA

Builds a liquid-chrome / Y2K metaball generator: an animated Noise TOP (or external source) is blurred, thresholded into soft blobs, then a GLSL TOP renders a procedural environment-map chrome look (greyscale ramp + moving specular highlight) with 5 metal tints and 4 background modes. Creates a self-contained baseCOMP with Speed, Blob_Count, Metal_Color, and Background controls exposed on the container.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the system container COMP (default 'chrome_blobs').chrome_blobs
countNoLogical blob count — drives noise harmonics + blur/threshold params (1–32, default 8).
speedNoNoise animation speed — controls the absTime.seconds multiplier on noise TX/TZ (0–4, default 0.5).
backgroundNoBackground behind the chrome blobs — black, white, studio (soft radial), or gradient (vertical chrome studio) (default 'black').black
metal_colorNoChrome tint palette for the GLSL environment-map shader (default 'silver').silver
parent_pathNoParent network where the chrome-blobs COMP is created (default '/project1')./project1
source_top_pathNoOptional external TOP to use as the blob field (pulls in via Select TOP). When omitted, an animated Noise TOP generates the blobs.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already cover readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds context by stating it creates a self-contained baseCOMP and exposes controls, and it describes the internal pipeline. However, it does not disclose potential side effects, required permissions, or behavior when a component with the same name exists, leaving gaps beyond 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 two focused sentences that front-load the core purpose and then explain the technical pipeline and output. Every sentence adds value, with no filler or redundancy.

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 creation tool with no output schema, the description explains what is built, how it works, and what controls are exposed. Combined with rich parameter descriptions and annotations, the agent has sufficient information to decide when and how to invoke it. The result of the tool (a baseCOMP) is clearly stated.

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 coverage is 100%, with each parameter having a clear description. The description adds little beyond listing the exposed control names (Speed, Blob_Count, Metal_Color, Background), which are already fully documented in the schema. Baseline 3 is appropriate because the schema carries the parameter documentation burden.

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 uses a specific verb ('Builds') and resource ('liquid-chrome / Y2K metaball generator'), detailing the pipeline from Noise TOP through GLSL TOP and the resulting self-contained baseCOMP with exposed controls. This clearly distinguishes it from sibling creation tools by describing the exact visual effect and output.

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 clearly implies when to use this tool (when you need a chrome metaball generator) and describes the output, but it does not explicitly name alternatives or state when not to use it. The context is clear, yet exclusions or alternative tool references are absent.

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

create_clip_launcherCreate clip launcherA

Build an Ableton-style clip launcher: a grid panel (Container COMP) of clip buttons, one per named cue (from manage_cue), for fast hands-on scene switching during a live set. Open the container in Perform/Panel mode and tap a clip to fire its cue — instantly, or (with morph_time) crossfading to it over N seconds (eased, the same engine manage_cue uses). Store the cues with manage_cue / create_control_panel first.

ParametersJSON Schema
NameRequiredDescriptionDefault
colsNoGrid column count. Defaults to ceil(sqrt(cues)) when omitted (derived from cues length).
cuesYesCue names (stored with manage_cue) to lay out in the grid, in order. Each becomes a clip button labelled with its cue name.
nameNoName of the launcher panel container to build.launcher
rowsNoGrid row count. Defaults so rows*cols covers all cues (derived from cues length).
comp_pathNoControl COMP that holds the cues (manage_cue) and custom params. The launcher panel is built inside it and its buttons fire that COMP's cues./project1
morph_timeNo0 = each button jumps instantly to its cue; >0 = every button crossfades to its cue over this many seconds (eased morph, same engine as manage_cue).

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description discloses meaningful behavior: the launcher panel is opened in Perform/Panel mode, tapping a clip fires its cue, and morph_time controls instant vs. eased crossfading using the same engine as manage_cue. This adds useful behavioral context 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?

Three sentences, each earning its place: first states the core purpose and structure, second explains interaction and morph behavior, third gives the prerequisite. The description is front-loaded with the essential 'Build an Ableton-style clip launcher' and contains no filler.

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 builder tool with no output schema, the description covers the key context: what it builds, how it relates to manage_cue, required prior setup, and the key behavioral options. It could mention overwrite behavior or failure modes, but the essential invocation context is present.

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?

The input schema has 100% description coverage, so baseline is 3. The description adds some context around cues and morph_time (e.g., 'one per named cue', 'same engine manage_cue uses'), but the schema already documents each parameter adequately. No critical parameter semantics are missing.

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 states the specific verb 'Build' and names a concrete output: 'an Ableton-style clip launcher: a grid panel (Container COMP) of clip buttons, one per named cue.' This clearly distinguishes it from generic control-panel or cue-creation tools by emphasizing the grid-of-buttons scene-switching behavior.

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 clear usage context ('for fast hands-on scene switching during a live set') and a prerequisite ('Store the cues with manage_cue / create_control_panel first'). It does not explicitly list alternatives or say when not to use it, but the context and dependency make the intended use clear.

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

create_color_gradeCreate color gradeA

Build a colour-grading / LUT finishing stage over a source — the 'make the final output look graded' tool for VJ sets. A Level TOP applies lift/gamma/gain (brightness1 / gamma1 / contrast + black level), then an HSV Adjust TOP applies saturation + hue rotation; an optional LUT image file is loaded via a Movie File In TOP and fed into a Lookup TOP's second input to remap every colour. Creates a new baseCOMP under parent_path holding the chain. With an input_path the source is pulled in via a Select TOP (so it can live in another container); without one, a Ramp TOP test gradient is graded so it builds and previews standalone. Live Brightness / Gamma / Contrast / Saturation / Hue knobs are exposed. Output is a Null TOP. Returns a summary plus a JSON block with the container path, created node paths, the Level/HSV/output paths, exposed controls, any node errors, warnings, and an inline preview image. Use apply_post_processing instead to chain several distinct effects in series.

ParametersJSON Schema
NameRequiredDescriptionDefault
hueNoHue rotation in degrees (0 = unchanged, 0..360 wraps the colour wheel). Drives the HSV Adjust TOP's `hueoffset`.
gammaNoGamma / mid-tone curve (1 = linear, <1 brightens mids, >1 darkens mids). Drives the Level TOP's `gamma1`.
contrastNoContrast around mid-grey (1 = unchanged). Drives the Level TOP's `contrast`.
lut_pathNoOptional absolute path to a LUT image file (e.g. a 256x1 / 512x512 colour ramp). When given, a Movie File In TOP loads it and feeds the SECOND input of a Lookup TOP; the graded image is the first input, so each pixel is remapped through the LUT. Omit to skip LUT remapping.
brightnessNoOverall brightness / gain multiplier (1 = unchanged). Drives the Level TOP's `brightness1` (this is the gain control — the param is `brightness1`, NOT `gain`).
input_pathNoOptional absolute path of the source TOP to grade. Pulled in via a Select TOP (TD wires don't cross containers). If omitted, a Ramp TOP test gradient is graded so the chain still builds and previews without any device or external source.
saturationNoColour saturation multiplier (0 = greyscale, 1 = unchanged, >1 = punchier). Drives the HSV Adjust TOP's `saturationmult`.
black_levelNoLift the black point (0 = unchanged); raises the darkest pixels for a faded / filmic 'lift'. Drives the Level TOP's `blacklevel`.
parent_pathNoParent network where the color-grade container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live Brightness / Gamma / Contrast / Saturation / Hue knobs bound to the right node parameters.

TDQS

A4.7/5.0
Behavior5/5

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

The description goes far beyond the annotations by detailing the exact node chain created (Level, HSV Adjust, Movie File In, Lookup, Select, Ramp, Null), how the controls are exposed, and precisely what the return value includes (summary, JSON block with paths, exposed controls, errors, warnings, inline preview). It also explains the LUT loading mechanism and the standalone-build behavior, giving full visibility into side effects.

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 densely informative yet efficiently structured: it front-loads purpose, then explains mechanism, then input/output behavior, then alternatives. Every sentence contributes either a technical detail, a usage condition, or a critical distinction, with no redundancy or filler.

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?

Despite lacking an output schema, the description fully specifies what the tool returns, covering container path, node paths, exposed controls, errors, warnings, and preview image. The tool's complexity (10 optional params, branching behavior) is fully addressed through the chain explanation, mode behavior, and LUT loading details.

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%: every parameter already has a detailed description, including exact TOP parameter mappings (e.g., brightness1 not gain). The tool description adds only a high-level chain context (e.g., 'Level TOP applies lift/gamma/gain'), but this does not materially increase semantic understanding beyond the schema.

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 vivid, specific verb-object pairing: 'Build a colour-grading / LUT finishing stage over a source,' and clarifies its niche as 'the make the final output look graded' tool for VJ sets. It also explicitly differentiates itself from the sibling tool apply_post_processing, removing ambiguity about its role.

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

Usage Guidelines5/5

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

It clearly states when to choose this tool over an alternative: 'Use apply_post_processing instead to chain several distinct effects in series.' It also explains the two operational modes (with or without input_path), so the agent knows when to supply a source and when the tool will fall back to a test gradient.

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

create_color_wheelsCreate colour wheels (lift/gamma/gain)A

Classic colour-grading wheels — three tinted Level TOPs run in series for shadows (lift, gamma-biased), midtones (gamma) and highlights (gain, brightness-biased), then a master Level TOP for global offset (blacklevel), then an HSV Adjust TOP for saturation. Each wheel is an [r,g,b] multiplier in 0..2 (1,1,1 = neutral). Builds a new baseCOMP under parent_path holding the chain; with source_path the upstream TOP is pulled in via a Select TOP, without one a Ramp TOP test gradient is graded so the chain previews standalone. Exposes per-channel LiftR/G/B, GammaR/G/B, GainR/G/B float knobs plus Offset and Saturation (live-bound to the underlying Level/HSV pars). Output is a Null TOP. Use create_color_grade for a simpler single-Level + HSV chain, or apply_post_processing to chain several distinct effects.

ParametersJSON Schema
NameRequiredDescriptionDefault
gainNoHighlight tint (gain wheel) as [r,g,b] in 0..2. Multiplies R/G/B on a Level TOP biased into highlights via `brightness1`. [1,1,1] = neutral.
liftNoShadow tint (lift wheel) as [r,g,b] in 0..2. Multiplies R/G/B on a Level TOP whose `gamma1` is biased high (~1.4) so the multiply lands in the darker tonal range. [1,1,1] = neutral.
gammaNoMidtone tint (gamma wheel) as [r,g,b] in 0..2. Multiplies R/G/B on a mid-biased Level TOP. [1,1,1] = neutral.
offsetNoGlobal black-level offset (-1..1). Positive lifts the black point (faded/filmic look); negative crushes. Drives the master Level TOP's `blacklevel`.
base_nameNoOptional base name for the container (defaults to 'color_wheels'). Final container path is `<parent_path>/<base_name>` with TD's auto-suffix.
saturationNoMaster saturation multiplier (1 = unchanged, 0 = greyscale). Drives the trailing HSV Adjust TOP's `saturationmult`.
parent_pathNoParent network where the colour-wheels container is created (default '/project1')./project1
source_pathNoAbsolute path of the source TOP to grade. Pulled in via a Select TOP (TD wires don't cross containers). If omitted, a Ramp TOP test gradient is graded so the chain still builds and previews without any external source.
expose_controlsNoWhen true (default), expose live per-channel float knobs LiftR/G/B, GammaR/G/B, GainR/G/B (0..2, 1 = neutral) plus Offset and Saturation. Three floats per wheel — instead of a single RGB swatch — because the shared control-panel builder cannot bind an `rgb` control to a parameter, so the swatch would be display-only.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate mutating (readOnly=false), non-destructive, open-world behavior. The description goes further by explaining a new baseCOMP is created under parent_path, how source_path is wired, and that output is a Null TOP. It doesn't address conflicts/idempotency but the 'new baseCOMP' and destructiveHint=false provide a reasonable safety profile.

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 dense but well-structured: chain architecture, wheel math, build behavior, exposure, output, and alternatives each take one sentence. No filler; every sentence carries operational value.

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 9-parameter creation tool with no output schema, the description covers the generated network, source handling, exposed controls, output identity (Null TOP), and fallback when no source_path is provided. This is sufficient for an agent to predict the tool's effect.

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 coverage is 100% with detailed parameter descriptions, so the description need not enumerate them. It adds architectural context (series of Level TOPs, live-bound knobs) but doesn't add syntax or default information beyond the schema. Baseline 3 is appropriate.

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 'Classic colour-grading wheels' and clearly states the tool 'Builds a new baseCOMP' containing the chain, with specific components (three Level TOPs, HSV Adjust). It distinguishes from siblings by naming create_color_grade and apply_post_processing as alternatives. The verb-resource pair (create + colour wheels) 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 Guidelines5/5

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

It explicitly advises when to use alternatives: 'Use create_color_grade for a simpler single-Level + HSV chain, or apply_post_processing to chain several distinct effects.' It also clarifies the optional source_path behavior (Select TOP vs Ramp gradient) so the agent knows when an external source is needed.

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

create_companion_surfaceCreate companion surfaceA

Build a companion performance surface for an existing node/COMP: infer useful primitive parameters, add bound custom parameters, create a playable fader/cue panel, and optionally append a read-only preflight report. Use after generating a component that needs a human-facing control surface without hand-wiring every parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
bindNoBind generated custom parameters back to source_path parameters.
nameNoName of the playable panel container to build.companion_surface
pageNoCustom-parameter page added by the auto UI pass.Companion
excludeNoSource parameter names to skip.
comp_pathNoCOMP that receives the custom parameters and panel. Defaults to source_path.
parametersNoOnly expose these source parameter names. Omit to infer primitive controls.
target_fpsNoFrame-rate target for preflight.
cue_buttonsNoOptional cue buttons to add to the playable surface.
source_pathYesNode or COMP whose useful parameters should be surfaced.
max_controlsNoMaximum inferred controls when parameters is omitted.
include_fadersNoBuild a playable fader/toggle surface for numeric inferred controls.
include_preflightNoAppend a read-only show_preflight_report result for the companion COMP.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate a non-readOnly, open-world mutation. The description goes beyond by outlining the behavioral steps: inferring primitives, adding bound custom parameters, creating a playable panel, and optionally attaching a read-only preflight report. This gives a solid mental model of side effects, though it doesn't detail exact mutations to source/comp_path.

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 two sentences: the first front-loads the main verb and uses a colon-delimited list of concrete actions, the second gives a succinct usage note. Every word earns its place with no redundancy or fluff.

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 12-parameter tool with 100% schema coverage and no output schema, the description provides an adequate high-level overview of the workflow and expected outcome. It could mention what the tool returns or what the created surface is, but given the schema's richness, it is sufficiently complete.

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 coverage is 100% with well-described parameters, so the description doesn't need to repeat them. It adds workflow-level framing (e.g., 'infer primitive parameters' relates to parameters and max_controls; 'fader/cue panel' to include_faders and cue_buttons), but the heavy lifting is already done by the schema, meeting the baseline.

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 clearly states the tool's function: building a companion performance surface for an existing node/COMP. It lists concrete sub-tasks (infer parameters, add bound custom parameters, create fader/cue panel, optionally append preflight report) and the specific resource ('node/COMP'), which distinguishes it from sibling tools like create_control_surface or auto_ui_from_params.

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 provides a clear use case: 'Use after generating a component that needs a human-facing control surface without hand-wiring every parameter.' It indicates when to use the tool but does not explicitly contrast with alternatives or state when not to use it, so it falls just short of a 5.

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

create_containerCreate container COMPA

Create one empty COMP under parent_path to hold a visual system, then tile it into the parent's network grid clear of existing siblings. comp_type picks a Container COMP (a 2D panel) or a generic Base COMP. Returns the created node's path, type, and name. Use a higher-level Layer 1 tool instead when you want a fully built, wired network rather than an empty shell.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the new COMP; TouchDesigner auto-generates one when omitted.
comp_typeNo'container' (2D panel COMP) or 'base' (generic COMP).container
parent_pathNoParent COMP to create the container in./project1

TDQS

A4.2/5.0
Behavior4/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, and the description adds meaningful behavior: it creates one empty COMP, tiles it into the parent grid avoiding existing siblings, and returns node details. It does not contradict annotations and gives useful context about placement and return values, though it stops short of discussing permissions or undo behavior.

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 tight sentences, front-loaded with the core action, and every sentence contributes value: creation, positioning, type semantics, return values, and usage alternative. No filler or redundant restating of the tool name.

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 the tool's moderate complexity (0 required params, full schema coverage, no output schema), the description is complete enough: it explains what it creates, where, how it positions it, what it returns, and when to choose another tool. It does not mention whether parent_path must pre-exist, but that is a minor gap for a simple creation tool.

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 coverage is 100%, so all three parameters are already documented. The description adds a bit of semantic nuance by clarifying that comp_type selects between Container COMP (2D panel) and Base COMP, but it mostly restates what the schema already provides. This is an adequate but not enhanced parameter explanation.

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 clearly states 'Create one empty COMP under parent_path', uses a specific verb+resource, and distinguishes from siblings by contrasting with 'higher-level Layer 1 tool' for fully built networks. It also mentions the return values (path, type, name), leaving no ambiguity about the tool's primary scope.

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 gives a clear usage context: create an empty shell to hold a visual system, tiling it into the network grid clear of siblings. It explicitly advises using a higher-level Layer 1 tool when a fully built, wired network is desired, which is a clear exclusion, though it does not name a specific alternative sibling.

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

create_control_panelCreate control panelA

Expose live controls on a COMP: append custom parameters (sliders, toggles, menus, RGB, pulse) and bind them to node parameters so the artist can drive a generated system in real time. Point comp_path at a system container and list the controls; use each control's bind_to to wire it to one or more 'nodePath.parName' targets.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoName of the custom-parameter page to add the controls to.Controls
controlsYesThe controls (knobs/sliders/toggles/menus) to expose.
comp_pathNoCOMP that will receive the custom parameters — usually a generated system's container./project1

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses important side effects beyond the annotations: it appends custom parameters and switches each bind_to target to expression mode. This is valuable behavioral context. The annotations (readOnlyHint=false, destructiveHint=false) are consistent with the description, so no contradiction.

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 dense, information-rich sentences with no filler. The first sentence states the purpose and capabilities; the second gives actionable instruction. This is an excellent example of front-loaded, economical writing.

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 the rich input schema and absence of an output schema, the description adequately covers the core effect (append controls, bind to parameters, switch to expression mode) and usage context. It does not dive into failure modes or edge cases, but those are not required for this level of complexity.

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?

The input schema already provides 100% coverage with detailed descriptions for all parameters and nested control properties. The description mostly restates comp_path and bind_to without adding new syntax or semantics, so it earns the baseline score for schema-heavy tools.

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 clearly states the action—expose live controls on a COMP by appending custom parameters—and the resource (a COMP). It also distinguishes itself from generic parameter tools by describing binding to node parameters, which is a specific, differentiating behavior.

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 provides a clear use case ('drive a generated system in real time') and concrete directives: point comp_path at a system container and use bind_to to wire controls. It doesn't explicitly name alternatives or exclusions, but the context is strong enough for an agent to decide when to invoke it.

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

create_control_surfaceCreate control surfaceA

Build a playable performance panel (a Container COMP of visual widgets) for live use, beyond the parameter dialog: vertical faders that drive parameters, and buttons that recall or morph to named cues (from manage_cue). Open the container in Perform/Panel mode for a touchable surface — faders move their parameters, cue buttons fire scenes (instantly or with a crossfade).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the panel container to build.surface
alignNoHow the panel lays out its widgets.horizlr
fadersNoVertical faders, each driving a parameter.
comp_pathNoControl COMP that holds the cues (manage_cue) and custom params. The surface is built inside it and its buttons fire that COMP's cues./project1
cue_buttonsNoButtons that recall or morph to named cues.

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description adds meaningful behavioral context: it builds a specific composite, describes fader-to-parameter binding, and notes that cue buttons fire scenes 'instantly or with a crossfade.' This provides transparency about runtime 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.

Conciseness4/5

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

The description is two well-structured sentences, front-loaded with the core purpose. It has minor redundancy (repeats faders/buttons behavior), but remains efficient and scannable. Every sentence earns its place, though the second sentence could be tightened.

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 moderate-complexity tool with no output schema, the description covers the constructed result and usage mode. It lacks explicit prerequisites (e.g., that cues must already exist via manage_cue, or that comp_path must be a valid control COMP), leaving minor gaps for an agent invoking the tool.

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 100%, so baseline is 3. The description enriches the parameter understanding by tying `faders` and `cue_buttons` to their live behavior ('faders move their parameters, cue buttons fire scenes') and explains the role of `morph_seconds` via crossfade, adding high-level meaning beyond the schema field descriptions.

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 clearly states the tool's function: 'Build a playable performance panel (a Container COMP of visual widgets)' with specific sub-features (vertical faders, cue buttons). It distinguishes itself from siblings by emphasizing 'beyond the parameter dialog' and referencing `manage_cue` for cue recall, making the scope distinct from generic panel creation tools.

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 gives practical guidance on use: 'Open the container in Perform/Panel mode for a touchable surface' and explains how faders and buttons behave. It implies when to use this tool (live performance panel with cue control) but does not explicitly name alternatives or exclusions, so it falls short of a perfect score.

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

create_cubemap_domeCreate cube-map domeA

Render a true cube-map dome master — the higher-fidelity follow-up to create_dome_output (which only warps a flat equirectangular source). A 3D scene is rendered by a Render TOP in cube-map mode (rendermode 'cubemap', which outputs a real cube-map texture in one render — no separate Cube Map TOP), or an existing cube-map source is pulled in via a Select TOP; then a GLSL TOP samples that cube map by 3D direction (TD's built-in samplerCube sTDCubeInputs[0]) to produce a fisheye fulldome master or a full 360°×180° equirectangular image, ending on a Null ready for setup_output. Creates a new baseCOMP under parent_path (named by name) holding the cube-map source (or the test scene's Geometry/Camera/Light/Render TOP), GLSL remap, and Null output. Sampling a real cube map avoids the equirect pole-pinch/seam. With expose_controls, a live Fov knob sets fisheye coverage and a Rotation knob spins the dome horizon. Returns a summary plus a JSON block with the container path, created node paths, the cube-source/output paths, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
fovNoFisheye coverage in degrees (the angular diameter the disc spans). 180 = full hemisphere (standard fulldome); larger over-fills, smaller zooms in. Exposed as a live Fov knob; ignored for equirectangular.
nameNoBase name for the system container.cubemap_dome
sourceNoOptional path to an existing TOP delivering a cube-map texture (e.g. a Render TOP in cube-map mode) to remap. When omitted, a simple test scene (sphere on a grid + camera + light) is rendered by a Render TOP in cube-map mode so the tool is self-contained.
projectionNofisheye: sample the cube map into a centred dome disc (planetarium fulldome master). equirectangular: sweep the cube map into a full 360°×180° latlong image.fisheye
resolutionNoSquare dome-master resolution (width = height).2048
parent_pathNoParent network where the dome container is created (default '/project1')./project1
expose_controlsNoExpose a live Fov knob (and a Rotation knob that spins the dome horizon).

TDQS

A4.6/5.0
Behavior5/5

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

Even with annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) already signaling that this tool creates and modifies the scene graph, the description adds substantial behavioral detail: it names the exact node chain (Render TOP in cubemap mode or Select TOP, GLSL TOP sampling sTDCubeInputs[0], Null), explains the source-fallback logic, exposes that the tool creates controls (Fov and Rotation knobs), and states the structured return info (JSON with paths, errors, warnings, preview). This fully discloses side effects and matches 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.

Conciseness4/5

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

The description is dense and information-rich: each sentence contributes to purpose, pipeline, side effects, or output. While it is long, it remains front-loaded with the core intent and tradeoff. A slight restructuring into separate sections could improve scannability, but the content is efficient.

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 complex tool with 7 parameters and no output schema, the description covers all essential aspects: the render process, source handling, projection modes, created components, exposed controls, and the return value (summary plus JSON with paths, errors, warnings, preview). This gives an agent everything needed to correctly select and invoke the tool.

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%, with all 7 parameters already provided rich details (e.g., fov gives an angular range, projection enums have explicit definitions, source has a fallback explanation). The description adds only marginal conceptual value beyond the schema, such as the note that real cube-map sampling avoids the equirect pole-pinch/seam, but does not meaningfully extend parameter understanding.

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, action-oriented phrase ('Render a true cube-map dome master') and immediately distinguishes the tool from the sibling create_dome_output, calling it 'the higher-fidelity follow-up' that only warps a flat equirectangular source. It clearly enumerates the output resource (a baseCOMP containing a cube-map source, GLSL remap, and Null output) and the two projection modes (fisheye and equirectangular).

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

Usage Guidelines5/5

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

The description explicitly names an alternative tool (create_dome_output) and explains the fidelity tradeoff, making it clear when this tool is the better choice. It also describes what happens if no source is provided (a self-contained test scene) and notes the output ends 'on a Null ready for setup_output', providing downstream pipeline context.

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

create_cue_sequencerCreate cue sequencerA

Build a bar-quantized cue timeline: a Beat CHOP (on the global tempo) + a CHOP Execute DAT that, on each bar (or beat) boundary, advances through an ordered list of steps and recalls — or morphs over morph_seconds — that step's cue on a target COMP. The deterministic, musically-timed counterpart to create_autopilot (which is random/cyclic). Reuses manage_cue's stored cues and the same cue_morph engine, so store the target's cues with manage_cue first. Live Active / Step / BarsPerStep controls let you pause, jump, or retune on stage.

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoWhen the last step finishes, wrap back to the first (true) or stop (false).
nameNoName of the engine container built inside target.cue_seq
stepsYesThe ordered timeline: each step names a cue and how many bars/beats it holds before the next.
targetNoCOMP whose stored cues (tdmcp_cues, from manage_cue) the sequencer recalls/morphs. Store the cues first./project1
quantizeNoUnit each step's count is measured in: 'bar' (× the project's beats-per-bar) or raw 'beat'.bar
parent_pathNoWhere to create the sequencer engine COMP./project1
morph_secondsNo0 = snap to each cue instantly on its boundary; >0 = crossfade to it over this many seconds (via the same cue_morph engine manage_cue uses).

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description discloses the internal architecture (Beat CHOP, CHOP Execute DAT), the timing behavior (advances on bar/beat boundaries), the morphing behavior (morph_seconds), and the runtime controls (Live Active / Step / BarsPerStep). It adds significant context about side effects and dependencies without contradicting 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 two sentences, front-loaded with the main purpose, and every clause adds value: architecture, timing, morphing, comparison to autopilot, prerequisite, and live controls. It is dense but not verbose, and no fluff is present.

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 complex 7-parameter tool with no output schema, the description is quite complete: it explains what is built, how it behaves, what dependencies exist, and how it is operated. However, it does not explicitly state return values or error conditions, though these are minor for a creation tool. The prerequisite and behavioral details make it sufficient for most use cases.

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?

The input schema has 100% parameter description coverage, so the baseline is 3. However, the description enhances understanding by explaining the semantic model: 'ordered list of steps' clarifies the steps array, and 'bar-quantized cue timeline' gives context to quantize and bars. This extra context justifies a 4.

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: 'Build a bar-quantized cue timeline,' and then details the concrete implementation (Beat CHOP + CHOP Execute DAT). It explicitly differentiates itself from create_autopilot as the 'deterministic, musically-timed counterpart,' making its purpose clear and distinguishing it from a key sibling.

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

Usage Guidelines5/5

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

The description states a clear usage contrast: 'The deterministic, musically-timed counterpart to create_autopilot (which is random/cyclic).' It also gives a prerequisite: 'store the target's cues with manage_cue first,' which tells the user when and how to use this tool versus alternatives.

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

create_datamoshCreate datamosh / time-smear effectA

Build a datamosh (broken-codec / time-echo / ghost-trail) visual effect network in one call. Three modes: 'feedback_echo' (classic datamosh — a Feedback TOP loop decays and re-composites each frame, creating ghost trails); 'frame_blend' (blends current and previous frames for a motion-blur smear); 'time_echo' (Time Machine TOP samples different time offsets per pixel for per-pixel delayed ghosting). All modes expose a Decay knob; set source to an existing TOP path or omit it for a built-in animated test source. Returns a container with a Null TOP output, exposed controls, and a live preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoWhich smear algorithm to build. 'feedback_echo': classic datamosh — the Feedback TOP layers the decayed previous frame over the new source, creating ghost trails. 'frame_blend': blends the current frame with a cached previous frame via a Level TOP opacity, creating a motion-blur smear. 'time_echo': delayed-frame ghosting via a Time Machine TOP driven by a displacement map (UNVERIFIED — falls back to feedback-delay if Time Machine is unavailable).feedback_echo
nameNoName for the generated container COMP (default 'datamosh').datamosh
decayNoHow slowly the trail fades (0–1). Higher values = longer smear / more persistent ghost. Applied via levelTOP brightness1. Default 0.9.
sourceNoPath to an existing TOP to use as the mosh source. Omit to use a built-in animated Noise TOP so the loop cooks and previews even with the timeline paused.
displaceNoPixel displacement of the fed-back frame each cycle (the 'mosh wobble'). Applied via displaceTOP displaceweight1 (falls back to displaceweight on older builds). 0 = no wobble. Default 0.0.
resolutionNoOutput resolution [width, height] in pixels. Forced on the feedback loop to prevent flickering. Default [1280, 720].
parent_pathNoParent COMP path where the datamosh container is created (default '/project1')./project1

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true), the description adds rich behavioral context: it details the internals of each mode (Feedback TOP loop, Level TOP opacity, Time Machine TOP), notes the UNVERIFIED fallback for time_echo, mentions that resolution is forced to prevent flickering, and specifies the return value (container with Null TOP, exposed controls, live preview). This goes well beyond what annotations convey.

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 compact and front-loaded: first sentence states the core purpose, second details modes, third covers shared controls, fourth describes output. No redundant phrasing; every sentence adds necessary information. It is well-structured and easy to scan.

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?

Given the absence of an output schema, the description appropriately explains the return value (container with Null TOP output, exposed controls, live preview). It also covers mode-specific internals, fallback behavior, source options, and resolution constraints. For a 7-parameter creation tool with no output schema, this is complete and self-sufficient.

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 description coverage is 100%, so the baseline is 3. The description adds cross-parameter context by stating 'All modes expose a Decay knob', tying the decay parameter to all modes, and explaining the source parameter's fallback to a built-in animated Noise TOP. It does not repeat every parameter detail but provides cohesive semantics beyond the schema.

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 uses a specific verb ('Build') and resource ('datamosh visual effect network'), enumerates three distinct modes with clear explanations, and distinguishes itself from generic creation tools by describing what it produces (container with Null TOP, controls, preview). It is precise and unambiguous.

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?

The description gives clear context for when to use the tool (create a datamosh effect in one call) and explains parameter choices (source omitted for built-in test source), but it does not explicitly compare to sibling tools like create_time_echo or create_feedback_network. The mode list implicitly covers these, but explicit when/when-not guidance is missing.

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

create_data_reactiveMap live data channels onto visual paramsA

Wire arbitrary external data (weather, follower count, sensor readings, OSC values) onto a COMP's custom numeric parameters — the data counterpart to bind_audio_reactive. Point target at a COMP with numeric custom-parameter knobs, source_chop at a live-data CHOP (e.g. a create_data_source Null), and provide explicit mappings (data channel → param name) each with an input range [in_min, in_max] and output range [out_min, out_max] so the data is correctly re-mapped to the parameter's visual range. Set smooth > 0 to insert a Lag CHOP (symmetric attack+release) so noisy or jittery data does not flicker the visuals. Fail-forward: a missing source CHOP or absent channel are warnings — only a missing/non-COMP target is fatal. Build the data CHOP first with create_data_source; use bind_to_channel for finer single-parameter control.

ParametersJSON Schema
NameRequiredDescriptionDefault
smoothNoSymmetric smoothing in seconds (Lag CHOP) applied to all channels so noisy data does not jitter visuals. 0 = no smoothing.
targetYesCOMP whose numeric custom parameters should react to the data.
mappingsYesExplicit data→param mappings with per-mapping range remap. Data is rarely 0–1, so set in_min/in_max to the real data range for correct visual mapping.
source_chopYesCHOP carrying the live data channels (e.g. a create_data_source Null). Channels can be weather values, follower counts, sensor readings, etc.

TDQS

A5/5.0
Behavior5/5

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

The description discloses important behavioral traits beyond annotations: fail-forward error handling (warnings vs fatal), the insertion of a Lag CHOP when smooth > 0, and symmetric attack+release smoothing. Annotations only state readOnlyHint=false, openWorldHint=true, destructiveHint=false; the description adds concrete operational details without contradiction.

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?

Every sentence earns its place, covering purpose, setup, parameter mapping, smoothing, error behavior, and alternatives without redundancy. The structure is logical and front-loaded with the core action, making it efficient and easy to scan.

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?

Given the tool's complexity (4 params, nested mappings, no output schema), the description is remarkably complete: it covers prerequisites, data flow, range remapping, smoothing behavior, error handling, and relationship to sibling tools. No significant gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description adds meaning beyond the schema by explaining the role of each parameter in the workflow: pointing target at a COMP with numeric custom-parameter knobs, source_chop at a live-data CHOP, and explicit mappings with input/output ranges. This goes beyond the field-level schema descriptions.

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 clearly states the tool's purpose: wiring arbitrary external data onto a COMP's custom numeric parameters. It uses specific verbs ('wire', 'map') and identifies the resource (COMP parameters) and scope (live data channels). It distinguishes itself from siblings by calling itself 'the data counterpart to bind_audio_reactive' and referencing bind_to_channel for finer control.

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

Usage Guidelines5/5

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

Provides explicit usage guidance: build the data CHOP first with create_data_source, use bind_to_channel for finer single-parameter control, and explains the fail-forward behavior. This clearly states when to use this tool versus alternatives, fulfilling the 'when/when-not/alternatives' criterion.

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

create_data_sourceCreate data sourceA

Ingest live external data onto a binding-ready channel/table — the input counterpart to create_data_visualization and bind_to_channel. 'json'/'csv' poll a URL with a Web Client DAT (and cook from a static sample of fields when no url is given, so it works offline); 'osc' listens on a UDP port; 'serial' reads a device. Numeric fields become channels on an output Null CHOP (named for each key) so other tools can bind to them; the raw text is exposed on a Null DAT. Live OSC/serial values only appear when a sender/device is present.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo(json/csv) Endpoint the Web Client DAT fetches. When omitted the network still cooks from a static sample so other tools have channels to bind to.
baudNo(serial) Baud rate.
kindNoWhere the data comes from: 'json' or 'csv' poll a URL with a Web Client DAT (or, with no url, cook from a static sample so it works offline), 'osc' listens for OSC messages on a UDP port, 'serial' reads a serial device. json/csv always cook; osc/serial only carry values once a sender/device is present.json
nameNoBase name for the created sub-network.
portNo(osc) UDP port to listen on. Defaults to 7000.
deviceNo(serial) Serial port, e.g. 'COM3' on Windows or '/dev/tty.usbserial' on macOS.
fieldsNoNumeric keys to extract. Each becomes a channel on the output Null CHOP (named for the key) so create_data_visualization / bind_to_channel can bind to it, and a column in the offline sample table.
parent_pathNoCOMP to build the data source inside./project1
poll_secondsNo(json/csv) How often the Web Client DAT re-fetches the URL.
expose_controlsNoSurface live 'Active' and 'Poll' controls on the source operator.

TDQS

A4.7/5.0
Behavior5/5

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

The description adds substantial behavioral context beyond the annotations: it explains the output artifacts (Null CHOP, Null DAT), offline cooking behavior when no url is given, and that live OSC/serial values only appear when a sender/device is present. There is no contradiction with annotations (readOnlyHint=false, openWorldHint=true).

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 dense but well-structured: it front-loads the core purpose, then breaks down each mode and the resulting data structures. Every sentence adds distinct information, and there is no wasted verbiage.

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?

Given the tool's complexity (10 parameters, 4 modes, no output schema), the description covers the essential behavioral outcomes: the creation of binding-ready channels and a raw text table, offline mode, and the condition that live values require a sender/device. Remaining parameters are self-explanatory via 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 100%, so the baseline is 3. The description adds semantic value by explaining that numeric fields become channels on the output Null CHOP, how omitting `url` triggers static sample cooking, and how `kind` selects the data source mode. This extra context goes beyond the schema's per-parameter descriptions.

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 clearly states the tool's function with a specific verb ('Ingest') and resource ('live external data onto a binding-ready channel/table'). It explicitly distinguishes itself as the 'input counterpart to create_data_visualization and bind_to_channel', which clarifies its role relative to sibling tools.

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 gives clear context for when to use this tool—when you need to bring external data in for binding—and explains mode-specific usage (json/csv polling, osc listening, serial reading). However, it does not explicitly mention alternative input tools or state when not to use this tool, so it falls short of full alternative guidance.

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

create_data_source_http_wsCreate HTTP/WebSocket data sourceA

Advanced live-data ingest for HTTP polling and WebSocket streams — the richer-transport sibling of create_data_source. http_poll: webclientDAT driven by a timerCHOP so polling cadence is a real CHOP signal you can retune/sync; supports custom HTTP method, headers, and body. websocket: websocketDAT with auto-reconnect, persistent connection. Both: JSONPath-lite selectors ($.key, $.key.sub, $.arr[0].field — no wildcards/filters) map response fields to named channels on an output Null CHOP ready for bind_to_channel. Raw body exposed on a Null DAT. Use create_data_source for simple one-knob JSON/CSV polling; use this tool when you need real POST/headers, fine-cadence timer sync, or a WebSocket stream.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesEndpoint URL. http(s):// for http_poll; ws:// or wss:// for websocket. Note: webclientDAT runs inside TD (no browser CORS). wss:// with self-signed certs may silently fail (statusCode 0). JSONPath selector support: $.name, $.key.sub, $.arr[0].field — no wildcards or filters.
bodyNoRequest body. http_poll only; caller pre-serializes JSON.
modeNoTransport.http_poll
nameNoBase name for the created baseCOMP; defaults to data_src_<mode>.
methodNoHTTP method. http_poll only; ignored for websocket.get
headersNoRequest headers (http_poll) or connect headers (websocket; best-effort, param may vary by TD build).
selectorsYesJSONPath-lite selectors. Each name becomes a Null CHOP channel and must be unique. path must start with $. Supported: $.key, $.key.sub, $.arr[0], $.arr[0].key. Non-numeric or missing values fall back to 0 with a warning.
parent_pathNoCOMP to build inside./project1
poll_secondsNoPolling interval in seconds. http_poll only; drives the timerCHOP cycle.
static_sampleNoSeed values keyed by selector name. Missing names default to 0.5.
expose_controlsNoSurface live Active, Poll/Reconnect, and per-selector LastValue readouts.
reconnect_secondsNoSeconds between reconnect attempts. websocket only.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations indicate readOnly=false, destructive=false, and openWorld=true. The description adds valuable behavioral context beyond these hints: it explains the underlying mechanisms (webclientDAT, timerCHOP, websocketDAT with auto-reconnect), the JSONPath-lite selector limits, fallback behavior for non-numeric values, and the self-signed certificate silent failure noted in the URL parameter. It does not explicitly mention the side effect of creating nodes in the project or continuous network activity, but the 'create' verb and openWorld hint imply this. Overall, it's rich detail without contradiction.

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

Conciseness4/5

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

The description is about six sentences, longer than the ideal two-sentence example, but every sentence carries essential information: mode differences, selector syntax, output handling, and usage guidance. It is structured with clear labels (http_poll, websocket, Both) and front-loaded purpose. It is dense but not wasteful, so a 4 is appropriate.

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 tool with 12 parameters, nested objects, no output schema, and external I/O, this description is exceptionally complete. It covers both modes, the selector language, the generated artifacts (Null CHOP, Null DAT), the fallback semantics, and the differentiation from the simpler sibling. Combined with 100% schema description coverage and annotations, the agent has all the context needed to select and invoke the tool correctly.

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 description coverage is 100%, so the baseline is 3. The description adds architectural context beyond the schema by explaining how polling cadence is tied to a timerCHOP and how websocketDAT manages reconnects, which deepens understanding of parameters like poll_seconds and reconnect_seconds. It also clarifies the selectors' mapping to output channels. This goes beyond what the schema already provides, justifying a 4.

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: 'Advanced live-data ingest for HTTP polling and WebSocket streams' and immediately distinguishes itself as 'the richer-transport sibling of create_data_source.' This clearly states what the tool does and differentiates it from its sibling, making the purpose unmistakable.

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

Usage Guidelines5/5

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

The final sentence provides explicit usage guidance: 'Use create_data_source for simple one-knob JSON/CSV polling; use this tool when you need real POST/headers, fine-cadence timer sync, or a WebSocket stream.' This names the alternative, states when to use this tool, and when not to, which is exactly what the dimension requires.

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

create_data_visualizationCreate data visualizationA

Build a data-driven visualization: a data source feeds a CHOP that drives a chart TOP. Creates a new baseCOMP under parent_path holding a 'data' source operator (seeded with placeholder values), a DAT-to-CHOP / CHOP-to-TOP conversion, a Scale level, the chart visual, and a Null output. Wire your real data into the created 'data' node. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings (including a reminder to wire real data), and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
chart_styleNoVisual style. 'bars' renders a GLSL bar chart; 'graph' and 'points' currently render the data as a texture strip and add a warning that richer plotting needs customization.bars
data_sourceNoKind of source operator to create: 'table' (Table DAT, pre-seeded with sample values), 'file' (File In DAT), or 'chop' (Constant CHOP). Wire your real data into the created 'data' node afterward.table
parent_pathNoParent network where the visualization container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose a live 'Scale' knob that amplifies the data values feeding the chart.

TDQS

A4.5/5.0
Behavior5/5

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

Given annotations only indicate non-read-only and non-destructive, the description adds substantial behavioral context: it details the node creation process, the placeholder data seeding, the return payload (summary, JSON block with paths, errors, warnings, preview image), and behavior differences among chart_style values. This goes well beyond what annotations provide.

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 four sentences that efficiently cover the tool's behavior, creation steps, wiring instruction, and return value. It is front-loaded with the primary action and avoids unnecessary filler, earning a high score.

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?

With no output schema, the description compensates by fully describing the return value (summary, JSON block with paths, errors, warnings, preview image). It also covers the full build process, the need to wire real data, and potential warnings. For a tool with this complexity, the context is rich and complete.

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?

The input schema already has 100% parameter description coverage, with detailed explanations for each enum and parameter. The tool description adds little new parameter-specific meaning—only the 'Scale level' mention aligns with expose_controls. Baseline 3 is appropriate since the schema already carries the descriptive weight.

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 clearly states the tool's purpose: it builds a data-driven visualization with a specific node chain (data source to CHOP to chart TOP). It lists the exact components created (baseCOMP, 'data' source, conversions, Scale, chart, Null) and names the output structure, making it distinct from sibling creation tools.

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 implies when to use (when you need a data-driven visualization chart) and includes a critical workflow instruction ('Wire your real data into the created 'data' node'). However, it doesn't explicitly contrast with alternatives like create_waveform or create_histogram_scope, so the guidance is clear but not fully exclusions-focused.

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

create_decksCreate DJ-style decksA

Build a DJ-style VJ mixer. Without decks[], it preserves the legacy A/B Cross TOP mixer with GainA/GainB controls. With decks[], it builds a 2-8 deck mixer: every deck pulls a source TOP (or a test source) through gain and FX-send Level TOPs, decks 3+ blend into a running Cross TOP chain, a Switch TOP provides hard transition cuts, a final Cross TOP blends program vs cut, and an additive FX-send bus returns per-deck sends into the master. Output is a Null ready for post-processing or setup_output.

ParametersJSON Schema
NameRequiredDescriptionDefault
decksNoOptional N-channel deck list. When supplied, create_decks builds a 2-8 deck mixer with per-deck gain, FX sends, a running blend chain, and a hard-cut switch bus.
deck_aNoAbsolute path of the source TOP for deck A (pulled in via a Select TOP, so it can live in another container). If omitted, a built-in test source (Noise TOP) is created so the mixer builds standalone.
deck_bNoAbsolute path of the source TOP for deck B (pulled in via a Select TOP). If omitted, a built-in test source (Ramp TOP) is created so the mixer builds standalone.
cut_mixNoBlend between the continuous program mix and the hard transition-cut bus: 0 = program mix, 1 = cut bus.
cut_deckNoZero-based deck index selected by the hard transition-cut bus in N-channel mode.
crossfadeNoMaster crossfader position: 0 = full deck A, 1 = full deck B, 0.5 = even blend.
parent_pathNoParent COMP the mixer container is built inside (default '/project1')./project1
expose_controlsNoExpose live 'Crossfader' + per-deck 'GainA'/'GainB' knobs on the container so the mix is playable on arrival.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly=false, openWorld=true, destructive=false. The description adds architectural details: per-deck gains, FX-send bus, Switch for cuts, Cross chain, and output as a Null. It also notes test sources are auto-created, giving behavioral insight beyond annotations.

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

Conciseness4/5

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

Four dense sentences front-loaded with the main purpose. Each sentence adds architectural information without fluff; could be more scannable but is well within acceptable length.

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 complex 8-parameter builder with no output schema, the description explains both modes, the internal network, output type (Null), and test-source fallback. It lacks edge-case error handling but is otherwise sufficient.

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 coverage is 100% with detailed per-parameter descriptions, so the baseline is 3. The description connects parameters to the topology (e.g., cut_mix relates to the Switch and final Cross) but doesn't add new format or syntax details beyond what schemas provide.

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 'Build a DJ-style VJ mixer' – a specific verb and resource. It then clearly distinguishes two build modes (legacy A/B vs 2-8 deck) and names concrete TOP elements, which separates it from sibling tools like create_layer_mixer.

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 describes the tool's role in building a mixer and explains when each mode applies (with/without decks[]), but it does not explicitly compare to alternatives like create_layer_mixer or state exclusions, so context is clear but alternatives are not named.

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

create_depthai_oak_pipelineCreate DepthAI OAK pipelineB

Create a DepthAI/OAK camera scaffold with OAK Device, OAK Select TOP/CHOP placeholders, stream maps, and hardware-gated setup notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.depthai_oak_pipeline
activeNo
device_nameNooak
parent_pathNoParent COMP for the OAK scaffold./project1
stream_countNo
include_depthNo
include_trackingNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations cover the not-read-only and not-destructive nature, and the description adds that it generates placeholders and hardware-gated notes. However, it does not disclose whether existing nodes might be modified, if a specific component selection is required, or what happens when hardware is absent.

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?

One focused sentence that front-loads the core purpose and lists key deliverables. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, minimal schema descriptions, and no output schema, the tool needs richer context. The description provides only high-level scaffolding intent, not enough for an agent to confidently pass parameters or understand the generated structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29% (2 of 7 params described), yet the description adds no meaning for key parameters like stream_count, include_depth, include_tracking, or device_name. It fails to compensate for the low schema coverage.

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 clearly states it creates a DepthAI/OAK camera scaffold with specific components (OAK Device, OAK Select placeholders, stream maps, hardware-gated notes). This differentiates it from sibling tools like create_realsense_depth_bus or create_zed_depth_bus by identifying the exact hardware and scaffold elements.

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

Usage Guidelines2/5

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

No when-to-use versus alternatives, prerequisites, or exclusions are provided. The description only states what the tool creates, leaving the agent to infer when to choose this over other camera/device scaffolding tools.

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

create_depth_displacementCreate depth displacementA

Push a flat plane into real 3D relief by a depth/luminance map: a subdivided grid whose vertices are offset along Z by a GLSL displacement material sampling the source's brightness, rendered with a camera + light so it reads as depth that shifts with the view. Unlike create_depth_silhouette (a flat 2D mask), this is true geometry — a 2.5D landscape. Source can be the live camera (may prompt for macOS permission), a movie file, an animated synthetic pattern (testable without a camera), or an existing TOP (e.g. a real depth map). subdivisions sets the relief resolution, depth the push amount, invert flips bright↔near. Creates a new baseCOMP under parent_path holding the source, height map, Geometry COMP + GLSL displacement MAT, Camera, Light, Render TOP, and a Null output. Exposes Depth and Zoom knobs — bind Depth to a tempo ramp or an audio feature to make the surface heave. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoDisplacement amount along Z: how far bright (or dark, if inverted) pixels push the surface out of the plane. 0 = flat.
invertNoFlip the height mapping. false = bright pixels push toward the camera (bright = near); true = dark pixels push toward the camera (dark = near).
sourceNoDepth/luminance source that drives the relief. 'camera' = live webcam/capture device (creating it may pop a one-time macOS camera-permission dialog — click Allow). 'file' = a movie file. 'synthetic' = an animated noise pattern, so the relief moves and the chain is testable without any device permission (the default). 'existing_top' = displace by a TOP you already have (e.g. a real depth map).synthetic
parent_pathNoParent network where the displacement container is created (default '/project1')./project1
subdivisionsNoGrid resolution (rows = cols). Higher = finer relief and smoother displacement, but more vertices to push. 100 gives a 100×100 plane.
expose_controlsNoWhen true (default), expose live Depth (displacement amount) and Zoom (camera distance) knobs.
movie_file_pathNoPath to a movie file to play as the source; used only when source='file'.
existing_top_pathNoPath of an existing TOP to sample as the height map; used only when source='existing_top'.

TDQS

A4.9/5.0
Behavior5/5

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

With annotations only indicating readOnlyHint=false and destructiveHint=false, the description carries the behavioral burden and does so thoroughly. It discloses that the tool creates a new baseCOMP under parent_path, lists the exact node graph built, warns about the macOS camera-permission dialog, and states the return format including node errors and warnings. This goes well beyond the annotations and gives the agent a clear model of side effects and output.

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?

Although the description is long, it is dense and every sentence adds operational value: purpose, differentiation, source options, parameter behavior, node hierarchy, exposed controls, and return payload. The information is front-loaded with the core concept and then flows logically through setup, behavior, and output. No filler or redundancy is present.

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?

Given the tool's complexity (8 parameters, no output schema, network-building side effects), the description is exceptionally complete. It covers what gets created, where, which sources are allowed, permission caveats, parameter meanings, exposed controls, and the full return structure including preview image. This is more than sufficient for an agent to select and invoke the tool.

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?

The schema covers 100% of parameters, so the baseline is 3, but the description adds meaningful context beyond the raw schema. It explains the conceptual role of subdivisions ('sets the relief resolution'), depth ('the push amount'), and invert ('flips bright↔near'), and adds source-specific caveats like the macOS permission and the fact that synthetic is testable without a camera. It also mentions exposed Depth and Zoom knobs, which helps the agent understand the practical effect of expose_controls.

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: 'Push a flat plane into real 3D relief by a depth/luminance map' and immediately clarifies this is 'true geometry — a 2.5D landscape.' It explicitly distinguishes itself from the sibling tool create_depth_silhouette, which is described as a flat 2D mask, making the tool's unique purpose unmistakable.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance by contrasting with create_depth_silhouette and enumerating valid source types with use-case context: 'live camera (may prompt for macOS permission)', 'movie file', 'animated synthetic pattern (testable without a camera)', or 'existing TOP (e.g. a real depth map)'. It also suggests an application ('bind Depth to a tempo ramp or an audio feature to make the surface heave'), which helps an agent decide if this tool fits a requested visual effect.

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

create_depth_from_2dCreate depth from 2DA

Wraps TDDepthAnything v2 (community TOX by IntentDev) to convert any 2D image/video TOP into a depth map TOP using Depth Anything v2 via NVIDIA TensorRT/ONNX — no Kinect or RealSense required. Given a source TOP path, drops the TOX into a fresh container, wires the source, exposes a depth Null TOP whose path can be fed directly into create_depth_displacement, create_depth_pop_field, or create_depth_silhouette. Requires the user to have installed TDDepthAnything.tox from https://github.com/IntentDev/TDDepthAnything and an NVIDIA GPU with CUDA + TensorRT pre-built weights (.engine/.onnx). NOT supported on macOS. First cook may take 30–60 s for engine compile. Returns container_path, dropped_tox_path, depth_top_path (the key output), source_top_path, output_resolution, model_variant, and warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
tox_pathNoOverride path to TDDepthAnything.tox. When omitted, candidates are tried in order. Set this when the TOX lives outside ~/Documents/Derivative.
parent_pathNoParent network for the depth_from_2d baseCOMP./project1
model_variantNoDepth Anything v2 model size. small = ~25 ms/frame on RTX 3070, large = ~80 ms but cleaner edges. The TOX must have the matching .engine/.onnx weight on disk.small
source_top_pathYesAbsolute TD path of the 2D source TOP (movieFileInTOP / videoDeviceInTOP / NDI-in / any cooked TOP). Required.
output_resolutionNoSquare inference resolution. Lower = faster, higher = sharper depth edges. Default 512 matches Depth Anything v2 sweet spot on a 30-series GPU.512

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses creation of a new container, wiring, and a depth Null TOP, consistent with readOnlyHint=false. It adds performance context (30–60s compile) and dependencies, going beyond annotations.

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

Conciseness4/5

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

The description is a dense but well-organized paragraph that covers purpose, dependencies, constraints, performance, and returns without wasted words. It's slightly long but every sentence contributes.

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?

The description covers purpose, requirements, OS limits, output fields, and downstream usage, making it quite complete for a tool with no output schema. It omits error scenarios but provides sufficient operational context.

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 baseline is 3. The description adds context about source_top_path and output_resolution/model_variant in the return list but doesn't significantly enhance param understanding beyond the schema.

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 clearly states the tool converts any 2D image/video TOP into a depth map TOP using Depth Anything v2, with a specific verb and resource. It also distinguishes from siblings by mentioning downstream tools (create_depth_displacement, etc.) that consume its output.

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

Usage Guidelines5/5

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

The description explicitly specifies prerequisites (installed TOX, NVIDIA GPU with CUDA/TensorRT), platform exclusion (macOS), and first-cook timing. It positions the tool as an alternative to hardware depth sensors ('no Kinect or RealSense required') and indicates typical integration by naming downstream consumer tools.

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

create_depth_pop_fieldCreate depth-driven POP fieldA

Build a depth-driven GPU POP scatter field: consumes a depth/mask TOP and uses lookup_texture_pop to sample depth for displacement/scatter proxies (and optionally color). When depth_top_path is omitted, auto-spins-up a setup_segmentation MediaPipe chain inside the container and uses its mask Null TOP as the depth source. Scatter modes: 'displace' applies a uniform depth-scale proxy, 'emit' adds an emission-like jitter scatter proxy, 'both' does both. Forward-compatible: pass create_depth_from_2d (Depth Anything, W4) output as depth_top_path. NOTE: POPs are Experimental — op types and par names are fail-forward, probe on a live TD. Returns a JSON block with container path, depth source info, controls, warnings, and unverified probe record.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the self-contained container created under parent_path.depth_pop_field
spinNoY-rotation of the field in deg/sec, animated via transformPOP ry expression. Exposed as Spin knob.
point_sizeNoRender TOP point size, exposed as PointSize knob.
resolutionNoRender TOP resolution [width, height].
depth_scaleNoMultiplier on the depth-driven displacement amount along +Z for displace/both scatter modes. Exposed as DepthScale knob when that displacement proxy is active.
parent_pathNoParent COMP path where the depth-pop-field container is created./project1
invert_depthNoTreat dark as near instead of bright. Implemented via Level TOP invert on a proxy feed.
scatter_modeNo'displace' = uniform depth-scale proxy on the point cloud; 'emit' = emission-like scatter jitter around the sampled depth field; 'both' = depth-scale proxy + scatter jitter. True depth-weighted birth is unverified.displace
color_by_depthNoWhen true, copies sampled RGBA into POP Color attribute via a second lookup_texture_pop (near = bright / far = dark).
depth_top_pathNoAbsolute path of an existing depth/mask TOP (luminance = depth, bright = near by default). When omitted, the tool auto-spins-up a setup_segmentation chain inside the container and uses its mask Null TOP as the depth source. Future W4: pass create_depth_from_2d output here.
expose_controlsNoBuild the live artist knobs panel for the active depth field controls.
particle_densityNoApproximate point count fed to pointgeneratorPOP.numpoints (100–500 000).

TDQS

A3.7/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true), the description discloses side effects: it creates a container, may auto-spin-up a setup_segmentation MediaPipe chain, and returns a JSON block with warnings. It also warns that POPs are experimental and fail-forward, adding risk context not captured by annotations.

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

Conciseness4/5

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

The description is a single paragraph that packs core purpose, auto-spin behavior, scatter modes, forward-compat, and an experimental warning into a few sentences. It is well-structured and front-loaded, though slightly dense for a 12-param tool.

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 tool with 12 params, no output schema, and no required params, the description covers the essential workflow, input handling, return value, and risk. It doesn't provide examples or prerequisites, but the schema fills the parameter gaps. The openWorldHint and experimental note enhance completeness.

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 all parameters are documented. The tool description adds minimal parameter-level detail beyond the schema; it mentions scatter modes at a high level but the schema already explains them in comparable detail. Therefore baseline 3 is appropriate.

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 opens with 'Build a depth-driven GPU POP scatter field' – a specific verb and resource. It further clarifies it consumes a depth/mask TOP and uses lookup_texture_pop, distinguishing it from generic POP creation tools, though it doesn't explicitly name alternatives.

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?

The description explains the conditional behavior when depth_top_path is omitted vs provided, and mentions forward-compatibility with create_depth_from_2d. However, it does not explicitly specify when to use this tool over sibling tools like create_pop_field or create_gpu_particle_field.

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

create_depth_silhouetteCreate depth silhouetteA

Extract a silhouette / body mask from a depth or video source — a person's white outline on black you can composite, fill with colour, or use as a mask for reactive visuals (interactive installations / camera-reactive sets). The signal is smoothed (Blur TOP), keyed to a mask (Threshold TOP), optionally inverted (Level TOP) and optionally filled with a colour keyed through the mask (Constant + multiply Composite). Creates a new baseCOMP under parent_path holding the source, Blur, Threshold, Level, optional Constant + Composite fill, and a Null output. Source defaults to a self-contained synthetic noise field so it builds and previews with ZERO device permissions; pick 'file' for a clip, or a 'kinect_azure'/'kinect'/'realsense' sensor for the live installation (may prompt for macOS permission). Exposes Threshold (bind to proximity/audio), Smooth, Invert (+ FillColor) and outputs a Null TOP. Use create_depth_displacement instead for true 3D relief geometry rather than a flat 2D mask. Returns a summary plus a JSON block with the container path, created node paths, the mask/output paths, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
invertNoInvert the mask (swap silhouette and background). Off = white body on black; on = black body on white. Drives a Level TOP's invert.
smoothNoEdge smoothing — a Blur TOP filter size applied to the raw mask to round off jagged sensor edges before the silhouette is keyed. 0 = hard, aliased edges; higher = softer outline.
sourceNoWhere the depth/luma signal comes from. 'synthetic' (the default) = a self-contained animated noise/ramp field that needs ZERO device permissions, so the network builds and previews immediately — use it to dial in the look. 'file' = a movie/image file (source_file_path). 'kinect_azure' | 'kinect' | 'realsense' = a live depth/IR sensor (the real installation source); creating it may pop a one-time macOS camera/depth-permission dialog — click Allow. (The depth-device op names are confirmed to exist; their per-device params still need live confirmation.)synthetic
thresholdNoDepth/luma cutoff (0..1) that separates the body from the background: pixels brighter than this become the white silhouette, the rest go black. The headline 'Threshold' knob and the parameter to bind to audio/beat/proximity later.
fill_colorNoOptional hex colour ('#rrggbb') to fill the silhouette with instead of plain white — keyed through the mask via a Constant TOP composited (multiply) against it. Omit for a white-on-black mask.
parent_pathNoParent network where the silhouette container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live Threshold / Smooth / Invert (+ FillColor) controls on the system container.
source_file_pathNoMovie/image file path for source='file' (e.g. a pre-recorded depth or IR clip). Ignored for other sources.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already indicate no destructive behavior, but the description adds valuable context: it creates a baseCOMP under parent_path, may prompt for macOS permissions when using sensors, defaults to a synthetic source requiring zero permissions, and returns a summary plus a JSON block with node paths and errors. This enriches the behavioral profile beyond 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.

Conciseness4/5

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

The description is dense but every sentence contributes meaningful information—purpose, pipeline, defaults, permissions, return value. It could benefit from line breaks to improve scannability, but it avoids redundancy and keeps each clause purposeful. Slightly verbose but appropriate for the tool's complexity.

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?

The description covers functionality, node chain, source options, permission side effects, exposed controls, return format, and distinguishes from a related sibling. With no output schema, it fully explains what is returned, including the JSON block and preview image. For a tool with 8 parameters and network creation, this is complete.

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%, and descriptions for params like threshold, smooth, and source are already detailed. The tool description adds marginal value by filling in the intended use context (e.g., binding threshold to audio) but does not substantially extend beyond what the schema already provides. Baseline of 3 is appropriate.

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 clearly states the tool extracts a silhouette/body mask from depth or video, names the specific action (creates a new baseCOMP), and explicitly distinguishes it from the sibling create_depth_displacement tool. The verb+resource combination and the explicit alternative make the purpose unmistakable.

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

Usage Guidelines5/5

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

The description provides clear usage context (reactive visuals, interactive installations), explains when to choose synthetic vs file vs sensor sources, and explicitly directs to create_depth_displacement when 3D relief is needed. This goes beyond simple context to provide actionable when-to-use and when-not-to-use guidance.

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

create_detection_reactiveCreate object/person detection → parametersA

Turn object/person detection into TouchDesigner control channels — with NO CUDA requirement. Two backends: 'websocket' subscribes to an external detector process that streams JSON detections over a WebSocket (runs on any machine/GPU, or none), and 'onnx' scaffolds a CPU Script CHOP that runs an .onnx model via onnxruntime inside TD. Either way the output is a Null CHOP carrying a stable contract — presence (0/1), count, and per-object normalized bboxes (obj1_x, obj1_y, obj1_w, obj1_h, obj1_score, …) — ready for bind_to_channel. (Detection idea inspired by TDYolo, MIT-licensed; no code copied.)

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo(websocket) URL of the external detector's WebSocket. It should send JSON objects like {"count": N, "objects": [{"x":..,"y":..,"w":..,"h":..,"score":..}]}.ws://127.0.0.1:8765
nameNoBase name for the container COMP.detection
sourceNoDetector backend. 'websocket' subscribes to an external detector process that streams JSON detections (no CUDA needed, runs anywhere). 'onnx' scaffolds a Script CHOP that runs an ONNX model via onnxruntime on the CPU inside TouchDesigner — you fill in the model path + inference.websocket
input_topNo(onnx) Absolute path of the TOP to read frames from for inference. Pulled via a Select TOP.
model_pathNo(onnx) Filesystem path to the .onnx model to load in the Script CHOP (CPU inference).
max_objectsNoNumber of detected objects (bboxes) to expose as channels (obj1_x, obj1_y, …).
parent_pathNoCOMP to create the detection container in (default '/project1')./project1
reconnect_secondsNo(websocket) Auto-reconnect interval if the detector connection drops.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate write behavior (readOnlyHint=false), and the description adds valuable context: it creates a Null CHOP with a stable contract (presence, count, bboxes), subscribes to an external WebSocket, scaffolds a CPU Script CHOP, and is ready for bind_to_channel. No contradictions with annotations.

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

Conciseness4/5

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

The description is a single, dense paragraph. All sentences contribute: purpose, two backends, output contract, and legal note. It is front-loaded and free of fluff, though slightly longer than ideal. No wasted words.

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 8 parameters and no output schema, the description compensates well by defining the output contract and the two modes. It could mention prerequisites (e.g., external detector running for websocket) or error handling, but the high schema coverage and detailed description make it reasonably complete.

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 schema fully documents all 8 parameters. The description offers an overview of backend-specific behavior but does not add meaning beyond what the schema already provides (e.g., '(websocket)' and '(onnx)' annotations in param descriptions). Baseline 3 is appropriate.

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 states a specific action ('Turn object/person detection into TouchDesigner control channels'), names the two backends, and highlights a key differentiator ('NO CUDA requirement'). It clearly distinguishes itself from siblings like create_yolo_onnx_tracker and bind_to_channel by detailing the output contract.

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 provides clear context on when to use each backend ('websocket' for external processes, 'onnx' for CPU inference) and notes the no-CUDA advantage. It does not explicitly name alternative tools or give 'when not to use' exclusions, but the backend guidance is enough for selection.

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

create_direct_display_outputCreate Direct Display outputA

Create a Direct Display Out TOP scaffold with monitor inventory, display maps, and inactive-by-default safety notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.direct_display_output
activeNo
parent_pathNoParent COMP for the Direct Display output scaffold./project1
output_countNo
display_indexNo
resolution_widthNo
resolution_heightNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare non-read-only and non-destructive, but the description adds the important safety trait that the scaffold is created inactive-by-default, which is beyond annotation info. It also implies a scaffold (incomplete structure), which is useful behavioral context.

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?

One sentence, immediate verb, no filler. All three content items (inventory, maps, safety notes) are packed into a concise clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with 7 parameters and no output schema, the description gives a high-level idea but omits how parameters affect the scaffold, what 'monitor inventory' entails, and what the agent/return should expect. It's sufficient for a knowledgeable user but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29% (only name and parent_path have descriptions), and the description does not mention any parameter or explain how the listed features map to parameters like output_count, display_index, or resolution. Thus it fails to compensate for the low schema coverage.

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 states a specific action ('Create') on a specific resource ('Direct Display Out TOP scaffold') and lists key contents (monitor inventory, display maps, safety notes), which clearly distinguishes it from sibling creation tools like create_multi_output or create_dome_output.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives; no mention of when not to use or what makes this preferred. The description only states what it does, leaving usage decisions to the agent.

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

create_displacement_warpCreate displacement warpA

Build a displacement-warp stage over a source — the 'heat-haze, liquid, audio-pushed pixels' tool for VJ sets. A Displace TOP warps the source image using a second image as a displacement map; the map is driven by one of three modulators: 'noise' (animated Perlin noise — smooth, continuous warp), 'second_top' (your own displacement map via a Select TOP), or 'audio' (audio FFT spectrum converted to a texture via CHOP-to-TOP, so the warp reacts to the music). Without a source the chain builds over a Ramp TOP test gradient and previews standalone. The Displace TOP's weight (displaceweight1) maps to the amount parameter; the Noise TOP translate speed maps to speed. Amount and Speed are exposed as live knobs. Output is a Null TOP. Returns a summary plus JSON with the container path, created node paths, controls, errors, warnings, and an inline preview image. Pairs with extract_audio_features for reactive warp and apply_post_processing to chain with other effects.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the container COMP created under parent_path.displacement_warp
speedNo(noise mode) Animation speed of the noise modulator. Scales the time-driven translate on the Noise TOP — higher values produce faster, more turbulent warp.
amountNoDisplacement strength — maps to the Displace TOP's `displaceweight1` parameter. 0 = no warp; 1 = full-range warp (can tear); 0.05–0.3 are typical VJ values.
sourceNoAbsolute path of a TOP to warp (pulled in via a Select TOP so it can live anywhere in the network). Omit to use a built-in Ramp TOP test source so the chain builds and previews standalone.
modulatorNoWhat drives the displacement map. 'noise' (default): an animated Noise TOP whose translate and period are driven by time — produces smooth heat-haze / liquid warp. 'second_top': a Select TOP pointing at `modulator_top` (your own displacement map). 'audio': a CHOP-to-TOP conversion of audio FFT energy — pixels push in proportion to the audio spectrum. The audio modulator requires an audio device or audio file to be active in the project; without one it runs silently at zero energy.noise
resolutionNoOutput resolution [width, height] in pixels.
parent_pathNoParent COMP path the self-contained displacement warp container is created inside./project1
modulator_topNo(second_top mode only) Absolute path of a TOP to use as the displacement map. Required when modulator is 'second_top'; ignored otherwise.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnly=false, destructive=false), the description discloses substantial behavioral details: how the Displace TOP maps to parameters, that Amount and Speed become live knobs, that output is a Null TOP, and that audio mode requires an active audio device/file. It also details the JSON return payload including container path, created nodes, errors, warnings, and preview. This far exceeds annotation coverage.

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 compact yet information-dense, leading with the core purpose and then layering implementation details, modulator explanations, fallback behavior, and return format. Each sentence earns its place, and the structure is logical (what→how→modes→fallback→mapping→returns→pairings).

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?

Given the tool's complexity (8 parameters, no output schema), the description covers all critical aspects: the node graph built, each modulator's behavior and prerequisites, the standalone source fallback, parameter mappings, exposed controls, return payload, and recommended companion tools. Nothing essential is left unspecified.

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 100% schema description coverage, the baseline is 3. The tool description adds valuable semantic context by explaining the parameter mappings (amount → displaceweight1, speed → Noise translate speed), the meaning of the three modulator modes, and that the source is pulled via a Select TOP. This enriches the schema descriptions without duplicating them, justifying a 4.

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 'Build a displacement-warp stage over a source' and specifies it as the 'heat-haze, liquid, audio-pushed pixels' tool for VJ sets. It clearly differentiates this from siblings by naming the three modulator modes (noise, second_top, audio) and the source fallback, making its purpose unmistakable.

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?

Provides clear context for when to use each modulator: 'noise' for smooth continuous warp, 'second_top' for a custom displacement map, and 'audio' for music-reactive effects. It also notes that omitting a source builds a standalone preview over a Ramp TOP. However, it does not explicitly contrast with alternative warp tools or state when not to use this tool, so it stops short of a 5.

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

create_ditherCreate ditherA

Build a retro dither effect: ordered Bayer (2×2/4×4/8×8), checker, noise, or single-pass error-diffusion — quantising to a 2/4/16-colour palette. Supports mono, duotone (Game-Boy-green default), or RGB quantisation mode. Creates a new baseCOMP under parent_path holding the source (or a self-contained noise source), a GLSL TOP with an inline shader, and a Null output. Exposes Mix, Threshold, and Scale knobs for live tweaking. Returns a summary, node paths, exposed controls, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
mixNoBlend between original (0) and dithered output (1). Live-tweakable.
bitsNoBit depth per channel: 1=2 levels, 2=4 levels, 4=16 levels.1
nameNoBase name for the created container.dither
scaleNoPattern scale in pixels — larger = chunkier dither.
sourceNoAbsolute path of an existing TOP to dither (e.g. '/project1/movie1'). Pulled in via a Select TOP. If omitted, a self-contained animated colour-noise source is used (no device permissions).
patternNoThreshold pattern. bayer2/4/8: ordered Bayer matrices (2×2/4×4/8×8); checker: alternating grid; noise: pseudo-random hash; error_diffusion: single-pass 3×3 neighbourhood approximation.bayer4
low_colorNoOff/dark palette colour [r,g,b] 0–1. Used in mono and duotone modes.
thresholdNoThreshold bias applied on top of the pattern.
high_colorNoOn/light palette colour [r,g,b] 0–1. Game-Boy-green default.
resolutionNoOutput resolution [width, height] in pixels.
parent_pathNoParent COMP path the dither container is created inside./project1
palette_modeNomono: luminance → low/high colour. duotone: same with hue tint. rgb: quantise each channel independently using bits.duotone

TDQS

A4.5/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint=false, destructiveHint=false), the description discloses the full side-effect profile: it creates a new baseCOMP containing a source, GLSL TOP with inline shader, and Null output; exposes live knobs; returns summary/paths/controls/preview; and explains the optional self-contained noise source with no device permissions. This exceeds the baseline for mutation tools.

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?

Four dense sentences, each carrying essential information: effect type, palette modes, node structure, dynamic controls, and return payload. No redundant phrasing or filler; front-loaded with the core purpose.

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 complex 12-parameter creation tool with no output schema, the description effectively covers what gets created, how it behaves, and what is returned. It also notes the self-contained noise source fallback. This gives an agent a complete mental model for invocation.

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?

Input schema has 100% coverage with detailed descriptions for all 12 parameters, so the description need not restate them. It adds high-level context (e.g., '2/4/16-colour palette' maps to bits, 'Mix, Threshold, and Scale knobs' map to parameters) without introducing new meaning per parameter. Baseline 3 is appropriate.

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 'Build a retro dither effect' using a specific verb and resource, enumerates supported patterns (Bayer, checker, noise, error-diffusion) and palette modes, and lists concrete node outputs. This clearly distinguishes it from visual-effect siblings like create_halftone or create_glitch.

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?

Provides clear context that this tool is for creating a dither effect and describes the resulting node structure and interactive knobs, implying when to use it. However, it does not explicitly name alternatives or exclusions, though the specificity of 'retro dither effect' is enough to differentiate from sibling creation tools.

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

create_dmx_fixture_pipelineCreate DMX fixture pipelineA

Build a DMX/Art-Net (or sACN) output chain from a fixture list. For each fixture (rgb, rgbw, par64, movingHead8, movingHead16) creates a Constant CHOP with one named, default-valued channel per DMX slot (prefixed '/'), inserts pad Constant CHOPs to keep DMX-slot alignment, merges them all into one stream, and drives a dmxoutCHOP (interface, universe, netaddress, rate). Returns the container + a JSON report with paths, fixtures, total channels, exposed controls (Universe / Rate / Net Address), and warnings. Per-fixture sliders are NOT auto-exposed — bind individual channels later with bind_to_channel / animate_parameter on op('rig_out')['fix1/r'] etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNoDMX refresh rate (dmxoutCHOP `rate`).
netNoNetwork protocol — written to the dmxoutCHOP `interface` par.artnet
hostNoTarget IP for Art-Net / sACN (maps to dmxoutCHOP `netaddress`). Null = leave default.
nameNoBase name for the container COMP.dmx_rig
fixturesYesOrdered list of fixtures (sorted by startChannel at build time).
universeNoDMX universe written to the dmxoutCHOP.
parent_pathNoCOMP to create the DMX rig container in (default '/project1')./project1

TDQS

A4.7/5.0
Behavior5/5

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

Annotations state readOnlyHint=false, so the description's 'creates', 'inserts', 'merges', and 'drives' are consistent. The description goes far beyond annotations by disclosing the internal CHOP construction (Constant CHOPs with named channels, pad CHOPs for alignment), the output container and JSON report contents, and the fact that per-fixture sliders are not auto-exposed. This is substantial behavioral transparency.

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 a single paragraph that front-loads the core purpose, then details the construction steps, return value, and a critical caveat about slider exposure. Every sentence adds value—no filler. It is appropriately sized given the tool's complexity.

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 tool with no output schema, the description fully covers the return value (container + JSON report with listed contents), the build process, naming conventions, and post-build binding instructions. The annotations and schema handle safety and parameter details, so the description covers all remaining context needed to invoke the tool correctly.

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?

The input schema already has 100% description coverage for all 7 parameters, each with a clear description. The tool description adds meaning by explaining how the 'fixtures' parameter maps to CHOP creation (using the fixture id as a channel prefix) and how 'startChannel' drives pad-CHOP alignment for DMX slots. It also links 'net', 'universe', 'host', and 'fps' to the dmxoutCHOP par names. This justifies a 4.

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+resource: 'Build a DMX/Art-Net (or sACN) output chain from a fixture list.' It enumerates the supported fixture profiles and the exact CHOP structure built, plus the return value. This clearly distinguishes it from sibling tools such as create_fixture_control, which likely has a narrower scope.

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 clearly states what the tool does and what it returns, giving an agent clear context for when to use it. It also tells the agent that per-fixture sliders are NOT auto-exposed and directs to bind_to_channel/animate_parameter afterward, which provides follow-up guidance. However, it doesn't explicitly state when not to use it or compare it to alternative pipeline-creation tools, so it earns a 4 rather than a 5.

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

create_dome_outputCreate dome outputA

Remap a source TOP (treated as an equirectangular / panoramic master) into a square single-output dome master for planetarium fulldomes / 360 — the curved complement to create_multi_output's flat tiling. A Select TOP pulls the master in, a GLSL TOP warps it (fisheye: equirect → centred dome disc using fov; equirectangular: near-passthrough identity remap) via a shader held in a Text DAT, ending on a Null ready for setup_output. Creates a new baseCOMP under parent_path holding the Select TOP, GLSL remap, and Null output. With expose_controls a Rotation knob spins the dome horizon. Note: this GLSL-remaps an existing flat source — use create_cubemap_dome instead for a true cube-map render (higher fidelity, no equirect pole-pinch/seam). Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings (including the cubemap-follow-up note), and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
fovNoFisheye coverage in degrees (the angular diameter the disc spans). 180 = full hemisphere (standard fulldome); larger over-fills, smaller zooms in. Used by the fisheye shader.
projectionNofisheye: warp the equirectangular source into a centred dome disc (planetarium fulldome master). equirectangular: near-passthrough identity remap, so an already-equirect source still yields a valid output.fisheye
resolutionNoSquare dome-master resolution (width = height).2048
parent_pathNoParent network where the dome-output container is created (default '/project1')./project1
source_pathYesThe master TOP to remap, treated as an equirectangular / panoramic source (the full 360°×180° latlong image the dome warps from).
expose_controlsNoWhen true (default), expose a Rotation knob bound to the shader uniform that spins the dome horizon (degrees).

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only state readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds substantial behavioral detail: it creates a new baseCOMP under parent_path holding Select/GLSL/Null nodes, explains the shader differences for fisheye vs equirectangular, exposes the Rotation knob, and notes the return payload includes node errors, warnings, and a preview image. This fully discloses side effects and expected results beyond 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 dense but well-structured and front-loaded. The first sentence states the core purpose; subsequent sentences cover node architecture, controls, alternatives, caveats, and return values. Every sentence contributes new information, and the length is justified by the tool's complexity.

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?

With no output schema, the description compensates by clearly enumerating the return payload (container path, node paths, output path, exposed controls, node errors, warnings, inline preview). It also explains the two projection modes, the created network structure, and the cubemap alternative. This is complete for a create-and-wire tool of this complexity.

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 coverage is 100%, and all six parameters already have descriptive text. The description reinforces semantics (e.g., fov used by the fisheye shader, projection mode meanings) but does not meaningfully add beyond the structured schema. Baseline 3 is appropriate when the schema carries the parameter detail.

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 action: 'Remap a source TOP ... into a square single-output dome master for planetarium fulldomes / 360'. It also explicitly distinguishes itself from sibling tools by calling itself 'the curved complement to create_multi_output's flat tiling' and referencing create_cubemap_dome as a different alternative.

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

Usage Guidelines5/5

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

Usage context is explicit and comparative. It names create_multi_output as the flat-tiling alternative and instructs 'use create_cubemap_dome instead for a true cube-map render'. It also clarifies the input expectation ('another source' / 'an existing flat source'), giving the agent clear guidance on when to choose this tool.

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

create_energy_structureCreate energy structureA

[experimental] Build a song-structure (build / drop / breakdown) edge detector COMP with adaptive thresholds. Listens to an existing audio CHOP (audioSource) or a freshly created Audio Device In, follows a long-window envelope, and runs a Script CHOP that maintains a rolling buffer (last windowSec seconds) to derive an adaptive mean (mu) and std (sigma). Emits a 5-channel Null CHOP out with: energy (smoothed RMS 0..1), state (0=breakdown, 1=build, 2=drop), and three 1-sample edge pulses build_edge / drop_edge / breakdown_edge. buildThreshold and dropThreshold are k-multipliers of sigma above mu (NOT absolute amplitudes), so the detector self-calibrates to the current mix loudness. Hysteresis (4 cooks above to step up, 30 below to fall back) stops chattering at thresholds. windowSec/Buildthreshold/Dropthreshold are exposed as custom params on the parent COMP so artists can tweak live. Default audio source builds an Audio Device In CHOP (may pop the macOS mic-permission dialog once — click Allow); pass audioSource to skip the device.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesParent COMP name to create under parent.
parentNoParent path (default project root)./
windowSecNoLength of the rolling energy buffer (sec) used to compute adaptive mean/std.
audioSourceNoOptional existing CHOP path producing audio (e.g. an Audio Device In or Audio File In). If omitted, an Audio Device In is created inside the COMP as 'audioin'.
dropThresholdNok_drop: state becomes DROP when energy > mu + k_drop*sigma (must be > buildThreshold).
buildThresholdNok_build: state becomes BUILD when energy > mu + k_build*sigma.

TDQS

A4.8/5.0
Behavior5/5

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

Goes far beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true). Reveals that the tool is experimental, uses adaptive thresholds, maintains a rolling buffer, emits a 5-channel Null CHOP, has built-in hysteresis, and may trigger a macOS mic-permission dialog. This is rich behavioral disclosure that helps an agent anticipate side effects and output structure.

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?

Although long, every sentence earns its place with technical specifics: threshold formulas, hysteresis values, output channel layout, and side effects. It is front-loaded with the purpose, then builds with operational detail. No fluff or redundancy.

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 complex tool with no output schema, the description completely covers what the tool creates, its internal algorithm, output channels, parameter behavior, default audio source handling, and a known side effect. It is sufficiently complete for an agent to invoke it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers 100% of parameters, but the description adds crucial meaning beyond the schema: thresholds are k-multipliers of sigma above mu (NOT absolute amplitudes), windowSec defines the rolling buffer length, and audioSource is optional. This clarifies parameter relationships and the self-calibrating behavior, making the parameters more understandable than raw schema descriptions alone.

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 states a specific action and resource: 'Build a song-structure (build / drop / breakdown) edge detector COMP with adaptive thresholds.' This clearly distinguishes it from sibling tools like create_envelope_follower or detect_onsets by specifying a unique COMP type and output behavior.

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?

Provides concrete usage context: it can listen to an existing audio CHOP via audioSource or create an Audio Device In, explicitly telling users to pass an existing source to skip device creation. It mentions the mic-permission dialog and how to avoid it. While it doesn't explicitly name alternative tools, the instruction is clear enough for selecting and using this tool.

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

create_engine_compCreate Engine COMPA

Drop a TouchDesigner Engine COMP that loads an external .tox in a separate TD subprocess — an independent crash domain with its own cook + (optionally) a second GPU thread, ideal for hosting heavy or unstable subgraphs. Sets the .tox file, optional reload pulse (re-pulls the .tox once), perform-mode override, and color-map toggle. The .tox's own outTOP/outCHOP/outSOP/outDAT operators surface as connectors on the Engine COMP for downstream wiring. Complements make_portable_tox (which produces the shippable .tox). Note: sub-process spin-up forks a TD process — the first cook can be multi-second on slow disks; that is not a hang. par.reload / par.usecolormap / par.performmode are guarded with hasattr so unverified par names degrade to warnings rather than throwing.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNode name for the new Engine COMP.engine1
reloadNoWhen true, pulse the Engine COMP's reload par so the .tox is re-pulled once at creation.
tox_pathYesPath to the .tox file the sub-engine loads. Forward-slash recommended; absolute or project-relative.
parent_pathNoParent COMP path the Engine COMP is created inside (default '/project1')./project1
perform_modeNo'on' forces the sub-engine to cook in perform mode; 'off' forces it off; 'auto' leaves the par at its default. (UNVERIFIED par name 'performmode' — guarded with hasattr).auto
use_color_mapNoMirror the Engine COMP's color-map toggle (UNVERIFIED par name 'usecolormap' — guarded with hasattr).

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses several non-obvious behaviors beyond annotations: sub-process spin-up forks a TD process, first cook may take multiple seconds on slow disks and is not a hang, and par names (reload/usecolormap/performmode) are guarded with hasattr so unverified names degrade to warnings. This is rich contextual information that annotations (readOnlyHint, openWorldHint, destructiveHint) do not provide.

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

Conciseness4/5

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

The description is dense and structured, front-loading the core purpose before adding usage context, a note about output connectors, a sibling comparison, and a performance warning. It is somewhat longer than strictly necessary, but every sentence contributes meaningful information. The 'Note:' at the end is a valuable caveat that prevents false hang detection.

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?

Given the tool's complexity (external subprocess, Engine COMP behavior, guarded parameters) and the absence of an output schema, the description is remarkably complete. It explains side effects (separate TD process, crash domain), output behavior (outTOP/outCHOP/outSOP/outDAT connectors), a critical performance characteristic (first-cook latency), parameter safety, and its relationship to make_portable_tox. There are no major gaps.

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?

The input schema provides 100% description coverage for all six parameters, including defaults and enum details. The description adds some context about how parameters map to Engine COMP behavior (e.g., reload pulse, perform-mode override, color-map toggle) and notes the output connectors that result from tox_path, but these are largely redundant with existing schema descriptions. No additional syntax or format guidance beyond the schema.

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: 'Drop a TouchDesigner Engine COMP that loads an external .tox in a separate TD subprocess.' It clearly defines the tool's scope (independent crash domain) and distinguishes it from siblings like make_portable_tox by focusing on runtime isolation and hosting heavy/unstable graphs.

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 states when to use the tool: 'ideal for hosting heavy or unstable subgraphs.' It also names a complementary sibling (make_portable_tox), which helps orient the agent. However, it does not explicitly state when not to use it or name direct alternatives (e.g., simple COMP creation), so it stops short of full usage exclusion guidance.

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

create_envelope_followerCreate envelope followerA

EXPERIMENTAL — Build a reactive signal-shaping chain (attack/release envelope + threshold gate or sidechain ducking) from a CHOP channel, for 'pump the whole layer on every kick' or similar sidechain effects. Creates a container with: a Select CHOP isolating the source channel by absolute path (no cross-container wire), a Lag CHOP shaping the attack/release envelope, a Logic+Math CHOP threshold gate (gate mode: silence the output below threshold) or an inverted Math CHOP (duck mode: output dips to 0 on a hit, rises on silence — classic sidechain pumping), and a Null CHOP as the stable output handle. Optionally binds the shaped output to target parameters by expression. The gate threshold uses a Logic CHOP whose par names (convert/boundmin/boundmax) match detect_onsets — but these are UNVERIFIED across TD builds; gate reads near 0 at the 0.2 default with most sources — tune threshold live. Use bind_to_channel with attack/release for a simpler Lag-only envelope without a gate.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNogate: pass the shaped envelope only while it is above threshold — silences the output when the signal is quiet. duck: sidechain/ducking — the output dips toward 0 on every hit and returns to 1 on silence (inverted gate, classic pumping compressor feel).gate
nameNoBase name for the container COMP that holds the chain.envelope_follower
attackNoEnvelope rise time in seconds — how quickly the output climbs after a hit (fast = punchy, e.g. 0.001–0.05).
channelYesChannel name to follow from source_chop (e.g. 'bass', 'kick', 'level'). The Select CHOP isolates it by name.
releaseNoEnvelope fall time in seconds — how slowly the output decays after the signal drops (slow = smooth tail, e.g. 0.1–0.8).
targetsNoOptional list of 'nodePath.parName' targets to bind to the shaped envelope output by expression. Omit to just build the chain (the Null CHOP output can be bound later with bind_to_channel).
thresholdNoGate threshold [0–1]. Below this level the output is silenced (gate) or held at 1 (duck). Start low (0.05–0.2) and raise if false triggers occur. NOTE: gate thresholding uses a Logic CHOP whose par names may vary by TD build — EXPERIMENTAL.
parent_pathNoWhere to build the follower chain (a COMP path, e.g. '/project1')./project1
source_chopYesPath of the CHOP carrying the trigger channel (e.g. '/project1/audio/features' or an onset Null).

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: explains the internal chain (Select/Lag/Logic+Math/Null CHOPs), optional expression binding to target parameters, and warns about UNVERIFIED Logic CHOP par names and gate reading near 0 at default threshold. This is valuable practical behavioral context.

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

Conciseness4/5

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

The description is dense and information-rich, with a clear front-loaded purpose. The first sentence is long and contains multiple clauses, but every piece of information (modes, components, binding, limitations, alternative) earns its place.

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?

Covers purpose, internal build, modes, optional binding, experimental caveats, and a simpler alternative. Does not explicitly mention the return value or container path output, but for a creation tool this is reasonably inferable from the parent_path and name parameters.

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 covers 100% of parameters, but the description adds extra meaning by explaining gate vs duck mode behavior and highlighting the threshold's real-world tuning pitfalls ('gate reads near 0 at the 0.2 default... tune threshold live'), which is not fully captured in the schema.

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?

Description uses the specific verb 'Build' with a clear resource ('reactive signal-shaping chain from a CHOP channel') and explicitly names the use case ('pump the whole layer on every kick'). It also distinguishes from the sibling bind_to_channel tool by pointing to a simpler alternative.

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 clearly states when to use this tool (sidechain pumping/ducking) and explicitly recommends an alternative ('Use bind_to_channel with attack/release for a simpler Lag-only envelope without a gate'). It lacks exhaustive when-not-to-use guidance but provides strong contextual guidance.

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

create_euclidean_sequencerCreate Euclidean sequencerA

Build a Euclidean rhythm sequencer: given pulses evenly distributed across steps via Bjorklund's algorithm (with optional cyclic rotation), it writes the resulting on/off pattern to a Table DAT and fires one dispatch per active step on each beat boundary. The deterministic, mathematically-grounded sibling of create_beat_grid_sequencer — program rhythms by musical intent (e.g. E(3,8) tresillo, E(5,8) cinquillo, E(4,16) four-on-the-floor) rather than by hand-editing cells. Sweep the Pulses/Rotation custom parameters live and the table re-shapes in place. action=param sets a custom parameter to on_value/off_value per step; action=cue recalls a cue per active step (cues stored with manage_cue). NOTE: beat-callback timing is UNVERIFIED offline — check op().time.play if steps don't fire when the TD timeline is paused.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the sequencer COMP.euclidean
paramNo(action=param) The custom-parameter name on the target COMP to set on each active step.
stepsNoNumber of steps in the Euclidean grid.
actionNoparam: set a target custom-parameter value per active step; cue: recall a named cue per active step (cues stored with manage_cue).param
pulsesNoNumber of active pulses distributed evenly across `steps` via Bjorklund's algorithm. Clamped to <= steps at build time.
targetYesCOMP whose parameter or cue each active step fires on a beat boundary.
on_valueNo(action=param) Value written into the table cell for active steps.
rotationNoCyclic rotation of the generated pattern (downbeat offset).
off_valueNo(action=param) Value written into the table cell for inactive steps.
bpm_sourceNoPath to an existing Beat CHOP or tempo source. Omit to create a new Beat CHOP (on the global TD tempo).
parent_pathNoParent COMP path to create the sequencer inside./project1

TDQS

A4.9/5.0
Behavior5/5

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

The description discloses far more than the annotations (readOnlyHint false, openWorldHint true, destructiveHint false). It details side effects: writes to a Table DAT, fires dispatches per active step, creates/uses a Beat CHOP, re-shapes table live when parameters sweep, and even includes a caveat about unverified timing when the TD timeline is paused. This goes well beyond what annotations convey.

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 dense but well-structured: opening with the core function, then distinguishing from its sibling, then explaining action modes, and ending with a critical caveat. Every sentence adds value, and the front-loading makes it easy to parse quickly.

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 an 11-parameter tool with no output schema, the description covers the full scope: what it builds, how it works algorithmically, what outputs are written, how parameters relate to behavior, and a limitation. It fully equips an agent to understand the tool's operation and side effects without needing an output 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 100%, so baseline is 3. The description adds meaningful context beyond schema descriptions: it explains the mathematical relationship between pulses and steps, gives canonical musical patterns, and notes the live-sweep behavior for Pulses/Rotation. It doesn't detail every parameter, but the schema already does 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: 'Build a Euclidean rhythm sequencer' and details the algorithm (Bjorklund's) and output (Table DAT, dispatches). It explicitly distinguishes itself from create_beat_grid_sequencer as the deterministic, mathematically-grounded sibling, making its unique role clear.

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

Usage Guidelines5/5

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

It explicitly states when to use this tool: to program rhythms by musical intent (with examples like E(3,8), E(5,8), E(4,16)) rather than hand-editing cells, and names the alternative create_beat_grid_sequencer. It also clarifies the two action modes (param vs cue) and cautions about unverified beat-callback timing, giving practical usage guidance.

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

create_external_ioCreate external I/OA

Bridge TouchDesigner to the outside world: OSC/MIDI input (a control surface — bind incoming channels straight to parameters), OSC/MIDI output (send a CHOP's channels back out for bidirectional feedback to lighting desks, other apps or hardware — pass source_path), DMX/Art-Net output for lighting (dmx_out for any DMX desk; artnet_out for network Art-Net/sACN pixel-mapping of LED strips & stage fixtures), RTMP output to live-stream a TOP to Twitch/YouTube/OBS (rtmp_out — NVIDIA GPU on Windows only), or NDI / Syphon-Spout video input. To discover which channel a control sends (a 'MIDI learn'), wiggle it and read the input CHOP with get_td_nodes, then bind_to that channel. Validate live where possible, but real signal needs the hardware/sender present.

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNo(rtmp_out) Frame rate to stream at. Defaults to 30.
netNo(artnet_out) Network DMX protocol: Art-Net or sACN (streaming ACN). Defaults to Art-Net.
urlNo(rtmp_out) Full RTMP destination as {service url}/{stream key}, e.g. 'rtmp://live.twitch.tv/app/live_xxx'. If omitted but stream_key is given, prefix with rtmp_base.
kindYesWhat to bridge: OSC/MIDI/keyboard/gamepad/mouse input (a control surface — bind channels to parameters), OSC/MIDI output (send a CHOP's channels back out for bidirectional feedback — pass source_path), DMX/Art-Net output for lighting (dmx_out is the general DMX desk; artnet_out is a network-only Art-Net/sACN preset for pixel-mapping LED strips & stage fixtures — both send a CHOP's 0-255 channels and need source_path), RTMP output to live-stream a TOP to Twitch/YouTube/OBS-ingest (rtmp_out — pass source_path = the TOP to stream and url; needs an NVIDIA GPU on Windows), NDI / Syphon-Spout video input, or NDI / Syphon-Spout video output (ndi_out / syphon_spout_out — pass source_path = the TOP to send and an optional source_name for the NDI source / Spout sender name; flip active to start immediately). On Windows, Spout needs an NVIDIA or AMD GPU (no Intel).
nameNoName for the I/O operator; auto-generated when omitted.
portNo(osc_in) UDP port to listen on / (osc_out) port to send to. Defaults to 7000.
activeNo(rtmp_out/ndi_out/syphon_spout_out) Start sending immediately. Defaults off so the artist can confirm the destination/sender name first.
bind_toNo(osc_in/midi_in) Map incoming channels to parameters. Each binding tolerates a channel that hasn't arrived yet (falls back to 0 instead of erroring).
universeNo(dmx_out/artnet_out) DMX universe.
interfaceNo(dmx_out) DMX transport. (artnet_out forces a network protocol via `net`.)artnet
normalizeNo(midi_in) How to scale incoming MIDI values.0to1
rtmp_baseNo(rtmp_out) Ingest base URL to combine with stream_key when url is not given (defaults to YouTube's primary ingest).
stream_keyNo(rtmp_out) Stream key, appended to rtmp_base as '{rtmp_base}/{stream_key}'.
net_addressNo(dmx_out/artnet_out) Target IP address for Art-Net / sACN.
parent_pathNoCOMP to create the I/O operator in./project1
source_nameNo(ndi_in/syphon_spout_in/ndi_out/syphon_spout_out) Name of the NDI source or Spout sender to receive or send, or (video_device_out) the SDI/capture-card output device name. For outputs, defaults to the operator name when omitted.
source_pathNo(dmx_out/artnet_out/osc_out/midi_out) CHOP whose channel values are sent out, or (rtmp_out / video_device_out / ndi_out / syphon_spout_out) the TOP to send. Should live in the same COMP as parent_path so the wire/source connects.

TDQS

A4.6/5.0
Behavior5/5

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

With annotations only stating readOnlyHint=false, openWorldHint=true, destructiveHint=false, the description adds substantial behavioral context: platform constraints (RTMP requires NVIDIA GPU on Windows; Spout needs NVIDIA/AMD but not Intel), default safety behaviors (active defaults off so the artist can confirm destination), error tolerance for bind_to (missing channels fall back to 0), and validation limitations. This goes well beyond the annotations and gives the agent critical operational expectations.

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 description is a single dense paragraph with lengthy parenthetical asides and repetitive enumerations. It is front-loaded with the core purpose, but the structure makes it harder to scan. While every part is informative, it could be organized with bullets or separate sections for input vs output categories to improve readability without losing content.

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?

The description covers all major categories, platform-specific requirements, default behaviors, validation caveats, and an alternative tool usage (get_td_nodes). There is no output schema, so return-value documentation is not required. For a tool with 17 parameters and 15 kind variants, this description is remarkably complete, leaving few ambiguities about how and when to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While the schema already describes all 17 parameters (100% coverage), the description enriches their semantics significantly. It explains workflows like passing source_path for outputs, using bind_to with learned channels from get_td_nodes, and the distinction between dmx_out and artnet_out via the net/interface parameters. The prose adds conceptual meaning and practical usage guidance that the schema's per-parameter descriptions do not fully convey.

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 explicitly states 'Bridge TouchDesigner to the outside world' and enumerates the full spectrum of supported I/O kinds (OSC/MIDI input/output, DMX/Art-Net, RTMP, NDI/Syphon-Spout). This clearly distinguishes it from sibling tools like create_control_surface or create_ndi_router_matrix by framing it as a generic external I/O bridge. The verb 'bridge' and the detailed resource list make the purpose unmistakable.

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 provides clear when-to-use context, covering all the I/O bridging scenarios. It explicitly names an alternative workflow for discovering MIDI channels ('use get_td_nodes, then bind_to'), and warns about validation limits ('real signal needs the hardware/sender present'). However, it doesn't explicitly contrast with sibling tools beyond that one example, so it falls just short of a 5.

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

create_facade_mappingCreate Facade MappingA

Build a multi-projector architectural facade rig: one source TOP fanned into N per-projector branches, each with Crop → Corner Pin keystone → edge-blend Ramp/Composite mask → Level brightness, plus per-projector Null outputs and a summary preview composite. Ships as a calibration skeleton; per-projector corners, color match, and (when 3D) camera transforms are left to live install alignment.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the generated Base COMP.facade_mapping
blend_curveNoCurve applied to the alpha gradient via Level gamma.smoothstep
blend_widthNoEdge-blend overlap region in pixels (alpha gradient width on inner edges).
parent_pathNoParent COMP where the facade mapping system is created./project1
source_modeNoSynthetic builds a self-animated noiseTOP so the rig previews without an upstream feed.synthetic
blend_layoutNoHow projectors tile: horizontal row, vertical column, or near-square grid.horizontal
output_widthNoPer-projector pixel width.
output_heightNoPer-projector pixel height.
expose_controlsNoBuild a Control Panel with per-projector brightness + global blend width/curve.
projector_countNoNumber of projectors. Each projector gets its own branch and Null output.
source_top_pathNoAbsolute TOP path to fan out; required when source_mode='existing_top'.
background_colorNoBackground color as #rrggbb.#000000
facade_geometry_pathNoOptional absolute SOP/COMP path to a 3D facade model. PARTIAL/UNVERIFIED: when provided, builds a per-projector cameraCOMP + renderTOP + geometryCOMP stub.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so 'Build' is expected. The description adds valuable context beyond annotations: it creates a calibration skeleton, fans one source into N branches, and leaves alignment work for later—important behavioral expectations for the agent and user.

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 deliver a dense, front-loaded description with no filler. The first sentence explains the composition; the second sets expectations for what is left incomplete. Every phrase earns its place.

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 tool with 13 parameters and no output schema, the description gives a solid high-level overview, names the main branches and operators, and clarifies the calibration-skeleton scope. It does not detail return values (not needed for a build tool) or explicitly list operator names, but it is sufficient for tool selection and invocation.

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 100%, so baseline is 3. The description adds meaning by mapping phrases like 'one source TOP' to source_top_path, 'N per-projector' to projector_count, and 'edge-blend Ramp/Composite' to blend_curve/blend_width. It frames these as initial values within a calibration skeleton, which the bare schema does not convey.

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 the specific verb 'Build' and the resource 'multi-projector architectural facade rig', and enumerates concrete components (Crop, Corner Pin, Ramp/Composite, Level, Nulls, preview). This clearly distinguishes it from sibling create_* tools like create_projection_mapping or create_led_mapper.

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 implies when to use this tool by stating it 'Ships as a calibration skeleton' and that 'per-projector corners, color match, and (when 3D) camera transforms are left to live install alignment.' This tells the agent the tool is for initial scaffolding, not final calibration, but does not explicitly name alternative 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.

create_feedback_networkCreate feedback networkA

Build a feedback-based visual system: a seed feeds a loop that is transformed (blur/displace/etc.) and fed back each frame. Creates a new baseCOMP under parent_path holding the seed, a Feedback TOP, a 'maximum' Composite, the transform chain, a Level decay node, an optional GLSL colorize pass, and a Null output (the Feedback TOP samples the Level node to close the loop). Great for evolving, hypnotic visuals. Exposes a live 'Feedback' decay knob. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings, and an inline preview image. Use this for a general feedback look with a chosen seed type and an ordered chain of effects; for the specific infinite-zoom/rotate spiral (with Zoom/Rotate/HueShift/Decay knobs) use create_feedback_tunnel instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorsNoUp to two hex colors ('#rrggbb') used to colorize the otherwise-grayscale output via a final GLSL gradient (one color = black→color, two = color0→color1). Omit to leave it grayscale.
seed_typeNoWhat feeds the loop each frame: 'noise' (monochrome Noise TOP), 'shape' (Circle TOP), 'image'/'video' (Movie File In TOP), 'webcam' (Video Device In TOP — may prompt for camera permission), or 'glsl' (a generative shader). Default 'noise'.noise
parent_pathNoParent network where the feedback container is created (default '/project1')./project1
feedback_gainNoLoop decay multiplier (0–1) applied via a Level TOP's brightness1: how much of the fed-back frame survives each cycle. Higher = longer-lived, more saturated trails; default 0.95.
expose_controlsNoWhen true (default), expose a live 'Feedback' knob on the system container, bound to the loop's decay.
transformationsNoTOP effects applied in order inside the loop each frame (blur, displace, edge, level, hsv_adjust, transform, mirror, tile, luma_blur). Default ['blur','displace','level'].

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses the created node structure, the feedback loop mechanism ('Feedback TOP samples the Level node to close the loop'), the exposed 'Feedback' knob, and the full return payload (summary, JSON block with paths, errors, warnings, preview image). It adds substantial context about side effects and output.

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 front-loaded with the core purpose, followed by concise implementation details, use-case context, and an explicit alternative. Every sentence provides useful information without padding, making it appropriately sized for a tool with this complexity.

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?

Given the tool's complexity (6 params, multi-node creation, feedback loop), the description is complete: it explains what is built, how the loop works, what the user gets back, and when to choose this over the similar sibling. The output schema is not present, but the description enumerates the return block contents, filling that gap.

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?

The input schema already covers all 6 parameters with rich descriptions (100% coverage), so the baseline is 3. The description adds conceptual meaning by explaining how the parameters fit into the feedback loop (e.g., 'transformations' as an ordered chain, feedback_gain as 'loop decay multiplier'), which goes beyond individual parameter documentation.

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 begins with a clear verb+resource: 'Build a feedback-based visual system' and details exactly what it creates (baseCOMP with seed, Feedback TOP, Composite, transform chain, Level decay, optional GLSL pass, Null output). It also explicitly distinguishes itself from the sibling tool create_feedback_tunnel, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The final sentence provides explicit usage guidance: 'Use this for a general feedback look with a chosen seed type and an ordered chain of effects; for the specific infinite-zoom/rotate spiral ... use create_feedback_tunnel instead.' This clearly states when to use this tool and when to use an alternative.

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

create_feedback_tunnelCreate feedback tunnelA

Build a parameterized infinite-zoom/rotate feedback tunnel: a seed TOP is composited with its own fed-back, zoomed, rotated, and decayed frame each cook to produce a hypnotic inward-spiral tunnel. Four audio-bind-ready controls (Zoom, Rotate, HueShift, Decay) are exposed on the container for live performance. A built-in animated noise seed is used when no source TOP is given. The recipe-validated topology (noiseTOP → feedbackTOP + compositeTOP-maximum → transformTOP sx/sy → blurTOP → levelTOP brightness1/huerotate → nullTOP, loop closed by feedbackTOP.par.top) is created inside a new baseCOMP under parent_path. Returns a summary, the container + node paths, exposed controls, any node errors, and an inline preview image. This is the fixed zoom-and-rotate spiral preset; for a general feedback loop with a choice of seed type and an arbitrary ordered chain of effects (blur/displace/edge/…) use create_feedback_network instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNofeedback_tunnel
zoomNoPer-frame zoom factor applied to the fed-back frame (>1 = inward tunnel, e.g. 1.02).
decayNoTrail persistence (0–1). Applied via levelTOP brightness1 each frame. Higher = longer-lived tunnel; default 0.95.
rotateNoPer-frame rotation in degrees added to the fed-back frame (positive = clockwise).
sourceNoPath to an existing TOP to use as the tunnel seed. Omit to generate a built-in animated noise seed.
hue_shiftNoPer-frame hue rotation (0–1, wrapping). Applied via levelTOP huerotate. 0 = no shift.
resolutionNoOutput resolution [width, height] in pixels. Fixed resolution prevents feedback runaway.
parent_pathNoParent COMP path inside which the 'feedback_tunnel' container is created./project1

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the annotations (readOnly=false, openWorld=true, destructive=false), the description discloses the precise node topology, the built-in seed fallback, and the return payload including node errors. It also notes that fixed resolution prevents feedback runaway, which is useful behavioral context. The description does not explicitly mention any side effects or permissions, but given annotations already set the safety profile, the additional detail is valuable.

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 front-loaded with the essential purpose and uses each subsequent sentence to add substantive detail: controls, seed fallback, topology, return value, and sibling differentiation. It is detailed but not redundant, and every sentence contributes to understanding the tool.

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?

Despite having no output schema, the description explicitly lists the return payload (summary, paths, controls, errors, preview image), which is critical for usage. It also covers the input handling, network topology, and the relationship to a sibling tool. Together with the detailed parameter schema and annotations, this is a complete and self-sufficient description.

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?

With 88% schema coverage, the input schema already documents parameter meanings in detail. The description adds only marginal semantic value by mentioning that Zoom, Rotate, HueShift, and Decay are audio-bind-ready and mapping them to the topology (e.g., transformTOP for zoom, levelTOP for decay/hue shift), but it does not explain individual parameter syntax beyond what the schema provides. The baseline of 3 is appropriate.

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 'Build a parameterized infinite-zoom/rotate feedback tunnel,' which clearly states the action (build) and resource (feedback tunnel). It also distinguishes itself from the sibling tool by ending with 'This is the fixed zoom-and-rotate spiral preset; ... use create_feedback_network instead,' explicitly naming the alternative for a different use case.

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

Usage Guidelines5/5

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

The description gives explicit usage guidance by stating this is for the fixed zoom-and-rotate spiral preset and directing users to create_feedback_network for general feedback loops with arbitrary chains of effects. It also implies a use case for live performance with audio-bind-ready controls and a quick-start scenario via the built-in noise seed when no source is provided.

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

create_fixture_controlCreate moving-head fixture control + 3D previzA

Build a moving-head lighting rig with BOTH a DMX/Art-Net output chain AND a 3D visual previsualization. For each fixture: a Constant CHOP holds an 8-channel movingHead8 block (pan, tilt, dimmer, r, g, b, strobe, gobo, prefixed '/…'), padded and merged into a dmxoutCHOP (interface, universe, netaddress, rate); and a Geometry COMP 'head' with a tube-cone beam whose pan→ry and tilt→rx rotation is expression-driven straight from that fixture's DMX pan/tilt channels (0-255 mapped across pan_range/tilt_range degrees), all rendered under one camera+light Render TOP. This adds the live 3D preview on top of what create_dmx_fixture_pipeline (DMX-out only) does. Bind individual channels later with bind_to_channel / animate_parameter on op('rig_out')['fix1/pan']; the previz updates automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNoDMX refresh rate (dmxoutCHOP `rate`).
netNoNetwork protocol — written to the dmxoutCHOP `interface` par.artnet
hostNoTarget IP for Art-Net / sACN (dmxoutCHOP `netaddress`). Null = leave default.
nameNoBase name for the container COMP.fixture_rig
fixturesYesMoving-head fixtures. Each becomes a DMX movingHead8 block + a 3D previz head+beam.
universeNoDMX universe written to the dmxoutCHOP.
pan_rangeNoPhysical pan sweep in degrees the fixture spans across DMX 0-255 (previz rotation).
beam_angleNoHalf-angle of the previz beam cone (degrees) — narrow = spot, wide = wash.
tilt_rangeNoPhysical tilt sweep in degrees the fixture spans across DMX 0-255 (previz rotation).
beam_lengthNoLength of the previz beam cone from the head (metres).
parent_pathNoCOMP to create the fixture rig container in (default '/project1')./project1

TDQS

A4.7/5.0
Behavior5/5

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

The description goes far beyond the annotations by detailing the internal structure created: a Constant CHOP, dmxoutCHOP, Geometry COMP with a tube-cone beam, and a Render TOP. It explains the expression-driven rotation mapping (pan→ry, tilt→rx) and how DMX values map to degrees. These specifics align with readOnlyHint=false (write operation) and openWorldHint=true (creates multiple nodes) without any contradiction.

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

Conciseness4/5

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

The description is dense but well-structured: it is front-loaded with the main purpose, then details the per-fixture construction, then closes with a comparison to the sibling and a usage example. Every sentence adds operational detail, though it is a single long paragraph that could benefit from light segmentation for readability.

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 11-parameter tool with nested fixture objects, the description provides a comprehensive mental model of the resulting network, including the dmxoutCHOP and previz components. It gives a concrete usage example (op('rig_out')['fix1/pan']) that helps agents understand how to interact with the outputs. The main gap is not explicitly stating what the function returns (e.g., the path to the created rig), but given the openWorldHint and detailed creation steps, this is a minor omission.

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 100% schema description coverage, the baseline is 3. The description adds value by showing how parameters connect to implementation, e.g., 'padded and merged into a dmxoutCHOP (interface, universe, netaddress, rate)' corresponds to net/universe/host/fps, and '0-255 mapped across pan_range/tilt_range degrees' directly references pan_range and tilt_range. It also references the 'id' field via '<id>/…', adding relational context beyond individual parameter descriptions.

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 'Build a moving-head lighting rig with BOTH a DMX/Art-Net output chain AND a 3D visual previsualization,' clearly stating the verb and resource. It also explicitly differentiates from the sibling create_dmx_fixture_pipeline by noting it adds 'the live 3D preview on top of what create_dmx_fixture_pipeline (DMX-out only) does,' making the tool's unique role unmistakable.

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

Usage Guidelines5/5

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

The description explicitly references create_dmx_fixture_pipeline as the DMX-only alternative, telling users when to choose this tool (when 3D previz is needed). It also provides post-creation guidance: 'Bind individual channels later with bind_to_channel / animate_parameter on op('rig_out')['fix1/pan']', showing how to use the created rig. This combines an explicit alternative with concrete usage context.

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

create_flow_abstractionCreate flow abstractionA

Build a two-pass Kyprianidis-style flow abstraction: an edge-tangent-flow (ETF) bilateral smoother followed by a flow-based DoG (FDoG) line extractor — oil-painting smooth interiors with crisp coherent ink edges. Creates two glslTOPs + companion textDATs under parent_path, fed by a Select TOP from the source TOP and terminated by a Null TOP. Strength/Edge/Iterations are exposed as live parent-par-bound uniforms; blur radius, sigmas and tau are baked in at build time. Iterations boosts effective ETF strength in-shader (single-input pass, no ping-pong feedback).

ParametersJSON Schema
NameRequiredDescriptionDefault
tauNoFDoG center-surround weight.
edgeNoFDoG edge gain — multiplier on the DoG response before thresholding.
nameNoBase name; nodes become <name>_etf, <name>_fdog, <name>_out, plus *_frag textDATs.flow_abs
sourceYesAbsolute path of the input TOP to abstract (e.g. '/project1/movie1'). Pulled in via a Select TOP so cross-container wiring is safe.
sigma_eNoFDoG inner Gaussian sigma (texels).
sigma_rNoFDoG outer Gaussian sigma — usually ≈ 1.6 * sigma_e.
strengthNoBilateral smoothing strength (0=passthrough, 1=full ETF blur).
iterationsNoNumber of ETF passes; higher values boost ETF strength via an in-shader uniform. No external feedback loop is created in this version.
resolutionNoOutput res; 'input' inherits.input
blur_radiusNoETF bilateral kernel half-width in texels along the tangent (kernel ≈ 2*radius+1).
parent_pathYesParent COMP path to create the two GLSL TOPs in.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only say readOnlyHint is false and destructiveHint is false; the description adds useful behavioral detail: it creates two glslTOPs plus textDATs, uses a Select TOP and ends with a Null TOP, and explains that some parameters are live uniforms while others are baked. It also clarifies that Iterations does not create a ping-pong feedback loop, adding genuine beyond-annotation context.

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

Conciseness4/5

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

The description uses four dense sentences, each covering a distinct aspect: algorithm, output structure, parameter lifecycle, and iteration semantics. It is front-loaded with the core purpose and contains no filler. It is appropriately sized for the complexity, though slightly information-dense.

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?

Given the tool's complexity (11 params, no output schema), the description is remarkably complete: it explains the algorithm, the nodes created, the wiring via Select/Null TOPs, which parameters are live vs baked, and the in-shader iteration behavior. Together with the rich schema, this gives an agent everything needed to invoke it correctly.

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?

Input schema documents all 11 parameters (100% coverage), so the baseline is 3. The description goes further by explaining that Strength/Edge/Iterations are live parent-par-bound uniforms, while blur radius, sigmas, and tau are baked at build time, and that Iterations boosts ETF strength in-shader. This adds behavioral meaning beyond the individual field descriptions.

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 starts with a specific verb and resource: 'Build a two-pass Kyprianidis-style flow abstraction.' It names the exact pipeline stages (ETF bilateral smoother + FDoG line extractor) and the created objects (two glslTOPs + companion textDATs), distinguishing it clearly from generic 'create_npr_filter' or post-processing siblings.

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?

The description implies the use case via the visual result ('oil-painting smooth interiors with crisp coherent ink edges') and explains build-time vs live parameters, but it does not explicitly state when to prefer this tool over alternatives like create_npr_filter or create_optical_flow. It gives clear context but no explicit exclusions or alternative naming.

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

create_fluid_simCreate fluid simA

Build a real-time 2D fluid/ink/dye simulation (stable-fluids style: semi-Lagrangian advection + Jacobi pressure solve + gradient-subtract projection + dye advection) as a stack of GLSL TOPs in feedback loops inside a new baseCOMP under parent_path. Exposes artist-facing controls (dye color, injection radius/strength, viscosity, dissipation, pressure iterations, inject U/V) and optionally binds a CHOP at audio_path so audio drives the dye injection strength. With injection_mode='auto', a slow LFO drives the splat point so the sim shows life with no input. Returns a summary plus a JSON block with the container path, created node paths, the dye_out output path, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
dye_colorNoInjected dye color as a '#rrggbb' hex string.#ff3a8c
viscosityNoVelocity dissipation per frame (0–1). Higher = thicker fluid.
audio_pathNoOptional CHOP path; channel 0 multiplies injection strength when set.
resolutionNoSim grid resolution (square). 512 is safe on integrated GPUs.512
dissipationNoDye decay per frame (0.9–1.0). <1 fades trails.
parent_pathNoParent network where the fluid_sim container is created./project1
injection_modeNoHow the splat point/strength is driven.auto
expose_controlsNoAuto-expose an artist-facing control panel on the container.
injection_radiusNoRadius of the dye/force splat in UV units (0.01–0.5).
injection_strengthNoMultiplier on dye + velocity splat per frame (0–2).
pressure_iterationsNoJacobi iterations per frame (1–60). Higher = more incompressible.

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description discloses that it creates a new baseCOMP, builds a stack of GLSL TOPs, exposes controls, optionally binds a CHOP, and returns a JSON summary with errors and preview. It also notes resolution safety ('512 is safe on integrated GPUs'), adding behavioral context.

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

Conciseness4/5

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

The description is a single dense paragraph, but every sentence adds value. It front-loads the core purpose and algorithm, then lists features and return value. It is longer than average but proportionate to the tool's complexity, with no filler.

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?

Given 11 parameters, no output schema, and the complexity of creating a networked simulation, the description is complete. It explains what is built, how it is built (algorithm, TOPs, feedback loops), how controls and audio binding work, and what the return value includes (paths, errors, warnings, preview). The absence of output schema is compensated by describing the JSON block contents.

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 100%, so parameters are well-documented. The description adds meaning by grouping parameters into artist-facing controls and mentioning behavior like 'injection_mode='auto'', where an LFO drives the splat point, and the audio_path channel multiplier. This enriches understanding beyond the raw schema.

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 clearly states the tool's purpose with a specific verb ('Build') and resource ('real-time 2D fluid/ink/dye simulation... as a stack of GLSL TOPs in feedback loops inside a new baseCOMP under parent_path'). It differentiates from siblings like create_particle_system or create_reaction_diffusion by naming the stable-fluids algorithm and specific output structure.

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 gives strong context for when to use it: when a real-time 2D fluid simulation is needed, including artist-facing controls, optional audio reactivity, and auto mode for no input. It does not explicitly name alternative tools or exclusions, but the use case is clearly scoped so an agent can infer appropriate usage.

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

create_gaussian_splat_sceneCreate Gaussian Splat sceneA

Drops the community TDGS .tox by Anglerfish-graphics into a fresh baseCOMP, loads a .ply or .splat Gaussian Splat asset, optionally binds an existing cameraCOMP, and exposes a clean output renderTOP at 720p–2160p. Assets can be exported from Polycam, Postshot, Luma, or Nerfstudio. The wrapper connects to any existing tdmcp camera rig (create_camera_orbit, XY pads, MIDI). REQUIREMENTS: TDGS by Anglerfish-graphics installed (https://github.com/Anglerfish-Graphics/TDGS); TouchDesigner build ≥2023.30000; CUDA-capable NVIDIA GPU on Windows. macOS and AMD GPUs are not supported by TDGS — the tool returns a friendly error. VRAM: 720p≈2GB, 1080p≈4-6GB, 1440p≈12GB+, 2160p≈16GB+ (OOM crashes TD — no friendly error, start at 720p on a laptop). Returns container_path, dropped_tox_path, output_top_path, camera_path, warnings, and a preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
tox_pathNoOptional explicit absolute path to TDGS.tox. When set, skips the standard candidate walk. Useful when TDGS lives in a non-standard packages directory.
output_resNoOutput renderTOP resolution. 720p=1280×720, 1080p=1920×1080, 1440p=2560×1440, 2160p=3840×2160. WARNING: 1440p+ requires a discrete GPU with ≥12GB VRAM; 2160p will crash TD on OOM. Default 1080p.1080p
camera_pathNoAbsolute TD path to an existing cameraCOMP (e.g. one built by create_camera_orbit). When set, TDGS's camera reference par is bound to it. When unset, TDGS uses its internal default camera.
parent_pathNoParent network for the baseCOMP (default '/project1')./project1
container_nameNoName of the outer baseCOMP created by createSystemContainer.gaussian_splat_scene
expose_controlsNoWhen true (default), promotes SplatAssetPath, CameraRef, and OutputRes to the wrapper container as live knobs.
splat_asset_pathYesAbsolute path to a .ply or .splat Gaussian Splat asset. Export from Polycam, Postshot, Luma, or Nerfstudio.

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses substantial behavioral detail beyond annotations: it drops a community .tox, loads assets, optionally binds cameras, exposes a renderTOP, returns specific paths/artifacts, and warns about OOM crashes with no friendly error. It also clarifies unsupported platforms and the friendly error behavior, which is highly valuable.

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

Conciseness4/5

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

The description is dense and well-structured, covering creation, asset sources, camera integration, requirements, VRAM guidance, and return values. It is lengthy but every sentence carries operational weight; nothing is fluff. The front-loading of the core action is effective.

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?

Given the tool's complexity (7 parameters, no output schema), the description covers the full lifecycle: what it creates, what it requires, what it returns, and failure modes (OOM, unsupported platforms). The explicit return list partially compensates for the missing output schema and leaves no major gaps.

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 100%, but the description adds meaning by linking parameters to real-world domains: asset sources (Polycam, Postshot, Luma, Nerfstudio), VRAM/resolution tradeoffs for output_res, and how camera_path integrates with create_camera_orbit rigs. This goes beyond the schema's field descriptions.

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 uses specific verbs ("Drops", "loads", "binds", "exposes") and names precise resources (TDGS .tox, baseCOMP, .ply/.splat asset, cameraCOMP, renderTOP). It clearly distinguishes this tool from generic container or 3D scene creators by focusing on Gaussian splat scenes.

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 provides clear context for when to use this tool (creating Gaussian splat scenes from specific asset sources) and includes hard requirements (Windows, NVIDIA, TouchDesigner version). It does not explicitly state when not to use alternatives, but the niche nature of the tool makes the intended use obvious.

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

create_generative_artCreate generative artA

Create an evolving generative visual. Creates a new baseCOMP under parent_path holding the generator (a recipe network, a GLSL TOP + Text DAT, or a noise chain) ending in a Null output. reaction_diffusion/noise_landscape use validated recipes; strange_attractor, voronoi, and fractal render real GLSL; custom_glsl uses your shader; the rest fall back to animated noise (with a warning). Exposes a live 'Speed' knob (except for recipe-built techniques). Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, the technique, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
techniqueYesGenerative method. reaction_diffusion/noise_landscape build validated recipes; strange_attractor/voronoi/fractal render faithful inline GLSL; custom_glsl uses your shader (custom_glsl_code); l_system/cellular_automata/flow_field currently fall back to an animated-noise approximation (with a warning).
parent_pathNoParent network where the generative container is created (default '/project1')./project1
color_paletteNoFree-text palette hint recorded in the result; best-effort, not all techniques honor it.
evolution_speedNoAnimation speed multiplier on the time uniform driving the look (1 = nominal, higher = faster evolution). Exposed as the 'Speed' knob.
expose_controlsNoWhen true (default), expose a live 'Speed' knob (evolution speed) on the system container.
custom_glsl_codeNoFragment shader source used only when technique='custom_glsl'; if omitted, a default plasma shader is used (with a warning).

TDQS

A4.5/5.0
Behavior5/5

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

Discloses rich behavior beyond annotations: technique-specific implementation paths, fallback warnings, Speed knob exposure (except for recipe-built techniques), and the exact return structure including JSON block, errors, and inline preview. This far exceeds the annotation hints (readOnly=false, openWorld=true, destructive=false).

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?

Three sentences, front-loaded with the core action, each sentence earning its place: what it creates, technique variations, and return value. No filler, appropriately sized for the tool's complexity.

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 tool with 9 techniques, fallbacks, exposed controls, and a detailed return payload, the description fully covers creation behavior, technique limitations, knob behavior, and output structure. No output schema exists, but the description adequately compensates.

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 coverage is 100%, with detailed descriptions for all six parameters. The tool description largely repeats schema content (e.g., technique behavior and evolution_speed as the 'Speed' knob) without adding new parameter-level meaning, so the baseline 3 applies.

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?

Opens with a specific verb and resource: 'Create an evolving generative visual.' Clearly states it creates a baseCOMP under parent_path with specific generator structures and technique behaviors, distinguishing it from sibling create_* tools by covering multiple generative methods in one container.

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?

Provides context on when to use it by describing which techniques produce real GLSL vs fallback to animated noise (with warning). However, it does not explicitly name alternative tools for specialized techniques like create_reaction_diffusion, so it stops short of full exclusion guidance.

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

create_generative_audioCreate generative audioA

SYNTHESIZE audio — generate sound rather than react to it. Builds an audio synthesis chain ending on a Null CHOP carrying the signal: 'oscillator' (a single tone, choose sine/triangle/sawtooth/square + frequency), 'fm' (two oscillators, one frequency-modulating the other for metallic/bell timbres), or 'noise' (a Noise CHOP shaped by a low-pass filter for textures). A Volume gain sets the level. Playback is opt-in: set to_device=true to route it to an Audio Device Out CHOP (default off, so the build stays silent and never prompts for audio hardware). Creates a new baseCOMP under parent_path holding the synth chain. The output Null feeds create_spectrum/create_waveform, bind_to_channel, or the speakers. Audio CHOPs are time-dependent — the signal is silent while the TD timeline is paused. Returns a summary plus a JSON block with the container path, created node paths, the audio Null path, the synth settings, the device-out path (if any), any node errors, and warnings (no preview image — the output is a CHOP, not a TOP).

ParametersJSON Schema
NameRequiredDescriptionDefault
synthNoSynthesis method. 'oscillator' = a single tone-generating Audio Oscillator CHOP. 'fm' = two oscillators where one modulates the other's frequency (classic FM, metallic/bell timbres). 'noise' = a Noise CHOP shaped by a low-pass Audio Filter (wind/hiss/percussive textures).oscillator
volumeNoOutput level, 0..1 (a gain on the final signal). Start moderate to protect ears/speakers.
fm_depthNo(fm) Modulation depth — the peak frequency deviation in Hz applied to the carrier.
fm_ratioNo(fm) Modulator frequency as a multiple of the carrier (modulator = frequency × ratio).
waveformNoOscillator wave shape (ignored for the 'noise' synth).sine
frequencyNoCarrier / oscillator base frequency in Hz (e.g. 220 = A3).
to_deviceNoPlay the synthesized audio out through an Audio Device Out CHOP. Default OFF (opt-in) so the build never opens audio hardware — keeping it silent-safe and avoiding the macOS audio-permission prompt. Turn on only when you actually want sound out the speakers.
parent_pathNoParent network where the synth container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live Frequency / Volume knobs (and FmRatio / FmDepth for the fm synth).

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses extensive behavioral traits beyond annotations: it creates a new baseCOMP, playback is opt-in to avoid audio hardware prompts, the signal is silent when the timeline is paused, and it returns a structured JSON with warnings. This far exceeds the bare readOnly/destructive/openWorld hints.

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

Conciseness4/5

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

The description is long (~250 words) but well-structured, front-loading the core verb and method. Each sentence adds useful context: synthesis types, playback opt-in, timeline dependency, return structure, and warnings. Minimal redundancy, though it could be slightly tightened.

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?

Despite having no output schema, the description enumerates the exact fields returned in the JSON block (container path, node paths, null path, settings, device-out, errors, warnings). It also covers creation, downstream usage, and safety behavior, making it complete for an agent to invoke correctly.

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?

The input schema has 100% description coverage for all 9 parameters, so the description's parameter-level detail is minimal. It does explain the overall chain structure (e.g., Null CHOP, Audio Device Out) but adds little beyond the schema. With full schema coverage, baseline 3 is appropriate.

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 clearly states it 'SYNTHESIZE audio — generate sound rather than react to it' and details the three synthesis methods. It distinguishes from reactive/analysis tools by emphasizing generation and noting the output feeds create_spectrum/create_waveform, making the purpose specific and distinct from siblings.

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 explains when to use the tool (to generate sound) and mentions that the output can feed visualization tools like create_spectrum/create_waveform, implying alternatives. It also warns about timeline dependency and opt-in playback. However, it does not explicitly name sibling tools for when not to use it or list exclusion scenarios.

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

create_geo_visualizationCreate GeoJSON / OSM city visualizationA

Turn GeoJSON (e.g. OpenStreetMap-derived) into a 3D city visualization. Reads Point / LineString / Polygon / Multi* features, projects lat/long via a Mercator projection normalized to a unit box, and builds a Script SOP that lays out point clouds for points and polylines for streets/building footprints — optionally extruded into 3D ribbon 'walls' using each feature's numeric 'height' property — all wrapped in a Geometry COMP under a camera+light Render TOP for instant preview. NOTE: OpenStreetMap map data is © OpenStreetMap contributors and licensed under the Open Database License (ODbL); you must attribute it when visualizing OSM-derived data.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoBase name for the container COMP.geo_viz
scaleNoWorld-units per projected unit. The projection is normalized to [-1,1] then scaled.
extrudeNoExtrude polygon/line features into 3D 'buildings' using each feature's 'height' property (default height when missing).
geojsonYesA GeoJSON FeatureCollection (or single Feature). Only geometry coordinates + an optional numeric 'height' property are read.
parent_pathNoCOMP to create the geo visualization container in (default '/project1')./project1
default_heightNoHeight (world units) for extruded features lacking a numeric 'height' property.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate non-read-only and non-destructive, and the description adds substantial behavioral detail: it builds a Script SOP, a Geometry COMP, and a camera+light Render TOP; describes projection and extrusion logic; and includes a licensing note. It stops short of describing exact network side effects (e.g., whether parent_path is overwritten), but the core behavior is transparent.

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

Conciseness4/5

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

The description is a single dense sentence that efficiently packs the essential pipeline stages, followed by a short license note. It is not overly verbose, though it could be split into clearer sentences. All content is relevant and earns its place.

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 there is no output schema, the description compensates by describing the created network structure (Script SOP, Geometry COMP, Render TOP) and the data transformation approach. It omits explicit mention of return values (none expected) but covers the tool's overall functionality and important legal context. It is complete enough for an agent to select and invoke the tool correctly.

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?

The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description reinforces the meaning of 'extrude' and 'default_height' by explaining the extrusion of ribbon walls using the 'height' property, but it does not add significant new meaning beyond the schema's existing parameter descriptions.

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 begins with a specific verb ('Turn') and a concrete resource ('GeoJSON') into a 3D city visualization. It clearly distinguishes itself from generic 'create_visualization' or 'create_3d_scene' tools by detailing the exact pipeline (Script SOP, Geometry COMP, Render TOP) and supported feature types (Point/LineString/Polygon/Multi*).

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 states clear context: it's for GeoJSON data, especially OSM-derived city data. Though it doesn't explicitly name alternative tools or exclusion criteria, the phrase 'Turn GeoJSON ... into a 3D city visualization' makes the intended use obvious. The note about ODbL licensing also guides responsible use.

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

create_glitchCreate glitchA

Build a glitch / corrupted-signal visual: RGB channel split, noise-driven blocky/slice displacement and horizontal band tearing over a source. Creates a new baseCOMP under parent_path holding the source, a noise driver, a Displace TOP, a GLSL RGB-shift pass, and a Null output. With input_path it glitches an existing TOP (pulled in via a Select TOP); otherwise it uses a self-contained animated colour-noise source (no device permissions). Exposes Amount (master intensity — bind to audio/beat), Speed, RGBShift and BlockSize knobs. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings, and an inline preview image. A signature live VJ look.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoRandom seed for the displacement noise.
speedNoAnimation speed of the noise that drives the blocky tearing (drives the noise's tz).
amountNoMaster glitch intensity (0..1). Scales both the block/slice displacement and the RGB channel split — 0 is a clean passthrough. Exposed as the 'Amount' knob and is the parameter to bind to audio/beat later.
rgb_shiftNoBase per-channel horizontal offset in UV space (0..~0.1 is a useful range). Multiplied by Amount.
block_sizeNoScale of the displacement noise — smaller = larger, blockier tears; larger = finer grain. Sets the noise's period.
input_pathNoAbsolute path of an existing TOP to glitch (e.g. '/project1/render/out1'). Pulled in via a Select TOP because wires cannot cross COMPs. If omitted, a self-contained animated colour-noise source is used so the system builds with zero device permissions (NOT a live webcam).
parent_pathNoParent network where the glitch container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live Amount/Speed/RGBShift/BlockSize knobs on the system container.

TDQS

A4.4/5.0
Behavior5/5

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

Even with annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description adds substantial behavioral context: it creates a new baseCOMP, details the internal node structure, explains the Select TOP usage due to wire-crossing constraints, clarifies no device permissions in the self-contained mode, and lists the return value (summary, JSON block, paths, knobs, errors, preview). This goes well beyond 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.

Conciseness4/5

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

The description is moderately long but every sentence earns its place, covering the visual effect, node construction, input modes, exposed controls, and return format. It is front-loaded with the core purpose. A bulleted list could improve scannability, but the current prose structure is acceptable and not bloated.

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?

Given the tool's complexity (8 params, no output schema), the description is exceptionally complete. It explains what nodes are created, how the input is handled, what knobs are exposed, the return payload (including error handling), and the self-contained source behavior. There is no significant missing context for an agent to select and invoke this tool correctly.

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?

The input schema has 100% parameter coverage with rich descriptions for each of the 8 parameters (e.g., amount, speed, block_size). The description adds minimal extra semantic value beyond re-mentioning exposed knobs and audio-binding advice, but this is not necessary given the schema's thoroughness. Baseline 3 is appropriate.

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 uses a specific verb ('Build') and clearly defines the resource: a glitch/corrupted-signal visual with RGB channel split, blocky displacement, and band tearing. It lists the exact node chain (noise driver, Displace TOP, GLSL RGB-shift pass, Null), distinguishing it from sibling create_* tools like create_datamosh or create_kaleidoscope. The phrase 'signature live VJ look' further clarifies its niche.

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 provides clear context for two usage modes: with input_path it glitches an existing TOP, and without it uses a self-contained noise source requiring no device permissions. It also advises binding the Amount knob to audio/beat. However, it does not explicitly contrast with alternative tools or state when NOT to use this tool, so it falls short of a 5.

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

create_glsl_materialCreate GLSL materialA

Create a GLSL MAT under parent_path for custom-shaded geometry. The pixel/vertex/(optional) geometry shader source is placed in companion Text DATs (<name>_pix/_vert/_geo) and wired to the GLSL MAT's pixel/vertex/geometry parameters; numeric uniforms are best-effort bound on the Vectors sequence and samplers on the Samplers sequence. Pixel shader must declare out vec4 fragColor;. Returns the GLSL MAT path, the DAT paths, and warnings for known TD GLSL footguns (missing fragColor, F1/F2 preamble collision, undeclared uTime, sampler bindings needing manual wiring). Artist assigns the MAT to a Geometry COMP via its material par.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the GLSL MAT (default 'glsl_mat1').
uniformsNoOptional uniform declarations to best-effort bind on the GLSL MAT.
two_sidedNotwoside par.
parent_pathYesParent COMP to create the GLSL MAT + DATs inside.
glsl_versionNoGLSL Version par value.330
pixel_shaderYesGLSL pixel/fragment shader source. Must declare `out vec4 fragColor;`.
vertex_shaderNoOptional GLSL vertex shader source.
lighting_spaceNolightingspace par.world
geometry_shaderNoOptional GLSL geometry shader source.

TDQS

A4.7/5.0
Behavior5/5

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

The description goes well beyond annotations by disclosing side effects: shader sources placed in companion Text DATs with specific naming conventions, wiring to GLSL MAT parameters, best-effort uniform binding, and known TouchDesigner GLSL footguns. It also states the return value (MAT paths, DAT paths, warnings) and that the artist must assign the MAT to a Geometry COMP. This is rich behavioral transparency.

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 dense yet well-structured, starting with the core action and then covering side effects, requirements, return values, and footguns. Every sentence adds necessary information; there is no filler or repetition of obvious schema details.

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?

Given the tool's complexity (9 parameters, no output schema, multiple shader stages, uniform binding, and known pitfalls), the description is exceptionally complete. It covers what is created, how it is wired, what the return value contains, what prerequisites exist (fragColor declaration), and what the caller must do afterward (assign the MAT). This leaves little ambiguity for an agent.

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?

Although the input schema already documents every parameter (100% coverage), the description adds meaningful cross-parameter semantics: how shader sources map to DAT names (`<name>_pix`/`_vert`/`_geo`), how the uniforms array maps numeric types to the Vectors page and sampler types to the Samplers page, and the requirement that pixel shader declares `out vec4 fragColor;`. This elevates the parameter understanding beyond individual field descriptions.

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 'Create a GLSL MAT under parent_path for custom-shaded geometry,' which is a specific verb+resource+scope. It clearly differentiates from sibling tools like create_glsl_shader by framing the output as a material (MAT) with companion Text DATs wired to it, not just a shader object.

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 gives clear context on when to use the tool: when you need a GLSL material for custom-shaded geometry, with shader sources and uniforms. It does not explicitly name alternatives or exclusion conditions (e.g., 'if you only need a shader, use create_glsl_shader'), so it falls short of a 5, but the usage context is unambiguous.

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

create_glsl_shaderCreate GLSL shaderA

Create a GLSL TOP under parent_path that renders a custom fragment shader (and optional vertex shader). The shader source is placed in companion Text DATs (<name>_frag and, if given, <name>_vert) and wired to the GLSL TOP's pixel/vertex parameters; numeric uniforms are best-effort bound on the Vectors page and the output resolution is set. Returns the GLSL TOP path, the fragment/vertex DAT paths, and any warnings (e.g. sampler2D uniforms or uniform binds that need manual wiring).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the GLSL TOP (default 'glsl1').
uniformsNoOptional uniform declarations to best-effort bind on the GLSL TOP.
resolutionNoOutput resolution: '720p' (1280x720), '1080p' (1920x1080), '4K' (3840x2160), or 'input' (default — inherit from the input TOP).input
parent_pathYesParent COMP to create the GLSL TOP inside.
vertex_shaderNoOptional GLSL vertex shader source.
fragment_shaderYesGLSL fragment (pixel) shader source.

TDQS

A4.6/5.0
Behavior5/5

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

The description fully discloses side effects and nontrivial behaviors: it creates companion Text DATs (`<name>_frag`, `<name>_vert`), wires them to the GLSL TOP's parameters, performs best-effort uniform binding on the Vectors page, sets output resolution, and returns warnings for sampler2D or manual-wiring cases. This is far beyond the basic annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) and provides essential operational context.

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 compact yet complete: three sentences cover the core action, the operational details (DAT creation, wiring, uniform binding, resolution), and the return value plus warnings. Every sentence contributes new information; there is no redundancy or fluff. The structure is front-loaded with the primary purpose and flows logically to side effects and outcomes.

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?

The description covers the creation process, side effects, and return values, which is especially important given there is no output schema. It mentions potential warnings for sampler2D and manual wiring. However, it omits a few possible edge cases like parent_path validation or behavior if the shader fails to compile, but given the richness of the schema and the level of detail, the description is mostly complete. A 4 reflects the minor gaps.

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?

The schema already documents all parameters with 100% coverage, so the baseline is 3. The description adds meaningful workflow semantics not in the schema, such as the companion DAT naming convention (`<name>_frag`/`<name>_vert`), the behavior of best-effort uniform binding, and the resolution setting. It also clarifies return values including warnings. This enriches the parameter context without replacing the schema, so a 4 is appropriate.

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 'Create a GLSL TOP under parent_path' – a specific verb + resource + target location – and explains it renders a custom fragment shader with optional vertex shader. This clearly distinguishes it from siblings like create_glsl_material (which creates a material, not a TOP). The description goes beyond a generic statement by detailing the companion DATs, wiring, and return values.

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 clearly indicates the tool is for creating a GLSL TOP with shader source, but it does not explicitly name alternatives or state when not to use it. The mention of 'under parent_path' and the specific TOP/component context provides strong situational guidance, yet no exclusionary or comparative language is present. This earns a 4 for clear context without exclusions.

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

create_gpu_particle_fieldCreate GPU particle fieldA

Build a high-count GPU particle / point field: position and velocity are simulated entirely on the GPU in two RGBA32float feedback-TOP loops (velocity integrates forces — noise/curl/gravity; position integrates velocity), then a Geometry COMP instances a tiny dot once per texel, reading XYZ from the position texture. Creates a new baseCOMP under parent_path holding the velocity/position feedback loops, the instanced Geometry COMP, Camera, Light, and Render TOP ending in a Null output. Reaches counts (side², up to 512²≈262k) well beyond the CPU create_particle_system (use that for a simpler, lower-count CPU emitter). This is the general-purpose GPU drift field (noise/curl/gravity); pick a sibling instead for other motion: create_particle_flock for boids separation/alignment/cohesion, image_to_particles when particles should spring to the pixels of an image/video, create_pop_particle_system for TouchDesigner's native POP particle network. Exposes PointSize and Zoom knobs. Optional reactivity energises the field live: 'audio' drives it from mic/line RMS, 'motion' from camera frame-difference energy (both bound to the velocity shader's uReact uniform). Returns a summary plus a JSON block with the container path, created node paths, the particle count, the output path, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideNoEdge of the square particle buffer; the field is side×side particles (count = side², e.g. 256 → 65 536). Each particle is one texel of the RGBA32float position/velocity buffers.
forcesNoIn-shader forces added to velocity each frame: 'noise' (per-particle random drift), 'gravity' (constant -Y pull), 'curl' (divergence-free swirling).
point_sizeNoRadius of each instanced dot (the sphere/circle SOP scale).
reactivityNoOptional external push that energises the field live, bound to the velocity shader's uReact uniform. 'none' (default) is fully self-contained. 'audio' drives it from mic/line RMS (Audio Device In → Analyze), 'motion' from camera frame-difference energy (Video Device In → mono → cache/difference → average). Either may pop a one-time macOS device-permission dialog — click Allow.none
parent_pathNoParent network where the particle-field container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live PointSize and Zoom (camera distance) knobs on the system container.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds valuable behavioral context: the created baseCOMP structure, the optional device-permission dialog for audio/motion reactivity, the scaling limits (512²≈262k), and the return JSON with created paths, errors, warnings, and preview. No contradiction with annotations, though it could mention side effects on existing nodes under parent_path or cooking behavior.

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

Conciseness4/5

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

The description is dense but well-structured: it front-loads the core purpose, then covers architecture, scalability, sibling alternatives, reactivity, and return format. Each sentence adds distinct value, though the length is above average. It earns its place given the tool's complexity.

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 complex creation tool with no output schema, the description is comprehensive. It details what is created (baseCOMP with specific components), where (under parent_path), performance envelope (side², up to 512²), optional device-permission side effects, and the exact return payload (container path, created nodes, count, output, knobs, errors, warnings, preview). This fully equips the agent to select and invoke the tool correctly.

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?

The input schema has 100% parameter coverage with detailed descriptions, defaults, ranges, and enums, so the baseline is 3. The description supplements with context about how parameters map to runtime behavior (e.g., reactivity bound to uReact uniform, PointSize/Zoom knobs) but does not need to compensate for missing schema info. It adds marginal value beyond the schema.

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 clearly states a specific verb and resource: 'Build a high-count GPU particle / point field' and details the architecture (GPU feedback-TOP loops, instanced Geometry COMP). It explicitly distinguishes itself from siblings like create_particle_system (CPU, simpler), create_particle_flock (boids), image_to_particles (image spring), and create_pop_particle_system (native POP). This is a model of purpose clarity.

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

Usage Guidelines5/5

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

It provides explicit when-to-use guidance: for high-count GPU drift fields beyond CPU capabilities, with a direct recommendation to use create_particle_system for simpler low-count emitters. It also names sibling tools for alternative motion behaviors and explains the audio/motion reactivity options. This is explicit guidance with exclusions.

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

create_growth_systemCreate growth systemA

Build an L-system / vine-growth generator: a Script SOP iterates a context-free rewriting grammar from axiom for generations steps, then walks the resulting string as a 3D turtle to draw a polyline tree. Recognised symbols: F (forward draw), f (forward no draw), + - (yaw ± branchAngle), & ^ (pitch), \ / (roll), [ ] (push/pop state). Other symbols are no-op constants (use X/A/B as grammar variables that expand but don't draw). Multiple rules sharing a from symbol trigger weighted-random stochastic selection (weight defaults to 1; seed controls the RNG). The polyline tree is thickened with a Tube SOP, recentred, and rendered. Complements create_particle_flock (boids) and create_gpu_particle_field (curl-noise) as the deterministic CPU-geometry idiom. Returns a summary plus a JSON block with the container path, output path, rules DAT path, exposed controls, errors, warnings, and an inline preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoContainer baseCOMP name.growth_system
seedNoRNG seed for stochastic rule selection.
axiomNoInitial string before rewriting.F
colorNoConstant MAT colour (RGB, 0..1).
rulesNoContext-free rewriting rules. Multiple rules sharing the same `from` symbol trigger weighted-random stochastic choice (weight defaults to 1).
parentNoParent network where the container is created./project1
thicknessNoTube SOP radius for the rendered branches.
branchAngleNoTurtle turn angle (degrees) for + / - / & / ^ / \ / / symbols.
generationsNoRewrite iterations. Capped at 7 because string length grows ~k^n and freezes the SOP cook.
step_lengthNoWorld units per F stroke.
expose_controlsNoExpose Generations / BranchAngle / StepLength / Thickness on the container.

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true), the description discloses the full algorithmic behavior, the stochastic rule selection via seed, the rendering pipeline (Tube SOP, recentre), and the exact return JSON structure with paths and preview. No contradiction with 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 dense yet well-structured: first sentence states purpose, second explains the algorithm, third positions it among siblings, and fourth describes the return value. Every sentence earns its place with no fluff.

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 tool with 11 parameters and no output schema, the description is exceptionally complete: it covers the algorithm, grammar semantics, stochastic behavior, geometry pipeline, return format, and sibling differentiation. The schema handles per-parameter details, so the description focuses on integral context.

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 100%, but the description adds meaningful context beyond the schema: it explains the turtle symbols (F, f, +, -, etc.), clarifies that X/A/B are non-drawing grammar variables, and notes that multiple rules with the same `from` trigger weighted-random selection. This enriches the parameter understanding.

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 explicitly states it builds an L-system / vine-growth generator, details the construction process (Script SOP, turtle interpretation, Tube SOP), and names sibling tools (create_particle_flock, create_gpu_particle_field) to distinguish it as the deterministic CPU-geometry idiom.

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

Usage Guidelines5/5

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

It explicitly names alternatives and provides a clear usage context: 'Complements create_particle_flock (boids) and create_gpu_particle_field (curl-noise) as the deterministic CPU-geometry idiom.' This tells the agent when to choose this tool over particle-based generators.

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

create_halftoneCreate halftoneA

Build a print/comic print-look effect: halftone dots, CMYK colour separation, ordered dithering, or posterized stepped colour — classic retro aesthetics in one GLSL pass. Creates a new baseCOMP under parent_path holding the source (or a self-contained noise source), a GLSL TOP with an inline shader implementing the chosen style, and a Null output. With source it stylises an existing TOP (pulled in via a Select TOP); without it uses a self-contained animated colour-noise source (no device permissions). Exposes Mix (blend original vs stylised), DotSize, and Angle knobs. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
mixNoBlend between the original image (0) and the fully stylised output (1). Exposed as a knob for live tweaking.
nameNoBase name for the created container.halftone
angleNoScreen angle in degrees for the dot grid ('dots'/'cmyk'). Classic print uses 15–45°.
styleNoPrint look to apply. dots: monochrome halftone dot grid; cmyk: 4-colour print separation with staggered screen angles; dither: 4×4 Bayer ordered dithering; posterize: stepped colour + luminance outline.dots
sourceNoAbsolute path of an existing TOP to stylise (e.g. '/project1/render1'). Pulled in via a Select TOP. If omitted, a self-contained animated colour-noise source is used (no device permissions).
dot_sizeNoHalftone cell size in pixels — sets the dot spacing for 'dots' and 'cmyk' styles. Larger = coarser, more visible dots.
resolutionNoOutput resolution [width, height] in pixels.
parent_pathNoParent COMP path the halftone container is created inside./project1

TDQS

A4.5/5.0
Behavior5/5

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

The description discloses side effects far beyond the minimal annotations: it creates a new baseCOMP under `parent_path`, pulls in sources via a Select TOP, uses inline GLSL, exposes knobs, and returns a summary plus JSON block with paths, errors, warnings, and a preview image. It also explicitly notes 'no device permissions' for the standalone source.

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 front-loaded with purpose and then flows logically through node creation, source handling, exposed knobs, and return value. Every sentence contributes information without redundancy, and length is justified by the tool's complexity.

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?

Given the absence of an output schema, the description fully compensates by explaining the return payload: summary plus JSON with container path, created node paths, output path, exposed controls, errors, warnings, and inline preview. It also covers both input modes and side effects, leaving no major gaps for an agent.

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?

The input schema covers all 8 parameters with detailed descriptions, including enum semantics for `style`. The description adds minimal new parameter meaning—mostly recapping that Mix, DotSize, and Angle are exposed as knobs. With 100% schema coverage, the baseline of 3 is appropriate.

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 ('Build a print/comic print-look effect') and clearly states the tool's scope: halftone dots, CMYK separation, ordered dithering, or posterized stepped colour in one GLSL pass. It distinguishes itself from siblings by naming the exact node structure (baseCOMP, GLSL TOP, Null output) and the optional source input.

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 explicitly explains when to use a `source` (to stylise an existing TOP) versus omitting it (self-contained animated noise source with no device permissions). It implies usage for retro print looks, but does not name alternative tools directly. This is clear context without formal exclusions.

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

create_hand_ableton_mapperCreate hand Ableton mapperA

Build a MediaPipe-hands to TDAbleton TDA_Mapper performance control network. It outputs map1=left pinch, map2=right pinch, map3=left wrist roll, map4=right wrist roll, creates a skeleton overlay with star joints plus the thumb-index line, and optionally relinks an existing TDA_Mapper to the generated mapper_send CHOP. Uses TDAbleton directly; AbletonMCP is not required.

ParametersJSON Schema
NameRequiredDescriptionDefault
tox_pathNoOptional MediaPipe.tox path forwarded to setup_hand_tracking.
hand_chopNoExisting hand CHOP with tx/ty/tz/confidence/handedness/screen_x/screen_y. Defaults to setup_hand_tracking's adapter output.
smoothingNo0=raw, 0.99=very slow smoothing.
star_sizeNoOverlay star-joint size.
hand_countNoNumber of hand slots.
line_widthNoOverlay line width.
link_mapperNoTry to set the TDA_Mapper Oscinputchop/Reorder/range parameters.
mapper_pathNoOptional explicit TDA_Mapper path.
parent_pathNoParent COMP for the mapper network./project1
adapter_nameNoHand adapter name used by setup_hand_tracking.mp_hand_adapter
invert_pinchNoInvert map1/map2 pinch values.
invert_wristNoInvert map3/map4 wrist-roll values.
open_distanceNoDistance where thumb/index are treated as fully open.
container_nameNobaseCOMP created under parent_path.hand_ableton_mapper
create_overlayNoCreate a skeleton overlay TOP with star joints and a thumb-index line.
fallback_slotsNoIf handedness is missing, treat slot 0 as left and slot 1 as right.
min_confidenceNoMinimum landmark confidence to accept a hand slot.
closed_distanceNoDistance where thumb/index are treated as closed.
coordinate_spaceNoCoordinate space forwarded to setup_hand_tracking; world is best for pinch distance.world
ensure_hand_trackingNoWhen hand_chop is omitted, run setup_hand_tracking first.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag readOnlyHint=false and openWorldHint=true; the description adds concrete behavioral details: it outputs four mapped signals, creates a skeleton overlay, and can relink an existing TDA_Mapper to the generated CHOP. It does not describe failure modes or what happens if the target container already exists, but the destructiveHint=false plus the explicitly non-destructive relinking language align with the annotations. No contradiction, and the extra detail earns a 4.

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 two sentences, front-loaded with the core purpose, and each clause adds value: outputs, overlay, relinking, dependency. No filler or redundant restatement of the title. This is exemplary conciseness.

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 a complex build action with 20 parameters and no output schema, the description provides a strong high-level summary of what is created and how it connects to existing components. It stops short of documenting return values or detailing the network structure beyond the named outputs, but the schema covers parameters and the annotations cover safety. The balance is reasonable, though a bit more on expected output (e.g., created container path) would push it to 5.

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?

All 20 parameters are documented in the schema (100% coverage), so per rubric the baseline is 3. The description itself does not add parameter-specific guidance beyond the schema; it mentions the output maps (pinch/wrist) which relate to invert flags, but that's contextual rather than parameter-level detail. The schema descriptions are self-sufficient, so a 3 is appropriate.

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 ('Build') and names the exact resource (MediaPipe-hands → TDAbleton TDA_Mapper performance control network). It enumerates concrete outputs (map1–map4, skeleton overlay) and explicitly distinguishes the dependency story ('Uses TDAbleton directly; AbletonMCP is not required'). This separates it clearly from sibling hand-tracking and gesture-bus tools.

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 specifies the use case—building a hand-driven Ableton mapper—but does not explicitly name alternative tools or state when not to use it. The dependency note ('AbletonMCP is not required') gives a hint, and the mention of optionally relinking an existing TDA_Mapper implies it can augment an existing setup. However, it lacks an explicit 'use this instead of X' statement, so it gets a 4.

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

create_hand_gesture_busCreate hand gesture busA

Create a TouchDesigner Base COMP that converts hand landmarks into a stable gesture-control Null CHOP for palm holograms, lasers, audio controls, and other hand-reactive visuals. It creates helper nodes under parent_path, returns the component/output paths and created-node report, and exposes debounced channels such as palm_open, float_x/y, palm_size, pinch_active, pinch_power, scale_target, light_gain, and audio_level. Use source='synthetic' for camera-free previews, source='mediapipe' to build/use setup_hand_tracking, or source='existing_chop' with hand_chop_path when a hand landmark CHOP already exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
mirrorNoMirror X coordinates for front-facing camera interaction and synthetic previews.
sourceNoInput source: synthetic preview data, a new MediaPipe adapter, or an existing hand CHOP.synthetic
tox_pathNoOptional MediaPipe adapter .tox path passed through when source='mediapipe'.
comp_nameNoName for the created gesture-bus Base COMP under parent_path.hand_gesture_bus
max_handsNoNumber of hands to track or synthesize; the gesture bus supports one or two hands.
smoothingNoSlow smoothing factor for stable palm/float channels; higher values move more slowly.
parent_pathNoParent COMP where the gesture-bus component and helper nodes are created./project1
adapter_nameNoName for the setup_hand_tracking adapter when source='mediapipe'.mp_hand_adapter
hold_secondsNoSeconds a disappearing/open palm is held before channels fall back.
pinch_radiusNoPalm-local radius around the pinch point used to estimate pinch_power.
fast_smoothingNoFast smoothing factor for responsive pinch/power channels; higher values move more slowly.
hand_chop_pathNoRequired only when source='existing_chop'; path to a CHOP with hand landmark channels.
expose_controlsNoCreate custom parameters on the component for tuning smoothing, pinch, and lock behavior.
pinch_open_distNoThumb-index distance at or above which a pinch opens; must be greater than pinch_close_dist.
pinch_thresholdNoNormalized pinch_power threshold used to expose binary pinch_active channels.
active_hand_lockNoKeep the first active hand as the control hand until it is lost, reducing hand switching.
coordinate_spaceNoCoordinate family expected from the hand source: normalized image space or world space.world
pinch_close_distNoThumb-index distance at or below which a pinch closes; must be less than pinch_open_dist.
pinch_arm_secondsNoSeconds pinch_active must remain close before it is considered armed.
pinch_radius_scaleNoMultiplier applied to pinch_radius when converting distance into pinch_power.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false and openWorldHint=true. The description adds behavior beyond that: it 'creates helper nodes under parent_path, returns the component/output paths and created-node report', exposes specific debounced channels, and can build/use setup_hand_tracking. No contradiction with 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?

Three sentences, each earning its place: purpose, outputs/behavior, and source guidance. Front-loaded with the core action and use cases. No repetition of schema content.

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?

With 20 params and no output schema, the description covers what is created, what is returned (paths and created-node report), and names the output channels. It does not detail the report structure or error behaviors, but schema covers parameters and annotations cover side effects, making it sufficiently complete for a complex tool.

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 100%, so baseline is 3. The description adds cross-parameter meaning by linking source='existing_chop' with hand_chop_path and noting nodes are created under parent_path. This supplements the individual parameter descriptions.

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 states a specific verb and resource: 'Create a TouchDesigner Base COMP that converts hand landmarks into a stable gesture-control Null CHOP' and names concrete use cases (palm holograms, lasers, audio controls). It distinguishes from siblings by detailing output channels and source modes, making it clear this is the hand-gesture-bus creator.

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 provides explicit guidance for each source value: 'Use source='synthetic' for camera-free previews, source='mediapipe' to build/use setup_hand_tracking, or source='existing_chop' with hand_chop_path when a hand landmark CHOP already exists.' This is clear when-to-use context, but it does not name sibling alternatives (e.g., create_leap_motion_hand_bus), so it stops short of a 5.

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

create_hand_hologramCreate hand hologramA

Build a palm-anchored hologram visual driven by create_hand_gesture_bus. Defaults to a synthetic previewable holographic cube; open palm controls visibility, the float anchor keeps it above the palm, and opposite-hand pinch drives scale, glow, and optional futuristic synth/device audio.

ParametersJSON Schema
NameRequiredDescriptionDefault
glowNo
sizeNo
colorNo#54f4ff
presetNoholo_cube
sourceNosynthetic
tox_pathNo
comp_nameNohand_hologram
audio_modeNonone
resolutionNo
parent_pathNo/project1
accent_colorNo#b56cff
float_heightNo
transparencyNo
hand_chop_pathNo
input_top_pathNo
rotation_speedNo
capture_previewNo
expose_controlsNo
scanline_amountNo
audio_device_hintNoUMC202HD
pinch_scale_amountNo

TDQS

A4/5.0
Behavior4/5

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

With annotations declaring non-readOnly and openWorldHint, the description adds significant behavioral detail: the default synthetic cube, open-palm visibility, float anchor positioning, opposite-hand pinch controlling scale/glow, and optional audio. It does not contradict annotations and enhances understanding of how the tool behaves in real use, though it doesn't cover every side effect (e.g., component creation path).

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 two sentences totaling 59 words, with the primary purpose front-loaded. Every sentence contributes meaningful behavior, defaults, or dependencies, with no fluff or repetition of schema information. It is an exemplar of concise, information-dense description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high complexity (21 parameters, no output schema, no parameter descriptions), the description is notably incomplete. It fails to mention prerequisites (e.g., does create_hand_gesture_bus need to already exist?), return values, or effects on existing components. The interactive behavior is well-covered, but an agent would still be unaware of many configuration options and potential side effects, making it insufficient for a tool of this complexity.

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?

The schema has 0% parameter description coverage, so the description must compensate. It provides meaning for key parameters: 'synthetic' (source), 'holographic cube' (preset), pinch controlling scale/glow (size, glow, pinch_scale_amount), 'float anchor' (float_height), and audio modes (audio_mode). However, with 21 parameters, many remain unexplained (e.g., color, accent_color, resolution, comp_name), so the compensation is partial.

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 states a specific action: 'Build a palm-anchored hologram visual' with the resource being a hologram visual. It also distinguishes itself from siblings by highlighting the driving dependency ('create_hand_gesture_bus') and describing concrete interactive behaviors, making it clear this is not a generic creation tool or a bus builder.

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 gives clear context on when to use the tool: when you need a palm-anchored hologram driven by hand gestures. It implies prerequisite usage by mentioning 'driven by create_hand_gesture_bus' and outlines default and interactive behaviors. However, it doesn't explicitly state alternatives or exclusions, so it falls short of a 5.

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

create_histogram_scopeCreate histogram scopeA

Build a luminance (and optional per-channel RGB) histogram video scope for any TOP. Computes the histogram on the GPU using a GLSL TOP (bins×1 output), samples into a CHOP, normalises, and renders through choptoSOP → renderTOP. Output is a single Null TOP ready for previews or bind_to_channel. Implements the roadmap Milestone 2 histogram scope panel as a standalone focused tool. This is the single-scope, working histogram (the one create_video_scopes can't render in TD 099); for a combined waveform/parade/vectorscope monitor use create_video_scopes.

ParametersJSON Schema
NameRequiredDescriptionDefault
binsNoNumber of histogram bins (16..512). Drives the GLSL TOP output width. Changing after build requires a rebuild.
gainNoPre-scope brightness (Level TOP brightness1 parameter).
modeNoHistogram mode. 'luma' = single luminance trace. 'rgb' = three overlaid per-channel traces. Note: rgb mode is informational only in v1 — ships as luma with rgb flag in extra.luma
sourceNoVideo source. 'test_pattern' = synthetic Banana.tif (no permission needed). 'existing_top' = reuse a TOP you already have (provide existing_top_path). 'file' = a video/image file. 'device' = live camera — may hang TD on a macOS permission modal.test_pattern
bar_styleNoReserved — informational only in v1. Both values currently emit the same `choptoSOP`-fed render (a thin vertical strip per bin); a true polyline 'line' mode is planned. Setting this changes the value recorded in `extra` but does not yet change the SOP topology.bars
log_scaleNoCompress tall peaks with log(1+x) in the normalisation Math CHOP. Changing after build requires a rebuild.
resolutionNoOutput Null TOP size [width, height].
parent_pathNoParent COMP path; the histogram scope container is created as 'histogram_scope' inside it./project1
trace_colorNoPhosphor tint colour for luma mode as a hex string. Ignored when mode='rgb'.#00ff88
expose_controlsNoBind live controls: Gain, TraceColor (luma mode), LogScale (informational).
video_file_pathNoVideo/image file path (source='file').
existing_top_pathNoPath of an existing TOP to scope (source='existing_top').

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations (readOnly=false, destructive=false), the description reveals the internal node chain (GLSL TOP, CHOP sampling, normalisation, choptoSOP → renderTOP) and the output as a Null TOP. It also notes the GPU computation and suitability for previews/bind_to_channel. Minor gap: no mention of failure modes or state changes to input TOPs, but enough operational behavior is disclosed.

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

Conciseness4/5

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

The description is compact and information-dense: purpose, pipeline, output, and sibling differentiation are packed into four sentences. Each clause contributes value, though the final sentence repeats 'single-scope, working histogram' and 'standalone focused tool' slightly redundantly. Still, overall structure is efficient and front-loaded.

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 complex tool with 12 parameters, no output schema, and only modest annotations, the description provides a high-level architecture, output type, usage context, and explicit alternative. It omits per-parameter edge cases (e.g., informational flags) but those are already in the schema descriptions. The return value (Null TOP) is stated, making the tool understandable in context.

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 coverage is 100%, with detailed descriptions for all 12 parameters, so the baseline is 3. The description adds some context (e.g., 'any TOP', output for previews) but does not elaborate on parameter usage beyond what the schema already provides. It does not compensate for or contradict the schema, so a mid-score is appropriate.

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-resource pairing: 'Build a luminance (and optional per-channel RGB) histogram video scope for any TOP.' It then outlines the full GPU-to-CHOP-to-SOP pipeline and output format. It explicitly distinguishes this tool from create_video_scopes by stating it is the single-scope working histogram that create_video_scopes can't render, making it unique among siblings.

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

Usage Guidelines5/5

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

The description gives clear when-to-use guidance: it is for a single histogram scope, while 'for a combined waveform/parade/vectorscope monitor use create_video_scopes.' It also explains the limitation of the alternative (can't render in TD 099), which helps the agent choose correctly. The context is explicit and actionable.

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

create_hokuyo_lidar_busCreate Hokuyo LiDAR busA

Create a Hokuyo LiDAR scanner scaffold with hardware-gated CHOP setup, scan-zone maps, and calibration notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.hokuyo_lidar_bus
activeNo
end_stepNo
scan_zonesNo
start_stepNo
net_addressNo192.168.0.10
parent_pathNoParent COMP for the Hokuyo scaffold./project1
serial_portNoCOM3
interface_modeNonetwork
high_sensitivityNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations (readOnlyHint=false, destructiveHint=false) are not contradicted by the description. The description adds detail about what is created (hardware-gated CHOP setup, scan-zone maps, calibration notes), which goes beyond the annotations. However, it does not disclose potential side effects such as hardware probing, network interaction, or how the scaffold is structured, limiting transparency.

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 a single, focused sentence that begins with the verb 'Create' and lists specific deliverables. It contains no filler, redundant phrases, or repetition of schema content, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 10 parameters, no output schema, and only 20% schema documentation, the one-sentence description is insufficient. It does not explain how parameters affect the resulting scaffold, what the hardware-gated CHOP setup entails, or any prerequisites such as network/serial configuration. The presence of many sibling LiDAR creation tools further increases the need for clearer differentiation, which is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (name and parent_path are described). The description mentions 'scan-zone maps,' which relates to the scan_zones parameter, but it fails to explain key parameters like start_step, end_step, net_address, serial_port, interface_mode, and high_sensitivity. With low schema coverage, the description was expected to compensate but does not.

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 clearly states it creates a Hokuyo LiDAR scanner scaffold, listing specific components (hardware-gated CHOP setup, scan-zone maps, calibration notes). This distinguishes it from sibling tools like create_ouster_lidar_bus and create_livox_lidar_bus by specifying the Hokuyo brand and key features.

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?

The intended use (setting up a Hokuyo LiDAR scanner) is implied by the description's mention of 'Hokuyo LiDAR' and 'hardware-gated CHOP setup.' However, there are no explicit statements about when to choose this tool over alternatives, no exclusions, and no mention of prerequisites, so guidance remains implicit rather than explicit.

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

create_interaction_zonesCreate interaction zonesA

Define N rectangular zones over a camera / motion input; each zone fires when motion in that region crosses a threshold. Builds a stock-TOP chain — a motion-energy TOP (monochrome → previous-frame cache → difference), then per zone a cropTOP (region isolate) + analyzeTOP average + toptoCHOP, merged into one level CHOP, then a scriptCHOP that emits per zone a *_state channel (0/1 active) and a *_dwell channel (seconds continuously active). Ends on a 'zones' Null CHOP as the bind point — wire cues via bind_to_channel to op('…/interaction_zones/zones')['zone0_state']. Camera-only (no depth cam). Source is a TOP pulled via selectTOP, or a built-in synthetic animated Noise TOP when omitted (offline-safe, cooks clean on any install with no external asset). A live Threshold knob tunes sensitivity. Zones are normalized rects (x,y = top-left corner, w,h = size); the top-left image convention is mapped to TD's bottom-left uv origin. Returns a summary plus JSON with the container path, created node paths, the zones Null path, per-zone state/dwell channel names, the zone definitions, threshold, and warnings (no preview image — the output is a CHOP, not a TOP).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the container COMP created under parent_path.interaction_zones
zonesNoRectangular zones (normalized 0..1) to watch.
thresholdNoMotion level above which a zone counts as active.
resolutionNoAnalysis resolution [width, height] in pixels (cheap; motion detection is bandwidth-bound).
parent_pathNoParent COMP the interaction-zones container is created inside (default '/project1')./project1
source_pathNoTOP to watch for motion (pulled via selectTOP). Omit for a built-in synthetic animated Noise TOP that cooks clean on any install (offline-safe, no external asset).

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only indicate readOnly=false, openWorld=true, destructive=false. The description goes far beyond this by disclosing exactly what gets built (motion-energy TOP, cropTOPs, scriptCHOP, Null CHOP), that output is a CHOP not a TOP, that no preview image exists, and that the synthetic source cooks clean without external assets. No contradiction with annotations.

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

Conciseness4/5

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

The description is a single dense paragraph, but every sentence carries essential information about the node chain, coordinate conventions, output format, and offline safety. It is front-loaded with the core purpose, but could be slightly better structured with separation between behavior, parameters, and return value.

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?

Despite no output schema, the description fully covers return value (summary plus JSON with container path, node paths, channel names, warnings), behavioral constraints (camera-only, no preview), and binding instructions. For a tool this complex, the description leaves little ambiguous.

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 covers 100% of parameters, so baseline is 3. The description adds meaningful semantics: zone coordinates are normalized rects with top-left convention mapped to TD bottom-left origin, threshold is a live tuning knob, resolution is described as cheap/bandwidth-bound, and omitting source_path yields a synthetic Noise TOP. This is valuable beyond the schema.

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 clearly states a specific verb+resource: 'Define N rectangular zones over a camera / motion input' and details the resulting CHOP-based interaction system. It distinguishes itself from siblings by emphasizing camera-only motion detection, a stock-TOP chain, and CHOP output rather than a TOP preview.

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 gives strong context: it is camera-only (excludes depth cams), can use a selectTOP source or a synthetic offline-safe source, and explains the bind point for cues. It does not explicitly name alternative tools, but the exclusions and output nature give clear guidance on when it is appropriate.

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

create_interactive_projection_mappingCreate interactive projection mappingA

Build a synthetic-safe interactive projection mapping rig for a USB webcam plus projector: camera/synthetic/existing TOP input, frame-difference motion field, placeholder blob/post-it mask, cyan dot and magenta card visual TOPs, manual Corner Pin projection mapping, debug switch, live controls, and an out1 Null TOP. Defaults to source='camera' for installations, but source='synthetic' previews without camera permission. Returns output/debug paths and explicit warnings for camera, blob tracking, and physical calibration states.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the generated interactive projection mapping Base COMP.interactive_projection_mapping
sourceNoInput source: a USB camera, a self-animated synthetic TOP, or an existing TOP pulled through a Select TOP.camera
dot_colorNoCyan dot color as #rrggbb.#8ff4f2
max_blobsNoMaximum blob slots reserved for the later marker-tracking branch.
card_colorNoMagenta card color as #rrggbb.#ff2f9a
card_countNoTarget count for magenta card blocks. This MVP uses it as visual density metadata.
debug_viewNoWhich branch the debug switch shows initially.final
parent_pathNoParent COMP where the interactive projection mapping system is created./project1
trail_decayNoFeedback persistence for visual trails.
camera_indexNoUSB/webcam device index used when source='camera'.
output_widthNoProjection output width in pixels.
repel_radiusNoNormalized radius metadata for hand/motion repulsion.
output_heightNoProjection output height in pixels.
blob_thresholdNoThreshold used by the placeholder blob/post-it mask branch.
particle_countNoTarget count for the cyan dot field. This MVP uses it as visual density metadata.
expose_controlsNoExpose live controls for calibration/debug/performance tuning.
background_colorNoDark projected background color as #rrggbb.#05100e
interaction_modeNoInteraction branch to prioritize. The first slice always keeps motion available.hybrid
existing_top_pathNoAbsolute TOP path required when source='existing_top'.
motion_sensitivityNoGain over the frame-difference motion field.
analysis_resolutionNoSquare working resolution for cheap motion/blob analysis.
fallback_to_syntheticNoIf camera creation fails, build a synthetic source so the rig remains previewable.
projection_brightnessNoFinal Level TOP brightness before out1.

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate a mutating, non-destructive, open-world operation. Description adds specifics: 'synthetic-safe', default source behavior, and returns 'explicit warnings for camera, blob tracking, and physical calibration states' — useful behavioral context not present in 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?

Three sentences, front-loaded purpose, zero filler. Lists key components and behavioral notes efficiently.

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?

Complex 23-parameter tool with no output schema; description informs about return paths and warnings, plus source-mode decision. Slight gap: no explicit guidance on interpreting warnings or when to use existing_top, but schema and description together are sufficient.

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 covers 100% of parameters with descriptions. Description adds high-level context (defaults, warnings) but does not detail individual parameter syntax beyond what schema provides.

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?

Description opens with a specific verb 'Build' and resource 'interactive projection mapping rig for a USB webcam plus projector', enumerating components. This clearly differentiates from siblings like create_projection_mapping by emphasizing interactivity and webcam/synthetic source.

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?

Provides context on source default and synthetic preview, but does not explicitly name when to use this vs alternatives like create_projection_mapping or projector_calibration_wizard. Exclusion criteria are absent.

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

create_iphone_depth_sourceCreate iPhone depth sourceA

Create a deterministic TouchDesigner scaffold for iPhone depth senders such as TDLidar, Record3D, or a generic NDI/OSC source. Builds live/video receiver TOPs, color_out, depth_preview, OSC sensor input, sensors_out, setup hints, and an optional point-cloud placeholder. This is a scaffold and returns warnings where sender-specific metric depth decoding must be validated live.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the generated base COMP.iphone_depth_source
activeNoStart the live/video receiver immediately where the operator supports it.
sourceNoiPhone depth sender profile to document in setup hints.tdlidar
osc_portNoUDP port for OSC sensor data from the iPhone app.
movie_fileNoMovie file path used when video_mode is movie_file.
video_modeNoTransport for the color/depth video stream.ndi
parent_pathNoParent COMP to create the scaffold in./project1
sensor_prefixNoOSC address prefix used to select phone sensor channels./iphone
video_source_nameNoNDI source name or Syphon/Spout sender name when using a live video transport.
create_pointcloud_stubNoCreate a textDAT placeholder for app-specific point-cloud reconstruction notes.

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses that this is a scaffold, not a complete solution, and that it 'returns warnings where sender-specific metric depth decoding must be validated live.' This adds meaningful behavioral information beyond the annotations (readOnly=false, destructive=false). It also lists what gets created, giving the agent a clear mental model of side effects. No contradiction with 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, each dense with relevant information. The first sentence immediately states the purpose, the second lists the deliverables, and the third clarifies the scaffolding nature and warning behavior. Every sentence earns its place with no fluff or repetition.

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?

Despite having no output schema, the description covers the key outcomes (what components are built) and the critical caveat (sender-specific depth decoding must be validated live). For a creation tool with 10 params but full schema coverage, this is complete enough. It could mention what happens on repeated calls or how to customize the scaffold further, but the description is already strong.

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?

With 100% schema description coverage, the baseline is 3. The description mentions 'TDLidar, Record3D, or a generic NDI/OSC source' which maps to the source enum, and 'optional point-cloud placeholder' which maps to create_pointcloud_stub. However, it does not add syntax, format, or behavior details for individual parameters beyond what the schema already provides, so it stays at baseline.

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 clearly states the specific verb+resource: 'Create a deterministic TouchDesigner scaffold for iPhone depth senders such as TDLidar, Record3D, or a generic NDI/OSC source.' It also enumerates the exact components built (live/video receiver TOPs, color_out, depth_preview, etc.), which distinguishes it from general create tools like create_live_source or create_point_cloud.

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 provides clear context for when to use this tool (when creating an iPhone depth sender scaffold), but it does not explicitly state when not to use it or name alternative tools. The phrase 'for iPhone depth senders such as TDLidar, Record3D, or a generic NDI/OSC source' gives solid usage context, so it earns a 4 rather than a 3.

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

create_jfa_voronoiCreate JFA VoronoiA

Instantiate a self-contained Jump-Flooding-Algorithm Voronoi generator (stained-glass / cell pattern) as GLSL TOPs — seeds → jfa_init → K halving passes → color_pass → null. Exposes live PaletteMode / SeedCount / Speed / Jitter / EdgeThickness / EdgeColor / ColorA / ColorB controls and previews the output TOP. Pass count auto-derives from resolution (log2(max(w,h))); override with step_count.

ParametersJSON Schema
NameRequiredDescriptionDefault
speedNoAnimation speed multiplier driving uTime drift of seeds. Live 'Speed' control.
jitterNoPer-seed drift amplitude (0 = static lattice). Live 'Jitter' control.
color_aNoDuotone primary hex. Live 'ColorA' swatch.#ff3366
color_bNoDuotone secondary hex. Live 'ColorB' swatch.#33ccff
edge_colorNoBorder colour as hex (e.g. '#000000'). Live 'EdgeColor' RGB swatch.#000000
resolutionNoOutput resolution [width, height]; JFA pass count auto-derived from max axis.
seed_countNoNumber of Voronoi seeds (4..512). Drives the seed TOP width (next pow-2).
step_countNoManual JFA pass count (0 = auto = ceil(log2(max(w,h)))).
parent_pathNoParent COMP path; container 'jfa_voronoi' is created inside./project1
palette_modeNorandom = HSV per seed; duotone = mix(ColorA, ColorB); from_image = sample image.random
palette_imageNoOp path to a TOP sampled at seed UVs when palette_mode='from_image'.
edge_thicknessNoCell border width in UV units (0..0.05). Live 'EdgeThickness' control.
expose_controlsNoExpose live PaletteMode/SeedCount/Speed/Jitter/EdgeThickness/EdgeColor/ColorA/ColorB.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate non-read-only and non-destructive; the description adds meaningful behavioral detail: the exact node chain, self-contained nature, auto-derived pass count with override, and exposure of live controls. It doesn't dwell on side-effect specifics like exact container creation, but it conveys the main behavioral traits beyond 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?

Three sentences, zero wasted words. The first sentence front-loads purpose and architecture, the second covers the exposed controls and preview, and the third clarifies a key algorithmic behavior. Every sentence earns its place.

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 create-oriented tool with 13 params and no output schema, the description gives a solid mental model: the GLSL TOP chain, live controls, preview behavior, and pass-count logic. It could mention the container path explicitly, but the parent_path schema covers that; overall it is sufficiently complete for an agent.

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 100%, so the baseline is 3. The description adds value by grouping the exposed live controls (PaletteMode/SeedCount/Speed/Jitter/EdgeThickness/EdgeColor/ColorA/ColorB) and by explaining how resolution auto-derives the pass count with step_count as an override, which is extra semantic context beyond the schema.

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 ('Instantiate') and names a distinct resource (a self-contained JFA Voronoi generator as GLSL TOPs). It differentiates itself from generic shader/TOP creator siblings by describing the concrete chain and output, so an agent can confidently identify what this tool creates.

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 gives clear context: it creates a stained-glass/cell pattern generator with live controls and previews, implying use when such a Voronoi effect is needed. It doesn't explicitly mention when not to use it or name alternatives among the many sibling tools, so it stops short of a 5.

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

create_kaleidoscopeCreate kaleidoscopeA

Wrap a source in a kaleidoscope / radial-mirror symmetry effect — a signature VJ look. Folds the image into N identical mirrored wedges around a centre, with live Segments / Rotation / Zoom / Center controls. Creates a new baseCOMP under parent_path holding the source, a single GLSL fold pass, and a Null output. Pass input_path (an absolute TOP path) to kaleidoscope an existing visual, or omit it to generate a self-contained noise source that previews on its own. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoomNoZoom into the source — >1 magnifies the pattern, <1 pulls more of the source in.
center_xNoKaleidoscope centre X in normalized UV (0–1). 0.5 is the middle of the frame.
center_yNoKaleidoscope centre Y in normalized UV (0–1). 0.5 is the middle of the frame.
rotationNoRotation of the whole kaleidoscope, in radians. Animate/bind this to spin it.
segmentsNoNumber of mirrored wedges (N-fold symmetry). 6 is the classic look; higher = finer.
input_pathNoAbsolute path of a source TOP to kaleidoscope. Brought in via a Select TOP (cross-container wiring silently no-ops). If omitted, a coloured noise source is generated so the network previews on its own.
parent_pathNoParent network where the kaleidoscope container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live Segments / Rotation / Zoom / Center X / Center Y knobs on the container.

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations, the description discloses what gets created under parent_path (baseCOMP, source, GLSL fold pass, Null output), the optional noise-source behavior, and the return payload including paths, controls, errors, and preview. It does not cover every edge case such as overwrites or invalid parent paths, but the added detail is substantial.

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 dense but efficient, with every sentence contributing value: effect definition, folding mechanics, node construction, input modes, and return format. It is front-loaded with the core action and contains no filler or tautological phrases.

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?

With no output schema, the description thoroughly explains the returned JSON structure (container path, created node paths, output path, exposed controls, errors, warnings, preview image). It also covers both input scenarios and the parent_path placement, making it complete enough for a complex network-creation tool.

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 all eight parameters already have precise descriptions, defaults, and units in the schema. The tool description references the parameter groups (Segments/Rotation/Zoom/Center) and input_path, but adds no new parameter-level meaning beyond what the schema provides.

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 action ('Wrap a source in a kaleidoscope / radial-mirror symmetry effect') and clearly identifies the resource being created. It distinguishes the tool from sibling creation tools by detailing the wedge-folding behavior, controls, and node structure it produces.

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 provides clear context for when to use the tool and gives two explicit usage modes: pass input_path to process an existing visual, or omit it to generate a self-contained noise source. However, it does not explicitly name alternative tools or state when not to use it, so it stops short of full guidance.

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

create_keyerCreate keyerA

Composite a keyed performer, logo, or any source over a background visual — the green-screen / chroma-key / matte tool for installations and live camera work. Creates a self-contained baseCOMP under parent_path that holds the full chain: source (Select TOP or test card) → key stage → composite → Null TOP output. Three key_type modes: 'chroma' (Chroma Key TOP, keys on Hue/Sat/Val range — best for green/blue-screen), 'luma' (Level TOP threshold + Matte TOP — keys by brightness), 'rgb' (RGB Key TOP, keys on R/G/B channel ranges — best for a solid background colour). key_color sets the target colour to remove (chroma/rgb modes); tolerance widens the key range; softness feathers the edge. With a source the footage is pulled in via a Select TOP (so it can live in another container); without one, a constant green test card is used so the chain builds and previews standalone. With a background the composited result is placed over it; without one, a diagonal ramp is used. Tolerance/Softness/KeyColor controls are exposed on the container. Output is a Null TOP. Returns a summary with the container path, created node paths, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the keyer COMP.keyer
sourceNoTOP to pull the key FROM (e.g. a camera/live source). Omit → a built-in test source.
key_typeNochroma: green/blue-screen (Chroma Key TOP, keys on Hue+Sat+Val range); luma: brightness key (Level TOP + Matte TOP, keys on luminance); rgb: key a specific RGB color (RGB Key TOP, keys on R/G/B channel ranges).chroma
softnessNoEdge softness/feather.
key_colorNo(chroma/rgb) Hex color to key out.#00ff00
toleranceNoKey tolerance/range.
backgroundNoTOP to composite the keyed result OVER. Omit → a built-in test background.
resolutionNoOutput resolution [w,h].
parent_pathNoWhere to build it./project1

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses the full chain creation ('source (Select TOP or test card) → key stage → composite → Null TOP output'), the exposed controls on the container, and the return summary with 'node errors, warnings, and an inline preview image'. This is rich behavioral context beyond what annotations provide.

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?

Every sentence contributes distinct information: purpose, chain structure, mode comparisons, parameter roles, and return behavior. It is dense but not bloated, and it is front-loaded with the main verb and resource.

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?

With no output schema, the description compensates by explicitly detailing return values (container path, created node paths, exposed controls, errors, warnings, inline preview). It also covers optional inputs and the built output topology, making it complete for a complex creation tool.

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 100%, so the parameters are already described. The description adds workflow-level meaning, such as 'key_color sets the target colour to remove (chroma/rgb modes)' and the fallback test card when no source is given, which helps the agent understand parameter relationships and optional behaviors.

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 'Composite a keyed performer, logo, or any source over a background visual' and explicitly labels it as 'the green-screen / chroma-key / matte tool'. This is a specific verb+resource that distinguishes it from generic create_* tools, and it further details the three key_type modes to eliminate ambiguity.

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 provides context ('for installations and live camera work') and explains conditional behavior (with/without a source or background). However, it does not explicitly name alternatives or state when not to use this tool, though the context makes the intended use clear.

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

create_keyframe_animationCreate keyframe animationA

Animate parameters along a keyframed curve synced to the timeline — structured motion beyond animate_parameter's LFO (use animate_parameter instead for continuous LFO oscillation). Give time/value keyframes and the targets; this creates a baseCOMP 'keyframe_anim' under parent_path containing an Execute DAT that interpolates the curve each frame (linear or smooth easing) and writes the value onto every target parameter, looping over the keyframe span (or holding the last value). Use it for choreographed moves (a build-up, a drop, a sweep). Returns a summary plus a JSON block with the container path, the Execute DAT (hook) path, the loop duration, the targets, and warnings (including any targets that did not resolve). Returns a friendly error if the keyframes do not span a positive duration.

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoLoop the animation; otherwise it holds the last value.
easingNoInterpolation between keys: linear, or smooth (eased) for organic motion.smooth
targetsYesParameters to animate, each written as 'nodePath.parName'.
keyframesYesKeyframes (time + value); the curve interpolates between them in order.
parent_pathNoParent network where the keyframe-animation container (a baseCOMP) is created (default '/project1')./project1

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses creation of a baseCOMP under parent_path, an Execute DAT that interpolates each frame, writing to target parameters, loop/hold behavior, return summary/JSON block, and error handling for non-positive duration. This goes well beyond the annotation hints (readOnly=false, destructive=false) and provides rich behavioral context.

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 concise yet complete, front-loading the core purpose, then mechanics, use case, return format, and error condition. Every sentence earns its place without redundancy.

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?

With no output schema, the description explicitly details the return value (summary plus JSON block with container path, hook path, loop duration, targets, warnings) and error behavior. Combined with a fully documented schema and annotations, this is a complete and self-sufficient definition for the tool's complexity.

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?

The input schema covers all 5 parameters with descriptions (100% coverage), so the baseline is 3. The description reinforces relationships (keyframes are time/value, targets are nodePath.parName) but does not add new meaning beyond the schema.

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 clearly states the tool animates parameters along a keyframed curve synced to the timeline, explicitly distinguishing it from animate_parameter's LFO behavior. It names the resource (keyframed animation, baseCOMP 'keyframe_anim') and the action (animate parameters).

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

Usage Guidelines5/5

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

It explicitly advises using animate_parameter for continuous LFO oscillation and this tool for choreographed moves (build-up, drop, sweep). This gives clear when-to-use and when-not-to-use guidance relative to a sibling tool.

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

create_kinect_wall_harpCreate Kinect wall harpA

Build a synthetic-safe Kinect v2 / FreenectTD projected wall harp in an isolated Base COMP. The network can create a FreenectTOP depth path when explicitly enabled, listen to an external OSC Kinect bridge with source='osc_kinect', or build a synthetic fallback. It extracts left/right hand centroids, divides the projection into configurable musical zones, triggers short electronic plucks on zone entry, renders a denser vibrating curtain of projected strings, and exposes depth/mask/hands/audio plus bridge-status diagnostics. If FreenectTD or Kinect hardware is unavailable, the tool returns warnings instead of throwing, so the visual/audio/trigger chain can still be tested offline.

ParametersJSON Schema
NameRequiredDescriptionDefault
glowNoVisual glow multiplier for active strings.
nameNoName for the generated Base COMP under parent_path.kinect_wall_harp
decayNoElectronic pluck decay in seconds.
sourceNoInput source. 'freenect' tries the FreenectTD FreenectTOP Kinect v2 path; 'synthetic' builds a device-free wall-touch simulator; 'osc_kinect' listens for normalized Kinect hand points from an external OSC bridge.freenect
crop_topNo
osc_portNoUDP port for OSC Kinect hand input when source='osc_kinect'.
crop_leftNo
hit_colorNoTouched string color as #RRGGBB.#FFB000
input_topNoRaw normalized Kinect Y that maps to the projector's top edge.
smoothingNoHand centroid smoothing amount used by the tracking Script CHOP.
base_colorNoIdle projected string color as #RRGGBB.#050505
brightnessNoVery subtle harmonic color for the generated sine pluck tone.
crop_rightNo
input_leftNoRaw normalized Kinect X that maps to the projector's left edge.
reverb_mixNoWet reverb mix for the internal pluck synth.
show_debugNoWhen true, the visual Script TOP draws hand dots and zone guides.
cooldown_msNoPer-string retrigger guard in milliseconds.
crop_bottomNo
frequenciesNoPluck frequencies for the musical trigger zones.
input_rightNoRaw normalized Kinect X that maps to the projector's right edge.
parent_pathNoParent COMP path where the isolated kinect_wall_harp Base COMP is created./project1
sensitivityNoBlob threshold / cleanup aggressiveness for the wall-touch mask.
audio_deviceNoOptional Audio Device Out device name. Leave empty to keep TouchDesigner's default device.
input_bottomNoRaw normalized Kinect Y that maps to the projector's bottom edge.
output_widthNoWidth for generated debug and projected output TOPs.
reverb_decayNoFeedback decay for the internal algorithmic reverb.
string_countNoNumber of musical trigger zones across the projected wall harp.
master_volumeNoOverall gain for the internal pluck Script CHOP.
output_heightNoHeight for generated debug and projected output TOPs.
curtain_followNoHow strongly nearby visual lines bend around tracked wall-touch hands.
curtain_spreadNoHow many neighboring visual lines share vibration from each musical zone.
depth_polarityNoWhich side of the wall-depth band should count as touch candidates.near
input_mirror_xNoMirror normalized hand X after OSC input, before projector-space calibration.
reverb_dampingNoHigh-frequency damping for the internal algorithmic reverb.
expose_controlsNoExpose calibration, harp, audio, and visual controls on the generated COMP.
touch_thicknessNoAccepted depth band around wall_depth_center.
vibration_decayNoVisual vibration decay in seconds.
background_levelNoNeutral projected background brightness; 0.0 leaves the wall unlit behind the laser lines.
vibration_amountNoMaximum horizontal string vibration in pixels.
activate_freenectNoSafety gate for actually creating/activating FreenectTOP. Default false because FreenectTD Kinect v2 initialization is unstable on the validated macOS setup; leave false for crash-safe synthetic fallback.
audio_sample_rateNoScript CHOP audio sample rate. Set to 192000 when using UMC202HD at 192k.
visual_line_countNoNumber of visible projected laser lines. Can exceed string_count for curtain behavior.
wall_depth_centerNoNormalized depth value representing the calibrated wall/touch plane.
bridge_status_jsonNoJSON status path written by scripts/kinect-wall-harp-bridge.mjs --status-json and read by the generated bridge_status DAT._workspace/kinect-wall-harp/bridge-status.json
calibration_hold_msNoMilliseconds a hand must remain stable on a calibration target before auto-capture.
fallback_to_syntheticNoWhen true, missing FreenectTD/Kinect hardware still creates a playable synthetic fallback with warnings.
deactivate_existing_freenectNoDeactivate existing FreenectTOP nodes under parent_path before starting the new Kinect source. Kinect v2 is a single-device path, so this avoids multiple active FreenectTD nodes competing for the same sensor.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate openWorldHint=true and destructiveHint=false, but the description adds valuable behavioral context: it creates a FreenectTOP only when explicitly enabled, returns warnings instead of throwing when hardware is missing, and exposes diagnostics. It does not mention deactivation of existing Freenect nodes, but that is covered in schema parameter descriptions; no contradiction with 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 four sentences, each carrying substantial information: purpose, network modes, system behavior, and error handling. It is front-loaded with the primary action and resource, with no wasted words. For a tool with 47 parameters, this is appropriately concise and well-structured.

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 the complexity (47 params, no output schema), the description summarizes the system well, covering modes, fallback, and diagnostics. However, it does not explicitly state the return value or output format (e.g., the created Base COMP path), which could be inferred but is not spelled out. Minor gap for an otherwise complete description.

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 description coverage is 91%, so the baseline is 3. The description adds contextual meaning by explaining how parameters work together (e.g., dividing projection into musical zones, rendering a vibrating curtain, exposing diagnostics), which helps an agent understand the role of params like string_count, visual_line_count, and show_debug beyond their individual schema descriptions.

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 clearly states the tool builds a Kinect v2/FreenectTD projected wall harp in an isolated Base COMP, a specific and concrete deliverable. It lists distinct operating modes (Freenect, OSC bridge, synthetic) and describes the system's function (hand tracking, zones, plucks, visuals), distinguishing it from sibling tools like create_hand_gesture_bus or setup_hand_tracking.

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 provides clear context for when to use the tool, such as building a wall harp, and explains the three source modes and the synthetic fallback when hardware is unavailable. It does not explicitly name alternative tools or state when not to use it, but the purpose is specific enough to imply usage without needing exclusions.

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

create_kinetic_textCreate kinetic textA

Build a self-contained animated / kinetic typography layer — a word or line that flashes, pulses, or slides, the signature live-VJ lyric-flash effect. A Text TOP renders the text; an LFO CHOP at the given Rate (Hz) drives the animation: 'flash' gates a Level TOP's alpha/opacity hard on/off (a square wave — the text vanishes between flashes rather than turning black, so it pops cleanly in and out over a background), 'pulse' drives a Transform TOP's scale plus a Level TOP alpha fade (a sine, the text breathes), and 'slide' scrolls the Transform TOP's translate-X. Creates a new baseCOMP under parent_path holding the Text TOP, the LFO, the per-mode Transform/Level nodes, an optional Composite, and a Null output. With an input_path the text is composited OVER that source (pulled in by a Select TOP, so it can live in another container); without one it animates on a transparent frame. Rate is free-running for v1 — bind the LFO's frequency to a beat CHOP (or a Trigger to a detect_onsets channel) to lock the flashes to the tempo. This is for a single animated word/line; for a static caption or title use create_text_overlay, and for multi-line scrolling tickers/credits rolls/typewriter reveals use create_text_crawl. Returns a summary plus a JSON block with the container path, created node paths, the text/lfo/output paths, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoAnimation style: 'flash' = hard on/off blink (a square LFO gates the alpha/opacity — the classic lyric-flash, the text vanishes between flashes rather than going black); 'pulse' = breathing scale-up + alpha fade driven by a sine LFO; 'slide' = the text scrolls horizontally across the frame.flash
sizeNoFont size in pixels (drives the Text TOP's fontsizex / fontsizey).
textNoThe word or line to animate (the lyric flash). Rendered by a Text TOP. For multiple lines use \n.DUQUESA
colorNoText colour as a hex string ('#ffffff' = white). Sets the Text TOP's fontcolorr/g/b.#ffffff
rate_hzNoAnimation rate in cycles per second (Hz) — the LFO frequency. Free-running for v1; bind it to a beat CHOP to fire on the actual beat.
input_pathNoOptional absolute path of a source TOP to lay the text OVER. Pulled in via a Select TOP (TD wires don't cross containers) and composited under the text. If omitted, the text animates on a transparent frame.
parent_pathNoParent network where the kinetic-text container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live Text / Size / Color / Rate controls bound to the right node parameters.

TDQS

A4.8/5.0
Behavior5/5

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

Even though annotations already declare non-read-only and non-destructive, the description adds substantial behavioral detail: node hierarchy (Text TOP, LFO CHOP, Transform/Level nodes, Composite, Null), per-mode animation mechanics (flash vanishes rather than black, pulse breathes, slide scrolls), input compositing behavior with Select TOP, and rate binding to beat CHOP. This goes well beyond 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.

Conciseness4/5

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

The description is lengthy but each sentence carries useful information—alternatives, mode mechanics, input handling, and return format. It is a single dense paragraph rather than structured bullets, but it is not padded or redundant.

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?

Despite no output schema, the description fully explains what the tool returns (summary, JSON block with paths/controls/errors/warnings/preview). It covers node creation, source compositing, rate binding, alternative tools, and edge cases (no input_path), leaving no obvious gaps.

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 100%, so baseline is 3; description adds practical guidance beyond the schema, such as binding rate to a beat CHOP for tempo sync, and clarifies mode behavior in prose. This elevates it above the baseline, though much of the detail is already present in the schema.

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 states a specific verb ('Build') and resource ('self-contained animated / kinetic typography layer'), and clearly distinguishes itself from siblings by naming create_text_overlay for static captions and create_text_crawl for multi-line scrolling text.

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

Usage Guidelines5/5

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

Explicitly provides when-to-use context (live-VJ lyric-flash effect) and names exact alternatives with conditions: 'for a static caption or title use create_text_overlay, and for multi-line scrolling tickers/credits rolls/typewriter reveals use create_text_crawl.' This gives clear guidance on choosing the correct tool.

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

create_layer_mixerCreate layer mixerA

Build a VJ-style layer mixer: combine source TOPs into one output. Creates a new baseCOMP under parent_path. 'crossfade' makes an A/B Cross TOP with a Crossfade knob (the classic two-deck mix); any other blend mode composites the inputs (add, difference, hardlight, glow, …). Sources are pulled in via Select TOPs so they can live anywhere; with fewer than two, demo sources (noise + ramp) are created. Output is a Null ready for post-processing or setup_output. Returns a summary plus a JSON block with the container path, created node paths, the source and output paths, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
blendNo'crossfade' = an A/B Cross TOP with a Crossfade knob; any other value composites all inputs with that blend mode.crossfade
inputsNoPaths of source TOPs to mix (brought in via Select TOPs, so they can live in other containers). With fewer than 2, demo sources (noise + ramp) are created so you can see it working.
parent_pathNoParent network where the mixer container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose a live 'Crossfade' knob on the container (crossfade mode only).

TDQS

A4.7/5.0
Behavior5/5

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

The description goes well beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) by disclosing specific behaviors: it creates a baseCOMP, uses Select TOPs, auto-creates demo sources when fewer than two inputs, outputs a Null, and returns a detailed JSON summary including errors, warnings, and a preview image. This gives the agent a clear mental model of what happens.

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 four sentences, each packed with essential information: what it does, how blend modes work, the Select TOPs and demo behavior, and the return format. There is no fluff or redundancy; it is well-structured and front-loaded with the primary purpose.

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?

Even without an output schema, the description fully explains the return value (summary plus JSON block with paths, controls, errors, warnings, and preview). It also covers edge cases (fewer than two inputs) and the downstream use (Null ready for post-processing). Given the tool's moderate complexity, this is complete.

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?

The schema already documents all four parameters with 100% description coverage, so the baseline is 3. The description adds extra meaning by explaining the effect of the 'blend' parameter ('crossfade makes an A/B Cross TOP with a Crossfade knob; any other blend mode composites the inputs') and the demo-source fallback for the 'inputs' parameter. This adds value beyond the schema, but not dramatically so, hence a 4.

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: 'Build a VJ-style layer mixer: combine source TOPs into one output. Creates a new baseCOMP under parent_path.' It clearly distinguishes this tool as a mixer for visual layers, with the key output being a baseCOMP. This is distinct from sibling tools like create_layer_stack or create_visual_system, and the scope 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?

The description provides clear context for when to use the tool: for VJ-style mixing of TOPs, with specific blend modes (crossfade vs. composite). It also explains the output readiness ('Output is a Null ready for post-processing or setup_output'). However, it doesn't explicitly state when not to use it or name alternative tools, so it stops short of a full 5.

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

create_layer_stackCreate layer stack (N-layer compositor)A

Build a VJ-style N-layer compositor: stack 2–8 source TOPs and composite them bottom-up, each layer with its own blend mode (over/add/multiply/screen/difference/lighten/darken) and opacity. Each layer is a Select TOP (or a built-in test source when omitted) → a Level TOP carrying opacity; layers above the base each get their own 2-input Composite TOP so blend modes are per-layer. Exposes a live control strip — per layer: Opacity (0–1), Blend (menu), Mute, Solo — and ends on a Null ready for post-processing or setup_output. Pass layers (bottom-first) for an explicit stack, or omit it to build count empty test layers. Returns a summary plus a JSON block with the container path, per-layer node paths, the output Null, exposed controls, node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the compositor COMP.layer_stack
countNoNumber of layers when `layers` is omitted.
layersNoExplicit layer stack (bottom-first). Omit to build `count` empty test layers.
resolutionNoOutput resolution [w,h].
parent_pathNoWhere to build it./project1

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses the exact node structure ('Each layer is a Select TOP... → a Level TOP... layers above the base each get their own 2-input Composite TOP'), exposed controls (Opacity, Blend, Mute, Solo), and the terminal Null node, going well beyond the minimal annotation cues. It also specifies the return payload (summary + JSON block with paths, errors, preview image).

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

Conciseness4/5

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

The description is detailed but each sentence adds operational value, covering purpose, architecture, parameter modes, controls, and return value. It is appropriately sized for a tool that builds a multi-node network, though slightly long compared to minimal tools.

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?

The description covers all relevant aspects: input modes (explicit vs count), node generation logic, exposed UI controls, output chain, and return format with error/warning reporting. No output schema exists, but the description thoroughly fills that gap.

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 100% schema description coverage, the baseline is 3. The description adds extra meaning by explaining the relationship between layers and count, the behavior when source is omitted, and how parameters map to the node chain (e.g., opacity becomes a Level TOP parameter). This elevates it above baseline.

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 'Build a VJ-style N-layer compositor' which immediately identifies the verb, resource, and style. It further details the node chain (Select TOP → Level TOP → Composite TOP) and control strip, clearly distinguishing it from sibling tools like create_layer_mixer.

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 provides clear context for parameter selection: 'Pass layers (bottom-first) for an explicit stack, or omit it to build count empty test layers.' However, it does not explicitly state when to prefer this tool over alternative compositors or mixers, so it earns a 4 rather than 5.

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

create_leap_motion_hand_busCreate Leap Motion hand busA

Create a Leap Motion hand/gesture scaffold with CHOP/TOP placeholders, hand maps, gesture maps, and setup notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.leap_motion_hand_bus
activeNo
hand_countNo
parent_pathNoParent COMP for the Leap Motion scaffold./project1
gesture_countNo
include_image_topNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, and the description adds that it creates a scaffold with placeholders, which clarifies the non-destructive, generative intent. However, it does not disclose any further behavioral traits such as whether it overwrites existing nodes, requires a Leap Motion device, or creates a baseCOMP at a specific path beyond parent_path.

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 a single, front-loaded sentence that efficiently conveys the tool's purpose with no filler. Every phrase adds meaningful detail about the scaffold contents.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with 6 parameters and no output schema, the description is too brief to be contextually complete. It does not explain prerequisites, expected behavior after creation, how the scaffold is used, or what 'setup notes' contain. The openWorldHint annotation suggests potential side effects, but the description lacks context to fully understand the tool's role in a workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (2 of 6 parameters have descriptions). The description mentions 'CHOP/TOP placeholders, hand maps, gesture maps' but does not explicitly map these to parameters like hand_count, gesture_count, or include_image_top. It fails to compensate for the undocumented parameters, leaving their meanings ambiguous.

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 clearly states a specific verb and resource: 'Create a Leap Motion hand/gesture scaffold'. It further enumerates distinct elements ('CHOP/TOP placeholders, hand maps, gesture maps, and setup notes') that distinguish it from sibling tools like 'setup_hand_tracking' or 'create_hand_gesture_bus'.

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?

The description implies usage for scaffolding a Leap Motion hand/gesture setup, but does not explicitly state when to prefer this over alternatives or mention exclusions. No direct comparison with sibling tools is provided, so usage guidance is only implied.

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

create_led_mapperCreate LED pixel-mapperA

Build a pixel-mapping chain from a source TOP to an LED fixture grid and DMX Out CHOP over Art-Net or sACN. The generated network resizes to width×height, samples one texel per fixture pixel, preserves RGB channels, and returns created node paths, channel count, warnings, and live Brightness/Universe controls on the parent COMP. It defaults to a moving Ramp test source so the chain can cook without input; real network output still requires a reachable fixture/node and should be verified before sending. Use create_dmx_fixture_pipeline for fixture patching and this tool when you specifically need image-to-pixel mapping.

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNoOutput frame rate (DMX Out CHOP sample rate).
netNoNetwork DMX protocol: Art-Net or sACN (streaming ACN).artnet
nameNoBase name for the created nodes.
widthNoPixels per row (columns). Each texel of the WxH grid drives one LED fixture.
heightNoRows of pixels. 1 = a single LED strip.
layoutNoPixel wiring order along the strip/grid: horizontal (rows left-to-right), vertical (columns), or serpentine (alternate rows reversed — boustrophedon strips).horizontal
sourceNoTOP path whose image is mapped to the fixtures. If omitted, a built-in moving Ramp TOP test source is created so the chain cooks with no input.
net_addressNoTarget IP address for Art-Net / sACN. Defaults to the operator's own default.
parent_pathNoCOMP to build the pixel-map chain in./project1
start_channelNoDMX start channel (1-512) of the first pixel within the starting universe.
start_universeNoArt-Net / sACN universe of the first pixel.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations provide readOnlyHint=false, openWorldHint=true, destructiveHint=false. Description adds meaningful behavior: chain resizes, samples texels, preserves RGB, returns node paths/channel count/warnings, defaults to a moving Ramp test source, and warns that real output requires verification. Would benefit from more on potential overwriting of existing nodes, but strong beyond annotations.

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

Conciseness4/5

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

Three sentences each earn their place: function, behavior/return values, default/caveat/alternative. Slightly dense but well-structured and front-loaded with the primary purpose.

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?

No output schema, but description compensates by enumerating return values (node paths, channel count, warnings, live controls) and the test source default. Covers prerequisites implicitly with the reachable fixture warning. Complete for a complex tool, though no mention of name collision behavior.

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 all 11 parameters are documented in the schema. The description adds context about width×height resizing and source default, but these are largely already in the schema descriptions. Baseline 3 is warranted.

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?

Specific verb 'Build' + resource 'pixel-mapping chain from source TOP to LED fixture grid and DMX Out CHOP over Art-Net or sACN'. Distinctive from sibling create_dmx_fixture_pipeline, which is explicitly named as an alternative.

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

Usage Guidelines5/5

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

Explicitly states 'Use create_dmx_fixture_pipeline for fixture patching and this tool when you specifically need image-to-pixel mapping.' Provides clear when-to-use and alternative tool guidance.

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

create_live_sourceCreate live source (input layer)A

Build a self-contained source COMP that ingests an external feed — screen grab, NDI, Syphon/Spout, camera, or a video stream (RTSP/SRT/WebRTC) — normalizes it to a target resolution, and exposes a named Null TOP output ready for the mixer, decks, or post-fx chain. The default 'screen_grab' is zero-permission and safe to test anywhere. 'camera' (Video Device In) is opt-in: it can hang TouchDesigner on a macOS permission modal until the user clicks Allow. NDI, Syphon/Spout, and video_stream are platform- and license-gated (NDI requires the NDI Runtime; Syphon is macOS-only, Spout is Windows-only). Par names for the source/sender/URL are probed defensively so a name that differs between TD builds becomes a warning rather than a hard failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoSource kind. DEFAULT screen_grab — zero-permission, safe to test. 'camera' (Video Device In) can hang TD on a macOS permission modal, so it is opt-in.screen_grab
nameNoName for the source system COMP.live_source
resolutionNoTarget resolution [w,h] (a Fit/Resolution stage normalizes the feed).
parent_pathNoWhere to build it./project1
source_nameNo(ndi/syphon_spout) The sender/stream name to receive. (video_stream) the URL (RTSP/SRT/WebRTC). (camera) the device name. Omit for the first available / a sensible default.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description discloses critical runtime behaviors: camera can hang TouchDesigner on a macOS permission modal, NDI requires runtime, Syphon/Spout are OS-specific, and par names are probed defensively turning build differences into warnings. This is substantial behavioral context that annotations alone do not provide.

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?

Three sentences, each earning its place: the first states the core build action and output, the second covers safety/permission/platform caveats, and the third explains defensive probing. Dense but not bloated, and front-loaded with the most important information.

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?

Despite no output schema, the description states the output clearly ('exposes a named Null TOP output'). It accounts for all 5 parameters, platform quirks, permission risks, and defensive behavior. For a creation tool with zero required parameters, this is exceptionally complete.

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?

Input schema covers 100% of parameters, so the baseline is 3. The description adds extra meaning by linking `source_name` to all source kinds and explaining defensive probing of par names, which clarifies how the parameter behaves in different TD builds. It also frames `resolution` as part of a Fit/Resolution stage, adding context beyond the schema.

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+resource: 'Build a self-contained source COMP that ingests an external feed...' and enumerates exact source kinds (screen grab, NDI, Syphon/Spout, camera, video stream). It clearly distinguishes this tool from generic create_* tools by emphasizing the input-layer role and the Null TOP output.

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 provides explicit guidance on when to use each `kind` value (e.g., screen_grab is safe for testing, camera can hang on macOS, NDI/Syphon/Spout are platform-gated). However, it does not name alternative sibling tools or state conditions where this tool should not be used, so it stops short of full exclusions/alternatives.

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

create_livox_lidar_busCreate Livox LiDAR busA

Create a Livox LiDAR adapter scaffold with UDP/WebSocket/file-replay ingest, point-stream schema, zone maps, and calibration notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.livox_lidar_bus
activeNo
server_urlNows://127.0.0.1:56000
zone_countNo
parent_pathNoParent COMP for the Livox scaffold./project1
adapter_modeNoudp_json
receive_portNo
device_addressNoLivox device or adapter host.192.168.1.50
point_rate_hintNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, consistent with a 'create' operation. The description adds value by listing what the scaffold includes, but does not disclose side effects such as whether files are written, whether a new COMP is instantiated at parent_path, or whether existing components are modified.

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 a single, front-loaded sentence that packs core features without waste. Every phrase adds meaningful information about what the scaffold contains.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderately complex tool with 9 parameters and no output schema, the description captures the high-level purpose but omits details about return values, preconditions, project placement, or how the scaffold is structured internally. The parameter defaults and ranges in the schema help, but the description alone would be insufficient for advanced use.

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 only 33%, so the description must compensate. It loosely maps to parameters via 'UDP/WebSocket/file-replay ingest' (adapter_mode) and 'zone maps' (zone_count), but leaves many parameters (active, server_url, receive_port, device_address, point_rate_hint) unexplained beyond schema defaults.

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 clearly states the tool's verb ('Create') and resource ('Livox LiDAR adapter scaffold'), and enumerates specific components (ingest modes, point-stream schema, zone maps, calibration notes). It distinguishes itself from sibling lidar bus tools by specifying Livox as the target hardware.

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?

The description implies usage when creating a Livox LiDAR adapter within TouchDesigner, but provides no explicit when-to-use or alternative guidance. It does not mention similar tools for other lidar types (e.g., Ouster, Hokuyo) or when file_replay vs UDP would be preferred.

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

create_llm_chainCreate LLM chainA

Stand up a prompt → response LLM chain inside TouchDesigner as a self-contained baseCOMP. Two modes: webclient — stock chain using webclientDAT + textDATs + headers tableDAT that POSTs JSON to any OpenAI-compatible endpoint (OpenAI, Anthropic, Ollama, llama.cpp, LM Studio, OpenRouter). tox_drop — drops the dotsimulate LLM LOPs .tox and wires mirror DATs. Default provider=ollama (fully offline, no key). API keys are read from env inside TouchDesigner (os.environ) and written into a headers tableDAT — the MCP server never sees them. Returns container_path, prompt_dat_path, response_dat_path, status_chan (:busy), provider, model, endpoint_url, and missing_env when a key is needed but unset. Notes: webclientDAT uses reqmethod/url/includeheader (verified live TD 099); body content goes via body_builder textDAT + callbacks. Anthropic uses x-api-key header + anthropic-version, not Authorization; Ollama requires ollama serve running on 127.0.0.1:11434; dotsimulate TOX par names are UNVERIFIED.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNowebclient: stock chain via webclientDAT — no extra dependencies, works with any OpenAI-compatible endpoint. tox_drop: drops the dotsimulate LLM LOPs .tox (requires the TOX installed locally).webclient
nameNoInner baseCOMP name. Defaults to llm_<provider> (webclient) or llm_chain (tox_drop).
modelNoModel name. Required for provider=custom. Defaults: openai → gpt-4o-mini, anthropic → claude-sonnet-4-5, ollama → llama3.2.
providerNoLLM provider. ollama default — works fully offline, no API key required. custom requires endpoint_url and model.ollama
tox_pathNoPath to the dotsimulate LLM TOX. Required for mode=tox_drop. Also probes Library/LLM.tox and tox/LLM.tox.
json_modeNoSet response_format={type:json_object} for openai/ollama compatible endpoints. Ignored for anthropic.
max_tokensNoMaximum tokens in the response.
parent_pathNoCOMP path to build inside./project1
temperatureNoSampling temperature [0–2].
auto_requestNoIf true, a datExecuteDAT fires webclient.request() whenever the prompt textDAT changes. Default false — caller drives.
endpoint_urlNoOverride the endpoint URL. Required for provider=custom. Defaults: openai → https://api.openai.com/v1/chat/completions, anthropic → https://api.anthropic.com/v1/messages, ollama → http://127.0.0.1:11434/v1/chat/completions.
system_promptNoWritten into a hidden sys textDAT.You are a concise creative assistant for a TouchDesigner live show.
initial_promptNoSeeds the Prompt textDAT on creation.
expose_controlsNoSurface Send (Pulse), Model, Temperature, MaxTokens, Active, JsonMode, Provider on the wrapper.

TDQS

A4.5/5.0
Behavior5/5

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

The description goes far beyond annotations by disclosing side effects (creates baseCOMP, writes API keys into headers tableDAT), network behavior (POSTs JSON to endpoints), security properties ('MCP server never sees them'), and prerequisites. It even includes verification status ('verified live TD 099') and explicitly flags unverified aspects ('dotsimulate TOX par names are UNVERIFIED'). This is exemplary transparency.

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 appropriately lengthy for a 14-parameter tool but every sentence serves a purpose: mode explanation, defaults, security, return values, and technical caveats. It is front-loaded with the main action and then logically organized. No filler or redundancy.

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?

Given the tool's complexity, no output schema, and rich annotations, the description is remarkably complete. It lists return values (container_path, prompt_dat_path, response_dat_path, status_chan, etc.), explains both modes, covers provider-specific behaviors, and flags unverified parts. The agent has enough context to invoke the tool correctly and set expectations.

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 coverage is 100%, so baseline is 3. The description adds some context not in the schema, such as the offline nature of the default provider and that custom provider requires endpoint_url and model, but these are also partially in the schema descriptions. It adds implementation details like 'webclientDAT uses reqmethod/url/includeheader' but those are not parameter semantics. The added value over the schema is marginal, so a 3 is warranted.

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 clearly states the tool's purpose: 'Stand up a prompt → response LLM chain inside TouchDesigner as a self-contained baseCOMP.' It distinguishes two modes (webclient and tox_drop) with specific implementation details, making it unique from siblings like create_voice_prompt_pipeline or connect_huggingface_inference_bridge. The verb 'stand up' is specific and the resource (LLM chain) is well-defined.

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 provides clear when-to-use guidance by outlining two modes with their prerequisites: webclient for any OpenAI-compatible endpoint, tox_drop requiring the dotsimulate TOX installed locally. It also notes the default provider (ollama) is fully offline with no key, and mentions requirements like 'Ollama requires ollama serve running on 127.0.0.1:11434.' However, it does not explicitly compare against alternative tools or state when not to use this tool, so a 4 is appropriate.

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

create_look_bankCreate look bankA

A playable snapshot row: store N named 'looks' (snapshots of a control COMP's numeric/toggle/menu parameters) in a visible, editable Table DAT, with one momentary recall button per slot (snap or crossfade) plus a master A↔B morph knob that blends continuously between two chosen looks. Reuses manage_cue's morph engine (so a recall behaves exactly like a cue morph, with optional beat/bar quantize) and mirrors slots into the COMP's cues so they interoperate with manage_cue / create_control_surface. Pulses and strings are always skipped at capture. Build cues/params with create_control_panel first.

ParametersJSON Schema
NameRequiredDescriptionDefault
abNo(set_ab) Optionally set the A↔B knob position now (0 = slot A, 1 = slot B, 0.5 = halfway). Omit to just (re)assign the slots.
nameNoName of the look-bank panel container built inside comp_path.look_bank
slotNoSlot name (required for store / recall / delete).
actionNobuild: create the look-bank container (Table DAT + A↔B morph knob + recall button row) on a control COMP. store: snapshot the COMP's current numeric look into a named slot. recall: jump or crossfade to a slot. set_ab: assign which two slots the A↔B knob blends, and optionally set the knob. list / delete slots.build
slot_aNo(set_ab) Slot the A↔B knob reads at value 0.
slot_bNo(set_ab) Slot the A↔B knob reads at value 1.
includeNo(store) Restrict the snapshot to these custom-parameter names. Omit to capture every numeric/toggle/menu parameter (pulses and strings are always skipped).
quantizeNo(recall) Defer the snap/crossfade to the next musical boundary (project tempo), so look changes land on the downbeat. Mirrors manage_cue.off
comp_pathNoControl COMP whose custom-parameter values the looks capture (a control-panel container, e.g. from create_control_panel). The look-bank widgets are built inside it; recall drives this COMP's params./project1
morph_secondsNo(recall) 0 = snap instantly; >0 = crossfade to the slot over this many seconds (eased), via the cue morph engine.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the sparse annotations (readOnly=false, openWorld=true, destructive=false), the description adds crucial behavioral details: 'Pulses and strings are always skipped at capture', recall 'behaves exactly like a cue morph', and slots are mirrored into the COMP's cues. It also mentions the visible/editable Table DAT and the momentary recall button behavior, providing substantial transparency beyond annotations.

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

Conciseness4/5

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

The description is a dense single paragraph but front-loaded with the core concept ('A playable snapshot row') and every clause adds useful information. It is concise relative to the tool's complexity, though it could be restructured with bullets for even easier parsing. No filler or repetition.

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 tool with 10 parameters and no output schema, the description covers the main capabilities: building, storing, recalling, morphing, interop with manage_cue/create_control_surface, and the prerequisite of building with create_control_panel. It does not explicitly mention the list/delete actions, but those are self-explanatory from the schema's action enum. Overall, it provides enough context for correct usage.

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 100%, so the baseline is 3. The description adds meaningful context on top: it clarifies that pulses/strings are always skipped (impacting the `include` parameter), that recall behaves like a cue morph with optional beat/bar quantize (for `quantize` and `morph_seconds`), and that `comp_path` should point to a control-panel container built with create_control_panel. This goes beyond the schema descriptions, though it doesn't independently explain every parameter.

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 clearly states the tool's purpose: it creates a playable snapshot row (look bank) that stores named looks of a control COMP's parameters, with recall buttons and an A/B morph knob. It is specific about the resource (control COMP) and distinguishes from siblings by explicitly referencing reuse of manage_cue's morph engine and interoperability with manage_cue/create_control_surface.

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 provides clear context on usage: it tells users to build cues/params with create_control_panel first, and explains how this tool relates to manage_cue and create_control_surface. However, it lacks explicit exclusions or direct comparisons with alternative tools like manage_presets or create_preset_morph, so it doesn't fully earn a 5.

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

create_ltc_timecode_bridgeCreate LTC timecode bridgeA

Create an LTC receive/generate scaffold with LTC In/Out CHOP placeholders, cue maps, and routing notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoreceive
nameNoGenerated baseCOMP name.ltc_timecode_bridge
activeNo
cue_countNo
frame_rateNo30
parent_pathNoParent COMP for the LTC timecode scaffold./project1
input_deviceNo
output_deviceNo

TDQS

A3.7/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond the annotations by specifying that the tool creates a scaffold with placeholders and routing notes, implying it does not produce a fully functional LTC bridge. This is useful for setting agent expectations. Annotations only indicate readOnly=false and destructive=false, which the description does not contradict.

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 a single sentence that front-loads the action ('Create') and the object ('LTC receive/generate scaffold'), with the supporting components listed in a compact phrase. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no output schema, and minimal annotations, the description is incomplete. It explains what the scaffold contains but does not mention prerequisites, return values, or the meaning of key parameters like active or frame_rate, leaving an agent with significant ambiguity for a relatively complex creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has low description coverage (25% of 8 parameters), so the description must compensate. It partially does by mentioning 'receive/generate' (mode) and 'LTC In/Out' (devices), but it does not explain the semantics of active, cue_count, frame_rate, input_device, output_device, or parent_path beyond what the sparse schema provides.

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 clearly states the tool creates an LTC receive/generate scaffold with specific components (LTC In/Out CHOP placeholders, cue maps, routing notes). The verb 'create' and resource 'LTC receive/generate scaffold' are specific and distinguish it from sibling creation tools like 'create_cue_sequencer' or 'sync_timecode'.

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?

The description implies its usage by stating what it creates (an LTC receive/generate scaffold), so an agent can infer it is for setting up LTC timecode bridges. However, there is no explicit when-to-use guidance or differentiation from alternatives like 'sync_timecode' or 'add_timecode_overlay'.

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

create_macroCreate macro controlA

Add one macro knob (a 0–1 custom parameter) to a COMP that drives many parameters at once, each remapped into its own [min,max] range with an optional response curve — a one-to-many control for sweeping a whole look from a single fader. Targets are bound by expression so they track the macro live.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesMacro control name, e.g. 'Energy' or 'Intensity'.
defaultNoInitial macro value (0–1).
targetsYesParameters this macro drives, each remapped from the macro's 0–1 into [min,max].
comp_pathNoCOMP that will hold the macro knob (usually a control-panel container)./project1

TDQS

A4.3/5.0
Behavior4/5

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

The annotations already indicate a non-read-only, non-destructive, open-world operation. The description adds meaningful behavioral detail: it creates expression-bound targets that track the macro live, and it clarifies the remapping and curve mechanics. This goes beyond the annotations by explaining the underlying mechanism and side effects.

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 two sentences, front-loaded with the core action ('Add one macro knob'), then elaborates on the mechanism and use case. Every clause contributes useful information, with no wasted words.

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 creation tool with full schema coverage and no output schema, the description covers the purpose, the behavior, and the use case. The only minor omission is explicit prerequisites (e.g., that the target COMP must exist), but the comp_path default and schema make this relatively clear. Overall, it is complete enough for an agent to select and invoke correctly.

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 descriptions already cover all parameters (100% coverage), including min, max, curve, and comp_path. The description's mention of '[min,max] range' and 'optional response curve' merely echoes the schema fields without adding a new semantic layer. Therefore, the description adds little beyond what the schema already provides.

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 begins with a specific verb ('Add') and identifies the resource ('one macro knob to a COMP') and its distinctive behavior ('drives many parameters at once, each remapped into its own [min,max] range with an optional response curve'). This clearly differentiates it from sibling tools like create_control_panel or add_custom_parameters by emphasizing the one-to-many mapping.

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 provides clear context: it is for sweeping a whole look from a single fader via one-to-many control. It does not explicitly mention alternatives or exclusion cases, but the intended use case is unambiguous and sufficient for an agent to decide when to select it.

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

create_media_binCreate media binA

Point at a folder on the TouchDesigner machine and build a clip BIN inside a new bin COMP: it scans the folder (filtered to the given extensions, capped at max_clips), creates one Movie File In TOP per file, feeds them through a Switch TOP, and ends on a Null TOP. Exposes Index (current clip), Next / Prev (pulse, wrapping), and Crossfade (seconds) controls — switching clips crossfades by ramping the Switch's fractional index (0s = hard cut). The folder is read inside TD (not the MCP server). If the folder is empty or missing you get an empty, pointable bin instead of an error. Use create_video_player for a hand-listed playlist; use create_media_bin to ingest a whole folder for clip-based VJing.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the bin COMP.media_bin
folderYesFolder on the TD machine to scan for clips/stills.
crossfadeNoCrossfade seconds when switching clips (0 = hard cut).
max_clipsNoCap how many files become Movie File In TOPs.
extensionsNoFile extensions to include (lower-case, no dot).
resolutionNoOutput resolution [w,h].
parent_pathNoWhere to build it./project1

TDQS

A5/5.0
Behavior5/5

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

The description discloses key behavioral traits beyond the annotations: it details the internal pipeline (Movie File In, Switch, Null), exposed controls (Index, Next/Prev, Crossfade), error handling for empty/missing folders, and the crossfade mechanism (ramping fractional index). It also notes that folder reading happens inside TD, a non-obvious execution detail. No contradiction with annotations present.

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 appropriately sized for the tool's complexity. It is front-loaded with the core purpose and then delivers structured, non-redundant details: pipeline, controls, error behavior, and usage guidelines. Every sentence earns its place; there is no fluff or repetition.

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?

Given the tool has 7 parameters, no output schema, and performs a complex build operation, the description is remarkably complete. It explains the resulting component structure, exposed controls, failure mode, execution context, and intended use cases. An agent would know exactly what to expect and how to decide whether to invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description adds context that connects parameters to behavior: 'filtered to the given extensions, capped at max_clips' directly explains the extensions and max_clips parameters, and the crossfade description clarifies the crossfade parameter's semantics. It also implies how 'name' and 'parent_path' are used within the 'new bin COMP' context. This goes beyond the schema's property descriptions.

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 clearly states the tool's purpose with a specific verb ('build a clip BIN inside a new bin COMP') and resource, and explains the workflow (scan folder, create Movie File In TOPs, feed through Switch, end on Null). It also explicitly distinguishes itself from the sibling tool create_video_player, eliminating ambiguity.

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

Usage Guidelines5/5

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

Provides explicit usage guidance: 'Use create_video_player for a hand-listed playlist; use create_media_bin to ingest a whole folder for clip-based VJing.' Also clarifies that the folder is read inside TD rather than the MCP server, which is a critical prerequisite. This gives clear when-to-use and when-not-to-use context.

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

create_mesh_warpCreate mesh warpA

Map a source TOP onto a curved or irregular surface via a deformable textured grid — the curved-surface upgrade to create_projection_mapping's flat corner-pin, for domes, columns, and sculptures. Builds a Geometry COMP holding a grid that is bent into a dome (bulge), ripples (wave), half-cylinder (cylinder), or left flat, textured with the source through a Constant MAT, and rendered through an orthographic Camera + Light + Render TOP. Creates a new baseCOMP under parent_path holding all of these; output is a Null ready for setup_output; exposes a Zoom knob. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
colsNoGrid columns — more columns give a smoother curve but a heavier mesh.
rowsNoGrid rows — more rows give a smoother curve but a heavier mesh.
warpNoSurface shape: bulge (dome), wave (ripples across X), cylinder (half-cylinder wrap), or flat (no deform).bulge
amountNoDeformation strength (0 = flat, 1 = full bend). Ignored when warp is 'flat'.
parent_pathNoParent network where the mesh-warp container is created (default '/project1')./project1
source_pathYesPath of the TOP to map onto the surface (brought in through a Select TOP).
expose_controlsNoWhen true (default), expose a live Zoom (camera distance) knob.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses exactly what the tool creates: 'a Geometry COMP holding a grid...' 'Creates a new baseCOMP under `parent_path`', 'output is a Null ready for setup_output; exposes a Zoom knob.' It also explains the internal node structure and the return payload (summary + JSON block with paths, errors, warnings, preview). This goes far beyond the annotations, giving a complete picture of side effects and results.

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

Conciseness4/5

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

The description is a single dense paragraph but is front-loaded with the purpose. Every sentence adds value, covering the workflow, node structure, output, and return values. It is appropriately sized for a complex tool, though it could be broken into bullets for quicker scanning. Still, it's efficient without fluff.

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?

This is a complex creation tool with no output schema, so the description must cover return values and side effects thoroughly. It does: it mentions the created baseCOMP, specific node types, output Null, exposed Zoom knob, and a detailed JSON return block including container path, node paths, output path, controls, errors, warnings, and preview image. This is comprehensive for the tool's complexity.

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 baseline is 3. The description does not add much new parameter-level meaning beyond the schema; it mentions parent_path and Zoom knob, which are already described in the schema. It provides some context (e.g., warp types map to shapes) but doesn't compensate beyond baseline given the schema already documents parameters thoroughly.

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: 'Map a source TOP onto a curved or irregular surface via a deformable textured grid.' It clearly differentiates from sibling create_projection_mapping by calling itself the 'curved-surface upgrade' for domes, columns, and sculptures. This makes the tool's purpose unambiguous and distinguishes it from flat projection mapping.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool: 'the curved-surface upgrade to create_projection_mapping's flat corner-pin, for domes, columns, and sculptures.' This names an alternative tool and the condition for choosing this one (curved/irregular surfaces vs. flat). It also implies the alternative by contrast, giving clear usage context.

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

create_midi_mapCreate MIDI controller mapA

HARDWARE-GATED SCAFFOLD. Build a MIDI controller preset for a supported device (apc_mini / launchpad / midi_mix / nanokontrol / generic): creates a midiinCHOP + a labeled bind Table DAT, and optionally auto-binds faders/knobs to a target COMP's numeric custom parameters. Explicit bindings can override or supplement the preset. CC/note numbers are best-effort from published MIDI charts and MUST be validated with real hardware — actual assignments depend on device firmware. This tool is HELD FROM RELEASE until hardware validation is complete. For one-at-a-time MIDI learn of a single control, use learn_control instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the MIDI In CHOP node created under parent_path.midi_map
deviceNoController preset. Each preset embeds a best-effort CC/note map for that device (UNVERIFIED — real numbers depend on firmware; validate with hardware). 'generic' builds a bare MIDI In + a template bind table with no preset.nanokontrol
targetNoCOMP whose custom numeric params/cues the preset auto-binds faders/knobs onto. Faders bind to the first N float/int custom pars; pads look for matching cues. Auto-binding is best-effort and hardware-gated.
bindingsNoExplicit control→param/cue overrides. Applied after the preset auto-map. Omit to rely entirely on the device preset's default map.
parent_pathNoCOMP to create the MIDI map inside./project1

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description adds key behavioral details: CC/note numbers are 'best-effort' and 'MUST be validated with real hardware', and the tool is 'HELD FROM RELEASE until hardware validation is complete'. These disclosures about reliability and external dependence are valuable context that annotations alone do not provide.

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

Conciseness4/5

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

The description is compact but information-dense. It front-loads the core action and follows with the key caveats and alternative tool. Every sentence contributes meaning, though the density might push the boundary of conciseness. Still, it is well-structured and free of fluff.

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?

Considering the tool's complexity (5 parameters, nested bindings, no output schema), the description covers essential context: what gets created, device presets, auto-binding behavior, hardware validation, and the alternative. It doesn't exhaustively describe every TouchDesigner-specific output detail, but the schema covers parameters well and the description is sufficient for a capable agent.

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% and the property descriptions are already detailed (e.g., bindings explains 'Explicit control→param/cue overrides'). The description adds context for how parameters fit together (auto-binding to target COMP, preset override), but doesn't add syntactic meaning beyond the schema. Baseline 3 is appropriate given the high schema coverage.

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 clearly states the tool's function: 'Build a MIDI controller preset for a supported device (apc_mini / launchpad / midi_mix / nanokontrol / generic)'. It specifies the concrete output: 'creates a midiinCHOP + a labeled bind Table DAT'. This distinguishes it from sibling tools like learn_control via explicit contrast.

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

Usage Guidelines5/5

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

The description provides explicit guidance: 'For one-at-a-time MIDI learn of a single control, use learn_control instead.' It also clarifies the scope and override mechanism ('Explicit bindings can override or supplement the preset'), giving the agent clear context for when this tool is appropriate.

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

create_midi_note_reactiveCreate MIDI note reactiveA

Build a MIDI note → per-note trigger/velocity chain that exposes bindable channels on a Null CHOP (note0…noteN-1). Unlike learn_control (which binds one CC), this creates a full note-event chain: midiinCHOP → eventCHOP (ADSR envelopes per note) → Null CHOP. Bind any parameter to op('…/notes_out')['note0'] and it pulses with each keypress. source='synthetic' (default) previews without hardware by generating a procedural note pattern — switch to source='device' when a MIDI keyboard is connected. The device path is HARDWARE-GATED (HELD FROM RELEASE until validated with real MIDI gear).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the container COMP created inside parent_path. Must be a valid TD identifier.midi_note_reactive
notesNoHow many note channels to expose (e.g. 12 = one octave, 128 = full keyboard). Each channel is named note0…noteN-1 on the output Null CHOP.
sourceNodevice: a real MIDI In CHOP (hardware-gated; needs a MIDI keyboard/controller — HELD FROM RELEASE until validated with gear). synthetic: a Noise CHOP driving an Event CHOP so it previews without any hardware. Default is synthetic so the chain is immediately visible.synthetic
device_nameNo(device) MIDI device name to filter (e.g. 'Arturia MiniLab mkII'). When omitted the MIDI In CHOP listens on all devices.
parent_pathNoParent COMP path the self-contained container is created inside./project1

TDQS

A4.9/5.0
Behavior5/5

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

The description adds significant behavioral context beyond annotations. It reveals the internal chain structure (midiinCHOP → eventCHOP → Null CHOP), explains how output channels pulse, and crucially discloses that the device path is 'HARDWARE-GATED (HELD FROM RELEASE until validated with real MIDI gear).' This goes well beyond the sparse annotations and clearly communicates side effects and constraints.

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 dense but appropriately sized—about three sentences. It front-loads the purpose, then provides a comparative alternative, usage modes, and a critical warning. Every sentence earns its place; there is no fluff or repetition of schema content.

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?

The description covers the full lifecycle: what the tool builds (the CHOP chain), how to interact with the result (binding to channels), the two source modes with their prerequisites, and the hardware-gating limitation. With no output schema and minimal annotations, the description carries the burden and does so completely for a creation tool of this complexity.

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 100%, setting baseline at 3. The description enriches parameter meaning by explaining the practical difference between 'synthetic' and 'device' (e.g., 'procedural note pattern' vs 'real MIDI keyboard'), including the hardware gating caveat. While the schema already describes each parameter, the description adds actionable context like 'so the chain is immediately visible' and the device_name filtering example, justifying a score above baseline.

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 clearly states the tool's purpose: 'Build a MIDI note → per-note trigger/velocity chain that exposes bindable channels on a Null CHOP (note0…noteN-1).' It uses a specific verb ('Build'), names the resource (MIDI note chain, Null CHOP), and explicitly distinguishes itself from a sibling tool ('Unlike learn_control (which binds one CC), this creates a full note-event chain'). This meets the highest bar for purpose clarity.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: it contrasts with learn_control, explains when to use synthetic vs device sources ('source='synthetic' (default) previews without hardware… switch to source='device' when a MIDI keyboard is connected'), and warns about the hardware-gated device path. This gives the agent clear conditional context and an alternative, fulfilling the dimension fully.

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

create_mocap_stream_bridgeCreate mocap stream bridgeB

Create a generic OptiTrack/Rokoko/Axis Studio/VRPN-style mocap bus scaffold with joint and rigid-body mapping surfaces.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.mocap_stream_bridge
activeNo
server_urlNows://127.0.0.1:9002
parent_pathNoParent COMP for the mocap scaffold./project1
source_modeNoosc
receive_portNo
skeleton_countNo
coordinate_spaceNotouchdesigner
rigid_body_countNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already indicate a creation action (not read-only, not destructive), and the description adds the concept of a 'scaffold' with mapping surfaces, implying a network structure setup. However, it doesn't disclose side effects, external dependencies, or what the scaffold actually does beyond the vague mapping surface mention, which is a moderate transparency gap.

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 a single, focused sentence that immediately conveys the action and scope using specific terminology. It contains no redundant words or filler, making it highly efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters and no output schema, the description provides only a high-level overview. It fails to explain what a 'bus scaffold' entails in a TouchDesigner context, how the mapping surfaces are used, or how this tool compares to similar sibling tools, leaving the agent under-informed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (22%), so the description was expected to compensate, but it only vaguely references 'joint and rigid-body mapping surfaces' without connecting these to specific parameters like skeleton_count or rigid_body_count. Parameter names and enums are somewhat self-explanatory, but nuanced aspects such as source_mode differences and coordinate_space implications are left unexplained.

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 clearly identifies the tool as creating a generic mocap bus scaffold with joint and rigid-body mapping surfaces, naming multiple supported systems (OptiTrack, Rokoko, Axis Studio, VRPN). It somewhat distinguishes itself from sibling tools like create_optitrack_tracking_bus by emphasizing 'generic' and multi-protocol, though it doesn't explicitly point to alternative tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the many sibling mocap bridge tools (e.g., create_optitrack_tracking_bus, connect_xsens_mvn_mocap). There are no exclusions, prerequisites, or preference indicators, leaving the agent without decision criteria for tool selection.

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

create_modulatorsCreate modulatorsA
Destructive

Build a bank of N BPM-synced LFOs in one self-contained container — each an oscillator (sine/triangle/saw/square or a random sample-&-hold) with its own rate-in-beats, output range and phase offset. Every rate locks to a tempo source (a create_tempo_sync Null, or TouchDesigner's global tempo) by expression, so the whole bank speeds up/slows down with the music and stays phase-continuous across tempo changes. All outputs land on one Null CHOP (mod_out) with one named channel per modulator, ready for bind_to_channel — the 'everything breathes' lever. Note: modulators are timeline-driven, so they only move while the timeline is playing. Re-running with an existing container name rebuilds it in place (clearing that container's children), so this tool is marked destructive and hidden from the safe profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the self-contained modulator-bank container.modulators
modulatorsYesThe modulators (LFOs) to build. Each becomes one named output channel on the bank's Null.
bpm_channelNoName of the BPM channel on the tempo source to lock rates to.bpm
parent_pathNoParent COMP the 'modulators' container is created inside./project1
tempo_sourceNoPath to an existing tempo Null/Beat CHOP carrying a 'bpm' channel (e.g. the Null from create_tempo_sync, '/project1/tempo_sync/tempo'). Omit to create a fresh Beat CHOP locked to TouchDesigner's global tempo inside the bank.
expose_controlsNoExpose a live custom-parameter page on the bank: a master Rate multiplier and a master Depth (amplitude) scale, so you can speed up or flatten the whole bank from one knob during a show.

TDQS

A4.5/5.0
Behavior5/5

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

It discloses destructive re-run behavior ('rebuilds it in place, clearing that container's children'), timeline dependency ('only move while the timeline is playing'), tempo-lock expression behavior, and output structure (one Null CHOP with named channels). This goes well beyond the annotations, which only declare destructive=true and readOnly=false.

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 a single dense paragraph that front-loads the core purpose and then efficiently covers output, tempo behavior, timeline constraint, and destructive re-run. No sentence is filler; each adds critical information for correct invocation.

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?

Given the tool's complexity (6 params, no output schema), the description covers return shape (Null CHOP 'mod_out'), integration with bind_to_channel, destructive consequences, and runtime constraints. It is complete enough for an agent to select and invoke correctly.

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?

The input schema has 100% coverage for all 6 parameters, so the baseline is 3. The description adds some narrative context around rate_beats and phase ('stays phase-continuous'), but it mostly restates what the schema already documents for each parameter.

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: 'Build a bank of N BPM-synced LFOs in one self-contained container.' It clearly distinguishes this from sibling tools like create_tempo_sync by describing the LFO bank, per-modulator outputs, and the single Null CHOP it produces.

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 frames the tool as the 'everything breathes' lever and mentions readiness for bind_to_channel, implying a use case for animation/modulation needs. It does not explicitly name alternatives or say when not to use it, but it gives clear context about timeline-driven behavior and tempo locking.

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

create_monitor_layout_panelCreate monitor layout panelB

Create a Monitors DAT inventory scaffold with monitor maps, GPU maps, preflight checks, and setup notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.monitor_layout_panel
gpu_countNo
parent_pathNoParent COMP for the monitor layout scaffold./project1
monitor_countNo
include_direct_display_hintNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive write operation. The description adds that it creates a scaffold with specific parts, which gives some context about what actions it performs, though it doesn't disclose details about side effects, permissions, or network modifications.

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 a single sentence that is front-loaded with the primary action ('Create a Monitors DAT inventory scaffold') and then lists the included components. Every word adds value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters, no output schema, and only a 40% schema description coverage. The description leaves significant gaps: it doesn't explain what a 'Monitors DAT inventory scaffold' is, what 'preflight checks' entail, or how parameters influence the result. The agent would likely be uncertain about expected behavior and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 40%; the description does mention 'monitor maps' and 'GPU maps' which loosely relate to monitor_count and gpu_count, but it doesn't explain parameter semantics such as what include_direct_display_hint does or how parent_path is used. The description fails to compensate for the low schema coverage.

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 clearly states the tool's purpose: 'Create a Monitors DAT inventory scaffold' and lists specific components (monitor maps, GPU maps, preflight checks, setup notes). This specific verb+resource combination distinguishes it from sibling tools like create_control_panel or inspect_gpu_and_displays, which focus on different aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, contexts (e.g., when setting up multi-monitor systems), or scenarios where other tools would be more appropriate. No exclusions or alternative tool names are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_motion_reactiveCreate motion reactiveA

Build a video-analysis chain that exposes ready-to-bind reactive channels — overall brightness plus frame-to-frame motion energy — on a Null CHOP. The camera counterpart to extract_audio_features: bind any parameter to op('…/motion_reactive/features')['motion'] and it responds to movement in front of the camera, or ['brightness'] to ambient light. A Sensitivity knob scales both. Creates a new baseCOMP under parent_path holding the source, a downsized monochrome analysis chain, and a 'features' Null CHOP output. Source can be the live camera (may prompt for macOS permission), a movie file, an animated synthetic pattern (for testing without a camera), or an existing TOP. Optical flow is unavailable on macOS, so direction isn't exposed. Returns a summary plus a JSON block with the container path, created node paths, the features Null path, the channel names, exposed controls, any node errors, and warnings (no preview image — the output is a CHOP, not a TOP).

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoVideo source. 'camera' = live webcam/capture device (the real-world default; creating it may pop a one-time macOS camera-permission dialog — click Allow). 'file' = a movie file. 'synthetic' = an animated noise pattern, handy for testing without any device permission. 'existing_top' = analyze a TOP you already have.camera
parent_pathNoParent network where the motion-reactive container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose a live 'Sensitivity' knob (a gain over every feature channel).
movie_file_pathNoPath to a movie file to play as the source; used only when source='file'.
existing_top_pathNoPath of an existing TOP to analyze; used only when source='existing_top'.
analysis_resolutionNoThe video is downsized to this square resolution before analysis — small keeps it cheap (the reactive values barely change with size).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations already flagging write/open-world behavior, the description adds substantial context beyond them: macOS camera-permission side effects, creation of a baseCOMP and child nodes under parent_path, the macOS optical-flow restriction, and the exact return shape (summary + JSON block). It also discloses that 'no preview image' is returned because the output is a CHOP, not a TOP. No contradiction with 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 long but every clause earns its place — purpose is front-loaded, then usage, then creation/behavior details, then return format. It is well-structured with no filler or repetition of schema content.

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?

This is a complex creation tool with no output schema, yet the description fully covers return values (summary + JSON block with container path, node paths, channel names, controls, errors, warnings), side-effect behavior, platform caveats, and all source variants. The high complexity and absent output schema demand exactly this level of detail.

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%, and each parameter already has rich schema descriptions (source enum values, resolution tradeoff, conditional file paths). The description reinforces the Sensitivity knob context and the downsized analysis chain but does not add meaning beyond what the schema already provides, so the baseline of 3 applies.

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+resource: 'Build a video-analysis chain that exposes ready-to-bind reactive channels — overall brightness plus frame-to-frame motion energy — on a Null CHOP.' It clearly differentiates from siblings by explicitly positioning itself as 'The camera counterpart to extract_audio_features' and by noting that optical flow is unavailable on macOS (distinguishing it from create_optical_flow).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the sibling alternative (extract_audio_features), explains the exact binding pattern to the output channels, and gives source-selection guidance — 'synthetic' is 'handy for testing without any device permission,' 'existing_top' analyzes an existing TOP, and camera may prompt for macOS permission. The macOS optical-flow limitation also clarifies when the tool should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_mpcdi_projection_mapperCreate MPCDI projection mapperA

Create an MPCDI projection-calibration scaffold with MPCDI TOP/DAT, projector maps, region maps, and setup notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.mpcdi_projection_mapper
activeNo
config_fileNoPath to the MPCDI calibration/config file.
parent_pathNoParent COMP for the MPCDI projection mapper scaffold./project1
region_countNo
projector_countNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-read-only, non-destructive write operation. The description adds the specific scaffold contents, which provides useful context beyond the annotations, but it does not disclose potential side effects such as overwriting existing nodes or requiring a pre-existing MPCDI config file.

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 a single, focused sentence that front-loads the core action and output. Every element adds value without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters and no output schema, the description offers a high-level overview of the scaffold's contents but omits parameter-specific behavior and any operational caveats. It is adequate for basic understanding but not fully complete for an agent to invoke correctly without additional inference.

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 descriptions cover only name, config_file, and parent_path; active, region_count, and projector_count lack explanatory text. The description indirectly links projector_count and region_count to 'projector maps' and 'region maps', but does not clarify parameter constraints or how config_file is used, leaving gaps that the description only partially compensates for.

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 clearly states the tool creates an MPCDI projection-calibration scaffold and lists specific contents (MPCDI TOP/DAT, projector maps, region maps, setup notes). This distinguishes it from sibling tools like create_projection_mapping or projector_calibration_wizard by focusing on MPCDI-specific calibration structures.

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?

The term 'MPCDI projection-calibration scaffold' implicitly conveys when to use this tool, but there is no explicit guidance on alternatives or exclusions. The description does not mention when to prefer this over similar creation tools, leaving the agent to infer from the MPCDI keyword.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_multi_outputCreate multi-outputA

Fan a master TOP across N projectors/displays: each output is a cropped slice (horizontal or vertical) resized to full projector resolution and ended on a Null, ready for setup_output. Set overlap for edge-blending — tiles widen into their neighbours and a GLSL feather fades the shared seams so physically-overlapping projectors blend smoothly. Creates a new baseCOMP under parent_path holding the Select TOP, per-tile Crop (+ optional GLSL feather) and Null outputs, and optional Window COMPs. With as_windows, each tile also gets a borderless Window COMP offset across the desktop so it lands on its own display (left closed — open in Perform mode). Use setup_output instead for a single-window output; create_dome_output/create_cubemap_dome for curved/fulldome instead of flat tiling. Returns a summary plus a JSON block with the container path, created node paths, the first output path, the full list of output and window paths, and any node errors/warnings, with an inline preview image of the first tile.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoHow many outputs to split the master into (one per projector/display).
layoutNoSlice the master side-by-side (horizontal) or stacked (vertical).horizontal
overlapNoEdge-blend: overlap each tile into its neighbor by this fraction of a tile's width, with a linear feather at the shared seams so physically-overlapping projectors blend smoothly (0 = abutting tiles, no blend). Try 0.1–0.3.
as_windowsNoAlso create a borderless Window COMP per tile, offset across the desktop so each lands on its own display. Left closed — open them in Perform mode when ready.
resolutionNoPer-output (per-projector) resolution.1080p
parent_pathNoParent network where the multi-output container is created (default '/project1')./project1
source_pathYesThe master TOP to fan out across the projectors/displays.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond the annotations, such as the creation of a new baseCOMP under parent_path, the node structure (Select TOP, per-tile Crop, optional GLSL feather, Null outputs), and the as_windows behavior with borderless Window COMPs left closed. While it doesn't discuss failure modes or collision behavior, the destructiveHint=false annotation covers non-destructive intent, and the description is consistent with readOnlyHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence contributes. It is front-loaded with the core purpose, then elaborates on edge blending, node creation, window behavior, alternatives, and return value. The structure is logical and not wasteful, though it is dense enough that a 5 would require a more concise presentation.

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 complex tool with 7 parameters and no output schema, the description is complete. It explains the created node structure, the behavior of as_windows, the overlap feature, the alternatives, and explicitly describes the return value (summary plus JSON block with all relevant paths and an inline preview). There is no obvious missing context.

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 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema by explaining the overlap parameter in depth (tiles widen into neighbors, GLSL feather fades seams), the as_windows parameter (borderless Window COMP offset, left closed for Perform mode), and the overall layout behavior. This elevates it above the baseline.

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+resource: 'Fan a master TOP across N projectors/displays' and explains exactly what each output is (cropped slice resized to projector resolution, ended on a Null). It also distinguishes itself from sibling tools by explicitly naming setup_output for single-window output and create_dome_output/create_cubemap_dome for curved/fulldome applications.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool vs alternatives: 'Use setup_output instead for a single-window output; create_dome_output/create_cubemap_dome for curved/fulldome instead of flat tiling.' It also notes the intended follow-up (ready for setup_output) and the as_windows usage pattern (open in Perform mode).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_multitouch_panel_busCreate Multi Touch panel busB

Create a Windows Multi Touch In DAT scaffold with panel maps, touch-slot maps, and platform notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.multitouch_panel_bus
activeNo
max_touchesNo
panel_countNo
parent_pathNoParent COMP for the Multi Touch panel scaffold./project1
mouse_as_touchNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and openWorldHint=true, so the description does not need to restate mutation or world creation. It adds context by mentioning the scaffold contains panel maps, touch-slot maps, and platform notes, which implies multi-component creation. However, it does not disclose potential side effects, required permissions, or interaction with existing networks, leaving some gaps.

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 a single, compact sentence that conveys the core purpose and key inclusions without any filler. It is well-structured and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool creates a scaffold with multiple components, yet the description is minimal. There is no output schema, so the description should explain what the scaffold looks like, what parameters control, and what the expected result is. It does not provide enough detail for a complex creation tool, especially given the large sibling list with similar names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, with only 'name' and 'parent_path' described. The description does not elaborate on any parameters or how they influence the scaffold. It mentions 'panel maps' which could relate to panel_count, but this is not explicit. The description fails to compensate for the low schema coverage.

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 clearly states the tool's function: 'Create a Windows Multi Touch In DAT scaffold' with specific contents (panel maps, touch-slot maps, platform notes). This distinguishes it from sibling creation tools by naming the exact resource type and platform. The verb 'Create' is specific and the scope is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or related tools. The description only states what it does, leaving the agent to infer appropriate usage from the name and context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_ncam_camera_tracking_busCreate NCAM camera tracking busC

Create an NCAM camera-tracking scaffold with pose, lens, video-preview, and calibration maps.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.ncam_camera_tracking_bus
portNo
activeNo
parent_pathNoParent COMP for the NCAM scaffold./project1
camera_countNo
include_video_topNo
lens_profile_countNo

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is known. The description adds that it creates a scaffold with certain maps, but does not disclose any side effects, prerequisites, or runtime behavior beyond creation. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core purpose. It earns its place without unnecessary verbosity, though it sacrifices informative detail for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, only 29% schema coverage, no output schema, and a large sibling set, the description is far too sparse. It does not explain what a 'scaffold' entails, how parameters affect the result, or what the agent should expect after invocation. The agent cannot confidently invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29% (2 of 7 parameters have descriptions). The description mentions map types (pose, lens, video-preview, calibration) but does not explain any parameter semantics. With low schema coverage, the description should compensate by explaining key parameters like port, active, camera_count, and lens_profile_count, but it does not.

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 clearly identifies the resource (NCAM camera-tracking scaffold) and lists the included maps (pose, lens, video-preview, calibration). It is specific to this tool and distinguishes it from other tracking-bus tools by name and content, though it does not explicitly contrast with siblings such as create_blacktrax_tracking_bus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternative tracking-bus creation tools. Given the large number of sibling tools (e.g., create_optitrack_tracking_bus, create_blacktrax_tracking_bus), the lack of explicit usage context or exclusions is a notable gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_ndi_router_matrixCreate NDI router matrixA

Create a stable NDI source/output routing matrix scaffold without claiming live NDI discovery.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.ndi_router_matrix
activeNo
parent_pathNoParent COMP for the NDI matrix./project1
output_countNo
source_countNo
include_previewNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-read-only, open-world, and non-destructive, but the description adds key behavioral context: this creates a scaffold and deliberately avoids live NDI discovery. This goes beyond the annotations and helps the agent understand the tool's limitations.

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 a single sentence that conveys purpose, scope, and a key limitation without unnecessary words. Every part of the sentence adds value, making it highly concise and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has six parameters, no output schema, and sparse annotations, the description should explain what the scaffold consists of and what the parameters affect. It only provides a high-level statement, leaving significant ambiguity about the actual result and behavior. The description is too terse for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has only 33% parameter description coverage, with four of six parameters undocumented. The tool description does not mention any parameter semantics, leaving the agent without guidance on what 'output_count', 'source_count', 'include_preview', or 'active' actually control. The description fails to compensate for the schema gaps.

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 clearly states a specific verb (create) and resource (NDI source/output routing matrix scaffold), and explicitly scopes it as 'stable' and 'without claiming live NDI discovery.' This distinguishes it from related sibling tools that might imply live discovery or different router types.

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 phrase 'stable scaffold without claiming live NDI discovery' provides clear context on when to use this tool: when a scaffold is needed and live discovery is not desired. However, it does not name alternatives or explicitly say 'use this instead of X,' so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_node_chainCreate node chainA

Create multiple nodes and (optionally) connect them in sequence. Returns all created paths; on failure it stops and reports partial progress without deleting anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodesYesOrdered list of nodes to create.
parent_pathYesParent COMP to create the chain inside.
connect_sequentiallyNoWire output[0] → input[0] for each consecutive pair.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (non-read-only, non-destructive), the description discloses that on failure it stops and reports partial progress without deleting anything, and that it returns all created paths. This adds valuable behavioral context about error handling and return behavior that annotations do not cover.

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 two sentences, front-loaded with the core action, and the second sentence adds critical failure/return behavior without excess. Every sentence serves a purpose, making it highly concise and well-structured.

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?

The rich schema fully documents parameters, and the description covers failure semantics and return values, making the tool adequately specified for an agent. It lacks explicit prerequisites (e.g., parent_path must exist), but overall it is sufficient for correct invocation.

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?

The schema provides 100% coverage with detailed descriptions for all three parameters, including the nodes array structure, parent_path, and connect_sequentially. The tool description adds little beyond what the schema already states, only reiterating the optional connection behavior; no new parameter semantics are introduced.

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 uses the specific verb 'Create' and resource 'multiple nodes', with the optional 'connect them in sequence' clearly distinguishing it from singular create tools like create_td_node. It states exactly what the tool does and its scope, leaving no ambiguity about its purpose.

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?

The description implies usage when creating a chain of nodes, but it does not explicitly state when to use this tool over alternatives like create_td_node or connect_nodes. No exclusions or alternative tool references are provided, leaving the usage context somewhat implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_npr_filterCreate NPR painterly filterA

Apply a non-photorealistic painterly filter to an existing TOP. A generalized Kuwahara (sector-based local variance smoothing) runs in a single GLSL TOP and branches into three looks selected by mode: oil (flat color regions, preserved edges), pencil (graphite sketch via luminance × edge magnitude), or watercolor (quantized chroma + low-frequency bleed). Creates a Select TOP → GLSL TOP → Null TOP chain under parent_path and exposes Radius / Smoothness / Strength as custom parent params bound by expression for live tweaking. Returns the GLSL TOP path, the bind-ready output null path, the fragment DAT path, exposed controls, and an glsl_compile_verified flag (always false offline — verify post-cook with get_td_node_errors).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoPainterly look. oil: full Kuwahara → flat color regions with preserved edges. pencil: luminance + edge-mag → graphite sketch. watercolor: quantize chroma + low-freq bleed.oil
nameNoBase name for the glslTOP (textDAT becomes `<name>_frag`, output becomes `<name>_out`, source select becomes `<name>_src`).npr1
radiusNoSampling radius in texels. Cost is O(radius² · sectors) — keep modest on 4K.
sectorsNoNumber of generalized-Kuwahara sectors. 8 = smoother painterly; 4 = classic Kuwahara (cheaper).8
strengthNoWet/dry mix between source (0) and filtered output (1). Live control.
resolutionNoOutput resolution: 'input' inherits from the source (default), or '720p' (1280x720), '1080p' (1920x1080), '4K' (3840x2160).input
smoothnessNoBlend between hard min-variance sector pick (0) and softmax-weighted average across sectors (1). Live control.
parent_pathNoParent COMP path to create the glslTOP + textDAT + nullTOP inside./project1
source_pathYesAbsolute path of an existing TOP to filter (e.g. '/project1/render1'). Pulled in via a Select TOP (no cross-COMP wire).

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses significant behavior: it creates a Select→GLSL→Null chain, exposes live-tweakable params, and explicitly warns that `glsl_compile_verified` is always false offline and to verify with `get_td_node_errors`. It also notes the cost model in the schema but the description adds the offline-compile caveat and return-value structure.

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?

Three dense sentences front-load the core purpose and then systematically cover algorithm, node chain, exposed params, and return values. No filler or repetition.

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 tool with 9 params and no output schema, the description covers the algorithm, chain creation, exposed controls, and exact return values including the compile-verification caveat. This is complete for an agent to invoke and interpret results.

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 coverage is 100% with detailed parameter descriptions (modes, defaults, ranges, cost hints). The description adds no new parameter-level info beyond mentioning Radius/Smoothness/Strength as exposed parent controls, which is a behavioral detail rather than input semantics. Baseline 3 applies.

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 opening sentence uses a specific verb+resource ('Apply a non-photorealistic painterly filter to an existing TOP'), and the description elaborates with three distinct modes (oil, pencil, watercolor), clearly distinguishing it from sibling tools like create_glsl_shader or create_raytk_op.

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?

The description focuses entirely on mechanics and does not explicitly state when to choose this over alternatives. Usage is implied (painterly NPR effect on a TOP), but there is no 'when-not' or comparison to sibling create_* tools, so guidance remains implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_nuitrack_body_busCreate Nuitrack body busA

Create a TouchDesigner scaffold for Nuitrack skeleton data over OSC, WebSocket, TCP JSON, or sample mode. Produces a stable body_bus CHOP contract and setup notes; live SDK/device calibration must be validated separately.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the generated baseCOMP.nuitrack_body_bus
activeNoStart the transport active where supported.
sourceNoTransport for Nuitrack skeleton data.osc
joint_setNoJoint subset to expose as normalized body channels.full_body
max_bodiesNoMaximum tracked bodies exposed in the output CHOP contract.
server_urlNoWebSocket URL when source is websocket.ws://127.0.0.1:8767
listen_portNoLocal port for OSC/TCP skeleton input.
parent_pathNoParent COMP where the Nuitrack body-bus container is created./project1
channel_prefixNoPrefix for output CHOP channels, e.g. body0_head_x.body

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral context beyond the annotations: it says the tool 'Produces a stable body_bus CHOP contract and setup notes' and warns that 'live SDK/device calibration must be validated separately.' This tells the agent about the output format and a critical limitation. The annotations only indicate read/write/destructive flags, so this extra context is valuable.

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 two sentences, concise and front-loaded. The first sentence states the action and scope, the second sentence describes the output and a key caveat. No redundant or filler content.

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?

The description is reasonably complete for a scaffold tool: it covers what is created (scaffold, CHOP contract, setup notes), the transport modes, and a necessary caveat about calibration. It does not explain return values in detail, but there is no output schema. Given the 9 parameters and lack of output schema, the description provides enough context to understand the tool's outcome and limitations, though it could have elaborated on sample mode or the 'stable' contract.

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% (every parameter has a description), so the baseline is 3. The tool description does not add significant extra parameter semantics beyond what the schema already provides; it only lightly references transport modes and output contract, which map to existing parameters like 'source' and 'channel_prefix'.

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 clearly states the tool's function: 'Create a TouchDesigner scaffold for Nuitrack skeleton data' with explicit transport modes (OSC, WebSocket, TCP JSON, sample). It names the resource (TouchDesigner scaffold for Nuitrack skeleton data) and the verb (Create), distinguishing it from sibling tools like create_azure_kinect_body_bus or create_optitrack_tracking_bus.

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?

The description implies usage for Nuitrack skeleton data scenarios, but does not explicitly mention when to use it versus alternatives, nor provide exclusions. It does not name sibling tools or say 'use this instead of X'. The caveat about calibration being validated separately is more of a warning than a usage guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_openxr_controller_bridgeCreate OpenXR controller bridgeA

Create an OpenXR/SteamVR controller input scaffold for pose, trigger, grip, thumbstick, and button streams supplied by an external adapter.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.openxr_controller_bridge
activeNo
server_urlNows://127.0.0.1:9050
parent_pathNoParent COMP for the OpenXR scaffold./project1
source_modeNoosc
receive_portNo
controller_countNo
coordinate_spaceNotouchdesigner

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds context beyond annotations by noting the scaffold is for controller input streams supplied by an external adapter. However, it does not disclose the full behavioral implications of 'creating a scaffold' (e.g., what nodes are created, whether existing network elements are modified, or setup steps). Annotations already indicate non-read-only, non-destructive, open-world behavior, so the description contributes moderate extra context.

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 a single sentence with zero filler, starting with the action verb 'Create' and listing specific stream types. It is appropriately front-loaded and every word contributes to conveying the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/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, the description is too sparse. It does not explain the scaffold's structure, configuration requirements, expected return, or how to use the result after creation. This leaves the agent without enough context to select and invoke the tool correctly in varied scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (name and parent_path have descriptions). The description does not compensate: it provides no explanation of parameters like source_mode, controller_count, coordinate_space, or receive_port, nor how they relate to the scaffold's function. Given the low coverage, this is a significant gap.

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 uses a specific verb ('Create') and resource ('OpenXR/SteamVR controller input scaffold'), further detailing the stream types (pose, trigger, grip, thumbstick, button) and the external adapter source. This clearly distinguishes it from other bridge-creation tools in the sibling list, which focus on mocap, scene bridges, or other integrations.

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?

Usage is implied rather than explicitly stated: the description indicates it is for OpenXR/SteamVR controller input from an external adapter, but does not mention when to prefer this over alternatives or any exclusion criteria. Sibling tools like create_mocap_stream_bridge exist, but no comparative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_optical_flowCreate optical flowA

Build a CPU motion-energy field from a video source (cheap drop-in for displacement / particle chains; NOT a real dense optical-flow solver). Output is a single-channel TOP: bright = motion, mid-grey = still, computed as gain × (current − previous luminance) + 0.5. In direction_from='edges' mode the result is multiplied by a Sobel edge map for a coarse where-is-motion-relative-to-edges estimate — still not a true dx/dy gradient flow. No CUDA, no external models — built entirely from stock TD TOPs: blurTOP (pre-blur), monochromeTOP, cacheTOP (previous-frame delay), compositeTOP subtract (frame diff), optional edgeTOP cross-multiply, mathTOP (sensitivity gain + 0.5 recenter), feedbackTOP+levelTOP (temporal smoothing). Defaults to TD's bundled Mosaic.mp4 test clip so the chain builds and previews standalone without a live camera (avoids macOS permission modal). Output is a nullTOP. Reads 0 when TD timeline is paused and the source is static — that is correct behavior. Returns a summary plus JSON with node paths, controls, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
blurNoSpatial pre-blur (pixels) on source before differencing — suppresses high-frequency camera noise. Maps to blurTOP size.
nameNoName of the container COMP created under parent_path.optical_flow
sourceNoAbsolute path of a TOP to analyze for motion (pulled in via selectTOP so it can live anywhere). Omit to use TD's bundled Mosaic.mp4 test clip so the chain previews standalone without a live camera (avoids macOS permission hang).
smoothingNoTemporal smoothing on the flow output (feedbackTOP cross-fade). 0 = raw per-frame flow (jittery); 1 = ghosted/laggy.
resolutionNoOutput resolution [width, height] in pixels. Default is half-HD — CPU optical flow is bandwidth-bound; larger resolutions are slower.
parent_pathNoParent COMP path the optical flow container is created inside./project1
sensitivityNoMultiplier on the raw frame difference (before the 0.5 recenter). Higher values pick up subtler motion (and more noise). Maps to mathTOP gain.
direction_fromNo'diff' (default, cheapest): scalar frame-difference luminance (temporal motion energy). 'edges': cross frame-diff with Sobel edgeTOP for a coarse where-is-motion-relative-to-edges estimate — more flow-like but still a scalar, not a dx/dy vector, and ~2× cost.diff

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnly=false, openWorld=true, destructive=false), the description discloses detailed behavior: output is a single-channel TOP with bright=motion, mid-grey=still, the exact formula `gain × (current − previous luminance) + 0.5`, and the Sobel edge interaction in 'edges' mode. It also clarifies edge-case behavior (reads 0 when paused/static) and the return payload (summary + JSON with node paths, controls, warnings, inline preview).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but not bloated; every sentence provides useful information, from the algorithm and implementation details to behavior under specific conditions. It is front-loaded with the core purpose, then expands into output format, internals, and fallback behavior. Slightly long but justified by the tool's complexity.

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?

With 8 parameters and no output schema, the description fills important gaps: it explains the output format (single-channel TOP, nullTOP), the return value (summary plus JSON with nodes/controls/warnings/preview), performance characteristics (CPU, no CUDA), and the default test clip to avoid permission prompts. It also addresses a potential gotcha (reads 0 when paused) which users would otherwise misinterpret.

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 coverage is 100%, so the schema already documents each parameter thoroughly. The description adds algorithmic context (e.g., frame differencing, gain, blur purpose) but doesn't materially extend parameter-level semantics beyond what the schema descriptions already provide. The description mostly reinforces schema details such as the default test clip and direction_from modes.

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 states a specific action: 'Build a CPU motion-energy field from a video source', and further differentiates it as a 'cheap drop-in for displacement / particle chains' and explicitly NOT a real dense optical-flow solver. This clearly distinguishes it from sibling tools like create_displacement_warp or create_motion_reactive.

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 provides clear context on when to use this tool: as a lightweight, CPU-only alternative to real optical flow, and notes the trade-offs of the 'edges' mode. It also explains the default Mosaic.mp4 clip avoids permission prompts, which guides usage in headless or non-interactive contexts. It doesn't name a specific sibling alternative but gives clear when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_optitrack_tracking_busCreate OptiTrack tracking busB

Create an OptiTrack/NatNet tracking scaffold with receiver, rigid-body maps, marker maps, and calibration notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.optitrack_tracking_bus
activeNo
data_portNo
parent_pathNoParent COMP for the OptiTrack scaffold./project1
command_portNo
marker_countNo
server_addressNo127.0.0.1
rigid_body_countNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutation and non-destructive intent. The description adds that it builds a scaffold with specific parts, but does not disclose side effects like number of nodes created, collision behavior, or external system dependencies.

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 a single, direct sentence with no filler. It efficiently communicates the tool's scope while listing the critical scaffold components.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the return behavior is unexplained. The description gives a high-level overview but lacks details on the scaffold's structure, node hierarchy, or post-creation configuration. Adequate for initial selection but not for full operational understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only 2 of 8 parameters are described in the schema (25% coverage). The description vaguely references concepts like rigid-body maps and marker maps but does not explain parameters such as data_port, server_address, or marker_count, leaving most settings underspecified.

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 specifies a concrete resource (OptiTrack/NatNet tracking scaffold) and enumerates its key components (receiver, rigid-body maps, marker maps, calibration notes). This clearly differentiates it from sibling tools like create_blacktrax_tracking_bus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as create_blacktrax_tracking_bus or create_ncam_camera_tracking_bus. There is no mention of prerequisites, integration scenarios, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_orbbec_depth_silhouetteCreate Orbbec depth silhouetteA

Create an Orbbec/Kinect-compatible depth silhouette scaffold with synthetic/file fallbacks, stable silhouette_out and depth_preview TOPs, and explicit hardware/SDK validation warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.orbbec_depth_silhouette
activeNoStart device/file source active where supported.
invertNoInvert the silhouette mask.
smoothNoBlur size for mask smoothing.
sourceNoDepth source path. Synthetic is the offline-safe default.synthetic
movie_fileNoMovie/depth file for source=file.
parent_pathNoParent COMP for the Orbbec silhouette./project1
far_thresholdNoFar depth cutoff.
near_thresholdNoNear depth cutoff.
source_top_pathNoExisting TOP path to select instead of creating a device/file source.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already indicating non-readonly (false) and non-destructive (false), the description adds valuable behavior details: synthetic/file fallbacks, stable output TOP names, and explicit hardware/SDK validation warnings. This helps the agent predict outcomes even when hardware is absent, though it does not disclose every potential side effect.

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 a single, dense sentence that front-loads the core purpose and packs in the key differentiators (hardware compatibility, fallbacks, stable outputs, validation warnings). Every phrase earns its place, with no wasted words or redundancy.

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 tool with 10 parameters and no output schema, the description gives a solid overview: it explains what is created, fallback behavior, stable TOPs, and validation warnings. However, it doesn't elaborate on the scaffold structure or prerequisite setup, but the rich schema compensates. Overall, it is reasonably complete for an agent to select and invoke the tool.

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?

The input schema provides 100% coverage with descriptions for all 10 parameters, so the description need not repeat them. The description's mention of 'synthetic/file fallbacks' touches on the source parameter behavior, but it does not add meaningful semantic detail beyond what the schema already offers. Thus the baseline of 3 applies.

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 clearly states a specific action (create), the resource (Orbbec/Kinect-compatible depth silhouette scaffold), and key features (fallbacks, stable TOPs, validation warnings). It distinguishes itself from the generic sibling create_depth_silhouette by specifying the hardware compatibility. This gives the agent a precise understanding of what the tool does.

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?

The description implies usage for Orbbec/Kinect depth setups and mentions fallbacks, but it does not explicitly state when to use this tool over alternatives like create_depth_silhouette or other depth-source tools. No exclusions or conditional guidance is provided, leaving the decision somewhat implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_ouster_lidar_busCreate Ouster LiDAR busA

Create an Ouster LiDAR scaffold with Ouster TOP, range selection, zone maps, and calibration notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.ouster_lidar_bus
activeNo
imu_portNo
lidar_portNo
ring_countNo
zone_countNo
parent_pathNoParent COMP for the Ouster LiDAR scaffold./project1
device_addressNo192.168.1.1

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and openWorldHint=true, meaning the tool creates new objects. The description adds what components are created (TOP, range selection, zone maps, calibration notes), but does not disclose side effects, behavior on repeated runs, or any dependencies beyond the listed parameters.

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 a single sentence that is direct and front-loaded. It efficiently communicates the core purpose without superfluous words or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter creation tool with no output schema and low schema coverage, the description is too sparse. It doesn't explain the resulting scaffold's structure, prerequisites, or how the parameters influence the output. It is minimally sufficient but lacks completeness relative to the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25% (2 of 8 parameters described). The description mentions 'range selection' and 'zone maps' which loosely relate to ring_count and zone_count, but it does not clarify imu_port, lidar_port, device_address, active, or how these parameters are used. It adds little meaning beyond the schema's minimal descriptions.

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 clearly states the tool creates an Ouster LiDAR scaffold, listing specific components (Ouster TOP, range selection, zone maps, calibration notes). This distinguishes it from sibling tools like create_hokuyo_lidar_bus or create_livox_lidar_bus which handle different sensor types.

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?

Usage context is implied by the tool name and the mention of Ouster-specific components, but there is no explicit statement of when to use this tool versus alternatives, nor any exclusions or prerequisites. It lacks clear guidance on when to choose this over other bus creation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_paletteCreate colour palette / gradientA

Generate a reusable colour palette + gradient other tools can bind to. In 'harmony' mode it computes N swatches from a base hue and a colour-theory rule (complementary / analogous / triad / tetrad / monochrome); in 'from_source' mode it samples dominant colours from a source TOP. It builds a Ramp TOP gradient (key colours from a docked Table DAT) plus a Constant CHOP exposing each swatch as swatch{i}r/g/b channels — feed those into create_color_grade, generate_from_moodboard or bind_to_channel. Live BaseHue / Saturation / Value / Rule / Count controls are exposed on the parent. Builds standalone (a harmony palette needs no source).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoHow swatches are derived: 'harmony' computes them from a base hue + a colour-theory rule (pure maths); 'from_source' samples dominant colours from a source TOP.harmony
nameNoBase name for the created nodes.palette
ruleNo(harmony) Colour-theory spread: complementary (base + opposite), analogous (neighbours), triad (3 evenly spaced), tetrad (4 evenly spaced), monochrome (one hue, varied brightness).triad
countNoNumber of swatches to produce (1..13; capped because the swatch Constant CHOP holds 40 channels = 13 RGB swatches).
valueNo(harmony) Base value / brightness 0..1.
sourceNo(from_source) Absolute path of a TOP to sample dominant colours from. It is down-res'd to a tiny image and its pixels are read back; if missing/unreadable the palette falls back to a neutral greyscale ramp.
base_hueNo(harmony) Base hue on the colour wheel, 0..1 (0 = red, 0.333 = green, 0.666 = blue).
saturationNo(harmony) Base saturation 0..1 (0 = grey, 1 = vivid).
parent_pathNoCOMP to build the Ramp TOP + swatch CHOP inside./project1
expose_controlsNoAdd BaseHue / Saturation / Value / Rule / Count custom parameters to parent_path.
analogous_spreadNo(harmony, analogous rule) Hue step between neighbours, 0..0.5 (0.083 ≈ 30°).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states what it builds (Ramp TOP gradient, Constant CHOP with swatch{i}r/g/b channels), that live controls are exposed on the parent, and that it builds standalone. This goes beyond the readOnlyHint/destructiveHint annotations and provides useful behavioral context, though it does not discuss permissions or edge cases like fallback behavior from the schema.

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 a single dense paragraph but every sentence adds value: modes, outputs, downstream usage, live controls, standalone nature. No fluff, appropriately sized for the tool's complexity.

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 an 11-parameter tool with no output schema, the description covers the core concept, modes, generated artifacts, and integration targets. It leverages the schema for parameter details and the annotations for safety flags, so it is complete enough for an agent to decide when and how to use it.

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?

The input schema already provides 100% parameter descriptions, so the description adds little beyond what the schema states. It does clarify the conceptual relationship between modes and parameters (e.g., base_hue, rule, count) and mentions the exposed controls, but no new parameter syntax or semantics beyond schema.

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 clearly states 'Generate a reusable colour palette + gradient other tools can bind to,' which is a specific verb+resource. It distinguishes two modes ('harmony' vs 'from_source') and names downstream consumers (create_color_grade, generate_from_moodboard, bind_to_channel), making it distinct from sibling tools.

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 explains when to use each mode (harmony for computed swatches, from_source for sampling a TOP) and notes that a harmony palette is standalone. However, it does not explicitly name alternative tools or exclusion cases, so it is clear but not maximally explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_panicCreate panic controlA
Destructive

Build a live-performance safety control — the 'oh no' button every VJ needs. Wraps a source in a small COMP with two instant kill switches: Blackout forces the output to black (a Level TOP's brightness1 driven to 0) and Freeze holds the last frame (a Cache TOP stops capturing, active → 0). With an input_path the source is pulled in by a Select TOP (so it can live in another container); without one a built-in Ramp TOP test source is used so it builds and previews standalone. Output is a Null TOP. Big Blackout / Freeze toggle buttons are exposed on the container so a performer can hit them instantly. Marked destructive because firing Blackout/Freeze disables the live output. Returns the container, the source/freeze/blackout/output node paths, and the initial toggle states.

ParametersJSON Schema
NameRequiredDescriptionDefault
freezeNoInitial Freeze state. When on, the last frame is held instead of passing the live input (Cache TOP stops capturing — active = 0).
blackoutNoInitial Blackout state. When on, the output is forced to black (Level TOP brightness1 = 0) — the instant kill switch.
input_pathNoOptional absolute path of the live source TOP to protect. Pulled in via a Select TOP (TD wires can't cross containers, so it's referenced by path). If omitted, a built-in test source (Ramp TOP) is used so the panic COMP still builds and previews on its own.
parent_pathNoParent COMP the panic container is built inside (default '/project1')./project1
expose_controlsNoExpose big Blackout and Freeze toggle buttons on the container so a performer can hit them instantly.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the destructiveHint annotation by explaining exactly how Blackout (Level TOP brightness1 = 0) and Freeze (Cache TOP active = 0) are implemented, why it's destructive, and the return value. It also discloses internal construction details (Select TOP, Ramp TOP, Null TOP) that are not in annotations or schema.

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 a single well-structured paragraph that front-loads the purpose, then systematically explains the mechanics, modes, output, and return values. Every sentence earns its place without redundancy, making it concise despite its length.

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?

Given the tool's complexity and lack of an output schema, the description is fully complete: it explains the internal node graph, the two input modes, the destructive consequences, the exposed controls, and explicitly lists the returned node paths and toggle states. No important behavior is left unexplained.

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?

The input schema already covers all 5 parameters with detailed descriptions (100% coverage). The tool description adds context about how input_path works and the test source, but does not add per-parameter meaning beyond what the schema provides, matching the baseline for high schema coverage.

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 clearly states the tool builds a live-performance safety control ('oh no' button) with Blackout and Freeze switches, distinguishing it from generic control creation tools like create_control_surface or create_safety_blackout_chain. The specific verb 'Build' and the detailed COMP structure make the purpose 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 implies a clear use case (live-performance safety) and explains the input_path vs. standalone test source mode. However, it does not explicitly contrast with alternative tools like create_safety_blackout_chain or state when not to use it, so it falls short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_particle_flockCreate particle flockA

Build a boids-style GPU particle flock: position and velocity are simulated entirely on the GPU in two RGBA32float feedback-TOP loops, where the velocity shader implements the three classic boids rules — separation, alignment, cohesion — by scanning a stencil of neighbouring texels in the agent texture (each texel is one agent), then renormalising toward a cruise speed. Positions drive TOP-instancing of a tiny dot once per agent. Creates a new baseCOMP under parent_path holding the velocity/position feedback loops, the instanced Geometry COMP, Camera, Light, and Render TOP ending in a Null output. The behavioural complement to create_gpu_particle_field (use that instead for curl-noise/gravity drift rather than flocking); also pick a sibling for other motion: image_to_particles to spring particles onto the pixels of an image/video, create_pop_particle_system for TouchDesigner's native POP particle network, create_particle_system for a simple CPU emitter. Exposes live Separation / Alignment / Cohesion / Speed knobs. Note: the flock only evolves while the TD timeline plays. Returns a summary plus a JSON block with the container path, created node paths, the agent count, the output path, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoRGB colour (0..1) of the instanced dots — the colour of the school.
countNoEdge of the square agent buffer; the flock is count×count agents (agents = count², e.g. 64 → 4096). Each agent is one texel of the RGBA32float position/velocity buffers. Capped at 256 (65 536 agents) because the per-agent neighbour scan cost grows with the texture.
speedNoCruise speed the velocity is renormalised toward each frame, so the school flies at a stable pace.
cohesionNoBoids cohesion weight: steer toward the centroid (average position) of neighbours.
alignmentNoBoids alignment weight: steer toward the average heading of nearby neighbours.
point_sizeNoRadius of each instanced dot (the sphere SOP scale).
separationNoBoids separation weight: steer away from close neighbours (collision avoidance).
parent_pathNoParent network where the flock container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live Separation / Alignment / Cohesion / Speed knobs on the system container.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations being minimal, the description reveals extensive behavioral detail: it creates a baseCOMP under parent_path with specific components, uses GPU feedback loops, exposes live knobs, and returns a detailed JSON with node paths and errors. There is no contradiction with readOnlyHint=false, openWorldHint=true, or destructiveHint=false; the creation is consistent with these hints.

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 long but every sentence delivers value: it front-loads the main purpose, describes the internal GPU mechanism, gives sibling comparisons, states the timeline requirement, and enumerates the return payload. The structure is logical and repetitive content is absent, making it appropriately concise for the tool's complexity.

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?

Given the tool's complexity (GPU simulation, multiple components) and absence of an output schema, the description covers all necessary context: what is built, how it works, when to use it, runtime caveats, and exactly what the response contains. This allows an agent to invoke the tool correctly without additional information.

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 no significant parameter-level semantics beyond what the schema already provides; it only references exposed controls (Separation, Alignment, Cohesion, Speed), echoing the expose_controls parameter. Thus it stays at baseline.

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: 'Build a boids-style GPU particle flock', clearly defining the tool's core function. It also distinguishes from siblings by naming create_gpu_particle_field, image_to_particles, create_pop_particle_system, and create_particle_system, so an agent can easily tell this tool apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides usage guidance: it names alternatives and when to prefer them (e.g., 'use create_gpu_particle_field for curl-noise/gravity drift rather than flocking'). It also adds a critical runtime condition: the flock only evolves while the TD timeline plays, which is essential for correct use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_particle_systemCreate particle systemA

Build a CPU particle system: an emitter SOP feeds a Particle SOP inside a Geometry COMP, rendered with a camera + light. Creates a new baseCOMP under parent_path holding the Geometry COMP (emitter + particle SOP), a material, Camera, Light, Render TOP, and a Null output. Forces and render style are scaffolded for further tuning. Exposes live Drag / Turbulence / Gravity / Lifetime knobs. This is the simplest CPU emitter, born from a real SOP shape; pick a sibling instead when you need scale or specific motion: create_gpu_particle_field for much higher counts (GPU-simulated noise/curl/gravity drift, up to ~262k), create_particle_flock for boids/flocking behaviour, image_to_particles to reconstruct an image/video as points, create_pop_particle_system for TouchDesigner's native POP particle network. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings (e.g. approximated forces or fallback render styles), and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
forcesNoForces applied to the sim, mapped to native Particle SOP params (gravity→external -Y, noise/turbulence→turbulence, drag→drag). attract/repel/vortex have no native equivalent and are approximated with turbulence (a warning is returned). Default ['noise','gravity'].
lifetimeNoParticle life span in seconds before it dies and is reborn. Default 3.
parent_pathNoParent network where the particle-system container is created (default '/project1')./project1
render_styleNoHow particles are drawn. 'sprites' uses a Point Sprite MAT, 'points' a Constant MAT; 'lines'/'trails'/'instanced_geo' currently fall back to point/sprite rendering (a warning is returned). Default 'sprites'.sprites
emitter_shapeNoSource SOP particles are born from: point (Add SOP), line, circle, sphere, mesh (Box), or image (Grid). Default 'sphere' — its varied normals spray a full radial cloud; 'point' has no normals and stays a thin turbulence-driven stream.sphere
particle_countNoTarget number of live particles at steady state; sets the Particle SOP birth rate (birth ≈ count / lifetime). Default 10000.
expose_controlsNoWhen true (default), expose live Drag / Turbulence / Gravity / Lifetime knobs on the system container.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, openWorldHint=true, destructiveHint=false, but the description goes far beyond by detailing side effects: it creates a baseCOMP with specific contents, exposes live knobs, returns warnings for approximated forces and fallback render styles, and describes the return block structure. No contradictions with 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?

Though long, every sentence delivers value: pipeline explanation, output structure, usage guidance, alternatives, and return format. It is front-loaded with the core purpose and clearly structured, avoiding redundancy with the schema.

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?

With no output schema, the description properly explains the return value (summary plus JSON block with paths, controls, errors, warnings, preview image). It covers creation details, limitations (approximations, fallbacks), alternatives, and exposed knobs, making it fully self-sufficient for an agent to decide and invoke correctly.

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% for all 7 parameters, so the baseline is 3. The description adds high-level context (e.g., 'Forces and render style are scaffolded for further tuning', 'Exposes live Drag / Turbulence / Gravity / Lifetime knobs') but these details are already present in the schema descriptions. It does not add significant new meaning beyond the schema.

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 uses a specific verb ('Build') and resource ('CPU particle system'), details the exact node pipeline (emitter SOP → Particle SOP in Geometry COMP), and clearly differentiates from sibling tools by naming them with their specific use cases (GPU field, flock, image-to-particles, POP system).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('simplest CPU emitter') and provides clear alternatives with rationale: 'pick a sibling instead when you need scale or specific motion', listing create_gpu_particle_field, create_particle_flock, image_to_particles, and create_pop_particle_system. Also notes behavior for forces and render styles.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pbr_sceneCreate PBR sceneA

Build a physically-based 3D scene: a Geometry COMP holding the chosen primitive (sphere/torus/box) shaded by a PBR MAT (base colour, metallic, roughness), lit by an Environment Light for image-based lighting (fed a Constant TOP of env_color so it works with no HDRI file) plus a key Light, framed by a Camera and rendered to a Null. Creates a new baseCOMP under parent_path holding the Environment Light + envmap Constant TOP, the PBR MAT, a Geometry COMP, a key Light, a Camera, a Render TOP, and a Null output. Use create_3d_scene instead for basic (non-PBR) shading or GPU instancing. Exposes Metallic, Roughness, BaseColor and Spin controls; set rotate to turn the object so its reflections move. Returns a summary plus a JSON block with the container path, created node paths, the material/lights/geometry/camera/render/output paths, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
shapeNoGeometry to render with the PBR material.sphere
rotateNoContinuous spin of the whole object around Y in degrees/sec (0 = still). Shows off the PBR reflections as the surface turns.
metallicNoPBR metalness: 0 = dielectric (plastic/clay), 1 = metal. Bound to the Metallic knob.
env_colorNoColour of the environment light used for image-based lighting, as [r,g,b] in 0..1 (soft white). With no HDRI this drives a Constant TOP fed into the Environment Light.
roughnessNoPBR roughness: 0 = mirror-sharp reflections, 1 = fully diffuse/matte. Bound to the Roughness knob.
base_colorNoPBR base/albedo colour as [r,g,b] in 0..1 (light gray by default). Also seeds the BaseColor swatch.
parent_pathNoParent network where the PBR-scene container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live Metallic, Roughness, BaseColor and Spin controls.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only state readOnlyHint=false and destructiveHint=false, so no contradiction exists. The description goes beyond by detailing exactly what is created ('a new baseCOMP under parent_path' with a full list of nodes), how env_color works without an HDRI file, what controls are exposed, and what the return payload contains (summary, JSON block, preview image). This is rich behavioral context not present in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively long but densely packed with essential information: main action, node list, alternative tool, controls, rotate behavior, and return format. It is front-loaded with the primary purpose and uses clear structural progression. While lengthy, every sentence earns its place for a complex scene-creation tool.

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?

With 8 parameters and no output schema, the description carries the full burden of explaining return values and component creation. It comprehensively covers the entire scene graph, fallback behavior (no HDRI), exposed controls, and return payload (paths, errors, preview). It also provides an explicit fork to create_3d_scene, making it contextually complete for an agent to decide and invoke correctly.

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 coverage is 100%, so baseline is 3. The description adds minimal parameter context beyond the schema: it mentions the exposed controls (Metallic, Roughness, BaseColor, Spin) and actions (rotate to show reflections), but these are already in the schema. It does not significantly deepen parameter understanding, so a 3 is appropriate.

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+resource: 'Build a physically-based 3D scene' and enumerates exact components (Geometry COMP, PBR MAT, Environment Light, etc.). It clearly distinguishes itself from sibling 'create_3d_scene' by stating 'Use create_3d_scene instead for basic (non-PBR) shading or GPU instancing.' The verb 'Build' and 'Creates' precisely convey the action and outcome.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names the alternative tool ('create_3d_scene') and specifies when to use it ('for basic (non-PBR) shading or GPU instancing'). It also provides practical usage tips like 'set rotate to turn the object so its reflections move' and explains the env_color Constant TOP fallback, giving clear context for when this PBR-specific tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_phone_gestureCreate phone gestureA

Stream a phone's IMU (tilt + gyro + shake) and multitouch into TouchDesigner as CHOP channels you can bind to anything. Builds a Web Server DAT page the phone opens (any browser, no app) and a Null CHOP exposing tilt_x/y/z, gyro_x/y/z, shake, touch0..3_x/y/active, clients. Composable with create_phone_remote on the same COMP (different port). SECURITY: listens on all interfaces with no auth — trusted networks only. iOS Safari needs HTTPS for motion permission; falls back to touch-only on plain HTTP.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoChild operator base name inside parent.phone_gesture
portNoTCP port for the gesture web server (distinct from bridge:9980 and phone_remote:9981).
parentNoCOMP that will host the Web Server DAT + Script CHOP./project1
enableImuNoEnable tilt_*, gyro_*, shake channels (iOS Safari requires HTTPS + permission tap).
shakeThresholdNoAcceleration magnitude (m/s^2) above which `shake` fires.
enableMultitouchNoEnable touch0..3_x/y/active channels.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are minimal (readOnlyHint false, openWorldHint true), but the description adds crucial behavioral context: it builds a Web Server DAT, exposes specific channels, listens on all interfaces with no auth, and requires HTTPS for iOS motion permission with a fallback to touch-only. This fully discloses side effects, security implications, and platform limitations.

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?

Four sentences are efficiently packed: action, result, composability, security, and platform note. No waste, front-loaded with the core function, and all additional details earn their place. Perfectly sized for the tool's complexity.

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?

Despite no output schema, the description sufficiently covers what the tool creates (Web Server DAT, Null CHOP), the channels produced, security posture, and platform-specific behavior. It is complete enough for an agent to understand the tool's full impact and prerequisites. No ambiguity about return values since the tool builds visible operators.

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 coverage is 100% with descriptive parameter explanations, so the baseline is 3. The description adds the channel names (tilt_x/y/z, etc.) which helps understand the enableImu parameter, but this is a minor addition since the schema already explains each parameter's role. The description's value here is supplemental, not essential.

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 states a specific purpose: stream phone IMU and multitouch into TouchDesigner as CHOP channels. It explicitly names the output channels and distinguishes itself from create_phone_remote by noting composability on the same COMP with a different port.

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 implies usage context ('bind to anything', any browser, no app) and mentions composability with create_phone_remote, but it does not explicitly state when to choose this tool over alternatives or provide exclusionary guidance. The composability note helps but lacks direct 'use this when...' language.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_phone_remoteCreate phone remoteA

Serve a mobile-friendly web panel from a Web Server DAT so you can control a COMP's numeric custom parameters from a phone — just open the URL, no app to install. Each parameter becomes a touch slider that writes back live. SECURITY: like the bridge, this listens on all interfaces and accepts writes with no auth, so use it only on a trusted network. Pair with create_control_panel (the params to expose) and manage_cue (snapshot looks you dial in from the phone).

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoTCP port for the remote web server (keep it distinct from the bridge's 9980).
comp_pathNoControl COMP whose numeric custom parameters the phone page exposes./project1

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the server listens on all interfaces and accepts unauthenticated writes, which adds security context beyond the annotations. It also describes the live touch-slider interaction, showing behavior not captured by readOnlyHint openWorldHint.

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 compact, starting with the main purpose, then behavior, security, and related tools. No redundant phrases or fluff; every sentence contributes.

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?

The description covers the tool's function, security, and workflow pairing. It does not explicitly mention the return value (e.g., a URL), but given the tool's simple nature and lack of output schema, the gap is minor; overall the context is sufficient.

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?

The input schema covers both parameters with descriptions (port and comp_path) at 100% coverage, so the baseline is 3. The description does not add additional parameter-specific semantics beyond what the schema already states.

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 uses a specific verb 'Serve' and a resource 'Web Server DAT' plus the goal of controlling a COMP's numeric parameters from a phone. It distinguishes itself from siblings by mentioning 'no app to install' and pairing with create_control_panel.

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 states when to use it ('control a COMP's numeric custom parameters from a phone') and includes a security constraint ('use it only on a trusted network'). It also suggests companion tools (create_control_panel, manage_cue), but does not explicitly name alternative tools for exclusion, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_phrase_locked_cue_engineCreate phrase-locked cue engineA

Build a DJ/VJ phrase-quantized cue-lock engine. Any incoming pulse CHOP (Button, MIDI In, OSC In, composeCueList trigger) is queued FIFO and fired on the next 1/2/4/8/16/32/64-bar phrase boundary derived from the global project tempo. Live controls: Active (on/off gate), PhraseLength (live retune), Flush (clear queue), QueueDepth (display). Mode 'next' fires on the first upcoming boundary; 'aligned' locks to the project-start phrase grid. Pairs with create_tempo_sync upstream and bind_to_channel / manage_cue downstream. Output is a 0/1 trigger Null CHOP at /out.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoEngine container name.phrase_lock
parent_pathNoParent COMP. Self-contained engine container is created here./project1
quantize_modeNo'next' (default): fire on the NEXT bar where (bar % phrase_length == 0), which is the upcoming phrase downbeat. 'aligned': only fire at a phrase downbeat that is also bar 1 of the bar-1-anchored phrase grid (bar % phrase_length == 0 AND bar >= phrase_length) — strict alignment from project start. For most live use, 'next' is what you want.next
queue_capacityNoMax queued pending cues. Extra pulses while at capacity are dropped (warning logged in storage).
expose_controlsNoExpose live PhraseLength / Active / Flush / QueueDepth controls on the engine container.
pending_chop_pathYesPath to a CHOP whose first channel is the 'pending cue' pulse. Every time it rises 0→1 a cue is enqueued; the gated trigger fires it on the next phrase boundary. Wire a Button COMP, OSC In CHOP, MIDI In CHOP, or composeCueList trigger into this channel.
phrase_length_barsNoPhrase length in bars. 16 is the DJ/VJ standard for builds/drops. Restricted to powers of 2 (1/2/4/8/16/32/64) — the canonical phrase grid; arbitrary values break the modulo lock.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false and openWorldHint=true, so the description carries the burden of explaining behavior. It does so richly: FIFO queueing, firing on phrase boundaries, live controls (Active, PhraseLength, Flush, QueueDepth), mode semantics, and the exact output path (0/1 trigger Null CHOP at <container>/out). No contradictions with 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 only four sentences but packs a comprehensive overview: what it does, input sources, queue behavior, live controls, mode options, integration points, and output. Every sentence earns its place, with no filler or redundancy.

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?

Given the complexity (7 params, no output schema, rich integration context), the description is highly complete. It explains the input trigger types, the queue and firing mechanism, the live controls, mode differences, upstream/downstream pairs, and the output path. Combined with the detailed schema, this is sufficient for an agent to select and invoke the tool correctly.

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%, with each parameter already having detailed descriptions. The tool description adds context by explaining how parameters relate to the overall behavior (e.g., queue_capacity with FIFO, expose_controls with live controls), but this is complementary rather than essential. Baseline 3 is appropriate given the schema does the heavy lifting.

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 clearly states it 'Build a DJ/VJ phrase-quantized cue-lock engine' with a specific verb and resource. It distinguishes itself from siblings by detailing the FIFO queueing and phrase-boundary firing behavior, and even names upstream/downstream companion tools (create_tempo_sync, bind_to_channel, manage_cue), leaving no ambiguity about its specialized role.

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 provides clear context for when to use it: for phrase-quantized cue locking in DJ/VJ workflows. It explains the two modes ('next' vs 'aligned') to help users choose. It names integration points but does not explicitly state exclusions or alternatives (e.g., 'use this instead of create_beat_grid_sequencer'), so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pixel_sortCreate pixel sortA

Build a glitch-art pixel-sort effect that sorts pixels along rows or columns within luminance-thresholded regions, creating the signature Kim Asendorf–style horizontal/vertical streak aesthetic. Uses a multi-pass odd-even transposition sort over a glslTOP feedback chain. Sort key: luminance, hue, or saturation. Exposes Mix, Threshold, Iterations, Direction, and Reset for live tweaking. Defaults to a self-contained noiseTOP source when no input TOP is provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
mixNoBlend between original (0) and sorted output (1). Live-tweakable.
axisNox = sort along rows (horizontal streaks), y = along columns (vertical streaks).x
nameNoBase name for the created baseCOMP.pixel_sort
sort_byNoSort key: the channel the odd-even transposition sort compares on.luminance
directionNodescending puts bright/saturated pixels first — the canonical Asendorf look. Live-tweakable.descending
thresholdNoLuminance gate [0..1]. Pixels with luminance >= threshold are sortable; others are locked in place. Live-tweakable.
iterationsNoNumber of odd-even sort passes to run via the Feedback TOP. Higher = closer to fully sorted but heavier cook. Live-tweakable.
resolutionNoOutput resolution [width, height] in pixels.
parent_pathNoParent COMP path. The pixel-sort container is created inside this path./project1
source_top_pathNoAbsolute path to an existing TOP (e.g. '/project1/movie1'). Pulled in via a Select TOP. If omitted, a self-contained animated noiseTOP source is used (no device permissions).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral details beyond annotations: it discloses the multi-pass odd-even transposition sort over a glslTOP feedback chain, the live-tweakable parameters, and the default noiseTOP source. This gives the agent insight into the internal mechanics and side effects (creating a component) without contradicting the readOnlyHint=false and destructiveHint=false 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 long, front-loaded with the core purpose, then implementation details, parameter exposure, and default behavior. Every sentence earns its place with no redundancy or fluff, making it perfectly concise and well-structured.

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 10-parameter tool with no output schema, the description covers the main aspects: what it does, how it works, key parameters, and default source. It lacks an explicit statement about the return value (the created baseCOMP), but the schema's 'name' parameter implies it. It is sufficiently complete for an agent to invoke correctly.

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?

The input schema already covers 100% of parameters with descriptions, so the baseline is 3. The description adds value by identifying which parameters are live-tweakable (Mix, Threshold, Iterations, Direction). However, it also mentions 'Reset' which does not appear in the schema, creating a minor inconsistency that could confuse the agent.

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 'Build a glitch-art pixel-sort effect', using a specific verb and resource. It clearly distinguishes itself from sibling tools like create_glitch by naming the pixel-sort algorithm and the signature Asendorf aesthetic, so the agent knows exactly what this tool produces.

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 provides clear context on when to use the tool: for glitch-art pixel sorting. It explains the fallback behavior when no input TOP is provided, implying the tool is self-sufficient. However, it does not explicitly exclude alternatives like create_glitch or create_datamosh, missing a 'use this instead of X' statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_point_cloudCreate point cloudA

Render a point cloud from a depth/luminance map (or a synthetic source): scatter a resolution×resolution grid of points and push each point's XYZ from the texture — X/Y from its grid position, Z from the map's brightness × depth_scale. Unlike create_depth_displacement (a continuous shaded mesh), this is a cloud of discrete dots. A GLSL TOP packs each point's position into one RGBA32float buffer, then a Geometry COMP TOP-instances a tiny sphere once per texel (reaching resolution², up to 512²≈262k points). Creates a new baseCOMP under parent_path holding the source, a monochrome heightmap, a GLSL position-pack buffer, the instanced Geometry COMP, Camera, Light, and Render TOP ending in a Null output. Source can be an animated synthetic pattern (testable without any device, the default), a movie file, the live camera (may prompt for macOS permission), or an existing TOP (e.g. a real depth map). Use create_depth_displacement instead for a continuous shaded mesh rather than discrete dots. Exposes DepthScale, PointSize, and Spin knobs — bind DepthScale to a tempo ramp or an audio feature to make the cloud heave. Returns a summary plus a JSON block with the container path, created node paths, the effective and requested source, the point count, the output path, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoPath to a movie file to play as the source; used only when source='file'.
rotateNoWhole-cloud spin around Y in degrees/sec (0 = still).
sourceNoTexture whose brightness drives each point's depth (Z). 'synthetic' = an animated Noise pattern, so the cloud moves and the chain is testable without any device permission (the default). 'file' = a movie file. 'camera' = live webcam/capture device (creating it may pop a one-time macOS camera-permission dialog — click Allow). 'existing' = sample a TOP you already have (e.g. a real depth map).synthetic
existingNoPath of an existing TOP to sample as the depth map; used only when source='existing' (falls back to synthetic noise with a warning if missing).
point_sizeNoRadius of each dot (the source sphere SOP scale). TOP-instancing applies translate only, so per-point size lives on the sphere, not on instance scale.
resolutionNoGrid side: the cloud is resolution×resolution points (count = resolution², e.g. 128 → 16 384). One point per texel of the position buffer. Capped at 512 (262 144 points) to stay GPU-sane.
depth_scaleNoHow far bright pixels push each point along +Z. 0 = a flat sheet; higher = a deeper relief.
parent_pathNoParent network where the point-cloud container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose live DepthScale, PointSize, and Spin knobs on the system container.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description discloses creation details: builds a baseCOMP with specific nodes, uses GLSL TOP instancing, may prompt macOS camera permission, caps at 512² points, and returns a JSON block with paths and warnings. No contradiction found; it enriches the annotation signals with concrete actions and side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but information-dense, front-loaded with the core purpose, followed by mechanism, source options, comparison, and return value. Every sentence adds value, though some details (e.g., node list) could be tightened. Still, it's well-structured for AI consumption.

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?

Given 9 parameters and no output schema, the description fully compensates by specifying the return value (summary plus JSON block with paths, point count, controls, errors, preview image), covering all source modes, performance limits, and relevant caveats. It provides sufficient context for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds valuable semantics: it explains how depth_scale maps brightness to Z, how resolution² yields point count with a GPU-sane cap, how point_size lives on the sphere due to TOP-instancing translate-only, and clarifies source-specific parameters (file, existing). This goes beyond the schema's property descriptions and ties parameters to the rendering pipeline.

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 starts with a clear verb and resource: 'Render a point cloud from a depth/luminance map.' It details the mechanism (scatter grid of points, XYZ from texture) and explicitly contrasts with the sibling tool create_depth_displacement. This fully distinguishes it from similar creation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states when to use this tool vs. the alternative: 'Unlike create_depth_displacement (a continuous shaded mesh), this is a cloud of discrete dots' and 'Use create_depth_displacement instead for a continuous shaded mesh rather than discrete dots.' It also explains each source mode (synthetic, file, camera, existing) and the camera permission caveat, giving clear context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pointer_reactiveCreate pointer reactiveA

Turn mouse/pointer position and click into a first-class creative seed. Builds a Mouse In CHOP → normalized u/v (0..1) + velocity (vu/vv) + button, exposed on a 'pointer' Null CHOP ready for binding: op('…/pointer_reactive/pointer')['u'] / ['v'] / ['button'] / ['vu'] / ['vv']. A Sensitivity knob gains every channel. By default also builds a small visible demo — a bright dot that follows the pointer and leaves a decaying trail over a feedback field — so you immediately see it working; set demo=false to build only the CHOP chain (no image, no preview). multitouch is reserved for a future Panel-COMP touch source; this build always uses Mouse In and reports the limitation as a warning when requested. Creates a new baseCOMP under parent_path. Returns a summary plus a JSON block with the container path, created node paths, the pointer Null path, channel names, exposed controls, any node errors, and warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
demoNoAlso build a visible feedback-field demo the pointer pushes, so you see it working immediately (a bright dot that trails behind the mouse over a decaying feedback field).
multitouchNoWhen true, note that true multitouch needs a Panel COMP touch source; this build always uses Mouse In (single pointer) and reports the limitation as a warning. Kept for forward-compat — it does not change what gets built.
resolutionNoOutput resolution [width, height] in pixels for the demo feedback field.
parent_pathNoParent network where the pointer-reactive container is created (default '/project1')./project1
sensitivityNoGain applied to every pointer channel (u, v, velocity, button) before the output.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses side effects beyond the annotations: it 'Creates a new baseCOMP under parent_path', builds a demo by default, and reports node errors and warnings. It also states the return format ('a summary plus a JSON block with the container path, created node paths...'). This goes well beyond the basic readOnly/destructive hints and describes exactly what the agent can expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence carries meaningful info: purpose, node structure, channel names, demo behavior, multitouch limitation, creation path, and return value. It front-loads the core purpose and organizes details logically. A slight structural improvement would be splitting into paragraphs, but it's dense and not wasteful.

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 tool with no output schema and 5 parameters, the description is remarkably complete: it explains what is built, how to access channels (including exact paths), the demo variant, the multitouch caveat, and the return value (summary + JSON with paths, channels, controls, errors, warnings). This covers all the information an agent needs to invoke and understand the result, and even includes edge-case warnings.

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%, and each parameter (demo, multitouch, resolution, parent_path, sensitivity) has a clear description with defaults. The tool description adds only marginal references (e.g., 'Sensitivity knob gains every channel'), which is already in the schema. With full schema coverage, a baseline of 3 is appropriate; the description doesn't need to compensate.

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 clear, specific verb+resource statement ('Turn mouse/pointer position and click into a first-class creative seed') and then details exactly what is built: a Mouse In CHOP → normalized u/v + velocity + button on a 'pointer' Null CHOP. This distinguishes it from sibling tools like create_motion_reactive or create_audio_reactive by focusing on pointer input.

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 makes clear when to use the tool (for pointer/mouse reactive builds) and gives practical guidance on the demo flag ('set demo=false to build only the CHOP chain'). It also notes the multitouch limitation and that the build always uses Mouse In, effectively telling the agent that this tool is for single-pointer/mouse scenarios. However, it does not explicitly name alternatives or say 'use this instead of X', so it doesn't fully meet the 'when-not-to' bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pop_fieldCreate POP field (GPU points)A

Build a GPU point field using TouchDesigner's POP (Point OPerator) family — a generator POP (chosen by pattern: 'noise' scatters count points and displaces them with a Noise POP for a moving cloud, 'grid' a flat lattice, 'sphere' a shell), a Transform POP that spins the whole field over time, then a render path (POP to SOP → Geometry COMP → Render TOP) output as a Null TOP. Creates a new baseCOMP under parent_path holding all of these and exposes PointSize and Spin knobs. NOTE: POPs are flagged Experimental in this TD build and the POP render path is uncertain, so this tool is built fail-forward and probe-first — the POP chain and render wiring are best-effort (failures become warnings) while the output Null is always created, and the result's extra.unverified lists every POP op type and the render path attempted so you can live-validate. Returns a summary plus a JSON block with the container path, created node paths, generator/transform/render/output paths, exposed controls, node errors, warnings, the unverified probe record, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the self-contained POP-field container created under parent_path.pop_field
spinNoDegrees/sec rotation of the whole field around Y (a Transform POP animates it over time), exposed as the live Spin knob.
countNoApproximate point count. Used directly for the 'noise' pattern; 'grid'/'sphere' approximate it via a rows×cols layout near this total.
patternNoPoint layout/source. 'noise' (default) = a Point Generator POP scatters `count` points which a Noise POP displaces into a moving cloud. 'grid' = a flat Grid POP lattice. 'sphere' = points on a Sphere POP shell.noise
point_sizeNoRendered point size (Render TOP point size), exposed as the live PointSize knob.
resolutionNoRender resolution [width, height] of the Render TOP and the output Null TOP.
parent_pathNoParent COMP path the POP-field container is created inside (default '/project1')./project1

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond annotations by disclosing that POPs are Experimental, the render path is uncertain, the tool fails forward (failures become warnings), the output Null is always created, extra.unverified tracks POP types and render path, and returns detailed error/warning info. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but front-loaded with the main purpose and includes essential caveats and return info. Every sentence adds value, though the density may be high; no wasted words.

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?

Given no output schema, the description explicitly lists return contents including paths, controls, errors, warnings, unverified probe record, and preview image. It also covers creation behavior, experimental risks, and parameter effects, making it fully sufficient for invoking the tool.

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 covers all 7 parameters with detailed descriptions (100% coverage). The description reinforces parameter meanings (e.g., pattern values) but adds no new semantic info beyond the schema, so baseline 3 applies.

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 'Build a GPU point field using TouchDesigner's POP family' and details the generator, transform, render path, and Null TOP output, clearly distinguishing it from sibling tools like create_gpu_particle_field or create_pop_geometry.

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?

Provides rich context about what the tool does (patterns, transform, render path, knobs) but does not explicitly state when to prefer it over alternatives or when not to use it. The experimental POP note implies caution but is not an explicit usage guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pop_geometryCreate POP geometryA

Procedural Op Pattern (POP) geometry generator: build a SOP chain inside a Geometry COMP — primitive (box/sphere/tube/torus/grid/line/text) → Transform SOP (translate/rotate/scale) → optional Subdivide SOP → optional per-point Noise SOP displacement → Material SOP (Constant MAT) → Null SOP — then render through a Camera + Light + Render TOP to a Null TOP. Creates a new baseCOMP under parent_path. Exposes a RotateY control; NoiseAmount + NoisePeriod are exposed only when noise_amount > 0 (otherwise the Noise SOP is omitted and those knobs would be inert). Use build_sop_geometry for a fully declarative SOP chain without a render rig; use create_3d_scene for instanced primitives, create_pbr_scene for PBR shading.

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleNoPer-axis scale [sx,sy,sz] applied via the same Transform SOP. [1,1,1] = unchanged.
rotateNoRotation [rx,ry,rz] in degrees applied via the same Transform SOP.
base_nameNoOptional base name for the container (defaults to 'pop_geometry'). Final container path is `<parent_path>/<base_name>` with TD's auto-suffix.
primitiveNoBase geometry primitive. Each maps to its stock SOP (boxSOP/sphereSOP/tubeSOP/torusSOP/gridSOP/lineSOP/textSOP).box
translateNoTranslation [tx,ty,tz] applied via a Transform SOP after the primitive.
parent_pathNoParent network where the POP geometry container is created (default '/project1')./project1
text_stringNoWhen `primitive` is 'text', the string fed into the textSOP. Ignored for other primitives.tdmcp
noise_amountNoDisplacement amount of the per-point Noise SOP (0 = bypassed; ~0.1..1 typical for organic warp).
noise_periodNoSpatial period of the displacement noise. Larger = wider/softer ripples; smaller = tighter detail.
subdivisionsNoOptional subdivision count. When > 0 a Subdivide SOP runs after the Transform SOP at this depth, then a per-point Noise SOP works on the denser mesh.
expose_controlsNoWhen true (default), expose live knobs on the container: RotateY always, plus NoiseAmount + NoisePeriod only when noise_amount > 0 (otherwise the Noise SOP is omitted and exposing the knobs would be inert).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations present (readOnlyHint=false, destructiveHint=false), the description adds rich behavioral context: it creates a baseCOMP under parent_path, exposes a RotateY control, and conditionally exposes Noise knobs only when noise_amount>0, explaining the Noise SOP is otherwise omitted. No contradiction with 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 densely informative but well-structured: chain diagram, creation details, exposure logic, and alternatives. Every sentence adds value with no fluff.

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 complex tool with 11 parameters and no output schema, the description fully explains the generated result (new baseCOMP, rendered to Null TOP), the conditional behavior, and alternatives. It is complete for an agent to select and invoke correctly.

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 coverage is 100% and all parameters have detailed descriptions. The tool description repeats some schema info (e.g., conditional knob exposure) but adds no meaning beyond what the schema already provides, so baseline 3 applies.

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 clearly states it's a 'Procedural Op Pattern (POP) geometry generator' that builds a SOP chain and renders through a Camera+Light+Render TOP, creating a new baseCOMP. It distinguishes from siblings by explicitly naming alternatives like build_sop_geometry and create_3d_scene.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidance: 'Use build_sop_geometry for a fully declarative SOP chain without a render rig; use create_3d_scene for instanced primitives, create_pbr_scene for PBR shading.' This clearly states when to prefer alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pop_growthCreate POP growth preset (dendritic / coral / lichen)A

Build a POP-native reaction-diffusion / growth system inside a fresh baseCOMP. Three mode presets: 'dendritic' (sparse fibrous tendrils, low decay), 'coral' (dense outward accretion, mid decay, strong force), 'lichen' (patchy crust, high threshold emission clusters). A particle_pop emits points gated by a noise threshold; a noise_pop drives a force_pop vector field that biases their motion; a feedback_pop loop carries point state forward one cook so accumulation simulates organic growth. Output is a Null TOP via poptoSOP → geometryCOMP → renderTOP. POP chain delegated to buildPopChainScript. POPs are Experimental — par writes are fail-forward; result reports unverified op/par set. Warns when feedback_gain × (1 − decay) ≥ 1.0 (divergence risk).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoPreset selector — picks the default param bundle. 'dendritic': sparse fibrous tendrils; 'coral': dense outward accretion; 'lichen': patchy emission clusters.dendritic
nameNoContainer baseCOMP name.pop_growth
seedNoRNG seed for the noise.
decayNoPer-frame multiplier applied through the feedback loop (1 − decay retained). Overrides preset.
thresholdNoEmission gate: noise sample below threshold suppresses new births. Overrides preset.
max_pointsNoSafety cap on particle count (passed defensively as numpoints/maxparticles).
noise_freqNoSpatial frequency of the noise_pop. Overrides preset.
resolutionNoRender TOP + Null TOP resolution [width, height].
force_scaleNoAmplitude of the noise-driven force_pop vector field. Overrides preset.
growth_rateNoParticle birth rate per cook (drives particle_pop birth/rate par defensively). Overrides preset.
parent_pathNoParent COMP where the container is built./project1
feedback_gainNoScale of the feedback contribution mixed back into the active POP each frame; >1 risks divergence. Overrides preset.
expose_controlsNoExpose GrowthRate / Decay / Threshold / FeedbackGain knobs on the container.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It goes far beyond the annotations by disclosing that POPs are Experimental, par writes are fail-forward, the result reports unverified op/par sets, and warning conditions for divergence (feedback_gain × (1 − decay) ≥ 1.0). These are critical behavioral traits that help an agent anticipate side effects and failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph, but every sentence contributes useful information and it is appropriately sized for a complex build tool. Minor structural improvements (e.g., separating the output chain from warnings) would elevate it, but it remains focused and front-loaded with the core purpose.

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?

Despite 13 parameters and no output schema, the description is exceptionally complete. It explains the internal node chain (particle_pop, noise_pop, force_pop, feedback_pop), the output path (poptoSOP → geometryCOMP → renderTOP), delegation to buildPopChainScript, and risk warnings. This gives an agent everything needed to understand what the tool does, how it works, and what could go wrong.

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?

The schema already covers 100% of parameters with descriptions, so the baseline is 3. The tool description adds meaningful system-level context (e.g., how feedback_gain and decay interact to cause divergence, max_points passed defensively, overrides on presets). This enhances understanding of parameter relationships beyond the isolated field descriptions.

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+resource: 'Build a POP-native reaction-diffusion / growth system inside a fresh baseCOMP.' It clearly distinguishes itself from sibling tools like create_reaction_diffusion or create_pop_field by emphasizing the POP chain, presets, and output chain. The three mode presets further clarify the tool's specific niche.

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 provides clear context on when to use this tool (for organic POP-based growth systems) and even sets expectations about experimental behavior and divergence risks. However, it does not explicitly mention alternatives or exclusions, so it stops short of a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pop_lines_pointcloudCreate POP lines pointcloud (Plexus)A

Plexus-style line-web visual built on the POP family. A POP point cloud (auto-generated or sourced) is fed to a Neighbor POP that fills a per-point Nebr array attribute with closest-neighbor indices. A Script SOP converts that index list into deduplicated line primitives, rendered as a Geometry COMP through a Render TOP to a Null TOP — the classic Plexus look without third-party plugins. auto_pattern: 'noise' (default) = pointgeneratorPOP + noisePOP; 'sphere' = spherePOP; 'grid' = gridPOP. count is hard-capped at 8192 (CPU O(N·k) line emission). color_mode: flat | by_distance (warm→cool gradient) | by_neighbor_count (isolation ramp). Exposes live controls: MaxDistance, MaxNeighbors, Spin, PointSize, LineAlpha. POPs are Experimental — par names and Nebr array-attribute survival through poptoSOP are probe-first unverified; result carries extra.unverified.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoContainer base name; final path uses TD auto-suffix.pop_lines
spinNoY-axis degrees/sec spin of the whole field via Transform POP ry expression.
colorNoLine color used directly in flat mode, as warm endpoint in by_distance, as dense endpoint in by_neighbor_count.
countNoApprox point count when auto-generating. Hard-capped at 8192 (line emission is O(N·k) on CPU).
max_linesNoHard cap on emitted line primitives in the Script SOP (after dedupe).
color_modeNoDrives Cd attribute on the SOP. flat = single color; by_distance = per-line gradient; by_neighbor_count = per-point ramp on isolation.flat
line_alphaNoConstant MAT alpha; < 1 lets lines additively glow.
point_sizeNoOptional point overlay size rendered in addition to lines. 0 hides points.
resolutionNoRender TOP resolution [width, height].
parent_pathNoParent network for the system container./project1
source_pathNoIf set, must point to an existing POP/SOP that produces a point cloud. When omitted, a point cloud is auto-generated per auto_pattern.
auto_patternNoUsed only when source_path is undefined. noise = pointgeneratorPOP + noisePOP; sphere = spherePOP; grid = gridPOP.noise
max_distanceNoRadius (POP world units) the Neighbor POP searches for neighbors. Drives Plexus density.
max_neighborsNoPer-point neighbor cap (neighborPOP.maxneighbors). Higher = denser web.
expose_controlsNoSkip control panel exposure when false.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, which aligns with creating a new visual. The description adds valuable behavioral context: POPs are Experimental, par names and Nebr attribute survival are unverified, count is hard-capped at 8192 with O(N·k) CPU cost, and result carries extra.unverified. This goes beyond 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 dense yet well-structured: it front-loads the core purpose, then walks through the pipeline, enumerates options, and ends with critical caveats. Every clause provides useful information without redundancy, appropriate for a tool with 15 parameters.

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 the tool's complexity and lack of output schema, the description covers purpose, pipeline, parameter semantics, and caveats comprehensively. It does not explicitly state what the tool returns (e.g., the created container's path), which is a minor gap for an agent expecting an output. Overall, it is highly complete for selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, yet the description adds substantial meaning: auto_pattern options are paired with specific POP nodes, color_mode is explained semantically, and inter-parameter relationships are clarified (e.g., auto_pattern only used when source_path undefined, max_distance drives density). This exceeds the baseline of 3.

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 clearly states this tool creates a Plexus-style line-web visual built on the POP family, with a specific pipeline (POP point cloud → Neighbor POP → Script SOP → Geometry COMP → Render TOP → Null TOP). It is a specific verb+resource+style, distinguishing it from other create_* siblings like create_pop_field or create_point_cloud.

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?

The description implies usage by explaining the Plexus effect, auto_pattern options, and the caveat about POPs being experimental. However, it does not explicitly state when to use this tool versus alternatives (e.g., create_pop_particle_system, create_vector_lines) or 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.

create_pop_particle_systemCreate POP particle systemA

Build a complete POP particle simulation (particle_pop → feedback_pop → lookup_texture_pop → field_pop → null_pop) inside a new baseCOMP, wire a render rig (poptoSOP → geometryCOMP → renderTOP → nullTOP), and expose EmissionRate, Lifetime, FeedbackGain, and ForceTexture live controls. When force_texture_path is omitted, a noiseTOP is created inside the container as the default force source so the chain always cooks. Supports three output modes: 'particles' (particle render), 'field' (field_pop visualization), and 'composite' (compositeTOP add of both). POP chain creation is delegated to build_pop_chain (Layer 2); this tool adds only the render rig and control exposure. This is the only particle tool built on TouchDesigner's native POP operators (force-texture driven, with field/composite output modes); pick a sibling instead for non-POP paths: create_gpu_particle_field for a GPU noise/curl/gravity drift field, create_particle_flock for GPU boids/flocking, image_to_particles to reconstruct an image/video as points, create_particle_system for a simple CPU emitter. NOTE: POPs are Experimental — the result carries an unverified marker; live-validate.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoContainer basename created under parent_path.pop_particle_system
outputNoWhich TOP the output nullTOP mirrors. 'particles' = render of particle_pop chain; 'field' = rendered field_pop visualization; 'composite' = compositeTOP (add) of both.particles
lifetimeNoParticle lifetime in seconds; mapped to particle_pop life/lifeexpect. Exposed as Lifetime knob.
resolutionNoRender TOP resolution [width, height].
parent_pathNoParent COMP path (default '/project1')./project1
emission_rateNoParticle birth rate per second; mapped to particle_pop birthrate and exposed as EmissionRate knob.
feedback_gainNoFeedback strength on feedback_pop (mapped to inputmul). Exposed as FeedbackGain knob.
force_texture_pathNoExisting TOP path to drive the force field via lookup_texture_pop.par.top. If omitted, a noiseTOP is created inside the container as the default force source.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations by disclosing the noiseTOP fallback when force_texture_path is omitted, the three output modes, delegation to build_pop_chain, and the experimental status with an unverified marker. Annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) are consistent, and the description adds valuable operational context without contradiction.

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?

Despite its length, the description earns its space: it front-loads the core action, then covers fallback behavior, output modes, scope delegation, alternatives, and a warning. Every sentence contributes new information without redundancy or fluff.

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 complex tool with 8 parameters and no output schema, the description fully covers the creation scope, exact operator chain, default behaviors, output options, delegated helper, and experimental status. The only omission is an explicit return value, but given the tool creates a network, this is adequately implied by the context.

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 100% and each parameter already has descriptive text. The description adds extra meaning for force_texture_path (default noiseTOP creation) and clarifies output mode semantics, but most parameter details remain in the schema. This is slightly above the baseline 3 due to the added fallback behavior.

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 uses a specific verb and resource: 'Build a complete POP particle simulation (particle_pop → feedback_pop → lookup_texture_pop → field_pop → null_pop) inside a new baseCOMP, wire a render rig... and expose live controls.' It clearly distinguishes itself from siblings by naming the exact operator chain and output modes, leaving no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is given with alternatives: 'This is the only particle tool built on TouchDesigner's native POP operators... pick a sibling instead for non-POP paths: create_gpu_particle_field..., create_particle_flock..., image_to_particles..., create_particle_system...' It also clarifies the tool's limited scope by delegating chain creation to build_pop_chain, so the agent knows exactly when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pose_controlnet_driverCreate pose ControlNet driverA

Render a canonical OpenPose-colored stick figure TOP (per-limb RGB lines + per-joint colored discs on a black background, default 512×512) from an existing pose CHOP produced by create_pose_tracking. The render is GPU-rasterized in a single GLSL TOP that samples the pose CHOP via a CHOP-to-TOP. Optionally auto-wires the output to a Syphon/Spout or NDI sender for a downstream Stable Diffusion / ComfyUI / StreamDiffusion ControlNet node. No model inference — this tool produces the driver conditioning image that ControlNet consumes.

ParametersJSON Schema
NameRequiredDescriptionDefault
mirrorNoFlip horizontally (selfie cam vs. ControlNet expectation).
sourceNoWhere the pose stream comes from. 'existing_tracker' reads a 33-sample pose CHOP at pose_chop_path. 'synthetic' auto-spins-up a synthetic Script CHOP inside this container for device-free preview.existing_tracker
resolutionNoSquare render size. ControlNet SD1.5 wants 512; SDXL wants 768/1024.512
output_modeNoWhen 'internal' stops at a Null TOP. When 'syphon_spout'/'ndi' adds an FM-01 external sender.internal
parent_pathNoParent network for the pose_controlnet_driver baseCOMP./project1
sender_nameNoSender/source name advertised on the network when output_mode != 'internal'.tdmcp_controlnet_pose
color_presetNoCanonical OpenPose 18-keypoint COCO palette by default.openpose_coco
joint_radiusNoFilled-disc radius (px) for each keypoint joint. Exposed as live JointRadius knob.
limb_thicknessNoLine thickness (px) for each limb. Exposed as live LimbThickness knob.
pose_chop_pathNoRequired when source='existing_tracker'. Absolute TD path to the canonical 33-sample pose CHOP (tx/ty/tz/confidence).
confidence_gateNoSkip drawing landmarks/limbs whose endpoint confidence falls below this. Exposed as live knob.
expose_controlsNoExpose live JointRadius, LimbThickness, ConfidenceGate, Mirror knobs.
coordinate_spaceNoHow to map landmark tx/ty to pixel space. 'normalized' maps [-1,+1] to full square. 'world' recenters using hip_midpoint and auto-scales to body height.normalized
custom_limb_colorsNoWhen color_preset='custom'. Length must equal 17 (limb count).
custom_joint_colorsNoWhen color_preset='custom'. Length must equal 18 (joint count).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring it is not read-only and not destructive, the description adds valuable detail: GPU-rasterized via a single GLSL TOP, sampling via CHOP-to-TOP, optional auto-wiring to external senders, and the explicit clarification that no model inference occurs. It fully supplements the annotation without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences and every sentence adds information: rendering output, internal mechanism, and optional output wiring. It is well-structured and front-loaded, though slightly longer than strictly necessary since some details (e.g., per-limb RGB lines, joint discs) are already evident from the title and parameters.

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 the tool's complexity (15 parameters, no output schema), the description is adequate: it explains what is produced (a TOP), how it receives data (pose CHOP), and its role in a ControlNet pipeline. It does not describe return values, but for a node-creating tool this is not a gap. The lack of an output schema is mitigated by the clear statement of the render output.

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 coverage is 100%, so the baseline is 3 per the rubric. The description does not significantly add parameter-level meaning beyond the schema; it mentions the default 512×512 and the source from an existing pose CHOP, but these are already captured in the property descriptions. No additional compensation needed.

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 uses a specific verb 'Render' and clearly identifies the resource (canonical OpenPose-colored stick figure TOP) and purpose (driver conditioning image for ControlNet). It distinguishes itself from sibling tools like create_pose_tracking by stating it consumes the pose CHOP and explicitly says 'No model inference'.

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 places the tool in a pipeline: it takes a pose CHOP 'produced by create_pose_tracking' and feeds into 'a downstream Stable Diffusion / ComfyUI / StreamDiffusion ControlNet node'. This implies when to use it, though it does not explicitly name alternatives or when-not to use it, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pose_reactiveMake a network react to body poseA

Body-pose binder parallel to bind_audio_reactive: take the 33-sample MediaPipe pose CHOP produced by setup_body_tracking and derive scalar reactive channels (right-hand height, arms openness, elbow angle, hand velocity, …) on a Null CHOP ready for bind_to_channel. Each channel is a Select→Math→Hold→Filter→Limit→Rename chain inside a fresh baseCOMP, all merged into one null_out. Supported metrics: y/x/z (1 landmark), distance/openness (2 landmarks), angle (3 — vertex middle), velocity (1, time-derivative). Optional bindings[] writes expression-mode binds directly onto target parameters (same shape as bind_to_channel; failures collected as warnings, not throws). Exposes a Reactive custom page with Smoothing/Intensity/Bypass/Gate_ knobs. Heads-up: MediaPipe's landmarks are 2D (z near-zero) — z/distance/angle/velocity are unreliable unless the adapter exposes worldLandmarks; the tool emits a warning when it detects a constant tz. Run setup_body_tracking first.

ParametersJSON Schema
NameRequiredDescriptionDefault
bindingsNoOptional list of parameter paths to bind to the derived channels (expression-mode bind, like bind_audio_reactive).
channelsYesReactive channels to derive. Landmark IDs cheat-sheet — 0 nose, 11 L-shoulder, 12 R-shoulder, 13 L-elbow, 14 R-elbow, 15 L-wrist, 16 R-wrist, 23 L-hip, 24 R-hip, 25 L-knee, 26 R-knee, 27 L-ankle, 28 R-ankle.
intensityNoMaster reactivity scaler (0=off, 1=normal, 2=strong).
smoothingNo0=raw, 1=very smoothed (drives filter width).
parent_pathNoParent COMP path./project1
source_chopYesPath to the 33-sample MediaPipe pose CHOP (tx/ty/tz/confidence channels) — typically the Null produced by setup_body_tracking.
container_nameNoContainer baseCOMP name (created under parent_path).pose_reactive
expose_controlsNoAppend Smoothing/Intensity/Bypass/Gate_<name> knobs to the container.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, openWorldHint=true), the description discloses side effects: it creates a fresh baseCOMP with a Select→Math→Hold→Filter→Limit→Rename chain merged into null_out, exposes a Reactive custom page, writes expression-mode binds with failures as warnings, and emits a warning for constant tz. This exceeds what annotations alone convey and adds valuable behavioral context.

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 dense but every sentence earns its place, covering purpose, pipeline, metrics, bindings, controls, and a data-quality warning. It is front-loaded with the main purpose and flows logically. For a tool with 8 parameters and complex behavior, this length is appropriate and well-structured.

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?

The description is highly complete given the tool's complexity: it explains the whole workflow, the output structure, the supported metrics, the bindings behavior, the exposed controls, and the critical MediaPipe 2D-landmark caveat. Even without an output schema, the agent knows what to expect (a Null CHOP with channels and a Reactive page). No gaps are evident.

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 100% and individual parameter descriptions are already detailed, so the baseline is 3. The tool description adds extra meaning by explaining the internal processing chain (Select→Math→Hold→Filter→Limit→Rename), the exact behavior of bindings (expression-mode, same shape as bind_to_channel, warning instead of throw), and the reliability caveat for z/angle/velocity metrics. This supplements the schema rather than merely repeating it.

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 clearly states the tool's function: it takes a 33-sample MediaPipe pose CHOP and derives scalar reactive channels (right-hand height, distance, angle, velocity, etc.) into a Null CHOP. It explicitly distinguishes itself from bind_audio_reactive and references setup_body_tracking, providing a specific verb+resource+output structure.

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 gives clear context when to use the tool (body-pose reactivity) and prerequisites (run setup_body_tracking first). It implies alternatives by naming bind_audio_reactive and warns about unreliable metrics, but does not explicitly list when not to use it versus other body-reactive tools. This is strong but not fully explicit about exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pose_skeletonCreate pose skeletonA

Render a live stick-figure skeleton from full-body pose tracking — the classic MediaPipe body-tracking look: glowing lines connecting the 33 landmarks (shoulders, elbows, wrists, hips, knees, ankles) drawn by a Line MAT and rendered to a Null TOP you can composite or post-process. Source defaults to a SYNTHETIC animated pose so it builds and previews instantly with no camera and no plugin; switch to 'mediapipe' (the free torinmb plugin), 'osc', or an existing pose CHOP (e.g. from create_pose_tracking) for the real performer. Creates a new baseCOMP under parent_path holding the pose source, a Geometry COMP (a Script SOP that rebuilds points + bones each cook), a Line MAT, a Camera, a Render TOP, and a Null output. Use create_body_reactive instead for glowing dots/trails at the landmarks rather than a connected stick figure. Exposes LineColor / LineWidth / CamDistance. Returns a summary plus a JSON block with the container path, created node paths, the skeleton SOP and output paths, the bone count, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoWhere the 33-landmark pose stream comes from. 'synthetic' (default) = a self-contained animated human pose that needs NO camera and NO plugin — use it to build and preview the look instantly. 'mediapipe' = the live CHOP from the free torinmb/mediapipe-touchdesigner plugin (point mediapipe_chop_path at its pose landmarks CHOP). 'osc' = landmarks arriving over OSC (osc_port). 'existing_chop' = a pose CHOP you already built (e.g. the output of create_pose_tracking).synthetic
osc_portNoUDP port the OSC In CHOP listens on (source='osc').
line_colorNoBone colour as hex ('#rrggbb'). Drives the Line MAT; default is bright cyan.#33ffe6
line_widthNoBone thickness in pixels (Line MAT near width). Exposed as a live knob.
parent_pathNoParent network where the pose-skeleton container is created (default '/project1')./project1
camera_distanceNoCamera distance on Z. Default frames a whole standing figure in 16:9; larger = further/smaller. Exposed as a live knob.
expose_controlsNoWhen true (default), expose live LineWidth / CamDistance knobs (+ a LineColor swatch).
existing_chop_pathNoPath of an existing pose CHOP — 33 samples, tx/ty/tz channels (source='existing_chop').
mediapipe_chop_pathNoPath to the MediaPipe plugin's pose-landmarks CHOP (source='mediapipe'). The plugin emits 33 samples with tx/ty/tz channels.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only convey readOnly=false and destructive=false, so the description carries the burden, and it delivers: it reveals the created node hierarchy, the Script SOP that rebuilds points each cook, the default synthetic source, exposed knobs, and the JSON return payload including preview. This goes beyond the annotations to explain how the tool behaves at runtime.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured, front-loading the core purpose and then flowing into sources, created nodes, alternatives, exposed controls, and return value. Every sentence adds relevant detail for a complex tool; only minor trimming would be possible.

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?

With no output schema, the description fully explains return values (summary, paths, bone count, errors, preview). It covers all major behaviors, source options, and the network built, making it complete for a 9-parameter tool with no required parameters.

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 little grouping context (e.g., 'Exposes LineColor / LineWidth / CamDistance') but doesn't provide significant meaning beyond the already-detailed property descriptions.

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 starts with a specific verb+resource: 'Render a live stick-figure skeleton from full-body pose tracking' and then enumerates the exact component network created. It explicitly distinguishes itself from the sibling tool create_body_reactive ('Use create_body_reactive instead for glowing dots/trails...').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context: the synthetic source works with no camera/plugin, while 'mediapipe', 'osc', or an existing pose CHOP are for real performers. It also names an explicit alternative (create_body_reactive) and a prerequisite source tool (create_pose_tracking), giving the agent concrete decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pose_trackingCreate pose trackingA

Set up full-body pose tracking — the foundation for body-reactive visuals (the camera/skeleton counterpart to extract_audio_features). Produces a canonical pose CHOP (33 MediaPipe landmarks as samples, channels tx/ty/tz/confidence) plus a 'keypoints' CHOP of ready-to-bind scalar channels (r_wrist_y, l_wrist_x, hips_x, hand_span, height, …). Source defaults to a self-contained SYNTHETIC animated pose so it builds and previews with no camera and no plugin; switch to 'mediapipe' (the free torinmb/mediapipe-touchdesigner plugin), 'osc', or an existing pose CHOP for the real performer. Smoothing and Mirror included. Feed the output into create_pose_skeleton or create_body_reactive.

ParametersJSON Schema
NameRequiredDescriptionDefault
mirrorNoFlip the pose horizontally (negate tx) so a webcam feed reads like a mirror — the performer's right hand is on the right of the frame. Build-time; off by default.
sourceNoWhere the 33-landmark pose stream comes from. 'synthetic' (default) = a self-contained animated human pose that needs NO camera and NO plugin — use it to build and preview the look instantly. 'mediapipe' = the live CHOP from the free torinmb/mediapipe-touchdesigner plugin (point mediapipe_chop_path at its pose landmarks CHOP). 'osc' = landmarks arriving over OSC (osc_port). 'existing_chop' = a pose CHOP you already built (e.g. the output of create_pose_tracking).synthetic
osc_portNoUDP port the OSC In CHOP listens on (source='osc').
smoothingNoTemporal smoothing (0..0.95): each landmark is blended with its previous frame so jittery tracking glides instead of snapping. 0 = raw/instant; higher = smoother but laggier. Exposed as a live knob.
parent_pathNoParent COMP path the self-contained 'pose_tracking' container is created inside./project1
expose_controlsNoExpose a live 'Smoothing' knob (0 = raw).
existing_chop_pathNoPath of an existing pose CHOP — 33 samples, tx/ty/tz channels (source='existing_chop').
mediapipe_chop_pathNoPath to the MediaPipe plugin's pose-landmarks CHOP (source='mediapipe'). The plugin emits 33 samples with tx/ty/tz channels.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only state readOnly=false and destructive=false. The description adds value by revealing it creates two CHOPs, includes smoothing and mirror features, and that the synthetic source requires no camera or plugin. It also notes the free MediaPipe plugin dependency for real tracking. Does not mention potential overwriting, but annotations already cover destructiveness.

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?

Four sentences, densely packed with purpose, outputs, source options, features, and downstream integration. Every sentence earns its place, and the description is front-loaded with the primary purpose. No filler or tautology.

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 tool with 8 parameters and no output schema, the description is remarkably complete: it explains core function, data structure (33 landmarks, tx/ty/tz/confidence, keypoints examples), source variants, default behavior, and downstream use. It gives an agent everything needed to invoke the tool and set expectations.

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?

The input schema provides detailed, 100% coverage for all 8 parameters. The description adds no new parameter-level semantics beyond echoing the synthetic default and source enum. Baseline 3 is appropriate since the schema handles the heavy lifting.

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?

Clearly states it sets up full-body pose tracking and describes the produced outputs (canonical pose CHOP and keypoints CHOP). It distinguishes itself as the foundation for body-reactive visuals, explicitly naming downstream tools (create_pose_skeleton, create_body_reactive) and contrasting with extract_audio_features.

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?

Provides strong usage context: it is the foundation for body-reactive visuals, and the output feeds into create_pose_skeleton or create_body_reactive. Also explains when to use the synthetic default (no camera/plugin) versus mediapipe, osc, or existing_chop. Lacks explicit exclusions, but the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_preset_morphCreate preset morphA

Target-agnostic preset morph engine: snapshot any OP's animatable parameters into N named slots, then blend between them with a weight vector (or a single A↔B recall) through a Lag CHOP + Lookup curve, exposing the live blended values on a Null CHOP for bind_to_channel consumers. Unlike create_look_bank (which is scoped to a control COMP's custom pars with a 2-slot A↔B knob), this drives any OP and supports >2 simultaneous weights (normalized internally). Reuses manage_cue's MORPH_HOOK for beat/bar quantized recall. Note: Lag CHOP does not advance while the timeline is paused.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the morph container (baseCOMP) created inside parent_path.preset_morph
slotNoSlot name (required for store / recall / delete).
actionNobuild: create the morph container. store: snapshot the target's animatable parameters into a named slot. recall: snap or crossfade the target to one slot. set_weights: drive an N-way weighted blend across all stored slots (vector is clipped to >=0 and normalized). list / delete slots.build
includeNo(store) Restrict the snapshot to these parameter names (tuplet names like 'tx', 'feedback'). Omit to capture every animatable numeric/toggle/menu parameter (pulses, strings, file refs are always skipped).
weightsNo(set_weights) Map of slot-name -> weight. Negatives clipped to 0; the vector is normalized internally (sum -> 1) before lerp. Missing slots default to 0.
quantizeNo(recall) Defer the snap/crossfade to the next musical boundary (project tempo). Mirrors manage_cue / create_look_bank.off
parent_pathNoParent COMP where the morph container is built./project1
target_pathNoThe node whose parameters are snapshotted and driven (required for build/store). Any OP with animatable numeric/toggle/menu pars.
interpolationNoInterpolation curve applied to each parameter when crossfading. linear is a straight lerp; cosine/cubic shape the lagged weights through a Lookup CHOP curve.linear
morph_secondsNo(recall) 0 = snap; >0 = ease to slot over this many seconds via a Lag CHOP on the weight vector. Note: Lag CHOP does not advance while the timeline is paused.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly=false, destructive=false), the description discloses a rich set of behavioral traits: snapshotting into slots, internal normalization of weights, use of Lag CHOP + Lookup curve, exposure on a Null CHOP for bind_to_channel consumers, and the paused-timeline limitation. This goes far beyond what annotations provide and helps the agent anticipate side effects and constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core concept and uses four dense sentences that each carry substantive information. It is appropriately sized for the tool's complexity, though it packs many technical terms into a compact space. No filler or redundant phrasing.

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 the tool's complexity (10 params, nested objects, no output schema), the description gives a strong conceptual and architectural overview, including key limitations. However, it does not explicitly state what the tool returns (e.g., path/status), which is a minor completeness gap for an agent expecting to consume the result. Still, the volume of contextual detail is high.

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?

The input schema covers 100% of parameters with detailed inline descriptions, so the baseline is 3. The description adds contextual architecture (Lag CHOP, Lookup curve, Null CHOP) but does not add new per-parameter meanings beyond what the schema already states. It reinforces the overall workflow but doesn't elevate parameter understanding further.

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 'Target-agnostic preset morph engine' and immediately specifies the resource (any OP's animatable parameters), the action (snapshot into N named slots, blend with weight vector or A↔B recall), and the output (exposed on a Null CHOP). It distinctly differentiates from create_look_bank by contrasting scope and weight-count support, making the tool's purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names create_look_bank as an alternative and clarifies when this tool is appropriate ('Unlike create_look_bank … this drives any OP and supports >2 simultaneous weights'). It also points to reuse of manage_cue's MORPH_HOOK for quantized recall, and adds a critical caveat about Lag CHOP not advancing while the timeline is paused, effectively giving both when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_prob_sequencerCreate probabilistic sequencerA

Build a Markov-chain step sequencer. On each beat boundary the COMP transitions from the current state to a next state sampled from the per-state weighted-transition table. Outputs two CHOP channels: 'state' (current state index) and 'trigger' (pulse on state change). Generative sibling of create_euclidean_sequencer and create_beat_grid_sequencer — great for evolving, probabilistic rhythms and generative state machines. NOTE: beat-callback timing requires a live TD session with time.play=1.

ParametersJSON Schema
NameRequiredDescriptionDefault
bpmNoTempo written to Beat CHOP when no bpm_source is provided.
nameNoContainer COMP name.prob_seq
seedNoIf set, seeds Python random for reproducible runs.
statesYesMarkov states. Each state has a unique id, a weight (initial distribution), and a transitions map (keys = state ids, values ≥ 0).
divisionNoBeat subdivision (1/4→1, 1/8→2, 1/16→4 beats-per-measure).1/8
bpm_sourceNoPath to an existing Beat CHOP / tempo source. Omit to build a new one.
startStateNoInitial state id. If omitted, sampled from state weights.
parent_pathNoParent COMP path./project1

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate open-world and non-destructive behavior, so the description carries the burden of explaining runtime behavior. It discloses the two output channels ('state' and 'trigger'), the Markov-chain transition mechanism, and the critical requirement of a live TD session with time.play=1. This goes beyond annotations, though it could also mention that a new COMP is created in the network.

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 long and every sentence earns its place: the first states the core purpose, the second details the behavior and outputs, and the third provides sibling context, use-case guidance, and an important runtime note. It is front-loaded and free of filler.

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 generative tool with no output schema, the description covers the core algorithm, created outputs, runtime prerequisite, and sibling relationships. It omits explicit mention of the created COMP name or parent path, but those are in the schema. The note about time.play is crucial for live-session usage, making the description reasonably complete.

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 context about how the 'states' parameter works ('per-state weighted-transition table') and mentions 'beat boundary' which relates to 'division' and 'bpm', but it does not provide additional syntax or per-parameter detail beyond what the schema already gives.

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 'Build a Markov-chain step sequencer,' which is a specific verb+resource statement. It further distinguishes itself from siblings by labeling itself a 'generative sibling' and explaining its probabilistic nature, making it clearly different from deterministic sequencer tools.

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 positions the tool for 'evolving, probabilistic rhythms and generative state machines,' and notes it is a 'generative sibling' of Euclidean and beat-grid sequencers, implying alternative deterministic use cases. However, it does not explicitly state when not to use it or name explicit alternative conditions beyond the sibling reference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_projection_mappingCreate projection mappingA

Wrap a source TOP in a Corner Pin warp for projection mapping: drag the four corner handles to line the image up with a physical surface (wall, object, screen). The source comes in through a Select TOP so it can live anywhere; output is a Null ready for setup_output. The corner positions are parameters, so you can also drive or save them.

ParametersJSON Schema
NameRequiredDescriptionDefault
parent_pathNoParent COMP path the self-contained 'projection' container is created inside./project1
source_pathNoTOP to map (brought in via a Select TOP). Omit for a demo grid source.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (openWorldHint=true, destructiveHint=false), the description discloses the generated structure: a 'projection' container with a Corner Pin warp, Select TOP, and a Null output 'ready for setup_output'. It also mentions that corner positions are parameters, adding non-obvious behavioral detail about drivability/saving.

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?

Three sentences, each adding distinct value: action, workflow (source/output), and parameter flexibility. No fluff or redundancy; front-loaded with the main purpose.

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?

With a moderate-complexity create tool, the description covers the workflow (input source, created nodes, output Null) and mentions the key capability (corner params are drivable/savable). It does not discuss edge cases like node naming or overwrites, but given the annotations and schema, this is sufficient.

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 coverage is 100% with clear descriptions for both parameters. The description adds minor value by explaining the source comes via a Select TOP and that corner positions are parameters, but these are not input-schema parameters. The schema already provides the necessary parameter semantics.

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 uses a specific verb+resource: 'Wrap a source TOP in a Corner Pin warp for projection mapping' and clearly states the interaction ('drag the four corner handles to line the image up with a physical surface'). This differentiates it from sibling tools like create_led_mapper or create_vioso_warp_panel by naming the Corner Pin technique.

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 implies the use case (projection mapping with manual corner alignment) and adds context about source flexibility via a Select TOP ('so it can live anywhere'). However, it does not explicitly mention alternatives or when not to use it, so it's clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_python_scriptCreate Python DATA
Destructive

Create one DAT under parent_path preloaded with your Python code. dat_type chooses a Text DAT (plain code), an Execute DAT (event hooks like onFrameStart), or a Script DAT (table builder); for a Script DAT the code is written to its auto-created companion callbacks DAT, since the Script DAT's own text is read-only. Returns the created DAT's path. This only stores code as a node; use execute_python_script instead to run Python immediately against the live project.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesPython source to place in the DAT.
nameNoName for the new DAT; auto-generated when omitted.
dat_typeNoKind of DAT: 'text' (plain), 'execute' (event hooks), or 'script' (table builder).text
parent_pathYesParent COMP to create the DAT inside.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behavioral nuances beyond annotations: Script DAT's read-only text and the auto-created companion callbacks DAT, that it only stores code, and that it returns the created DAT's path. This is significant context not captured by the structured fields.

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?

Three sentences, front-loaded with the core action, and each sentence provides necessary details without redundancy. It efficiently covers creation, options, a caveat, and a pointer to the alternative tool.

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 tool with no output schema, the description adequately explains the return value (path), the behavior across all dat_type variants, and the relationship to execute_python_script. It is complete enough for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While schema covers 100% of parameters, the description adds meaning by explaining dat_type with concrete examples (Text, Execute, Script) and the special behavior for Script DAT. It also clarifies that name is auto-generated when omitted, and that code goes into the DAT.

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 clearly specifies the action (create), the resource (DAT node), and the scope (under parent_path preloaded with code). It distinguishes itself from siblings by naming execute_python_script as the alternative for immediate execution, and explains the different DAT types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool (storing code as a node) and when not to (use execute_python_script to run Python immediately). Also clarifies the use case for each dat_type (Text, Execute, Script) with examples like onFrameStart and table builder.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_raymarch_sceneCreate raymarch sceneA

Instantiate a self-contained GLSL TOP raymarcher (volumetric / signed-distance-field) — the 3D complement to create_shader_lib. Scenes: sphere_field (repeated spheres), menger (Menger-sponge fractal), tunnel (twisting tunnel). Exposes live CameraZ / Speed / StepCount / Intensity / ColorA / ColorB controls and previews the output TOP.

ParametersJSON Schema
NameRequiredDescriptionDefault
sceneNoWhich SDF scene to ray-march: sphere_field, menger (sponge fractal), or tunnel.sphere_field
speedNoAnimation speed multiplier (drives uTime). Exposed as a live 'Speed' control.
color_aNoNear/primary colour as hex (e.g. '#33ccff'); parsed to 0..1 RGB, exposed as 'ColorA'.
color_bNoFar/secondary colour as hex (e.g. '#ff2266'); parsed to 0..1 RGB, exposed as 'ColorB'.
camera_zNoCamera distance back from the origin (uCameraZ). Exposed as a live 'CameraZ' control.
intensityNoOutput brightness multiplier (uIntensity). Exposed as a live 'Intensity' control.
resolutionNoOutput resolution [width, height] of the GLSL TOP.
step_countNoRaymarch iterations (uSteps); higher = more detail/cost. Exposed as 'StepCount'.
parent_pathNoParent COMP path the self-contained 'raymarch_scene_<scene>' container is created inside./project1
expose_controlsNoExpose live CameraZ / Speed / StepCount / Intensity / ColorA / ColorB controls.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations convey non-readonly and non-destructive behavior. The description adds value by disclosing that it creates a self-contained container, exposes live controls, and previews the output TOP – behavioral details not present in 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?

Two concise, front-loaded sentences cover the purpose, scene options, and key features. Every word earns its place; no redundancy or filler.

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 the rich input schema and absence of an output schema, the description offers a sufficient overview of behavior. It could mention naming or parent_path specifics, but those are already embedded in the schema, so this is adequate.

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 coverage is 100% with detailed descriptions for every parameter, so the baseline is 3. The description only merely echoes the exposed control names without adding new depth beyond what the schema already documents.

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 uses a specific verb ('Instantiate') and names the resource ('self-contained GLSL TOP raymarcher'), clearly stating what the tool does. It also explicitly differentiates from a sibling ('3D complement to create_shader_lib') and lists the concrete scene options.

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 provides clear usage context by positioning the tool as the 3D counterpart to create_shader_lib, implying when it should be used. However, it lacks explicit exclusions or guidance on when to choose alternatives like create_raytk_scene or create_sdf_field.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_raytk_opCreate a RayTK operator (ROP)A

Copy a RayTK ROP master (SDF / camera / light / combine / material / render) into a network and optionally wire an existing op into one of its typed inputs, using the same COMP.copy primitive RayTK's own palette uses. Resolves the install-dependent master path live (RayTK's pathsByOpType lookup, or a category-folder search) — never hardcoded — so it requires the RayTK toolkit staged + loaded first (see manage_packages / the tdmcp://raytk/operators catalog). Complementary to the GLSL create_raymarch_scene: this instances RayTK's own operators instead of authoring a shader.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional node name for the new ROP. If omitted, TouchDesigner auto-uniques from the master name.
node_xNonodeCenterX placement of the new ROP. Omit to auto-place to the right of existing siblings (avoids stacking repeated ops at the origin).
node_yNonodeCenterY placement of the new ROP. Omit to auto-place (defaults to 0).
op_typeYesRayTK operator name = the .tox master, e.g. 'sphereSdf', 'raymarchRender3D', 'lookAtCamera', 'pointLight', 'simpleUnion'. See the tdmcp://raytk/operators catalog resource.
categoryNoOptional RayTK category folder hint to speed master resolution, e.g. 'sdf','output','camera','light','combine','material','filter'. Optional because resolution also works by op_type alone.
input_indexNo0-based input connector index of the NEW op that connect_from wires into (matches TouchDesigner inputConnectors[]). For raymarchRender3D: 0=scene, 1=camera, 2=light.
parent_pathNoPath of the parent COMP the new ROP is copied into./project1
connect_fromNoOptional path of an existing operator to wire INTO this new op's input (source → new op). Omit for no wire; must be a non-empty path when present.
library_pathNoOptional explicit path to the loaded RayTK library COMP (advanced). If omitted, the bridge probes for it — the runtime master path is install-dependent and must be read live, never hardcoded.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, so the agent knows this is a mutation. The description adds valuable behavioral context: it uses COMP.copy, resolves the install-dependent master path live (never hardcoded), and discloses that the toolkit must be loaded first. This goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences and dense with useful information. It front-loads the core action ('Copy a RayTK ROP master...') and then adds prerequisites and differentiation. It is slightly lengthier than the simplest examples but each clause serves a purpose—no wasted words.

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 complex tool with 9 parameters and no output schema, the description covers essential context: the copy mechanism, path resolution strategy, required setup, and relationship to a sibling tool. It does not explain return values, but with no output schema and a simple creation action, the main missing piece would be what the tool returns—yet this is likely inferable. Overall it is complete enough for an agent to invoke correctly.

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 schema already documents all parameters thoroughly. The description reinforces op_type semantics with examples ('sphereSdf', 'raymarchRender3D') and explains input_index for raymarchRender3D, but these details are already present in the schema. The description adds marginal value beyond the schema, so baseline 3 is appropriate.

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 clearly states the tool's action: copying a RayTK ROP master into a network and optionally wiring an existing op into a typed input. It names the specific master categories (SDF / camera / light / combine / material / render) and explicitly contrasts itself with the sibling tool create_raymarch_scene, 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 Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: it requires the RayTK toolkit to be staged and loaded, points to manage_packages and the tdmcp://raytk/operators catalog for prerequisites, and clearly distinguishes when to use this tool versus create_raymarch_scene ('this instances RayTK's own operators instead of authoring a shader'). This gives the agent clear decision criteria for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_raytk_sceneCreate RayTK sceneA

Build the minimal renderable RayTK node graph (sphereSdf → raymarchRender3D → Null TOP) from RayTK's real ROP COMP masters, copied at runtime — the node-graph-native complement to create_raymarch_scene (which stays the lightweight, no-dependency GLSL path). Optional flags union a second SDF, insert an inline basicMat, and add an explicit lookAtCamera / pointLight. Requires the RayTK toolkit staged + loaded (manage_packages install raytk, then load the .tox); RayTK 0.46 requires TouchDesigner 2025.30770+. Fails forward with 'stage & load RayTK first' guidance when the library is absent.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the container COMP created for the scene. Defaults to 'raytk_scene_<sdf_primitive>'.
materialNoInsert a RayTK basicMat (material category) inline between the SDF/union chain and the renderer, so the surface gets a base color/shading instead of the renderer default.
add_lightNoAdd a RayTK pointLight (light category) wired into the renderer's Light input (connector index 2, 0-based). Default false uses the renderer's built-in light — leave false for the minimal scene.
add_cameraNoAdd a RayTK lookAtCamera (camera category) wired into the renderer's Camera input (connector index 1, 0-based). Default false uses the renderer's built-in camera — leave false for the minimal scene.
union_withNoOptional second SDF primitive to combine with sdf_primitive via a RayTK simpleUnion (combine category). Omit for a single primitive. Example: sdf_primitive=sphereSdf + union_with=boxSdf yields a merged blob.
parent_pathNoParent COMP path the RayTK scene container is created inside./project1
sdf_primitiveNoPrimary RayTK SDF primitive ROP to raymarch. One of sphereSdf, boxSdf, boxFrameSdf, torusSdf. These are RayTK 'sdf'-category COMP masters copied from the loaded library — not native TouchDesigner operators.sphereSdf

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description adds practical behavioral context: it copies masters at runtime, requires RayTK to be loaded, and 'fails forward' with guidance when the library is absent. This is useful and non-contradictory. It doesn't cover every side effect, but annotations already handle the safety profile.

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?

Three tightly packed sentences with no filler. Each sentence carries distinct value: what is built, how it relates to a sibling, and prerequisites/failure behavior. Front-loaded with the primary action and chain.

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?

Despite no output schema, the description covers prerequisites (RayTK staged + loaded), version compatibility (RayTK 0.46 requires TD 2025.30770+), failure behavior ('fails forward' guidance), and the alternative tool. For a creation tool with rich schema coverage, this is complete.

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 100% and every parameter has a description. The description additionally maps 'optional flags union a second SDF, insert an inline basicMat, and add an explicit lookAtCamera / pointLight' to the union_with, material, add_camera, and add_light parameters, enriching the node-graph context beyond the raw schema.

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 provides a specific verb ('Build') and resource ('minimal renderable RayTK node graph') with an explicit node chain (sphereSdf → raymarchRender3D → Null TOP). It also differentiates from the sibling create_raymarch_scene by calling itself the 'node-graph-native complement' to that lightweight GLSL path.

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 situates when this tool is appropriate (node-graph-native RayTK approach, in contrast to create_raymarch_scene's lightweight GLSL path) and gives a concrete prerequisite ('Requires the RayTK toolkit staged + loaded'). However, it does not explicitly state exclusions (e.g., 'don't use if you don't need RayTK masters') beyond the complement framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_raytk_sdf_graphCreate RayTK SDF graphA

Build a RayTK SDF graph from copied RayTK ROP masters: primary SDF, optional secondary SDF through simpleUnion, optional basicMat, lookAtCamera, pointLight, raymarchRender3D, and a native Null TOP output. Requires RayTK to be staged with manage_packages install raytk and loaded from the staged .tox.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the container COMP created for the graph.raytk_sdf_graph
lightNoAdd a RayTK pointLight wired to renderer input 2.
cameraNoAdd a RayTK lookAtCamera wired to renderer input 1.
primaryNoPrimary RayTK SDF primitive ROP copied from the loaded RayTK library.sphereSdf
materialNoInsert a RayTK basicMat between the SDF chain and renderer.
operationNoCombination operation. A provided secondary upgrades none to simpleUnion.none
secondaryNoOptional second RayTK SDF primitive, combined with primary by simpleUnion.
output_nameNoName of the native Null TOP receiving the renderer output.out1
parent_pathNoParent COMP path where the RayTK SDF graph container is created./project1
render_resolutionNoRayTK renderer resolution [width, height]. Defaults to 1280x720 to avoid TouchDesigner Non-Commercial render-size warnings.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-read-only, non-destructive operation (readOnlyHint=false, destructiveHint=false). The description adds the staging dependency and the fact that it copies ROP masters, which is useful context. It does not mention potential side effects like overwriting existing components or what happens if RayTK is not staged, but the annotations cover the basic safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main action ('Build a RayTK SDF graph') and no redundancy with the schema. The second sentence is long but packs the essential prerequisite info. It is dense but not wasteful, though the long list of components could be slightly restructured for readability.

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 10 parameters and no output schema, the description effectively covers the graph structure and the critical RayTK staging prerequisite. The schema fills in parameter details and confirms a container COMP is created. It could explicitly state the creation of a new container COMP and the default location, but combined with the schema, the information is complete enough for an agent to invoke the tool correctly.

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 coverage is 100% with each parameter individually described (e.g., 'Add a RayTK pointLight wired to renderer input 2'). The description gives a high-level summary of the graph components but adds no extra detail beyond what the schema already provides, so the baseline of 3 is appropriate.

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 clearly states it 'Build a RayTK SDF graph' and enumerates the exact components (primary SDF, optional secondary through simpleUnion, basicMat, lookAtCamera, pointLight, raymarchRender3D, and Null TOP output). This specific verb+resource+scope distinguishes it from siblings like create_raytk_op or create_raytk_scene.

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 provides clear context: creating a full SDF graph from staged RayTK masters. It explicitly states the prerequisite, 'Requires RayTK to be staged with manage_packages install raytk and loaded from the staged .tox.' However, it does not name alternative tools or exclusion conditions, so it lacks explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_reaction_diffusionCreate reaction diffusionA

Build a Gray-Scott reaction-diffusion GPU simulation as a ready-to-use visual system. Delegates to the built-in 'reaction_diffusion' recipe (seed GLSL TOP → feedbackTOP → simulation GLSL TOP → null output), then overlays caller-provided Gray-Scott parameters (Feed rate F, Kill rate K, diffusion coefficients Da/Db) as GLSL uniforms, patches the shader so da/db use the uniforms instead of hard-coded constants, and optionally chains a rampTOP + lookupTOP for a color LUT (coral / spots / stripes / mitosis presets). Exposes a control panel with sliders for F, K, Da, Db, resolution, and a palette menu. Output node is a nullTOP ready for downstream wiring. 'iterations>1' is unverified — effective value is 1 with a warning.

ParametersJSON Schema
NameRequiredDescriptionDefault
FNoGray-Scott feed rate (uniform uFeed). Controls how fast chemical A is replenished. Lower = sparser, more open patterns; higher = denser maze-like structures.
KNoGray-Scott kill rate (uniform uKill). Controls how fast chemical B is removed. Tune alongside F to shift between spots, stripes, and maze regimes.
DaNoDiffusion rate of chemical A (uniform uDa). Default 1.0. Increasing slows pattern growth; the recipe default is 1.0.
DbNoDiffusion rate of chemical B (uniform uDb). Default 0.5. Tuning relative to Da changes pattern sharpness.
nameNoBase name for the created container.reaction_diffusion
paletteNoPost-sim color LUT applied via a rampTOP + lookupTOP downstream of the GLSL simulation. 'coral' = deep-purple→magenta→cream→white; 'spots' = black→cyan→white; 'stripes' = indigo→green→yellow; 'mitosis' = blood-red→orange→bone-white; 'none' = raw simulation state (R=A, G=B).coral
iterationsNoSimulation steps per rendered frame. UNVERIFIED — feedbackTOP has no native cookrate param; effective value is 1 with a warning if >1 is requested. Field retained for forward-compatibility.
resolutionNoSquare simulation grid size in pixels. Overrides seed1.resolutionw/h. Higher values produce finer detail at higher GPU cost.
parent_pathNoParent COMP path the reaction-diffusion container is created inside./project1

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide only readOnly=false, destructive=false, and openWorld=true. The description goes far beyond by detailing the build pipeline, shader constant patching, optional LUT chain, control panel creation, and output node. It also transparently discloses that 'iterations>1' is unverified and effective value is 1 with a warning, adding significant behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense single paragraph but front-loads the core purpose and packs in specific pipeline details, LUT presets, and a critical caveat. It is efficient, though slightly verbose and could benefit from structured formatting.

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 complex 9-parameter creation tool with no output schema, the description covers the full build pipeline, parameter handling, palette options, control panel, output node, and the unverified iterations field. This gives an agent sufficient context to use the tool correctly.

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 all parameters already have detailed explanations. The description mentions F/K/Da/Db as uniform names and the patching behavior, but this does not add new meaning beyond the schema. Baseline 3 is appropriate.

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 begins with 'Build a Gray-Scott reaction-diffusion GPU simulation as a ready-to-use visual system,' using a specific verb and resource. It clearly distinguishes this tool from sibling creation tools by detailing the unique pipeline (recipe delegation, shader patching, LUT chaining) and output node.

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?

The use case is implied by the explicit mention of Gray-Scott reaction-diffusion, but there is no direct comparison to alternatives or exclusions. With numerous create_* sibling tools, the description would benefit from stating when to use this over related simulation tools, but it remains adequate for a specialized tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_realsense_depth_busCreate RealSense depth busA

Create an Intel RealSense depth-camera scaffold with RealSense TOP, NDI, WebSocket adapter, or sample-source modes plus depth/color/point-cloud routing notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.realsense_depth_bus
activeNo
ndi_sourceNoNDI source name for depth input.RealSense Depth
resolutionNo848x480
server_urlNoAdapter WebSocket URL.ws://127.0.0.1:9015
parent_pathNoParent COMP for the RealSense depth scaffold./project1
source_modeNorealsense_top
include_colorNo
serial_numberNoOptional RealSense camera serial number.
include_pointcloudNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description's 'Create' action is consistent. The description adds minor context by mentioning the modes and routing notes, but does not disclose potential side effects, prerequisites (e.g., camera connection), or the structure of the created scaffold beyond what is implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense sentence that efficiently communicates the tool's purpose and key modes without excessive verbosity. It is reasonably front-loaded with the main action, though the long list of modes makes it slightly less scannable than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description does not explain what the scaffold produces or how the routing notes are delivered. For a creation tool with 10 parameters and multiple modes, the description is adequate but leaves gaps about the resulting component structure and configuration specifics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50%, and the description does not compensate for the undocumented parameters (active, resolution, source_mode, include_color, include_pointcloud). It hints at modes and color/point-cloud, which vaguely aligns with source_mode and include_color/include_pointcloud, but lacks explicit explanations of parameter meaning, especially resolution options and defaults.

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 clearly states the verb 'Create' and the specific resource 'Intel RealSense depth-camera scaffold'. It further distinguishes the tool by enumerating modes (RealSense TOP, NDI, WebSocket, sample-source) and the included depth/color/point-cloud routing, setting it apart from sibling depth buses like create_zed_depth_bus.

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 gives clear context that this tool is for creating a RealSense depth-camera scaffold, which implies usage for Intel RealSense hardware. However, it does not explicitly name alternatives or state when not to use this tool over other depth buses, so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_replicatorCreate Replicator (clone a template per data row)A

Wire a Replicator COMP that clones a template COMP once per row of a Table DAT — TouchDesigner's idiomatic 'N copies from data' mechanism (menus, scoreboards, per-track decks, instanced panels). Resolves or creates the template COMP (omit template_path → a minimal container with a Text) and the driving Table DAT (omit table_path → a small example table; rows sets how many demo rows), creates the replicator under parent_path, points its driving-table and master parameters at them, sets the replication method to 'by table', and optionally drops an onReplicate callback DAT stub for per-clone setup. The Replicator's parameter names vary by TD build, so each is set probe-first and the report includes which parameter took plus the live parameter list. Then it pulses a re-replicate so the clones appear. Re-replicating is destructive to previously generated clones, which the replicator deletes and re-creates on cook.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the Replicator COMP.replicator1
rowsNoWhen creating an example table, how many example rows (0 = a 3-row demo).
table_pathNoTable DAT whose rows drive the clones. Omit → create a small example Table DAT.
parent_pathNoCOMP to build the replicator inside./project1
callback_stubNoGenerate an onReplicate callback DAT stub (per-clone setup hook).
template_pathNoExisting COMP to clone per row. Omit → create a minimal template COMP (a container with a Text).

TDQS

A3.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states that 'Re-replicating is destructive to previously generated clones' and that 'the replicator deletes and re-creates on cook', yet the annotations declare destructiveHint=false. This is a direct contradiction, forcing a score of 1 per the rubric despite the description's otherwise rich behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence contributes meaningful behavioral or contextual information (fallback creation, parameter probing, destructiveness). It is front-loaded with the core purpose and remains structured, though slightly verbose.

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 the tool's complexity and lack of output schema, the description covers creation fallbacks, callback stubs, parameter-version workarounds, and destructive re-replication. It partially explains the report contents ('which parameter took plus the live parameter list') but does not fully specify the return structure, preventing a perfect score.

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 coverage is 100%, so the baseline is 3. The description's parameter mentions (e.g., 'omit template_path → a minimal container with a Text') largely duplicate the schema descriptions without adding new semantic meaning beyond what the structured properties already provide.

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 clearly states the tool's purpose with a specific verb and resource: 'Wire a Replicator COMP that clones a template COMP once per row of a Table DAT'. It immediately distinguishes itself from sibling tools by describing the idiomatic 'N copies from data' mechanism and listing concrete use cases like menus and scoreboards.

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 provides clear usage context through examples ('menus, scoreboards, per-track decks, instanced panels') and explains when the tool is appropriate. However, it does not explicitly mention alternatives or when not to use it, so it slightly misses the 'exclusions' portion of a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_safety_blackout_chainCreate safety blackout chainA
Destructive

Build a live-show safety primitive at the very end of the master output chain: deterministic fade-to-black over a configurable time, optional emergency single-frame hard-cut, optional hotkey + external watchdog trigger, and symmetric fade-in recovery. All reactivity is parameter-driven (Speed + Lookup CHOP + Math/Logic CHOPs) — no Python runs at cook time, so the chain is ALLOW_EXEC=0-safe. Complements create_panic (per-source kill+freeze) by being the master-output dimmer with grace, recovery, and a watchdog hook. Returns the container, source, dim, emergency-gate, composite, and output node paths plus the trigger merge/target/speed/lookup nodes.

ParametersJSON Schema
NameRequiredDescriptionDefault
hotkeyNoKeyboard In CHOP key spec that toggles Blackout (e.g. 'ctrl.b'). null/empty disables — hotkey is opt-in safe, requires a modifier.ctrl.b
fade_curveNoInterpolation shape for the fade ramp, applied via a Lookup CHOP curve so the ramp is deterministic and Python-free at cook time.ease_in_out
input_pathNoAbsolute path of the master TOP to protect. Pulled in via a Select TOP (TD wires can't cross COMPs). If omitted, a Ramp TOP test source is used so the chain still builds + previews.
parent_pathNoParent COMP the safety chain is built inside (default '/project1')./project1
fade_secondsNoTime the soft fade-to-black (and symmetric fade-in) takes. 0 = instant.
initial_stateNoBoot state. 'live' = pass-through, 'black' = Blackout toggle on at load, 'held' = Hold toggle on (good for show open before first cue).live
recovery_modeNoWhen the watchdog returns to 0: 'manual' keeps it black until the artist clears it; 'auto_on_clear' fades back in.manual
expose_controlsNoBuild the control panel with Blackout / Emergency / Fade Seconds / State LED.
show_safe_labelNoOptional caption baked into the black frame (Text TOP composited over the dimmed output). Empty/null = no caption.SHOW SAFE
watchdog_channelNoOptional absolute CHOP path + channel ('node:channel') — when non-zero, forces Blackout on. Lets external monitors trigger blackout deterministically without Python.
arm_emergency_snapNoExpose an Emergency momentary pulse that bypasses the fade and hard-cuts to black.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, openWorldHint=true, destructiveHint=true. The description adds valuable behavioral context beyond these flags: the chain is deterministic, Python-free at cook time, ALLOW_EXEC=0-safe, and built at the end of the master output chain (which implies it modifies the output path). It does not contradict annotations, and while it does not elaborate on the destructive implications, it sufficiently discloses the tool's construction and safety characteristics.

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?

Though the description is a long sentence, every clause provides essential information: purpose, placement, capabilities, technical mechanism, complementary tool, and return value. It is front-loaded with the core action and avoids redundant filler. The structure is efficient given the tool's complexity.

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?

The tool is complex (11 params, 0 required, no output schema). The description covers what the tool creates, where it fits in the signal chain, how it is triggered (hotkey, watchdog, emergency), the recovery behavior, the Python-free safety aspect, and explicitly enumerates the returned node paths. This fully compensates for the lack of an output schema and gives the agent a complete mental model.

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?

All 11 parameters have schema descriptions (100% coverage), so baseline is 3. The description adds a cohesive semantic layer by describing how parameters interact: 'configurable time', 'optional emergency single-frame hard-cut', 'optional hotkey + external watchdog trigger', and 'symmetric fade-in recovery'. It reinforces that 'All reactivity is parameter-driven... no Python runs at cook time', which helps the agent understand the overall parameter architecture beyond individual parameter descriptions.

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 states exactly what the tool does: 'Build a live-show safety primitive at the very end of the master output chain' with specific capabilities (fade-to-black, emergency cut, hotkey, watchdog, fade-in recovery). It is a specific verb+resource, and it distinguishes from sibling create_panic by explicitly positioning itself as the 'master-output dimmer' complement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: it is for live-show safety at the end of the master output chain, and it explicitly names the alternative `create_panic` and differentiates: 'Complements create_panic (per-source kill+freeze) by being the master-output dimmer with grace, recovery, and a watchdog hook.' This is an explicit when-to-use vs. alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sam2_segmentation_bridgeCreate SAM2 segmentation bridgeA

Build a TouchDesigner bridge surface for an external SAM2/FastSAM segmentation service. Creates source input, mask receiver, mask_out, matte_out, preview_out, and clear notes that no model is bundled.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoContainer name for the bridge under parent_path.sam2_segmentation_bridge
activeNoStart request/polling endpoints active. Default is off for artist validation.
server_urlNoExternal SAM2/FastSAM service URL or WebSocket endpoint.http://127.0.0.1:8188
bridge_modeNoExternal mask transport used by the SAM2/FastSAM service.comfyui
parent_pathNoCOMP that will receive the SAM2/FastSAM bridge container./project1
prompt_modeNoPrompt style expected by the external SAM2/FastSAM service.auto
watch_folderNoFolder used by file_watch mode for externally rendered mask images.
input_top_pathNoOptional source TOP path. When provided it is pulled into the container via a Select TOP.
mask_source_nameNoNDI/Syphon/Spout sender name that publishes the segmentation mask.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-read-only and non-destructive behavior. The description adds useful behavioral detail by listing the created subcomponents and explicitly noting that no model is bundled, setting accurate expectations. It does not mention potential side effects like overwriting existing containers or network calls, but the annotation coverage reduces the burden.

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 two sentences: the first states the high-level action, the second lists deliverables and the no-model caveat. Every word earns its place with no redundancy.

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?

The rich schema and annotations cover most operational details. The description gives a good overview of what will be created but omits information about return values or prerequisites (e.g., external service must be running), which is not covered elsewhere. For a tool with 9 parameters and external service integration, slightly more context would be helpful, but the current level is adequate.

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?

All 9 parameters are fully described in the schema (100% coverage), so the description does not need to elaborate. It provides context that the bridge is for an external SAM2/FastSAM service but does not add syntax or format details beyond what the schema already provides.

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 clearly states the tool builds a TouchDesigner bridge surface for an external SAM2/FastSAM segmentation service and enumerates the specific components it creates (source input, mask receiver, mask_out, matte_out, preview_out). This precise verb+resource combination distinguishes it from sibling creation tools.

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?

The description implies usage for external SAM2/FastSAM segmentation integration but does not explicitly state when to use it over alternatives or provide exclusions. No comparison with similar bridge tools such as connect_comfyui or create_external_io is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_scalable_display_busCreate Scalable Display busB

Create a Scalable Display TOP scaffold with display tile maps, status, and calibration setup notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.scalable_display_bus
activeNo
config_fileNoPath to the Scalable Display configuration file.
parent_pathNoParent COMP for the Scalable Display scaffold./project1
canvas_widthNo
canvas_heightNo
display_countNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-read-only, non-destructive, and open-world behavior. The description adds context about the scaffold's contents (tile maps, status, calibration notes) but does not disclose potential side effects like overwriting existing nodes or relying on a config file. This is adequate but not rich.

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 a single, front-loaded sentence with no redundant words. Every word adds value, and it avoids repeating schema or annotation information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that creates a complex scaffold with 7 parameters and no output schema, the description is too terse. It does not explain the config_file's role, the structure of the scaffold, or what the agent can expect as a result. Given the low schema coverage, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 43%, and the description does nothing to explain the undocumented parameters (active, canvas_width, canvas_height, display_count). It loosely relates 'display tile maps' to display_count/canvas dimensions but fails to compensate for the low schema coverage.

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 ('Create') and resource ('Scalable Display TOP scaffold'), and lists key components (display tile maps, status, calibration setup notes). This clearly distinguishes it from sibling tools like create_blacktrax_tracking_bus, though it could be more explicit about what the 'bus' entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many similar create_*_bus tools, nor any mention of prerequisites or alternatives. The description only states what it does, not when to choose it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_scene_timelineCreate scene timelineA

Build a scrubbable show timeline: a single Timer-CHOP playhead drives ordered scenes that recall cues on a target COMP. Sits above create_cue_sequencer (beat-quantized) and create_scheduler (event-firing) as the show's master clock. Exposes Play/Pause/Stop/Seek/Rate/Loop/Active_Scene custom pars + a playhead Null CHOP (t_seconds, t_norm, scene_idx, scene_t). Consumes the foundation setlist schema: when setlist_path is given, each scene's setlist_slot is mirrored into tdmcp_scenes for downstream tools. Bars→seconds conversion uses BPM 120 + 4 beats-per-bar at build time (no auto-rescale on tempo change).

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoEnd of last scene → wrap to 0.
nameNoEngine COMP name.scene_timeline
rateNoPlayback rate multiplier (Timer CHOP speed). Exposed as a live custom par.
unitsNoInput unit for `start`/`duration`/`morph_in_seconds`. 'bars' is converted to seconds at build time using BPM 120 + 4 beats-per-bar (no auto-rescale on tempo change).seconds
scenesYesOrdered scene list (sorted by `start` at build time). Overlaps drive morphs.
targetNoCOMP that owns the cues (tdmcp_cues). Store scenes' cues first with manage_cue./project1
autoplayNoPulse the Timer's start on cook when true.
parent_pathNoParent path where the engine COMP lives./project1
setlist_pathNoOPTIONAL path to a DAT holding the foundation-setlist JSON. When present, scene.setlist_slot is stored alongside each scene in tdmcp_scenes for downstream tools.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, openWorld=true, destructive=false. The description adds valuable context beyond those flags: it lists exposed custom pars (Play/Pause/Stop/Seek/Rate/Loop/Active_Scene) and the playhead Null CHOP outputs, explains setlist schema integration, and discloses the BPM 120 + 4 beats-per-bar conversion with no auto-rescale on tempo change. This provides meaningful behavioral expectations without repeating annotation data.

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 a single, information-dense paragraph that front-loads the core purpose ('Build a scrubbable show timeline'), then covers hierarchy, exposed outputs, setlist integration, and a key conversion limitation. Every sentence contributes essential context with no redundancy or filler.

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 the tool's high complexity (show timeline with scenes, morphs, setlist integration) and lack of output schema, the description is quite complete: it discloses main behavior, sibling positioning, output pars/CHOP, and conversion behavior. It doesn't mention prerequisites like requiring `manage_cue` to store cues on target, though the schema references that dependency. Overall, the description covers the critical context needed for safe invocation.

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 coverage is 100% with detailed descriptions for all 9 parameters, so the baseline is 3. The description adds integrated context (e.g., bars→seconds conversion, setlist mirroring into tdmcp_scenes) but doesn't substantially augment per-parameter semantics beyond what the schema already provides.

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+resource ('Build a scrubbable show timeline') and immediately distinguishes itself from sibling tools ('Sits above create_cue_sequencer... and create_scheduler... as the show's master clock'). This clearly identifies what the tool does and sets it apart from related alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names sibling tools and places this tool in a hierarchy ('master clock'), indicating when it should be used instead of beat-quantized or event-firing sequencers. The phrase 'sits above' provides clear alternative guidance, though it doesn't include an explicit 'when not to use' statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_schedulerCreate schedulerA

Build a Timer-CHOP scheduler COMP: one or more named timers (seconds or beats), each with an optional ordered segment list, sharing a Callbacks DAT that fires a cue/param/script action on onDone and onSegmentEnter. Atomic timer primitive that create_scene_timeline and other automation rides on. Reuses manage_cue's tdmcp_cues storage for the default 'cue' action - store target cues first with manage_cue.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the scheduler engine COMP (a containerCOMP) created inside parent_path. Re-running with the same name reuses it.scheduler
paramNo(action param) Custom-parameter name on target the callback sets.
actionNoWhat the callbacks fire. 'cue': recall a cue (reuses manage_cue's tdmcp_cues). 'param': set target.par.param. 'script': artist-edited stub.cue
targetNo(action cue/param) COMP the callback acts on. For 'cue', store the cues first with manage_cue.
timersYesOne or more named timers built inside the scheduler COMP. Each becomes a Timer CHOP + segment Table DAT, all sharing one Callbacks DAT.
parent_pathNoParent COMP path the scheduler COMP is created inside./project1
on_done_valueNo(action param) Value written to target.par.param on onDone.
expose_controlsNoAppend an Active toggle on the scheduler COMP, so a dashboard can pause callback dispatch live.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a mutating, non-destructive, open-world tool, and the description adds specific side effects: it creates a scheduler COMP with a shared Callbacks DAT, fires callbacks on onDone/onSegmentEnter, and reuses manage_cue's tdmcp_cues storage. This gives the agent awareness of dependencies and created artifacts 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?

Three dense sentences front-load the core purpose and then add dependency and usage context. Every sentence contributes distinct value: what is built, how it fits in the automation stack, and its storage dependency. No filler or repetition of the input schema.

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 complex constructor tool, the description covers the essential conceptual model (timers, segments, callbacks), the dependency on manage_cue, and the distinction from create_scene_timeline. The schema provides complete parameter-level detail, and the description adds the missing architectural context. The tool's output is a built COMP, which is implicitly clear, so no return-value explanation is needed.

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?

The input schema covers all 8 parameters with detailed descriptions (100% coverage), so the description doesn't need to restate parameter syntax. It adds high-level context about timer/segment structure and the manage_cue dependency for 'cue' actions, but this doesn't materially exceed what the schema already communicates. Baseline of 3 is appropriate.

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: 'Build a Timer-CHOP scheduler COMP' and details its core components (named timers, optional segments, shared Callbacks DAT, cue/param/script actions). It clearly distinguishes itself as 'atomic timer primitive that create_scene_timeline and other automation rides on', separating it from higher-level timeline/sequencer siblings.

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 frames this as a foundational primitive for automation, implying use when building lower-level timer logic rather than higher-level scenes/timelines. It also gives a concrete prerequisite: 'store target cues first with manage_cue' for the default cue action. It doesn't explicitly name alternative tools or state when not to use it, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sdf_fieldCreate SDF fieldA

Build a programmable signed-distance-field (SDF) raymarcher in TouchDesigner as a self-contained GLSL TOP. Compose a CSG tree of sphere / box / torus primitives with union / intersect / subtract boolean ops and optional smooth blending. Exposes live CameraZ / Speed / StepCount / Intensity / Rotate / ColorA / ColorB / Background controls and previews the output.

ParametersJSON Schema
NameRequiredDescriptionDefault
speedNoAnimation speed multiplier (drives uTime). Live 'Speed' control.
color_aNoNear colour hex (e.g. '#33ccff'). Live RGB swatch 'ColorA'.#33ccff
color_bNoFar colour hex (e.g. '#ff2266'). Live RGB swatch 'ColorB'.#ff2266
camera_zNoCamera distance from origin (uCameraZ). Live 'CameraZ' control.
intensityNoOutput brightness multiplier (uIntensity). Live 'Intensity' control.
backgroundNoBackground / miss colour hex. Live RGB swatch 'Background'.#06080c
primitivesNoCSG tree of SDF primitives (max 16). First prim is always union (root). Each subsequent prim is combined with the running fold via its op.
resolutionNoOutput resolution [width, height] of the GLSL TOP.
step_countNoRaymarch iterations (uSteps); SDF CSG benefits from more steps. Live 'StepCount'.
parent_pathNoParent COMP path the self-contained 'sdf_field' container is created inside./project1
rotate_sceneNoY-axis rotation speed (radians/s applied to SDF space via uRotate * uTime). Live 'Rotate'. Reads 0 when TD timeline is paused.
camera_targetNoLook-at point baked as GLSL constant (not a live control).
expose_controlsNoExpose live CameraZ/Speed/StepCount/Intensity/Rotate/ColorA/ColorB/Background controls.
light_directionNoLight direction normalised in shader — baked as GLSL constant.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, openWorld=true, and destructive=false. The description adds meaningful behavioral context by mentioning 'Exposes live ... controls and previews the output,' which goes beyond annotation settings. However, it does not mention side effects like the container name or overwriting behavior, though the schema partially covers that.

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?

Three sentences, each earning its place: the first gives the core purpose and output type, the second explains the CSG capabilities, and the third summarizes live controls and preview. No fluff or redundancy; it is front-loaded and efficient.

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 tool with 14 parameters and a nested CSG array, the description covers the core workflow—composing primitives with boolean ops, blending, live controls, and preview—without repeating schema details. It does not explain return values or parent_path explicitly, but those are present in the well-described schema. Slightly short of a 5 because ordering semantics and creation path are only implicit.

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 100%, so the baseline is 3. The description enhances the schema by grouping primitives (sphere/box/torus), boolean ops (union/intersect/subtract), smooth blending, and enumerating live controls (CameraZ/Speed/StepCount/Intensity/Rotate/ColorA/ColorB/Background). This helps the agent understand the CSG model and which params are interactive.

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 starts with a specific verb and resource: 'Build a programmable signed-distance-field (SDF) raymarcher in TouchDesigner as a self-contained GLSL TOP.' It further details the CSG composition and live controls, which clearly differentiates it from siblings like create_raymarch_scene or create_glsl_shader.

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?

The description implies use for self-contained SDF raymarchers with live controls, but it does not explicitly mention alternatives, exclusions, or when-not-to-use scenarios. The 'self-contained GLSL TOP' phrasing hints at a differentiator, but there is no direct comparison to raytk or other shader tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sdf_textCreate SDF textA

Raymarch a text string as a signed-distance-field 3D slab: a Text TOP renders the glyphs to a mask, and a GLSL TOP treats that mask as an extruded distance field (glyph coverage in XY, closed by two Z planes at ±depth/2) so the letters read as solid, lit, rim-highlit 3D volumes that can spin. Distinct from create_sdf_field (primitive CSG only, no text) and create_text_3d (mesh-extruded text SOP) — this is the raymarched distance-field text look. The mask→SDF is approximate (coverage-derived, no external font SDF atlas required) and eased by smoothing. Creates a new baseCOMP under parent_path. Exposes CameraZ/Speed/StepCount/Intensity/Rotate/Fill/Edge/Background controls and previews the output. Returns a summary plus a JSON block with node paths, exposed controls, node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
boldNoRender the seed text bold (thicker glyph coverage).
fontNoFont family for the Text TOP that seeds the glyph mask (must be installed in TD).Arial
textNoThe string to raymarch as SDF text.HELLO
depthNoExtrusion thickness of the raymarched text slab along Z (uDepth).
speedNoAnimation time multiplier (drives uTime). Live 'Speed' control.
rotateNoY-axis rotation speed of the text (radians/s via uRotate * uTime). Live 'Rotate'. Reads 0 when the TD timeline is paused.
camera_zNoCamera distance from the text (uCameraZ). Live 'CameraZ' control.
intensityNoOutput brightness multiplier (uIntensity). Live 'Intensity'.
smoothingNoHow sharply the mask coverage maps to the XY distance field. Lower = crisper edges, higher = softer/rounder.
backgroundNoBackground / miss colour hex. Live RGB swatch 'Background'.#0a0a12
edge_colorNoRim/edge highlight colour hex. Live RGB swatch 'Edge'.#ff5c8a
fill_colorNoLetter body colour hex (e.g. '#ffd34d'). Live RGB swatch 'Fill'.#ffd34d
resolutionNoOutput resolution [width, height] of the GLSL TOP.
step_countNoRaymarch iterations (uSteps). Live 'StepCount'.
parent_pathNoParent COMP path the self-contained 'sdf_text' container is created inside./project1
expose_controlsNoExpose live CameraZ/Speed/StepCount/Intensity/Rotate/Fill/Edge/Background controls.
light_directionNoLight direction, normalised in shader — baked as GLSL constant.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnly=false and destructive=false; the description adds that it 'Creates a new baseCOMP under parent_path' (a non-destructive side effect), explains the mask-to-SDF approximation and smoothing easing, and lists exposed controls plus return JSON. This aligns with annotations while contributing meaningful implementation context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence provides value. However, the opening sentence is overloaded with semicolon-separated implementation details and the overall structure could be tightened into clearer chunks.

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 17-parameter generator with no output schema, the description covers the rendering pipeline, creation behavior, quality tradeoffs, exposed live controls, and return format ('summary plus a JSON block with node paths, exposed controls, node errors, warnings, and an inline preview image'). This is effectively complete.

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 every parameter already has explanatory documentation. The tool description adds a little context by naming exposed controls and mentioning smoothing, but it does not materially improve on the schema's parameter semantics, so a baseline of 3 is appropriate.

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 states a specific verb and resource: 'Raymarch a text string as a signed-distance-field 3D slab.' It explicitly distinguishes itself from create_sdf_field and create_text_3d, making its unique output unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names alternatives and differentiators: 'Distinct from create_sdf_field (primitive CSG only, no text) and create_text_3d (mesh-extruded text SOP) — this is the raymarched distance-field text look.' It also notes the approximate mask-to-SDF nature, helping the agent judge when this technique is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_setlist_runnerCreate setlist runnerA

Layer-1 wall-clock setlist player for rehearsed VJ shows. Pass rows[] of (source TOP, duration_seconds, transition_seconds) and the tool builds a baseCOMP containing N Select TOPs (one per row), a Switch TOP, a Cross TOP for crossfaded boundaries (hard cut when transition_seconds=0), an optional NOW/NEXT/remaining Text TOP HUD composited over the program, a Timer CHOP + CHOP Execute engine that auto-advances rows on wall-clock time, and live custom params Play/Row/Skip/Prev/Loop/Defaulttransition for stage overrides. Output is a Null TOP at <parent>/<name>/out. Fills the gap between create_clip_launcher (manual grid) and create_cue_sequencer (musical bars).

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoWhen the last row ends: wrap to row 0 (true) or stop (false).
nameNoEngine container name.setlist
rowsYesOrdered setlist rows. Each row: { source, duration_seconds, transition_seconds }.
show_hudNoBuild the NOW/NEXT/remaining Text TOP HUD as a child output.
autostartNoStart playing immediately on build.
parent_pathNoParent COMP path where the engine COMP is created (e.g. '/project1')./project1
sources_mapNoOptional `{ logical → TOP path }` to allow human-readable row sources like 'actA' instead of an absolute path.
default_transitionNoFallback `transition_seconds` (in seconds) for rows that omit it.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the full construction behavior: builds a baseCOMP with N Select TOPs, Switch/Cross TOPs for crossfades, optional HUD, Timer CHOP + CHOP Execute auto-advance engine, and live custom params. It also states the output path (Null TOP at `<parent>/<name>/out`). This is far beyond what annotations (readOnlyHint false, openWorldHint true, destructiveHint false) communicate, and there is no contradiction.

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 dense, front-loaded sentences capture the tool's purpose, construction details, output, and positioning relative to siblings. Every clause earns its place, and the description is structured logically from what it does, to how it does it, to where the output lands, to when to use it.

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?

Given the complexity (8 parameters, nested rows, no output schema), the description is remarkably complete. It explains the generated node graph, the auto-advance timeline behavior, the HUD option, the custom stage override params, and the exact output path. It also situates the tool among related siblings, leaving little ambiguity about its capabilities or intended use.

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 coverage is 100% and each parameter already has a clear description, so the baseline is 3. The tool description adds contextual meaning by explaining that rows drive the construction ("Pass rows[]... builds a baseCOMP") and mentions the custom params for stage overrides, but it does not add syntax or relationship details beyond what the schema already provides.

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 leads with a specific verb+resource: "Layer-1 wall-clock setlist player for rehearsed VJ shows," and then details the exact components built (Select TOPs, Switch TOP, Cross TOP, HUD, Timer CHOP engine). It explicitly distinguishes itself from sibling tools, create_clip_launcher and create_cue_sequencer, by positioning itself as the wall-clock gap-filler.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use context: "For rehearsed VJ shows" and "Fills the gap between create_clip_launcher (manual grid) and create_cue_sequencer (musical bars)." This clearly names the alternatives and explains the specific niche, giving the agent direct guidance on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_set_navigatorCreate set navigatorA

Build a hands-light stage navigator (the QLab model) for stepping through an ordered scene/cue list: Next / Prev to move the pointer, Go to fire the current scene's cue on the target COMP, and an Index knob to jump directly. Optionally quantizes GO to the next beat. The navigator drives manage_cue recall on the target so cue morphs and beat-quantized changes all work. Use after building a control panel with manage_cue cues stored; then perform the show by hitting Next + Go instead of recalling by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the navigator COMP to create.set_navigator
scenesNoOrdered cue names to navigate. Omit or leave empty to read the target's existing cues.
targetYesThe COMP whose cues this navigator steps through. Cues are recalled on it via manage_cue.
go_on_beatNoQuantize GO to the next beat (needs a tempo/beat source).
resolutionNoPanel resolution [width, height] in pixels.
parent_pathNoParent COMP path the navigator container is created inside./project1

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate non-read-only and open-world behavior; the description adds that the navigator 'drives manage_cue recall' on the target, revealing a side effect, and mentions optional beat quantization. However, it doesn't disclose potential failure modes, prerequisites beyond the stated workflow, or what exactly changes on the target, leaving some behavioral gaps.

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 concise at three sentences, front-loaded with the main purpose, then features, then usage context. Every sentence contributes unique value with no redundancy or filler.

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?

The description covers the tool's purpose, interaction model, integration with manage_cue, and when to use it. It lacks an explicit return value description, but the schema's parameter descriptions and the absence of an output schema make this a minor omission. Overall, it's sufficiently complete for a creation tool.

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?

The input schema has 100% parameter coverage with descriptive text for each parameter. The description adds minimal parameter-level detail, only referencing 'quantize GO' which aligns with go_on_beat. Since the schema already handles parameter semantics, the baseline of 3 is appropriate.

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 clearly states it builds a 'hands-light stage navigator' with specific interactions (Next/Prev/Go/Index), and distinguishes it from other create tools by referencing the QLab model and its reliance on manage_cue. The verb 'Build' and resource are explicit.

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 clear usage context: 'Use after building a control panel with manage_cue cues stored' and contrasts with 'instead of recalling by name.' It doesn't explicitly name alternative tools, but provides a clear workflow and an alternative approach, meeting the threshold for good guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_shader_libCreate shader from libraryA

Instantiate a curated, ready-to-run full-screen GLSL shader (tunnel, raymarch_sphere, fractal, metaballs, plasma) into a GLSL TOP with live Speed / Scale / Color controls. High-value VJ eye-candy; unlike create_glsl_shader it ships robust built-in shaders rather than taking arbitrary code.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoBase color as hex (e.g. '#33ccff'); parsed to 0..1 RGB and exposed as 'Color'.
scaleNoPattern scale/zoom multiplier (uScale). Exposed as a live 'Scale' control.
speedNoAnimation speed multiplier (drives uTime). Exposed as a live 'Speed' control.
shaderNoWhich curated built-in shader to instantiate.tunnel
resolutionNoOutput resolution [width, height] of the GLSL TOP.
parent_pathNoParent COMP path the self-contained 'shader_lib_<shader>' container is created inside./project1
expose_controlsNoExpose live Speed / Scale / Color controls on the system container.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a mutating, non-destructive operation, and the description adds behavioral context: it creates a GLSL TOP with live controls and self-contained built-in shaders. It doesn't contradict the annotations and provides useful operational detail beyond the structured fields.

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, front-loaded with the core action and scope. Every clause earns its place: the shader list, the GLSL TOP target, the live controls, and the differentiation from create_glsl_shader. No wasted words.

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 7 fully documented parameters, no output schema, and the tool's creation-oriented nature, the description adequately covers what the tool does and how it differs from a close sibling. It could mention potential side effects or broader alternative tools, but the core context is sufficiently complete.

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?

The schema description coverage is 100%, so the parameter descriptions already carry full semantic weight. The main description references speed/scale/color controls and shader names, but does not add meaning beyond the schema's parameter-level descriptions. Baseline 3 is appropriate.

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 uses a specific verb ('Instantiate') and a concrete resource ('curated, ready-to-run full-screen GLSL shader') and names the exact shader options. It also explicitly distinguishes itself from create_glsl_shader, making its purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description directly contrasts with create_glsl_shader ('unlike create_glsl_shader it ships robust built-in shaders rather than taking arbitrary code'), giving clear when-to-use guidance. The 'ready-to-run' and 'VJ eye-candy' phrasing further implies the intended usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_shader_parkCreate Shader Park sculptureA

Compile Shader Park JavaScript sculpture code with shader-park-core and instantiate it as a self-contained TouchDesigner GLSL MAT scene with live controls. Use the companion shader-park:tox script when you specifically want the official Shader Park .tox plugin workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoShader Park sculpture code. Example: `let size = input(); sphere(size);`. The code is compiled with shader-park-core and stored in a Text DAT for editing.setMaxIterations(96); rotateY(time * 0.25); color(vec3(0.2, 0.8, 1.0)); sphere(0.45);
nameNoName of the created baseCOMP container.shader_park_sculpture
scaleNoInitial `_scale` uniform value.
speedNoAnimation speed multiplier for the Shader Park `time` uniform.
opacityNoInitial opacity uniform value.
camera_zNoCamera distance from the sculpture.
step_sizeNoInitial Shader Park raymarch stepSize uniform value.
resolutionNoRender TOP resolution [width, height].
parent_pathNoParent COMP path for the new sculpture./project1
uniform_valuesNoInitial values for Shader Park `input()` uniforms by name, e.g. `{ "size": 0.55 }`.
expose_controlsNoExpose Speed / Scale / Opacity / StepSize / CameraZ plus any float Shader Park inputs.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is not read-only and not destructive. The description adds context that the tool creates a self-contained scene with live controls, clarifying the side effect of creating nodes. It does not explain details like overwriting behavior, but given the annotations, the disclosure is adequate.

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, front-loaded with the primary action, and the second sentence provides a clear alternative. No wasted words.

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 tool with 11 parameters and no output schema, the description covers the high-level purpose and primary alternative. It could mention the return value or how to access the created scene, but given the rich schema, it is sufficiently complete.

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?

The schema has 100% coverage with detailed descriptions for all 11 parameters, so the description does not need to add parameter details. It provides general context about compiling code and instantiation, but no parameter-specific meaning beyond the schema.

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 clearly states a specific action: compiling Shader Park JavaScript code and instantiating it as a self-contained TouchDesigner GLSL MAT scene. It distinguishes this tool from the companion shader-park:tox script and other shader tools by specifying the self-contained scene and live controls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly notes to use the companion shader-park:tox script when the official plugin workflow is desired, providing a clear exclusion. The description implies this tool is for the alternative self-contained approach, giving context for when to choose it over the sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_shared_memory_bridgeCreate Shared Memory bridgeA

Create a Shared Memory In/Out TOP/CHOP for zero-copy IPC with another app on the same host (Notch, Unity, Unreal, custom tools). Pick direction ('in' to receive, 'out' to publish), kind (TOP for pixel buffers, CHOP for numeric channels), and a shmName that the peer must match exactly. After creating an Out variant, wire the producer TOP/CHOP into it with connect_nodes. When format.header=false the peer reads a raw headerless buffer — sizes must agree exactly or frames will garble. Some (direction, kind) combos are platform/build-dependent; the tool returns a friendly fatal if the optype isn't available.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesTOP = pixel buffer (RGBA frames); CHOP = numeric channels (control / audio-rate).
nameNoOperator name; auto-generated when omitted (e.g. shm_in / shm_out).
formatNoOptional format hints. Unknown / unsupported pars on this build become warnings.
parentNoCOMP path to create the operator in./project1
shmNameYesShared-memory segment name. Must match exactly on both sides. Two TDs using the same name will collide.
directionYes'in' = receive from an external app; 'out' = publish to an external app.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal it is a non-read-only, non-destructive create operation. The description adds critical behavioral details: zero-copy IPC semantics, exact shmName matching, raw headerless buffer risks when format.header=false, and platform-dependent fatal errors.

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?

Four dense sentences with no fluff. The key decisions (direction, kind, shmName) are front-loaded, and every sentence adds operational value without repetition.

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 the tool's complexity (6 params, nested format object, absent output schema), the description covers the core workflow, wiring step, and a failure mode. It does not state the success return value (e.g., the created operator path), which would be useful, but otherwise it is highly complete.

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 covers 100% of parameters, so the baseline is 3. The description adds extra meaning by tying direction/kind to the IPC scenario, emphasizing the exact-match requirement for shmName, and explaining the format.header=false garble risk, going beyond schema descriptions.

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 clearly identifies the tool as creating a Shared Memory In/Out TOP/CHOP for zero-copy IPC with other apps, naming specific examples (Notch, Unity, Unreal). It distinguishes itself from generic node creation siblings by referencing shared memory and IPC specifically.

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 conveys the target use case (same-host IPC with external apps) and provides a follow-up step (connect_nodes after Out creation), but it does not explicitly contrast with alternative IO 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.

create_show_failoverCreate show failoverA

Build a live-show watchdog: a Switch TOP (blend=1 cross-dissolve) between a primary source TOP (NDI/camera/Spout/Syphon path, or a synthetic noiseTOP when none is given) and an MP4 fallback (or a constantTOP when no file is given), driven by an Info CHOP + watchdog CHOP-Execute DAT that trips on cook stall (total_cooks delta stays flat for stall_ms) and, optionally, primary cook errors. A Filter CHOP smooths the integer Switch index into a fade_ms crossfade. Sticky-recover auto-returns to primary after recover_ms healthy; otherwise stays on fallback until Reset. Exposes Active / Stall_Ms / Fade_Ms / Sticky_Recover / Reset / Force_Fallback controls and a Null CHOP of status channels for bind_to_channel. Returns the container, output TOP, status CHOP, control names, and the operator paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
fade_msNoCrossfade duration in ms (0 = hard cut). Drives the Filter CHOP that smooths the Switch TOP index.
stall_msNoConsecutive ms of zero cook progress before failover trips.
recover_msNoHealthy duration before auto-recover (only used when sticky_recover=true).
parent_pathNoWhere to create the show_failover system container./project1
primary_pathNoAbsolute TD path to the primary source TOP (NDI/camera/Spout/Syphon/any TOP). Empty → builds a synthetic noiseTOP so the network is offline-safe.
watch_errorsNoAlso trip on primary cook errors (`errors > 0`), not just on stall.
fallback_fileNoFilesystem path to the fallback MP4 / still. Empty → a constantTOP (dark grey) is used as a safe fallback.
status_overlayNoComposite a small LIVE/FALLBACK badge (textTOP + compTOP) into the output.
sticky_recoverNoWhen true, auto-switch back to primary after `recover_ms` of healthy cooking. When false, stays on fallback until Reset is pressed.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) are minimal, but the description adds substantial behavioral detail: the exact chain of operators (Switch TOP, Filter CHOP, Info CHOP), how stall detection works (total_cooks delta), sticky-recover logic, and what happens when no primary or fallback is provided (noiseTOP/constantTOP). It also discloses the controls exposed and return values, going far beyond the annotation booleans.

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 dense but purposeful. The first sentence establishes the core purpose, and subsequent sentences explain the mechanism, controls, and return values. No sentence is wasted; each adds specific technical detail (e.g., 'blend=1 cross-dissolve', 'total_cooks delta', 'Filter CHOP smooths') that helps an agent understand the tool's behavior.

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?

With no output schema, the description explicitly states what is returned ('container, output TOP, status CHOP, control names, operator paths'). It covers major behavioral aspects including defaults (noiseTOP/constantTOP), sticky-recover, error watching, and exposed controls. Given the complexity of the 9-parameter system, the description provides a complete and intelligible overview.

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 coverage is 100% with each parameter already having a detailed description. The tool description does not add new per-parameter semantics but does mention some parameters (fade_ms, stall_ms, sticky_recover) within the overall system context, reinforcing their role. This matches the baseline of 3 for full schema coverage.

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 'Build a live-show watchdog' which is a specific verb+resource, and immediately distinguishes this tool from siblings like create_safety_blackout_chain or create_panic by detailing the failover mechanism (Switch TOP, Info CHOP, watchdog CHOP-Execute). It clearly states what the tool produces: a container, output TOP, status CHOP, control names, and operator paths.

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 clearly implies the use case: creating an automatic failover system for live shows that detects cook stalls and optionally primary errors. It explains the behavior and controls, giving context on when it would be relevant. However, it does not explicitly name alternative tools or state when not to use this tool, so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sidechain_pumpCreate sidechain pumpA

EXPERIMENTAL — One-call 'pump the whole rig on the kick': build a sidechain ducking envelope from a trigger CHOP channel and bind multiple target parameters to dip on every hit. Distinct from create_envelope_follower (which builds the chain + optional gate/duck mode with a threshold); this tool is the ergonomic multi-target pump with a single depth knob and a rest_value anchor — ideal for classic pumping compressor feel across many targets at once. Builds a container with: a Select CHOP isolating the source channel by absolute path (no cross-container wires), a Lag CHOP shaping attack/release, a Limit CHOP clamping to [0,1] (type=clamp/min/max, live-validated on TD 099 — guarded with warnings), and a Null CHOP 'pump' as the stable output handle. Each target gets the expression: rest_value * (1 - depth * op('')[chan0]). Per-target failures become warnings; fatal only if source_chop or parent COMP is missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoBase name for the container COMP that holds the pump chain.sidechain_pump
depthNoHow hard the pump dips on a trigger hit [0–1]. 0 = no dip (targets stay at rest_value), 1 = full dip to zero. 0.7–0.9 is typical for a strong pumping compressor feel.
attackNoEnvelope rise time in seconds — how quickly the pump signal climbs after a hit (controls how snappy the initial dip is). Typical: 0.001–0.02.
channelNoChannel name to follow from source_chop (e.g. 'level', 'kick', 'bass'). The Select CHOP isolates it by name.level
releaseNoEnvelope fall time in seconds — how slowly the pump returns to silence after the trigger drops. Controls the 'pumping tail'. Typical: 0.1–0.6.
targetsNoList of 'nodePath.parName' pairs to bind to the pump output by expression. Each target dips toward rest*(1-depth) on a hit and returns to rest_value on silence. Omit to build the chain only (bind manually with bind_to_channel later).
rest_valueNoThe target parameter value at silence (no trigger). On a hit, the expression drives the target toward rest_value*(1-depth). Default 1.0 works for opacity/gain/level parameters.
parent_pathNoParent COMP path where the sidechain pump container is created (e.g. '/project1')./project1
source_chopYesPath of the trigger CHOP (e.g. an onset Null, kick-level CHOP, or audio feature output). This is the signal that drives the pump — high = dip.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations only indicating a mutating, open-world operation, the description discloses the exact internal chain (Select, Lag, Limit, Null CHOPs), the expression applied to each target, the warning/failure behavior ('Per-target failures become warnings; fatal only if source_chop or parent COMP is missing'), and the experimental/version caveat. This goes well beyond the structured 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 a single dense block but is front-loaded with the core purpose and every subsequent clause adds either distinction, construction details, or failure behavior. No filler or repetition; the formula and examples are compactly integrated.

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 9-parameter, no-output-schema builder tool, the description is nearly complete: it explains what is created, how the internal chain works, how targets are bound, what the stable output handle is, and what conditions cause warnings vs fatal errors. The container path is inferable from parent_path and name, so no separate return-value documentation is necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema already has 100% parameter descriptions, the tool description adds essential semantics: the actual binding expression rest_value * (1 - depth * op('<pump>')[chan0]), the meaning of depth extremes (0 = no dip, 1 = full dip to zero), and typical ranges (0.7–0.9 depth, 0.001–0.02 attack, 0.1–0.6 release). This meaningfully exceeds the schema's field-level comments.

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 begins with a specific verb+resource: 'build a sidechain ducking envelope from a trigger CHOP channel and bind multiple target parameters to dip on every hit.' It explicitly distinguishes itself from create_envelope_follower, naming the sibling and contrasting its multiple-target pump approach.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit when-to-use guidance ('ideal for classic pumping compressor feel across many targets at once') and names the alternative create_envelope_follower with its gate/duck threshold approach. It also tells the user when to omit targets ('build the chain only (bind manually with bind_to_channel later)'), covering both use and non-use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_simulationCreate simulationA

Build a GPU simulation: 'reaction_diffusion' grows Gray-Scott patterns (via the validated recipe), while 'slime' and 'fluid' run a feedback loop displaced by an evolving noise flow field — drifting trails and advected smears. Exposes a Decay knob (trail persistence). For more procedural techniques (cellular automata, flow fields, strange attractors) see create_generative_art.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoreaction_diffusion = Gray-Scott patterns (uses the validated recipe); slime = drifting decaying trails; fluid = advected smear.reaction_diffusion
decayNo(slime/fluid) Trail persistence — higher holds longer.
speedNo(slime/fluid) How fast the flow field evolves.
parent_pathNoParent COMP path the self-contained simulation container is created inside./project1
expose_controlsNo(slime/fluid) Expose a live 'Decay' knob bound to the gain Level TOP.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a mutating (readOnlyHint=false) and non-destructive tool. The description adds context about the visual behavior (e.g., noise-displaced feedback loops) but does not disclose operational details such as container creation in parent_path or whether existing content is overwritten. It provides modest behavioral enrichment beyond the annotations, warranting a mid-range score.

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 contain all essential information: the tool's function, the three variants with behavioral descriptions, one key control, and an explicit pointer to an alternative. There is no waste, and the critical details are front-loaded.

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 the 100% schema coverage and adequate annotations, the description is largely complete for the agent to invoke the tool correctly. It covers the core purpose, variant behaviors, and an alternative path. It does not describe the return value or where the container is placed, but those are either in the schema or not critical for a build tool with no output schema, so the overall context is strong.

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 coverage is 100% with detailed descriptions for every parameter, so the baseline is 3. The description repurposes some schema content (e.g., 'trail persistence' for decay) and adds minor conceptual depth (the noise flow field mechanism), but it does not significantly enhance understanding beyond what the schema already states. No parameter information is left undocumented.

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 uses a specific verb ('Build') and resource ('GPU simulation'), then enumerates three distinct simulation types with concrete visual outcomes (Gray-Scott patterns, drifting trails, advected smears). It also explicitly references an alternative tool ('create_generative_art') for other procedural techniques, clearly distinguishing its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The first sentence establishes when to use this tool (to build GPU simulations of the listed types). The final sentence provides an explicit 'when-not' by directing the agent to create_generative_art for cellular automata, flow fields, and strange attractors. This is a clear, direct alternative with no ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_slit_scanCreate slit-scanA

Build a slit-scan visual system: each row (or column) of the output samples a different past frame from a Cache TOP ring buffer, producing the classic 'time-as-space' stretched-time look (Floris Kaayk / Adam Magyar style). Creates a new baseCOMP under parent_path holding a source TOP, a Cache TOP ring buffer, a slit GLSL shader, and a Null output. When no source_top_path is given, a synthetic Noise TOP is used so the tool works headless / on CI without camera permission. Exposes a live 'Depth' knob. Note: GLSL compile is UNVERIFIED offline; cacheTOP 2D-array binding must be validated live in TouchDesigner. Memory cost at 1080p RGBA16 is ~depth × 32 MB; depth 600 ≈ 5 GB VRAM. Output freezes when the timeline is paused (cacheTOP stops recording — expected behaviour). Returns a summary plus a JSON block with the container path, created node paths, output path, exposed controls, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
axisNoScreen axis that carries time. 'y' = each row is a different past frame; 'x' = each column (default 'y').y
nameNoContainer name for the slit-scan system (default 'slit_scan').slit_scan
directionNoWhich end of the axis is 'now'. '+y' = bottom row is the latest frame, top is oldest; '-y' reverses it. Must be compatible with axis (default '+y').+y
cache_depthNoNumber of frames stored in the Cache TOP ring buffer (1–600, default 60). Memory cost: ~depth × W × H × 16 B at RGBA16. At 1080p, 600 frames ≈ 5 GB VRAM.
parent_pathNoParent network where the slit-scan container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose a live 'Depth' knob on the container bound to cache.cachesize.
source_top_pathNoOptional path to an existing TOP to scan (e.g. '/project1/videodevicein1'). When omitted a synthetic noiseTOP seed is created inside the container so the tool runs headless / on CI without camera permission.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond annotations by disclosing critical limitations: GLSL compile is unverified offline, cacheTOP binding must be validated live, memory cost scaling (depth × 32 MB at 1080p), and output freezes when timeline pauses. This is exactly the kind of behavioral nuance an agent needs and adds substantial value over the annotations, which only state it is not read-only and not destructive.

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 dense yet efficiently structured. Every sentence delivers specific, non-redundant information: mechanism, components, headless behavior, exposed knob, verification warnings, memory costs, pause behavior, and return value. It is front-loaded with the core purpose and maintains clarity throughout.

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 tool with 7 parameters and no output schema, the description is exceptionally complete. It explains the internal architecture, return value shape, runtime pitfalls, and resource requirements. No significant gaps remain for an agent to safely invoke and interpret results.

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 coverage is 100%, so parameters are already well-documented. The description adds a bit of extra context (e.g., 'Depth' knob binding to cache.cachesize, memory formula for cache_depth) but mostly repeats or paraphrases schema descriptions. It does not significantly deepen understanding beyond the schema, hence baseline 3.

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 clear, specific verb ('Build a slit-scan visual system') and explains the mechanics (row/column samples past frames from a Cache TOP ring buffer). It distinguishes itself from sibling creation tools by naming the exact technique and visual style (Floris Kaayk / Adam Magyar), making its purpose 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?

Usage context is clearly described: it is the tool for creating slit-scan looks, and it explicitly notes it works headless/CI when no source_top_path is given. However, it does not name alternative tools for similar effects (e.g., create_time_echo), so it lacks explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_spectrumCreate audio spectrumA

Build an FFT audio-spectrum analyzer that exposes N separate, ready-to-bind frequency-bin channels (band0..band{N-1}) on a Null CHOP. This is the per-band complement to extract_audio_features (which only gives overall level + bass/mid/treble): bind a row of parameters to op('…/spectrum/spectrum')['band0'], ['band1'], … to drive a bank of bars, or pick one frequency. A Sensitivity knob scales every band. Source can be the live device (mic/line — may prompt for macOS permission), an audio file, a synthetic oscillator (for testing), or an existing CHOP. Use extract_audio_features when you want coarse level/bass/mid/treble bands instead of N fine bins, create_audio_reactive for a ready-made spectrum visual, and feed this Null into bind_audio_reactive to drive a COMP.

ParametersJSON Schema
NameRequiredDescriptionDefault
bandsNoNumber of frequency bins to expose as separate, bindable channels (band0..band{N-1}). 16 or 32 is typical; higher = finer frequency resolution.
sourceNoAudio source. 'device' = live microphone/line in (the real-world default; creating it may pop a one-time macOS microphone-permission dialog — click Allow). 'file' = an audio file. 'oscillator' = a synthetic tone (white noise → energy in every band, handy for testing without any device permission). 'existing_chop' = reuse a CHOP you already have.device
parent_pathNoParent COMP path the self-contained 'spectrum' container is created inside./project1
audio_file_pathNoAudio file path (source='file').
expose_controlsNoExpose a live 'Sensitivity' knob (a gain over every band channel).
existing_chop_pathNoPath of an existing audio CHOP to analyze (source='existing_chop').

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=false and openWorldHint=true, so creation is expected. The description adds valuable context: it may trigger a macOS microphone-permission dialog, exposes channels in a specific naming pattern, includes a Sensitivity knob (if expose_controls is true), and supports multiple audio source types. This goes beyond the annotation-derived baseline and surfaces non-obvious side effects.

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 dense but not verbose. It packs a clear definition, a usage example, a sensitivity knob note, source options, a security caution, and sibling tool guidance into one compact paragraph. Every sentence contributes a distinct piece of information, and the opening sentence immediately answers 'what does it do?'.

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?

Because there is no output schema, the description fully covers what the agent will get: a Null CHOP with band0..band{N-1} channels, how to bind them (via op('…/spectrum/spectrum')['band0']), what the Sensitivity knob does, the four source modes, and a macOS permission caveat. It also positions the tool relative to its siblings, making the context complete for selection and invocation.

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 coverage is 100% and each parameter already has a descriptive comment (e.g., bands, source, parent_path). The description reinforces the bands/channel naming and shows a binding example, but it doesn't add meaning beyond the schema's existing parameter descriptions. Baseline 3 is appropriate.

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 ('Build an FFT audio-spectrum analyzer') and includes the concrete deliverable: N bindable frequency-bin channels (band0..band{N-1}) on a Null CHOP. It also names sibling tools and explicitly frames itself as the per-band complement, making differentiation clear from the outset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use vs alternatives: 'Use extract_audio_features when you want coarse level/bass/mid/treble bands instead of N fine bins, create_audio_reactive for a ready-made spectrum visual, and feed this Null into bind_audio_reactive to drive a COMP.' This is textbook usage guidance—it tells the agent when to choose this tool versus its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_stage_dashboardCreate stage dashboardA

Serve one unified live-performance cockpit from a Web Server DAT — a single responsive web page (phone + laptop) that combines a grid of cue-launch buttons (recall named cues from manage_cue on the target COMP), master faders bound to chosen parameters, a big PANIC button (toggles the target COMP's Blackout/Freeze safety pars, the create_panic mechanism), and a live readout strip (a beat indicator plus a VU bar reading an audio-features Null CHOP). Open the URL — no app to install — and the page POSTs every control change back to the server, which applies it. SECURITY: like the bridge and create_phone_remote, this listens on all interfaces and accepts writes with NO auth, so use it only on a trusted network. Store cues with manage_cue, expose params with create_control_panel, and run create_panic first so the Blackout/Freeze toggles exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
cuesNoCue names (stored with manage_cue) to expose as launch buttons, in order. Each becomes a button that instantly recalls its cue on the target COMP. Empty omits the cue grid.
nameNoName of the Web Server DAT (and its callbacks DAT) built inside the target COMP.stage_dashboard
portNoTCP port for the dashboard web server (keep it distinct from the bridge's 9980 and phone_remote's 9981).
fadersNoMaster faders, each a { label, par_path } that becomes a slider writing the parameter live. Empty omits the fader bank.
layoutNoDashboard layout. 'v1' is the original (cues + faders + readout + panic). 'v2' adds stereo VU, BPM, cue timeline strip, FPS/cook overlay, and a sticky confirm-PANIC bar. Default 'v1' for backward compat.v1
targetNoControl COMP the dashboard is built inside. It holds the cues (manage_cue) and the Blackout/Freeze toggles (create_panic); cue buttons fire that COMP's cues and the panic button toggles its safety pars./project1
cue_timesNov2 only. Cue start times (seconds from show start) from compose_cue_list, for the timeline strip's playhead. Empty = strip omitted, cue grid still shown.
tempo_channelNov2 only. Absolute path to a CHOP whose first channel is current BPM (e.g. a detect_tempo Null CHOP). Omitted = BPM widget hidden.
audio_featuresNoOptional audio-features Null CHOP path for the readout strip's VU bar (first channel). When omitted the readout still renders (beat from the timeline, VU flat).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnly=false, openWorld=true), the description discloses the server's network exposure and lack of auth, the POST-back mechanism, and that the panic button toggles the target COMP's safety pars. This adds meaningful behavioral context such as security risk and how the page communicates with the server.

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 moderately long but every sentence earns its place: purpose, feature list, architecture preview, security warning, and prerequisites. It is well-structured and front-loaded with the core function, avoiding fluff while covering essential context.

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?

Given the tool's complexity (9 parameters, two layouts, external dependencies), the description covers the purpose, components, security, dependencies, and behavior of the created server. It is sufficiently complete for an agent to decide when and how to use it, especially since the schema fully documents parameters and the annotations cover safety profile.

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 coverage is 100%, so the baseline is 3. The description mentions parameters at a high level (cues, faders, panic, layout) but does not add new semantic details beyond what the schema already provides. It does clarify how the pieces fit together, but the schema carries the bulk of parameter meaning.

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 clearly defines the tool as creating a unified live-performance web dashboard from a Web Server DAT, enumerating specific features (cue-launch buttons, faders, panic, readout). It distinguishes itself from siblings by referencing dependencies (manage_cue, create_panic) and the security similarity to bridge/create_phone_remote, so the purpose 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?

Explicitly states a security condition ('use it only on a trusted network'), implying when not to use it. It also provides clear prerequisites: 'Store cues with manage_cue, expose params with create_control_panel, and run create_panic first'. This gives strong when-to-use guidance and sets up dependencies, though it does not directly contrast with create_phone_remote beyond security.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_step_repeatCreate step repeat (brick/grid tiling)A

Tile a source TOP into a rows×cols brick/grid pattern with per-cell gap, position jitter, rotation jitter, and an optional brick/masonry half-tile row offset — all computed per-cell in a single GLSL TOP shader (stock TOPs only, no external files besides the optional source). Defaults to a built-in synthetic Noise TOP so the grid previews standalone on any install without a source (no external asset). Output is a nullTOP. Returns a summary plus JSON with node paths, live controls, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
gapNoFractional inset per cell (0 = tiles touch, 0.5 = half the cell is gap).
colsNoNumber of tile columns (horizontal repeats).
rowsNoNumber of tile rows (vertical repeats).
jitter_posNoPer-cell random position offset, fraction of a cell.
jitter_rotNoPer-cell random rotation, max radians.
resolutionNoOutput resolution [width, height] in pixels.
parent_pathNoParent COMP path the self-contained 'step_repeat' container is created inside./project1
source_pathNoAbsolute path of a TOP to tile (pulled in via selectTOP so it can live anywhere). Omit to use a built-in synthetic Noise TOP so the grid previews standalone on any install (no external asset needed).
brick_offsetNoShift alternating rows by half a tile (brick/masonry layout).

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the output type (nullTOP), the return format (summary + JSON with node paths, live controls, warnings, inline preview), the implementation (single GLSL TOP shader, stock TOPs only), and the fallback to a built-in synthetic Noise TOP. This goes well beyond the annotations (readOnlyHint=false, destructiveHint=false) by explaining what gets created and what to expect, without contradicting them.

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 four concise sentences, each serving a distinct purpose: the first states the core function, the second covers the default source fallback, and the last two describe the output and return value. No filler or redundancy.

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 9 optional parameters, no output schema, and a tool that creates a network, the description provides sufficient context: purpose, constraints, default behavior, and output format. However, it does not detail the JSON structure or the nature of potential warnings, leaving a minor gap for a tool of this complexity.

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%, with each of the 9 parameters already having a robust description. The tool description restates some parameter concepts (gap, jitter, rows/cols, brick offset) in prose but does not add new semantic details beyond the schema. Thus the baseline of 3 applies.

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 uses a specific verb ('Tile') and identifies the resource ('source TOP'), the pattern ('rows×cols brick/grid'), and key features (gap, jitter, brick offset). This clearly distinguishes it from generic create_* tools like create_td_node or create_replicator.

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?

The description implies usage (tiling a TOP) and gives constraints such as 'stock TOPs only' and the default Noise TOP fallback, but it does not explicitly state when to use this tool versus alternatives or when not to use it. No sibling tools are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_stipple_pointcloudCreate stipple point cloudA

Density-weighted particle scatter rendered as discrete points — a stippled / halftone-engraving point cloud whose dot distribution follows the luminance of a source TOP. Brighter regions yield denser clusters. Three visual modes: bw_dots (constant colour stipple), colored_dots (sample source RGB at each point), random_jitter (adds noisePOP for organic hand-engraved scatter). Outputs a Render TOP through a Geometry COMP in points render mode. Sibling to create_pop_geometry (procedural SOP geo) and the rasterised create_dither / create_halftone tools (which stay in TOP space).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoVisual treatment: bw_dots (constant colour), colored_dots (sample source RGB per-point), random_jitter (adds noisePOP for organic scatter).bw_dots
nameNoBase name for the system container (TD auto-suffixes).stipple_pointcloud
densityNoTotal particle count (100..200000, default 20000). Drives maxparticles + birthrate.
dot_sizeNoPoint primitive size in pixels (0.5..8, default 2).
color_modeNoBackground/foreground choice for bw_dots and random_jitter. Ignored by colored_dots.white_on_black
resolutionNoOutput Render TOP resolution [w, h]. Default [1280, 720].
parent_pathNoParent COMP to create the container under./project1
jitter_amountNoPer-point position noise scale for random_jitter mode (0..1, default 0.25).
palette_colorNoForeground RGB tuple when color_mode=palette. Default warm parchment [0.95, 0.9, 0.7].
expose_controlsNoWhen true, expose live DotSize, JitterAmount (random_jitter only), and CameraRotate controls.
source_top_pathNoAbsolute path of an existing TOP whose luminance drives density. When omitted, a rampTOP radial gradient is built as the source.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description discloses behavioral specifics: output structure ('Outputs a Render TOP through a Geometry COMP in points render mode'), luminance-driven density ('Brighter regions yield denser clusters'), and mode-specific behaviors (random_jitter adds noisePOP for organic scatter). This provides meaningful context not present in the annotations, though it doesn't discuss potential side effects or return values.

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 four sentences, each adding value: core purpose, density behavior, three modes, output type, and sibling differentiation. It is front-loaded with the main purpose and avoids redundant fluff.

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 11 parameters, no output schema, and annotations providing only broad hints, the description adequately covers the tool's behavior, output, and place among siblings. It doesn't explicitly state the return value, but the creation context and parent_path/name parameters make it inferable. The description is complete enough for an agent to select and invoke the tool.

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?

The input schema has 100% description coverage for all 11 parameters, so the schema already documents each parameter's meaning and defaults. The description adds conceptual context (e.g., color modes, density weighting) but does not add per-parameter syntax or format details beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

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: 'Density-weighted particle scatter rendered as discrete points — a stippled / halftone-engraving point cloud whose dot distribution follows the luminance of a source TOP.' It also names three visual modes and the output via Render TOP / Geometry COMP. It distinguishes from siblings by explicitly referencing create_pop_geometry, create_dither, and create_halftone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear alternatives by identifying sibling tools and their differences: 'Sibling to create_pop_geometry (procedural SOP geo) and the rasterised create_dither / create_halftone tools (which stay in TOP space).' This tells the agent when this tool is appropriate: when a point cloud in geometry space with density-based stippling is needed, versus procedural SOP geometry or rasterized TOP effects.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_strange_attractorCreate strange attractorA

Build a strange-attractor deferred geometry generator: a Script CHOP integrates a chosen ODE system (Lorenz / Aizawa / Halvorsen) with configurable sub-steps and maintains a rolling ring buffer of trail_length points. A Script SOP converts the channels into one open polyline; an optional Tube SOP thickens it for shaded render inside a Geometry COMP + Camera + Light + Render TOP pipeline. Closing Roadmap Milestone 4. Complements create_growth_system (L-systems) and create_particle_flock (boids) as the deterministic CPU-geometry idiom. With TD timeline paused the integrator pauses too (time-dependent) — resume playback to continue. Returns a summary plus a JSON block with the container path, output path, exposed controls, errors, warnings, and an inline preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
dtNoIntegrator time step. Smaller = smoother but slower trajectory.
nameNoContainer baseCOMP name.strange_attractor
seedNoInitial state [x, y, z]. A tiny non-zero offset avoids the Lorenz fixed-point stall at the origin.
colorNoConstant MAT colour (RGB, 0..1).
paramsNoOverride ODE constants. Lorenz: sigma, rho, beta. Aizawa: a, b, c, d, e, f. Halvorsen: a. Unknown keys are ignored.
parentNoParent network where the container is created./project1
bg_colorNoRender TOP background colour (RGB, 0..1).
attractorNoODE system to integrate: lorenz (classic butterfly), aizawa, or halvorsen.lorenz
thicknessNoTube SOP radius. Set to 0 to render the raw polyline (no Tube SOP — lighter on GPU).
auto_frameNoAuto-position camera based on attractor bounding radius (deterministic; no live bound query).
trail_lengthNoPoints retained in the rolling ring buffer. Higher = longer ribbon, costlier SOP cook.
expose_controlsNoExpose StepsPerFrame / Dt / TrailLength / Thickness as custom parameters on the container.
steps_per_frameNoRK-style integration sub-steps per cook frame (controls speed and smoothness).

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds substantial behavioral context beyond this: time-dependent integration, rolling ring buffer, optional Tube SOP, deterministic CPU-geometry idiom, and exact return fields including 'errors, warnings, and an inline preview.' There is no contradiction with 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 about 100 words and densely informative. It covers the architecture, rendering pipeline, relationship to sibling tools, critical temporal behavior, and return value format without fluff. Each sentence adds value, and the main action is front-loaded.

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?

Given 13 parameters with complete schema descriptions, solid annotations, and no output schema, the description compensates well. It explains the full pipeline (CHOP -> SOP -> Tube -> render), the deterministic CPU-geometry context, timeline sensitivity, and exactly what the tool returns (summary plus JSON block with container path, output path, controls, errors, warnings, inline preview). This is comprehensive for an agent to select and invoke correctly.

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?

The input schema has 100% coverage with all parameters described in detail, including defaults, bounds, and specific meanings (e.g., dt, trail_length, attractor). The description only briefly mentions 'configurable sub-steps' and 'trail_length' without adding new semantic depth beyond the schema. With full schema coverage, the baseline of 3 is appropriate.

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 clearly states its purpose: 'Build a strange-attractor deferred geometry generator' with specific implementation details (Script CHOP, Script SOP, optional Tube SOP). It distinguishes itself from sibling tools by explicitly naming create_growth_system and create_particle_flock as complements, making it clear what this tool does and how it relates to others.

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 provides context and alternatives: 'Complements create_growth_system (L-systems) and create_particle_flock (boids) as the deterministic CPU-geometry idiom.' It also notes time-dependent behavior ('With TD timeline paused the integrator pauses too'), which helps the agent decide when this tool is appropriate. However, it does not explicitly state when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_strobeCreate strobeA

Build a beat-syncable strobe / flash layer — a full-frame colour flash that pulses hard on/off, the signature live-VJ strobe effect. A square-wave LFO CHOP at the given Rate (Hz) drives a Level TOP's brightness so a Constant TOP (the flash colour, white by default) blinks; Duty sets the on-time fraction. With an input_path the flash is composited OVER that source (pulled in by a Select TOP, so it can live in another container); without one, the bare flash is output. Output is a Null TOP. Rate is free-running for v1 — bind the LFO's frequency to a beat CHOP later to lock it to the tempo.

ParametersJSON Schema
NameRequiredDescriptionDefault
dutyNoOn-time fraction of each cycle (0..1, 0.5 = even on/off). Mapped to the LFO CHOP's Bias, which rectangularises the square wave.
colorNoFlash colour as a hex string ('#ffffff' = white, the classic strobe). Sets the Constant TOP's RGB.#ffffff
rate_hzNoStrobe rate in flashes per second (Hz) — the LFO CHOP square-wave frequency.
intensityNoBrightness of the flash when it is on (0..1). Drives the Level TOP's brightness1.
input_pathNoOptional absolute path of a source TOP to flash OVER. Pulled in via a Select TOP (TD wires don't cross containers) and composited under the flash. If omitted, the bare flash is output.
parent_pathNoParent COMP path the self-contained 'strobe' container is created inside./project1
expose_controlsNoExpose live Rate / Intensity / Duty knobs bound to the right node parameters.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is not a read-only or destructive operation. The description adds meaningful behavioral detail beyond that: the exact node chain used to generate the effect, the behavior with and without input_path, and the limitation that the rate is free-running in v1. It does not contradict annotations, but could have mentioned side effects like container creation or failure modes, leaving room for a 4 rather than a 5.

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 tightly written with no filler. The first sentence states the purpose, the next two explain the mechanics and input_path behavior, and the final sentence addresses the output and a known limitation. Every sentence earns its place, and the structure is logical and front-loaded.

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 creation tool with 7 parameters and no output schema, the description covers the essential behavior: what is built, how it is composited, the output type, and a current limitation. It does not describe error handling, idempotency, or what happens if input_path is invalid, but the full schema coverage and detailed node chain make it sufficiently complete for typical use.

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?

The input schema provides 100% parameter coverage with detailed descriptions, so the baseline is 3. The description adds value by explaining how parameters interrelate in the signal chain (e.g., Rate drives LFO frequency, Duty maps to Bias, intensity drives Level brightness) and clarifies the color default. This cross-parameter context goes beyond individual schema descriptions, warranting a 4.

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 ('Build') and resource ('beat-syncable strobe / flash layer'), immediately clarifying the intended effect. It goes beyond a generic statement by detailing the underlying mechanism (LFO CHOP, Level TOP, Constant TOP) and the output type (Null TOP), distinguishing it from sibling creation tools.

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 explanation of how the strobe works and how to optionally composite it over a source provides clear context for when to use this tool. It also notes the current limitation (rate is free-running) and suggests a future approach for beat-syncing, effectively covering use cases. However, it does not explicitly name alternative tools or exclusion criteria, so it stops short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_synesthesia_unreal_oscCreate Synesthesia / Unreal OSC preset sendA

Build a named OSC-out preset map for driving Synesthesia or Unreal Engine from TouchDesigner. Picks a preset ('synesthesia' → prefix '/syn', port 6448; 'unreal' → prefix '/unreal', port 8000), builds a Constant CHOP with one named channel per control (channel name = '/' so an oscoutCHOP emits the exact address the target app expects), and wires it into an oscoutCHOP aimed at host:port. Override the control names, prefix, host, or port as needed. This is the preset layer on top of create_external_io osc_out — it fills in the address templates and default control set so the send 'just works' with the target app. Bind audio/analysis to the source channels (e.g. op('controls')['syn/Bass']) to make the receiving app react.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoDestination IP the OSC messages are sent to (the machine running Synesthesia / Unreal).127.0.0.1
nameNoBase name for the container COMP.osc_send
portNoUDP port to send OSC to. Null uses the preset's default (Synesthesia 6448, Unreal 8000).
activeNoStart sending immediately. Defaults off so you can confirm the destination host/port first.
prefixNoOverride the preset's OSC address prefix (the part before the control name). Null uses the preset default (syn / unreal).
presetNoNamed OSC-out preset — sets the address prefix, default port, and default control names for Synesthesia or Unreal Engine.synesthesia
controlsNoOverride the preset's control names. Each becomes an OSC address '/<prefix>/<name>' and a channel on the source Constant CHOP you drive/bind.
parent_pathNoCOMP to create the OSC-out chain in (default '/project1')./project1

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-read-only, non-destructive creation operation. The description adds valuable behavioral context beyond these flags: it explains the internal construction (Constant CHOP with named channels, wiring into oscoutCHOP), the channel naming convention ('<prefix>/<control>'), and the preset port mappings. This gives the agent a clear picture of what the tool does mechanically, 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 compact yet information-dense, with no wasted words. Each sentence contributes: the core purpose, the preset details, the construction mechanism, the relationship to create_external_io, and a practical binding example. It is front-loaded with the main action and maintains focus throughout.

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 create tool with no output schema and 8 parameters, the description covers the full workflow: what gets built, how addresses are formed, how to customize overrides, and how to bind audio/analysis. It could list the default control names, but that is a minor gap given the schema permits null defaults and the description indicates the presets fill them in.

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 100% schema coverage, the baseline is 3. The description enriches parameter understanding by showing how preset, prefix, port, and controls interact: it details the preset-to-prefix/port mapping (synesthesia → /syn, 6448; unreal → /unreal, 8000), and explains how control names become OSC addresses and channel names. This holistic explanation goes beyond the individual schema descriptions.

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 'Build a named OSC-out preset map for driving Synesthesia or Unreal Engine from TouchDesigner', which clearly identifies the tool's specific verb, resource, and target applications. It further distinguishes itself from siblings by explicitly positioning itself as 'the preset layer on top of create_external_io osc_out' and detailing the preset-specific behavior (prefixes, ports), making the purpose unmistakable.

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 explicitly names create_external_io as the lower-level alternative and states this tool fills in the address templates and default control set, giving clear context for when this preset layer should be used. It lacks an explicit 'do not use when...' statement, but the positioning is strong enough to infer the appropriate usage boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_td_nodeCreate TouchDesigner nodeA

Create a single bare operator (node) inside a parent COMP with optional deterministic auto placement or exact coordinates and viewer state. Omitted placement preserves legacy bridge behavior; idempotently reused nodes keep their existing coordinates. Validates the operator type against the knowledge base and warns (without blocking) on unknown types. Returns {node, warnings[]} for the created node. For a complete wired+arranged network prefer a Layer-1 create_* tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional node name (auto-generated if omitted).
typeYesOperator type string, e.g. 'noiseTOP', 'feedbackTOP', 'nullTOP', 'constantCHOP'.
node_xNoExact Network Editor X coordinate.
node_yNoExact Network Editor Y coordinate.
viewerNoOptional operator viewer state for a newly created node.
placementNoOptional placement policy. Omit for legacy bridge behavior; 'auto' picks a deterministic free grid cell; 'explicit' requires node_x and node_y.
parametersNoOptional initial parameter overrides as key→value pairs.
parent_pathNoParent COMP path to create the node inside./project1

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnly=false, destructive=false), the description discloses valuable behaviors: legacy bridge behavior when placement is omitted, idempotent reuse preserving coordinates, type validation with warnings on unknown types, and the return shape {node, warnings[]}. This goes well beyond what annotations provide.

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 five sentences, each carrying distinct, necessary information: purpose, placement/idempotency, validation, return value, and alternatives. It is front-loaded with the core function and contains no filler, making it efficient and scannable.

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?

Given 8 parameters (all documented), no output schema, and a non-trivial create operation, the description covers the essential context: return shape, placement behavior, type validation, and when to prefer another tool. Nothing critical is missing for an agent to invoke this tool correctly.

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 100%, so the baseline is 3. The description adds meaning by explaining the placement policy ('auto' picks deterministic grid cell, 'explicit' requires coordinates), the legacy bridge behavior of omitted placement, and that reused nodes keep coordinates. This supplements the schema without repeating it.

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+resource: 'Create a single bare operator (node) inside a parent COMP' and further specifies placement and viewer state. It explicitly distinguishes itself from higher-level create_* tools by stating 'For a complete wired+arranged network prefer a Layer-1 create_* tool,' making its scope clear relative to siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit context for when this tool is appropriate: creating a single bare node, with placement options. It also gives a clear when-not by directing users to a Layer-1 create_* tool for complete wired networks. The idempotency note adds practical guidance on reuse, and the warning behavior informs users about unknown types.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_tempo_syncCreate tempo syncA

Create a tempo clock (Beat CHOP driven by TouchDesigner's global tempo) exposing beat-synced channels on a Null CHOP: a per-beat 0→1 ramp, a pulse spike on each beat, integer beat/bar counters, and bpm. Bind any parameter to these to lock visuals to the beat. With emit_events on, it also broadcasts a beat event over the bridge WebSocket each beat, so tdmcp-agent watch and the AI can see the pulse live. Pair with extract_audio_features for full musical reactivity.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoBeats per bar / beat period — how the ramp and bar channels divide the tempo.
emit_eventsNoAlso broadcast a `beat` event over the bridge WebSocket on every beat, so `tdmcp-agent watch` and the AI can react to beats live.
parent_pathNoParent COMP path the self-contained 'tempo_sync' container is created inside./project1
expose_controlsNoExpose a live 'Period' knob to retune the beat division on the fly.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond annotations: it creates a beat-synced clock with specific output channels, and optionally broadcasts a beat event over WebSocket. This is consistent with annotations (openWorldHint=true, destructiveHint=false) and discloses side effects without contradicting them.

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 four concise sentences, each earning its place: creation, usage, optional event broadcast, and a pairing recommendation. It is front-loaded with the core purpose and avoids redundant wording.

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?

The description covers the tool's outputs, the WebSocket event, and how to use it, which is adequate for a creation tool with no required parameters and no output schema. It doesn't mention that a self-contained 'tempo_sync' container is created at parent_path, but that detail is in the schema. Given the tool's moderate complexity, it is reasonably complete.

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 all four parameters are already well-documented. The description adds no new parameter-specific details; it mentions emit_events in passing but doesn't expand on parameter syntax or format. It only reinforces the general purpose of the created channels.

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 clearly states the tool creates a tempo clock driven by TouchDesigner's global tempo, exposing specific beat-synced channels (ramp, pulse, beat/bar counters, bpm). This distinct action and output set separates it from sibling tools like create_beat_grid_sequencer or create_audio_reactive.

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 gives clear context: bind parameters to the exposed channels to lock visuals to the beat, and pair with extract_audio_features for musical reactivity. It doesn't explicitly state when not to use it or compare to alternatives, but the use case and pairing suggestion are clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_terrainCreate terrainA

Build a procedural heightmap landscape: an animated Noise TOP height field displaces a subdivided Grid SOP along Z in a GLSL vertex-displacement MAT (real 2.5D geometry, elevation-shaded from a low→high colour ramp), lit by a key Light, framed by a raised angled Camera, and rendered. Optionally adds a flat translucent water plane at water_level and a camera-distance fog fade into the sky/background colour. Distinct from create_visual_system's 'terrain' keyword (which only maps to a noise_landscape recipe) — this is a dedicated, fully parameterized terrain pipeline with its own displacement material, water, and fog. Creates a new baseCOMP under parent_path. Exposes Height, Drift, WaterLevel, and Zoom controls. Returns a summary plus a JSON block with the container path, created node paths, output path, exposed controls, node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
fogNoFade the far terrain into `background` by camera distance (volumetric-ish haze).
driftNoScroll speed of the noise height field along Z per second so the landscape slowly evolves. 0 = static terrain. Reads 0 when the TD timeline is paused.
waterNoAdd a flat translucent water plane at `water_level` cutting through the terrain.
heightNoDisplacement amount along Z: how far bright pixels push the surface up. 0 = flat.
low_colorNoColour of the valleys / lowest elevation (RGB 0..1).
backgroundNoSky / background + fog colour (RGB 0..1).
high_colorNoColour of the peaks / highest elevation (RGB 0..1).
parent_pathNoParent network where the terrain container is created (default '/project1')./project1
water_colorNoWater plane colour (RGB 0..1). Rendered semi-transparent.
water_levelNoZ elevation of the water plane, in the same units as `height`.
noise_periodNoNoise TOP period — larger = broader, smoother hills; smaller = tighter, rockier.
subdivisionsNoGrid resolution (rows = cols). Higher = finer relief and smoother displacement, but more vertices to push. 160 gives a 160×160 plane.
expose_controlsNoWhen true (default), expose live Height / Drift / WaterLevel / Zoom controls.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only signal readOnlyHint=false, openWorldHint=true, destructiveHint=false; the description carries the behavioral burden and delivers—stating it 'Creates a new baseCOMP under parent_path,' exposes Height/Drift/WaterLevel/Zoom controls, and details the JSON return payload (container path, node paths, output path, errors, warnings, inline preview). No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average (about eight sentences) but front-loads the core purpose and every clause adds information: pipeline components, optional water/fog, sibling distinction, creation path, exposed controls, and return format. It is on the verbose side but contains no filler.

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 13-parameter creation tool with no output schema, the description covers the full build pipeline, optional behaviors (water, fog), create location, live controls, and exactly what the return payload contains. Prerequisites and failure modes are not spelled out, but node errors/warnings are part of the declared return, keeping this sufficiently complete.

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?

With 100% schema-description coverage, the schema already documents all 13 parameters, so the baseline is 3. The description adds only marginal value—mapping exposed controls (Height, Drift, WaterLevel, Zoom) to the UI—and references water_level in context, but does not clarify anything the schema descriptions leave ambiguous.

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 action—'Build a procedural heightmap landscape'—and enumerates the exact pipeline (Noise TOP, Grid SOP, GLSL vertex-displacement MAT, light, camera, render). It explicitly differentiates itself from create_visual_system's 'terrain' keyword, which is the closest sibling. The verb+resource+technical scope fully anchors the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names the main alternative: 'Distinct from create_visual_system's "terrain" keyword… this is a dedicated, fully parameterized terrain pipeline with its own displacement material, water, and fog.' This communicates when the more complete pipeline is needed versus the simpler recipe mapping. It does not enumerate every terrain-adjacent sibling, but the primary confusion point is directly addressed with a clear when-not distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_test_patternCreate test patternA

Generate a projector calibration / alignment source — a standalone test-pattern network that every media server ships and tdmcp was missing. Builds a baseCOMP containing a GLSL TOP with a baked-in static pattern (grid, crosshair, SMPTE-ish color bars, horizontal ramp, or circle-grid), optional text/number overlay (for per-projector ID), and a Null TOP as the stable output handle. The shader is generated per pattern and baked into the payload — no custom uniforms or live bindings needed. Use the output as a routing source during projector alignment, LED mapping calibration, or camera registration. Pattern, resolution, divisions, overlay number/label, and colours are all configurable.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoBase name for the container COMP that wraps the pattern network.test_pattern
labelNoOptional extra caption text overlaid bottom-right (e.g. 'LEFT', 'CAM 2'). Empty = none.
widthNoOutput width in pixels (must be > 0; e.g. 1920, 2560, 3840).
heightNoOutput height in pixels (must be > 0; e.g. 1080, 1440, 2160).
patternNoPattern type: grid = even line grid; crosshair = centred cross + corner marks; color_bars = vertical SMPTE-ish colour columns; ramp = smooth horizontal grey ramp; circle_grid = repeated concentric ring tiles.grid
bg_colorNoBackground colour as [R, G, B] in 0–1 range. Default is black [0, 0, 0].
divisionsNoNumber of grid cells across the frame for grid and circle_grid patterns (must be >= 1). Ignored by other patterns.
line_colorNoPattern line colour as [R, G, B] in 0–1 range. Default is green [0, 1, 0].
parent_pathNoParent COMP path to build inside (e.g. '/project1'). The container is created here./project1
output_numberNoProjector / output ID drawn as a large label in the lower-right corner (must be >= 0). 0 = no number.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as non-read-only and non-destructive. The description adds meaningful behavioral context by explaining that it builds a baseCOMP with a GLSL TOP and Null TOP, and that the shader is baked per pattern with no live bindings or custom uniforms required. This goes beyond simple create/build phrasing, though it doesn't discuss overwrite or side-effect behavior in detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and uses four sentences to cover behavior, patterns, use cases, and configurability. Some filler such as 'every media server ships and tdmcp was missing' is not strictly necessary but does not undermine clarity.

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 10-parameter creation tool with no output schema, the description adequately conveys the built network's structure, the configurable pattern types, and the intended application contexts. It does not explain every parameter, but those are fully documented in the schema, and the high-level behavior is sufficiently complete.

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 schema carries full parameter details. The description adds only a general statement that pattern, resolution, divisions, overlay number/label, and colours are configurable, which restates what the schema already provides without deeper semantic value.

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?

Description names a specific verb ('Generate') and resource ('standalone test-pattern network') for projector calibration/alignment, and enumerates pattern types and output structure. It distinguishes itself from generic shader creation by emphasizing baked-in static patterns and a Null TOP output handle, though it does not explicitly name sibling alternatives like projector_calibration_wizard.

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?

Clear usage context is provided: 'Use the output as a routing source during projector alignment, LED mapping calibration, or camera registration.' This tells the agent when to invoke the tool, but it stops short of explicit exclusions or named alternatives, so it misses the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_text_3dCreate 3D extruded textA

Build a self-contained 3D text scene: a Text SOP generates the glyph outlines, an Extrude SOP gives them depth (the depth parameter controls depthscale), and a Geometry COMP holds the pipeline with a Constant MAT for colour. A Camera, a Light, and a Render TOP complete the 3D render, output as a Null TOP. Optional continuous Y-axis spin (spin degrees/sec) is driven by a time expression on the Geometry COMP's ry parameter. Exposes Spin and Depth as live knobs. The classic signature look for title cards, lyric reveals, and 3D text drops — use create_kinetic_text instead for flat 2D animated text. Returns a summary plus a JSON block with the container path, created node paths, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoBase name for the self-contained container COMP (default 'text_3d').text_3d
spinNoContinuous Y-axis rotation in degrees per second (0 = static). Driven by an expression on the Geometry COMP's ry parameter.
textNoThe text to render in 3D. Use \n for multiple lines.HELLO
colorNoText material colour as a hex string ('#ffffff' = white). Sets the Constant MAT's colorr/g/b.#ffffff
depthNoExtrusion depth in geometry units (controls the Extrude SOP's depthscale). 0 = flat polygons, 0.2 = typical title-card look.
resolutionNoRender TOP output resolution as [width, height] in pixels (default [1280, 720]).
parent_pathNoParent COMP path where the text-3D container is created (default '/project1')./project1

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly=false, destructive=false), the description discloses the exact node chain (Text SOP, Extrude SOP, Geometry COMP, Constant MAT, Camera, Light, Render TOP, Null TOP), the spin expression on ry, and the return format including summary, JSON fields, and inline preview. This is rich behavioral context; only minor omissions (e.g., failure/overwrite behavior) keep it from a 5.

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 efficiently packed—each sentence covers a distinct facet: pipeline construction, spin behavior, live knobs, use cases/alternative, and return value. No redundant phrases, and the primary purpose is front-loaded.

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?

With 7 params and no output schema, the description carries the responsibility of explaining return values and internal behavior. It states the JSON structure (container path, node paths, controls, errors, warnings, preview) and the use-case context, making it complete for effective tool selection and invocation.

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 coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema: primarily that Spin and Depth are exposed as live knobs. Other parameter details (depth controls depthscale, spin drives ry) are already present in the property descriptions, so no significant compensation needed.

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 clearly states 'Build a self-contained 3D text scene' and enumerates the full node pipeline, so the verb and resource are specific. It also explicitly distinguishes itself from create_kinetic_text, making sibling differentiation unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description directly names the alternative: 'use create_kinetic_text instead for flat 2D animated text.' It also provides typical use cases ('title cards, lyric reveals, and 3D text drops'), giving agents both when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_text_crawlCreate text crawlA

Build a multi-line animated text crawl / ticker / credits roll / typewriter reveal inside a self-contained baseCOMP. Three modes: 'crawl_horizontal' = continuous left-scrolling ticker tape (news-ticker style); 'roll_vertical' = upward credits roll (use \n to separate lines); 'typewriter' = text is revealed character-by-character from left to right (EXPERIMENTAL — the substring expression on a textTOP text par is unverified across TD builds). A textTOP renders the content; a transformTOP animates position via an EXPRESSION parameter (crawl/roll modes) or the textTOP text par is set to a time-sliced substring expression (typewriter mode). The scroll wraps continuously (loop=true, default) so the text re-enters from the opposite edge. Outputs a nullTOP 'out' as a stable handle. Differs from create_kinetic_text (single-string flash/pulse/slide) and create_text_overlay (a static, non-moving caption/title); this tool handles multi-line copy, continuous scrolling, and character-reveal. Returns a JSON block with container path, output_top, text_top, transform_top, mode, line count, and any per-step warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoWhen true (default), the scroll position wraps so the text crawls/rolls continuously. When false, it plays once and stops at the end.
modeNoAnimation style: 'crawl_horizontal' = text scrolls continuously left across the frame (ticker-tape); 'roll_vertical' = text rolls upward (credits roll); 'typewriter' = text is revealed one character at a time from left to right — EXPERIMENTAL (the substring expression on a textTOP par is UNVERIFIED across TD builds).crawl_horizontal
nameNoName for the baseCOMP container that holds the crawl network.text_crawl
textYesThe text content to display. Use \n to separate multiple lines (e.g. for a ticker or credits roll). All lines are fed to a single Text TOP.
colorNoRGB text colour as three 0–1 floats, e.g. [1,1,1] = white. Sets fontcolorr/g/b on the Text TOP.
speedNoScroll speed as a fraction of the output resolution per second. 0.1 = the text travels one full screen-width per 10 s. Drives the Transform TOP position expression.
widthNoOutput resolution width in pixels (sets resolutionw on the Text TOP).
heightNoOutput resolution height in pixels (sets resolutionh on the Text TOP).
bg_alphaNoBackground alpha [0–1]. 0 = fully transparent background (text over black/transparent). The par name is probed: 'alphabg' is tried first, then 'bgalpha' — UNVERIFIED across TD builds.
font_sizeNoFont size in pixels (maps to the Text TOP's fontsizex parameter; fontsizey is set to the same value).
parent_pathNoParent COMP where the text-crawl container is created (default '/project1')./project1

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false and destructiveHint=false, which align with the description's 'Build' action. The description adds valuable context beyond annotations: it explains internal implementation (textTOP, transformTOP, EXPRESSION parameter), the looping behavior, the 'out' nullTOP handle, and explicitly flags risks for typewriter mode ('EXPERIMENTAL — unverified') and bg_alpha par probing ('UNVERIFIED'). This transparency about potential instability is exemplary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but dense, covering modes, mechanism, loop behavior, output handle, sibling differentiation, and return format. While longer than typical, every sentence contributes useful operational information. It is organized from high-level purpose to implementation to differentiation, though a slight rewrite could tighten the technical explanation.

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?

With 11 parameters and no output schema, the description compensates well by explaining internal topology, output handle, and return JSON structure. It covers key behavioral aspects like continuous wrapping and the experimental typewriter mode. Minor gap: no explicit example or mention of typical resolution/defaults, but overall it is complete enough for an agent to invoke correctly.

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 100%, providing baseline 3. The description adds meaning by explaining the role of mode (three animation styles) and loop (continuous vs one-shot), and by describing the return JSON fields. It also clarifies semantic nuances like 'speed is a fraction of output resolution per second' and 'use \n to separate lines', which go beyond individual parameter descriptions.

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 clearly states the tool's function: 'Build a multi-line animated text crawl / ticker / credits roll / typewriter reveal inside a self-contained baseCOMP.' It enumerates three specific modes (crawl_horizontal, roll_vertical, typewriter) and explicitly differentiates from sibling tools create_kinetic_text and create_text_overlay. The verb 'build' plus the resource (baseCOMP) makes the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: 'Differs from create_kinetic_text (single-string flash/pulse/slide) and create_text_overlay (a static, non-moving caption/title); this tool handles multi-line copy, continuous scrolling, and character-reveal.' It also explains how each mode is used (e.g., roll_vertical uses \n to separate lines) and notes the loop behavior for continuous scrolling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_text_overlayCreate text overlayA

Composite styled STATIC text over a visual (or on its own transparent background) — a Text TOP with font size, color, and alignment, optionally laid 'over' a source TOP through a Composite TOP, output as a Null. For lyrics, titles, song names, or credits in a set. Distinct from the vault's bind_vault_text (which data-syncs a Text DAT to a note); this is a finished visual layer ready for setup_output. The text does not move: for a single word that flashes/pulses/slides use create_kinetic_text, and for multi-line scrolling tickers/credits rolls/typewriter reveals use create_text_crawl.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoThe text to display.TEXT
alignNoHorizontal alignment.center
colorNoText color as a hex string, e.g. '#ff3366'.#ffffff
valignNoVertical alignment.center
font_sizeNoFont size in pixels.
resolutionNoOutput resolution of the Text TOP: '720p' (1280×720), '1080p' (1920×1080), or '4K' (3840×2160).1080p
parent_pathNoParent COMP path the self-contained 'text_overlay' container is created inside./project1
source_pathNoOptional TOP to composite the text over (e.g. a finished visual). Omit to get the text alone on a transparent background, ready to composite later.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses that the tool produces a 'finished visual layer ready for setup_output', that the text is static, and that it can composite over a source TOP or output on transparent background. It mentions creating a self-contained container at parent_path, which implies node creation. It does not detail every side effect (e.g., naming collisions), but it covers the expected behavior well.

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 information-dense yet efficient. Each sentence serves a distinct purpose: function, use cases, and differentiation. No filler or repetition; it front-loads the primary action and then provides contextual guidance, making it easy for an agent to parse quickly.

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?

With 8 parameters, no output schema, and sparse annotations, the description covers the essential context: what the tool does, when to use it, and how it differs from similar tools. It omits potential error conditions or prerequisites, but given the clear semantics of the schema and the explicit 'static text' note, it is sufficiently complete for an agent to select and invoke the tool.

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 100%, so the baseline is 3. The description adds meaning by explaining the optional source_path behavior ('Omit to get the text alone on a transparent background, ready to composite later') and clarifies the output as a Null TOP container. It also frames parameters like font size, color, and alignment within the compositing pipeline, which the schema alone doesn't fully capture.

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 action: 'Composite styled STATIC text over a visual (or on its own transparent background)', clearly identifying the tool as a text overlayer. It names the involved nodes (Text TOP, Composite TOP, Null) and explicitly differentiates from siblings like create_kinetic_text and create_text_crawl, leaving no ambiguity about its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit use cases are provided: 'For lyrics, titles, song names, or credits in a set.' It also gives explicit exclusions: 'The text does not move: for a single word that flashes/pulses/slides use create_kinetic_text, and for multi-line scrolling tickers/credits rolls/typewriter reveals use create_text_crawl.' This is textbook when-to-use vs alternatives guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_time_echoCreate time echoA

EXPERIMENTAL — Apply a per-pixel time effect to a source TOP: echo trails, slit-scan, or per-pixel time displacement (the 'time machine' melt/slice look). Builds a container COMP that selects the source by absolute path (no cross-container wire) and then, by mode: echo — a feedbackTOP (wired input + forced resolution so the loop is not black) blended over the live frame at opacity=feedback to leave fading ghost trails; slit_scan — a cacheTOP buffering frames and a time-machine TOP reading different rows from different points in time; time_displace — the same cache read back through a luminance gradient (displace_top or a built-in vertical ramp) so bright pixels show older frames. The time-machine read operator is PROBED LIVE (timeMachineTOP → cacheSelectTOP fallback) because the optype name varies by TD build; the feedback opacity par (opacity → fadeval) and cache-depth par (cachesize → maxframes) are also set defensively. Every par/connect failure is collected as a warning and the chain still returns its output Null — UNVERIFIED across TD builds; tune live. Ends with a Null TOP 'out'.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoecho: recursive feedback trails — each frame leaves a fading ghost (the classic 'echo trails' / time-blur look, driven by `feedback`). slit_scan: buffer N frames in a cache and read different rows from different points in time (rolling 'time slice' wipe). time_displace: per-pixel time offset driven by a gradient (`displace_top`) — bright pixels show older frames, dark show newer (the 'time_machine' melt/warp). slit_scan and time_displace both buffer frames in a cacheTOP and read them back with a time-machine TOP.echo
nameNoBase name for the container COMP that holds the chain.time_echo
framesNoBuffer depth / cache size in frames for slit_scan and time_displace (how far back in time pixels can be pulled). Ignored in echo mode (feedback is recursive, not frame-indexed). Larger = longer time range but more GPU memory.
feedbackNoEcho trail strength [0–1] for echo mode — opacity of the fed-back previous frame blended over the current one. Higher = longer, more persistent trails (0.5 = balanced; 0.9+ = very smeary). Ignored in slit_scan / time_displace.
resolutionNoForced output resolution [width, height] in pixels. A fixed resolution is REQUIRED for the feedback path (echo mode) so the loop has a stable frame from cook 0 and does not stay black.
source_topYesPath of the input TOP to apply the time effect to (e.g. '/project1/moviefilein1' or a Null TOP). REQUIRED.
parent_pathNoWhere to build the time-echo chain (a COMP path, e.g. '/project1')./project1
displace_topNotime_displace mode only: path of a TOP whose luminance maps each pixel to a time offset (a gradient/ramp/noise — bright = further back in time). Omit to use a built-in vertical ramp (rampTOP) so the effect works out of the box. Ignored in echo / slit_scan.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description richly discloses behavioral traits beyond annotations: it builds a container COMP, selects source by absolute path with no cross-container wire, probes live for time-machine operator, sets pars defensively, collects failures as warnings, and returns a Null TOP 'out'. This far exceeds the sparse annotation set and prepares the agent for fallbacks and unverified behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is long but structured by mode, front-loading the core purpose and then detailing mode-specific behaviors and failure handling. Every sentence contributes necessary technical context, making it dense but appropriately sized for the tool's complexity.

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 complex tool with no output schema, the description covers the container build, all three modes, parameter roles, fallbacks, warning behavior, and the final Null TOP output. No critical gaps prevent an agent from understanding what the tool does and how to invoke it.

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 100%, so the baseline is 3. The description adds value by explaining how parameters interact, such as feedback opacity mapping, forced resolution for echo mode, and cache depth for slit_scan/time_displace, enriching the schema's already-detailed descriptions without redundancy.

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 clearly states the tool applies a per-pixel time effect to a source TOP, enumerating three specific modes: echo trails, slit-scan, and per-pixel time displacement. It distinguishes itself from sibling creation tools by specifying the exact effect family and its container-building behavior.

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?

The description opens with 'EXPERIMENTAL' and warns 'UNVERIFIED across TD builds; tune live,' implying cautious use but not offering explicit alternatives. It does not mention sibling tools like create_slit_scan for when this tool should be preferred, so usage guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_touchosc_layoutCreate TouchOSC layoutA

Create a TouchOSC-oriented OSC mapping surface and JSON manifest DAT. This intentionally does not claim to generate TouchOSC .tosc documents.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.touchosc_layout
controlsNoTouchOSC-style controls to expose as OSC mapping rows.
page_nameNotdmcp
send_hostNo127.0.0.1
send_portNo
parent_pathNoParent COMP for the TouchOSC surface./project1
receive_portNo
create_manifest_datNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a non-read-only, world-interacting creation tool. The description adds context by noting the output includes a JSON manifest DAT and that .tosc generation is intentionally not performed. However, it does not disclose side effects, whether existing objects are overwritten, or other behavioral traits beyond the .tosc exclusion.

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 two concise sentences: the first states the core action, the second clarifies an important boundary. Every word earns its place with no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no output schema, and a description that only covers high-level purpose, the agent lacks guidance on the manifest structure, controls array semantics, network defaults, and the overall output shape. This incomplete context is insufficient for correct invocation, especially given the low schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 38%, leaving key parameters like send_host, send_port, receive_port, page_name, and create_manifest_dat undocumented. The description does not compensate by explaining any parameters, defaults, or relationships, so the agent has insufficient information to correctly set parameters.

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 clearly states the tool creates a 'TouchOSC-oriented OSC mapping surface and JSON manifest DAT' and explicitly notes it does not generate .tosc documents. This provides a specific verb and resource while distinguishing itself from touchOSC file generation tools.

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?

The description gives context (TouchOSC-oriented, not for .tosc) and a negative exclusion, but does not explicitly state when to use this tool versus alternatives like create_control_surface or create_companion_surface. The .tosc caveat implies a boundary, but no direct usage guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_transient_reactiveCreate transient/sustain reactiveA

Layer-1 audio splitter: differences a fast and a slow envelope follower to expose two normalized 0..1 channels — 'transient' (percussive onsets) and 'sustain' (tonal floor) — on a Null CHOP at {comp}/out. Pair with bind_to_channel to drive visuals from percussion vs sustain independently. Custom-par page 'Tune' on the parent COMP exposes Sensitivity + per-envelope attack/release for live tweaking.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesContainer COMP name (required).
parentNoParent path of the container COMP (must exist)./
audioSourceNoOptional CHOP path or shared audioBus Null CHOP path. When empty, an internal audioDeviceIn CHOP is used.
sensitivityNoGain applied to transient before clamp to 0..1.
fastAttackMsNoFast envelope attack in ms — captures clicks/onsets.
slowAttackMsNoSlow envelope attack in ms — tonal floor.
fastReleaseMsNoFast envelope release in ms.
slowReleaseMsNoSlow envelope release in ms.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint: false) and non-destructive. The description adds useful output location details and mentions the custom parameter page on the parent COMP, but does not disclose all side effects like creating a container COMP or wiring an internal audio device when audioSource is empty.

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?

Three sentences, each earning its place: definition, companion usage, and parameter tweaking location. No fluff or redundancy.

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 the tool's complexity (8 parameters, no output schema), the description covers the core purpose, output location, channel names, and a usage suggestion. It does not detail every parameter interaction, but the schema handles those. Reasonably complete for a mid-complexity creation tool.

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 coverage is 100%, so the description does not need to explain parameters. It mentions 'Sensitivity + per-envelope attack/release' as a high-level grouping, but this adds no new meaning beyond the schema descriptions. Baseline 3 applies.

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 clearly states the tool's function: 'Layer-1 audio splitter: differences a fast and a slow envelope follower to expose two normalized 0..1 channels — transient and sustain — on a Null CHOP at {comp}/out.' This specifies a unique action and output, distinguishing it from generic audio envelope tools.

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 provides a specific usage context: 'Pair with bind_to_channel to drive visuals from percussion vs sustain independently.' However, it does not explicitly mention alternatives or when not to use this tool, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_transitionCreate transition (A→B)A

Build a parameterized A→B transition over a single 0–1 Progress knob — the executable core of VJ cutting. Creates a new baseCOMP under parent_path holding two sources (brought in via Select TOPs, or built-in contrasting test looks when omitted) and one of five transition styles: 'dissolve' (a Cross TOP crossfade), 'luma_wipe' (a Ramp-gradient-driven moving edge via GLSL), 'slide' (B pushes in from the right over A), 'zoom' (B scales in over A), or 'glitch_cut' (a hard A→B switch at 0.5 with a brief RGB-split tear). Progress 0 = full A, 1 = full B. Exposes live 'Progress' + 'Duration' knobs; drive Progress from manage_cue / bind_to_channel to run the transition on a beat or cue. Output is a Null ready for post-processing or setup_output. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the transition system COMP.transition
styleNoTransition style: dissolve (crossfade), luma_wipe (gradient-driven edge), slide (B pushes A), zoom (B scales in), glitch_cut (RGB-shift hard cut).dissolve
durationNoSeconds for an auto Progress sweep when triggered (exposed as a knob; the knob can also be driven by manage_cue/bind_to_channel).
progressNoInitial transition position 0=full A, 1=full B (exposed as a live knob).
source_aNoTOP path for the A (outgoing) look. Omitted → a built-in test source (Constant/ramp) so it previews standalone.
source_bNoTOP path for the B (incoming) look. Omitted → a contrasting built-in test source.
resolutionNoOutput resolution [w,h].
parent_pathNoWhere to build it./project1

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even though annotations are present (readOnlyHint=false), the description adds significant behavioral detail: creates a new baseCOMP under parent_path, brings in sources via Select TOPs, exposes live Progress and Duration knobs, and returns summary plus JSON block with node paths, errors, warnings, and preview image. It fully explains the creation side effects without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph, but every sentence contributes useful information without fluff. It is front-loaded with the core purpose. It could benefit from bullet points or section breaks for readability, but overall it is well-structured for the complexity.

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?

Given the tool's complexity (8 params, 5 styles, output specification), the description covers all essentials: what it builds, the styles, progress semantics, exposed knobs, how to drive it externally, the output Null, and the return format. No output schema exists, so the description rightly explains the return value in detail.

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 100% with descriptive parameter docs, so baseline is 3. The description adds value by explaining each style's implementation details (e.g., luma_wipe uses Ramp-gradient-driven moving edge via GLSL) and clarifies that omitted sources default to built-in test looks. This goes beyond the schema's basic field descriptions.

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 explicitly states the tool builds a parameterized A→B transition over a Progress knob, the executable core of VJ cutting. It enumerates five distinct transition styles with concrete implementations (Cross TOP, GLSL ramp, etc.), clearly distinguishing it from siblings like create_glitch or create_layer_mixer.

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 provides strong context: it is the core transition builder for VJ cutting and explains how to drive it via manage_cue/bind_to_channel. However, it does not explicitly mention when not to use it or point to alternative tools, so it stops one step short of full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_two_way_surfaceCreate two-way control surface (OSC/MIDI with feedback guard)A

Build a bidirectional OSC or MIDI control surface that drives TouchDesigner params from a controller AND echoes outgoing changes back to it (motor faders, RGB pads), with an oscillation guard so the device's own echo doesn't ping-pong. Each mapping pairs a device address with a TD parameter; a Script CHOP gates outbound sends by epsilon delta, rate limit, and a last_in cache. Exposes Bypass, Globaleps, Ratehz, Reseccache custom pars on the container.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoOSC remote host (device IP) for outgoing messages. Ignored for MIDI.127.0.0.1
nameNoContainer name.two_way_surface
portNoOSC remote port for outgoing messages. Ignored for MIDI.
parentNoParent COMP path./
mappingsYesPer-control routing + guard config.
protocolNoTransport: 'osc' uses OSC In/Out CHOPs; 'midi' uses MIDI In/Out CHOPs.osc
listenPortNoOSC local port for incoming messages. Ignored for MIDI.
midiDeviceNoMIDI device name (required when protocol='midi').
rateLimitHzNoOutgoing send-rate cap (Hz). Outbound channels are throttled below this rate.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the minimal annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false). It discloses the internal Script CHOP gate mechanism, epsilon delta and rate-limit throttling, the last_in cache, and the custom parameters (Bypass, Globaleps, Ratehz, Reseccache) exposed on the container. This gives the agent a detailed picture of side effects and configurability.

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 long but information-dense. It front-loads the core purpose, then explains the guard mechanism and exposed custom parameters. Every sentence earns its place with no padding or redundancy.

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?

Given the tool's complexity (9 params, no output schema), the description covers the construction purpose, bidirectional behavior, oscillation guard mechanics, and container-level custom parameters. This is sufficient for an agent to understand what the tool creates and how it behaves, especially with the rich schema descriptions for all parameters.

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?

The input schema already has 100% coverage with descriptive parameter docs, so the baseline is 3. The description adds only a high-level nod to epsilon delta and rate limit, which are already defined in schema, and does not elaborate on individual parameter semantics beyond what schema provides. Thus it does not significantly augment the schema's information.

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: 'Build a bidirectional OSC or MIDI control surface that drives TouchDesigner params from a controller AND echoes outgoing changes back to it.' It clearly distinguishes from sibling tools like create_control_surface by emphasizing two-way communication and the feedback guard. The title reinforces the same, making the purpose 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 clearly establishes the use case: bidirectional control with echo, such as motor faders and RGB pads, and explains why the oscillation guard is necessary to prevent ping-pong. However, it does not explicitly name alternatives or state when not to use this tool, though the context strongly implies that unidirectional surfaces would be better handled by other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_vcv_rack_bridgeCreate VCV Rack bridgeB

Create a VCV Rack OSC/MIDI/CV modulation bridge scaffold with channel mapping and setup notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoosc
nameNoGenerated baseCOMP name.vcv_rack_bridge
activeNo
bipolarNo
rack_hostNo127.0.0.1
send_portNo
midi_deviceNo
parent_pathNoParent COMP for the VCV scaffold./project1
receive_portNo
channel_countNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate non-read-only and non-destructive behavior. The description adds the 'scaffold' concept and mentions channel mapping/setup notes, but does not disclose potential side effects such as network port usage or external interactions, which would be valuable given the openWorldHint.

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 a single sentence of 15 words, front-loaded with the verb 'Create,' and contains no redundant or filler language. It is concise and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, no output schema, and low schema coverage, the description is far too sparse. It omits how the bridge works, what 'scaffold' entails, setup prerequisites, and parameter relationships, making it insufficient for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (2/10 parameters documented). The description does not compensate by explaining parameter semantics; it only vaguely references 'channel mapping' without detailing how parameters like mode, send_port, or channel_count relate.

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 clearly states it creates a VCV Rack bridge scaffold with specific modulation types (OSC/MIDI/CV) and includes channel mapping and setup notes. This distinguishes it from generic bridge tools, though it does not explicitly differentiate among sibling bridge-creation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. It does not mention scenarios, prerequisites, or exclusions, leaving the agent without context for selecting it over similar bridge tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_vector_linesCreate vector linesA

Build a pulse-driven image-to-vector-lines system: capture a still frame from a synthetic, camera, file, or existing TOP source, prepare a monochrome mask, freeze it to a snapshot, trace it through a Trace SOP for editable vector geometry, generate a clean TOP line-art overlay, and composite it over the source. Phase 1 is intentionally not realtime: the artist presses the Vectorize pulse to update trace1/frozen_frame, keeping cook cost bounded. Source defaults to a static synthetic contour card so it previews without camera permissions or moving noise; camera is opt-in. Exposes Vectorize, Threshold, PreBlur, StepSize, Smooth/Fit/Border toggles, line color/width, opacity, overlay mode, and calibration knobs. Returns the container, source/prep/frozen/trace/vector/output paths, warnings for unverified Trace/snapshot details, and a preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoPrep mode: foreground-oriented mask, mask-only, or full_frame edge/detail tracing.hybrid_foreground
nameNoName for the vector-line system COMP.vector_lines
invertNoInvert the prepared mask before tracing.
sourceNoImage source. 'synthetic' is the safe default; 'camera' is opt-in; 'file' reads movie_file_path; 'existing_top' pulls existing_top_path through a Select TOP.synthetic
opacityNoOpacity of the rendered vector overlay.
pre_blurNoBlur amount before thresholding/tracing to remove camera noise.
resampleNoResample Trace SOP shapes to reduce excessive point density.
step_sizeNoTrace SOP resample step / simplification amount.
thresholdNoBrightness/mask cutoff for the prep image and Trace SOP.
fit_curvesNoFit Trace SOP output to Bezier curves; off by default until live-probed.
line_colorNoVector material color as '#rrggbb'.#49dcb2
line_widthNoWireframe line width where supported by the material.
parent_pathNoParent COMP where the system container is created./project1
show_sourceNoComposite the source image under the vector layer when true.
overlay_modeNoComposite TOP operand when show_source=true.over
camera_deviceNoOptional camera device name for source='camera'.
smooth_shapesNoSmooth traced shapes to reduce sharp camera-noise corners.
remove_bordersNoRemove dirty image borders in Trace SOP when supported.
expose_controlsNoExpose the Vectorize pulse plus prep/look/calibration controls.
movie_file_pathNoMovie/image path used when source='file'.
existing_top_pathNoExisting TOP path used when source='existing_top'.
analysis_resolutionNoCapture/trace resolution [width, height] that bounds vectorization cost.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits beyond annotations: the non-realtime pulse-driven nature, intentional cook cost bounding, default source behavior to avoid camera permissions, and that camera is opt-in. It also states it returns warnings for unverified details. This adds significant context over the basic readOnly/destructive hints.

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 a single, information-dense paragraph with four sentences, each adding essential context: pipeline, non-realtime constraint, source defaults, exposed controls, and return values. It is long but proportionate to the tool's 22 parameters, and every sentence earns its place.

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?

Given 22 parameters and no output schema, the description is remarkably complete: it explains the full workflow, the phase boundaries, default source rationale, control exposure, and return values (container, paths, warnings, preview). The schema covers individual parameters, and the description ties them together effectively.

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 100% so baseline is 3, but the description adds value by naming exposed controls (Vectorize, Threshold, PreBlur, StepSize, Smooth/Fit/Border, line color/width, opacity, overlay mode) and explaining source defaults and camera opt-in, which enriches the meaning of the source and control parameters.

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 'Build a pulse-driven image-to-vector-lines system' which is a specific verb+resource that clearly differentiates it from sibling tools. It details the full pipeline (source capture, mask, snapshot, Trace SOP, overlay, composite), leaving no ambiguity about what the tool creates.

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 gives clear usage context: it is intentionally non-realtime, uses a default synthetic source for safe preview, and camera is opt-in. It implicitly warns against realtime use by noting the Vectorize pulse bounds cook cost, but it does not name explicit alternative tools or state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_vertex_displacement_matCreate vertex displacement MATA

Build a true vertex-shader displacement material: a GLSL MAT whose vertex stage offsets each vertex along its normal by procedural 3D noise (uTime-animated) or by the luminance of a sampled TOP (texture_path), so the mesh is physically deformed on the GPU. Distinct from the TOP-space image warps create_depth_displacement / create_displacement_warp — those push 2D pixels; this pushes mesh vertices. Assign it to your own Geometry COMP via target_geo, or omit it to build a self-contained demo (subdivided sphere + camera + light + render + Null) so the material previews standalone. Creates a new baseCOMP under parent_path. Exposes Amount, Frequency, and Speed controls bound to the MAT. Returns a summary plus a JSON block with the container path, created node paths, the material path, the output path (demo only), exposed controls, node errors, warnings, and (demo only) an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
speedNoAnimation speed of the noise field (uTime scroll, cycles/s). 0 = static. Reads 0 when the TD timeline is paused.
amountNoDisplacement distance along each vertex normal (uAmount). 0 = undeformed.
frequencyNoSpatial frequency of the procedural noise (ignored when texture_path is set).
demo_colorNoDemo surface tint (RGB 0..1); shaded by facing + displacement. Demo only.
target_geoNoAbsolute path of an existing Geometry COMP to assign the displacement MAT to. Omit to build a self-contained demo (subdivided sphere + camera + light + render) so the material previews standalone.
parent_pathNoParent network where the container (holding the MAT and, for the demo, the render chain) is created./project1
texture_pathNoAbsolute path of a TOP whose luminance drives the displacement instead of procedural noise. Omit to use built-in 3D noise.
expose_controlsNoWhen true (default), expose live Amount / Frequency / Speed controls bound to the MAT.
demo_subdivisionsNoDemo sphere mesh resolution (only used when target_geo is omitted).

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal readOnly=false and destructive=false; the description adds behavioral detail by explaining it creates a new baseCOMP under parent_path, may build a demo scene, and returns a JSON summary with node paths and preview. This goes beyond annotations without contradicting them.

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 dense yet efficiently organized: it opens with the core purpose, then sibling distinction, then param-mode behavior, and ends with the return summary. Every sentence contributes and there is no repetition or filler.

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?

Despite lacking an output schema, it thoroughly describes the return payload (summary, JSON block with paths, exposed controls, errors, warnings, preview). It also covers creation side effects and the demo mode, providing a complete picture for a tool with 9 parameters.

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 100%, so baseline is 3. The description adds value by clarifying relationships, e.g., 'frequency is ignored when texture_path is set,' explaining that target_geo is for existing geometry vs demo mode, and confirming expose_controls binds Amount/Frequency/Speed. These details enrich the schema's field descriptions.

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 clearly states the tool builds a 'true vertex-shader displacement material' and explicitly distinguishes it from the sibling tools create_depth_displacement and create_displacement_warp by noting those 'push 2D pixels' while this 'pushes mesh vertices.' This is a specific verb+resource+scope with clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance: assign to a Geometry COMP via target_geo, or omit to build a standalone demo. It also states when not to use it (for TOP-space image warps use the siblings), making the decision criteria unmistakable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_video_playerCreate video playerA

Build a movie/clip player inside a new 'video_player' container under parent_path: one Movie File In TOP, or a playlist of clips fed through a Switch TOP with a Clip selector. Exposes live Play / Speed (and Clip) controls, output as a Null TOP. Pass file paths, or none to get an empty player you point at a file in TD. Use create_video_synth instead when you want a procedurally generated (oscillator/CRT) image rather than playing a video file. Returns the created clip paths, the output Null path, and whether a playlist was built. For VJ clip playback — mix it with create_layer_mixer or make it react with bind_to_channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoMovie file path(s). 0 = an empty player you can point at a file later; 1 = a single clip; 2+ = a playlist with a Switch TOP and a Clip selector.
parent_pathNoParent COMP path the self-contained 'video_player' container is created inside./project1
expose_controlsNoExpose live Play / Speed (and Clip, for a playlist) controls.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutation (readOnlyHint=false) and non-destructive behavior (destructiveHint=false). The description adds concrete behavioral detail by naming the created TOPs, the exposed controls, the Null output, and the return value (clip paths, Null path, playlist flag). It does not overclaim safety or omit major side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, front-loaded with the core purpose, then covers input modes, alternatives, return values, and integration context. Each sentence contributes useful information; it is slightly long but appropriately dense rather than verbose.

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?

Given the medium complexity, the description covers what the tool builds, how to invoke it with different file inputs, what controls are exposed, what it returns, and how it fits into a VJ workflow. With no output schema, the explicit return description is valuable and makes the tool effectively self-contained for an agent.

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 coverage is 100% and the schema already explains files, parent_path, and expose_controls in detail. The description restates and slightly contextualizes the file modes ('Pass file paths, or none to get an empty player') but does not add new parameter-level semantics beyond what the schema provides.

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 starts with a specific verb and resource: 'Build a movie/clip player inside a new video_player container' and explains the internal architecture (Movie File In TOP, Switch TOP, Clip selector, Null TOP). It clearly distinguishes this from create_video_synth, its most similar sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is given: 'Use create_video_synth instead when you want a procedurally generated image rather than playing a video file.' It also tells when to combine with create_layer_mixer or bind_to_channel for VJ clip playback, and explains the three file-count modes (0, 1, 2+).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_video_scopesCreate video scopes monitorA

Build a broadcast-style video engineering monitor with multiple scope panels: waveform (luma trace), RGB parade (per-channel traces), and vectorscope (UV chrominance scatter). Each panel renders as a CHOP-to-SOP scope line through an orthographic camera and Render TOP, composited into a single output TOP via layoutTOP. Companion to create_waveform (audio) and create_spectrum (audio frequency). Default source is a synthetic test pattern (no device permission needed); 'device' is opt-in for live camera. The histogram panel here is unsupported in TD 099 and silently skipped — for a working luminance/RGB histogram use the standalone create_histogram_scope instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
gainNoPre-scope luma gain — zooms the trace vertically (Level TOP brightness1).
layoutNoHow enabled panels arrange in the output composite.grid_2x2
sourceNoVideo source. 'test_pattern' = synthetic Banana.tif (no permission needed). 'existing_top' = reuse a TOP you already have (provide existing_top_path). 'file' = a video/image file. 'device' = live camera (videodeviceinTOP) — may hang TD on a macOS permission modal.test_pattern
parent_pathNoParent COMP path; the scopes container is created as 'video_scopes' inside it./project1
trace_colorNoPhosphor colour for scope lines as a hex string.#00ff88
enable_paradeNoShow the RGB parade panel.
enable_waveformNoShow the luminance waveform panel.
expose_controlsNoBind live controls: Gain, TraceColor, panel-enable toggles.
video_file_pathNoVideo/image file path (source='file').
enable_histogramNoShow the luma histogram panel. Currently unsupported — TD 099 has no histogramCHOP (only histogramPOP). Pass true is accepted but the panel is silently skipped; re-enable once analyzeTOP histogram mode is confirmed.
panel_resolutionNoEach scope panel's square side in pixels.
existing_top_pathNoPath of an existing TOP to scope (source='existing_top').
output_resolutionNoFinal composited TOP [width, height].
enable_vectorscopeNoShow the UV vectorscope panel.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint=false, destructiveHint=false), the description discloses meaningful behavior: the histogram panel is silently skipped in TD 099, the default source requires no device permission, and the rendering pipeline is detailed. This adds value beyond structured 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?

Four sentences, each earning its place: purpose, technical pipeline, companion distinction, and unsupported feature caveat. No filler, logically front-loaded with the core purpose.

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?

Although the tool has 14 parameters and no output schema, the description covers the essential context: what it builds, how it renders, default behavior, companion tools, and a known limitation. The rich schema handles parameter specifics.

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?

All 14 parameters have full descriptions in the input schema (100% coverage), so the description does not need to explain parameters. It adds only minimal extra context about source and histogram, which is already largely present in schema descriptions.

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 states a specific action ('Build a broadcast-style video engineering monitor') with clear scope details (waveform, RGB parade, vectorscope) and distinguishes itself from sibling tools by explicitly naming create_waveform (audio) and create_spectrum (audio frequency) as companions, and directing to create_histogram_scope for histograms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: names companion tools for audio-focused needs, points to create_histogram_scope for working histograms, explains the default test pattern source avoids permissions, and flags device as opt-in with potential macOS permission modal issues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_video_synthCreate video synthA

Instantiate an analog video-synthesizer pattern (lissajous oscillator curve, moving interference fringes, or CRT scanline modulation) into a GLSL TOP with live Speed / FreqX / FreqY / Scale / Color controls, output as a Null TOP inside a new 'video_synth_' container under parent_path. An oscillator/interference generator for VJ work — distinct from create_shader_lib's tunnel/raymarch/fractal/metaball looks. Use create_video_player instead when you want to play a real movie file rather than generate a pattern. Returns the chosen mode, its parameters, and a preview of the output TOP.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoOscillator look: 'lissajous' (two-oscillator X/Y curve), 'interference' (moving sine fringes), or 'scanlines' (analog CRT scanline modulation).lissajous
colorNoBase color as hex (e.g. '#33ccff'); parsed to 0..1 RGB and exposed as 'Color'.
scaleNoPattern scale/zoom multiplier (uScale). Exposed as a live 'Scale' control.
speedNoAnimation speed multiplier (drives uTime). Exposed as a live 'Speed' control.
freq_xNoX-axis oscillator frequency (uFreqX). Exposed as a live 'FreqX' control.
freq_yNoY-axis oscillator frequency (uFreqY). Exposed as a live 'FreqY' control.
resolutionNoOutput resolution [width, height] of the GLSL TOP.
parent_pathNoParent COMP path the self-contained 'video_synth_<mode>' container is created inside./project1
expose_controlsNoExpose live Speed / FreqX / FreqY / Scale / Color controls on the system container.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-read-only, non-destructive. The description adds context about creating a new container, output as Null TOP, and returning parameters/preview. It does not address potential side effects like overwriting existing containers, but given the annotation coverage, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized, front-loaded with the core action, and every sentence serves a purpose (action, distinction, alternative, return value). The first sentence is long but packs necessary detail without waste.

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 complex 9-parameter generator with no output schema, the description covers creation, output container, live controls, and return value. It lacks explicit mention of preconditions like parent_path existence, but is otherwise complete enough for selection and basic use.

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 covers all 9 parameters with descriptions (100% coverage). The description mentions live Speed/FreqX/FreqY/Scale/Color controls but does not add meaning beyond the schema's own parameter docs, so baseline 3 applies.

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 clearly states a specific action ('Instantiate an analog video-synthesizer pattern... into a GLSL TOP') and defines the output ('output as a Null TOP inside a new container'). It distinguishes itself from siblings by naming create_shader_lib and create_video_player as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'distinct from create_shader_lib's tunnel/raymarch/fractal/metaball looks' and 'Use create_video_player instead when you want to play a real movie file.' This tells the agent when to pick this tool vs others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_vintage_lensCreate Vintage LensA

Drape a vintage analog-film aesthetic over any TOP in one call. Chains barrel/pincushion lens distortion → chromatic aberration → vignette → film grain as four inline GLSL passes inside a new baseCOMP. Era presets (super8, vhs, 16mm, 80s_camcorder) load era-correct strength defaults; any per-param override wins. Returns a standard Layer 1 envelope with container path, node paths, output path, preview image, warnings, and the resolved strength values.

ParametersJSON Schema
NameRequiredDescriptionDefault
eraNoEra preset that sets default strength values; per-param overrides win.super8
nameNoName suffix for the baseCOMP (default 'vintage_lens').vintage_lens
ca_strengthNoRGB-split offset magnitude (radial from center). Overrides preset.
parent_pathNoParent network where the vintage-lens container is created (default '/project1')./project1
grain_amountNoPer-pixel noise amplitude. Overrides preset.
source_top_pathYesPath of the existing TOP to grade (e.g. '/project1/render1').
vignette_strengthNoEdge darkening amount; 0 disables. Overrides preset.
distortion_strengthNoBarrel-distortion coefficient (UV warped from center). Overrides preset.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses that it creates a new baseCOMP with four ordered GLSL passes, how era presets interact with per-parameter overrides, and the exact return envelope including paths, preview, warnings, and resolved strengths. This gives the agent a solid behavioral model of side effects and outputs.

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?

Four front-loaded sentences with no filler: the first states the purpose, the second details the pipeline, the third explains presets/overrides, and the fourth lists return values. Every sentence earns its place.

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 tool with 8 parameters and no output schema, the description covers purpose, pipeline, preset behavior, and the full return envelope. The schema already documents each parameter, so together they provide enough information to invoke the tool correctly.

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 100%, so the baseline is 3. The description adds meaning by explaining the chain order (distortion → chromatic aberration → vignette → grain) that ties the strength parameters together, and clarifies that era presets are overridden by individual parameters. It doesn't re-describe each parameter but enriches the overall semantics.

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 'Drape a vintage analog-film aesthetic over any TOP in one call,' naming a specific verb, resource, and scope. It further distinguishes itself from siblings by detailing the exact four-pass GLSL chain and era presets, making its function unmistakable.

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 clear context: use this when you want a vintage analog-film look applied to any TOP, with era presets and per-parameter overrides. It does not explicitly name alternatives or when-not-to-use cases, but the intended use case is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_vioso_warp_panelCreate VIOSO warp panelA

Create a VIOSO projection-warp scaffold with VIOSO TOP, blend-zone maps, projector metadata, and setup notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.vioso_warp_panel
activeNo
config_fileNoPath to the VIOSO calibration/config file.
parent_pathNoParent COMP for the VIOSO warp scaffold./project1
projector_indexNo
blend_zone_countNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses what the scaffold contains, which is useful context beyond the annotations (readOnlyHint=false, destructiveHint=false). However, it does not mention potential side effects like name conflicts, the need for an existing config file, or how parameters affect the output. With annotations covering the safety profile, this is acceptable but not rich.

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 a single concise sentence that front-loads the core action and output components. No redundant or filler words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with six parameters and no output schema, the description gives a high-level overview but omits details about return values, parameter effects, or prerequisites. It is adequate for basic selection but insufficient for confident invocation without schema help.

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 50%, with three parameters (active, projector_index, blend_zone_count) lacking descriptions. The description mentions 'blend-zone maps' and 'projector metadata,' which vaguely relate to blend_zone_count and projector_index, but it does not explicitly map parameters or explain their behavior. It provides some context but leaves gaps.

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 clearly states the tool's function with a specific verb ('Create') and resource ('VIOSO projection-warp scaffold'), and lists output components (VIOSO TOP, blend-zone maps, projector metadata, setup notes). This distinguishes it from sibling tools like create_projection_mapping or create_mesh_warp.

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?

The description implies usage when a VIOSO warp scaffold is needed, but it does not explicitly state when to choose this tool over alternatives or mention any exclusions. No alternative tools are referenced, so an agent must infer the context from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_visual_systemCreate visual systemA

Create a complete visual system from a natural-language description. Classifies intent (audio-reactive, particle, feedback, reaction-diffusion, landscape, generative) and delegates to the matching Layer-1 builder (or a tag-matched recipe), creating a self-contained COMP under parent_path, then verifies and previews it. Use plan_visual instead for a dry run that reports which tool/recipe would be chosen without building anything. Returns a note on how the description was interpreted plus the underlying builder's result (created nodes, exposed controls, and a preview image).

ParametersJSON Schema
NameRequiredDescriptionDefault
resolutionNoAdvisory target resolution. Recorded in the build note; the sub-builders use their own internal sizes and do not enforce this per-node.1080p
target_fpsNoAdvisory target frame rate (informational only — TD's real cook rate is a project-level setting, not set here).
descriptionYesNatural-language description of the visual system.
parent_pathNoParent COMP path the generated visual-system container is created inside./project1

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses the full behavioral pipeline: classifies intent, delegates to a builder/tag-matched recipe, creates a self-contained COMP under parent_path, verifies, previews, and returns a note plus the builder's result. This is rich context well beyond the basic readOnly/destructive hints and does not contradict 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 well-structured and front-loaded with the core action, followed by process details and a clear alternative reference. Every sentence earns its place, and the classification list adds useful specificity without redundancy.

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 complex orchestration tool with a rich schema and no output schema, the description adequately covers input interpretation, side effects, verification, preview, return values, and the main alternative. It could mention failure behavior or more details on the preview, but overall it is sufficiently complete for selection and invocation.

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 coverage is 100%, so the baseline is 3. The description adds only minimal parameter context beyond the schema, such as mentioning parent_path in the creation flow; it does not add new semantic details for resolution, frame rate, or description beyond what the schema already explains.

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 clearly states the tool creates a complete visual system from a natural-language description, with specific verbs and a defined resource. It distinguishes itself from siblings by naming classifier categories (audio-reactive, particle, etc.) and by delegating to Layer-1 builders or recipes, and from plan_visual by explicitly marking the difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is given: use this tool to actually build a visual system, and 'Use plan_visual instead for a dry run that reports which tool/recipe would be chosen without building anything.' This clearly communicates when to use this tool versus a key alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_voice_prompt_pipelineCreate voice prompt pipelineA

Create a dry-run/approval-gated voice-to-prompt TouchDesigner scaffold for AI Party-style workflows. It never dispatches raw hardware effects; policy and operator approval remain authoritative.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.voice_prompt_pipeline
activeNo
stt_modeNomanual_text
audio_fileNo
llm_targetNotext_only
server_urlNows://127.0.0.1:8770
parent_pathNoParent COMP for the pipeline./project1
audio_sourceNomicrophone
approval_modeNodry_run

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate read/write and destructiveness; the description adds meaningful behavioral context not captured there: 'dry-run/approval-gated' mode and the safety guarantee 'never dispatches raw hardware effects; policy and operator approval remain authoritative.' This goes beyond what annotations provide, even though it doesn't detail other side effects or return behavior.

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, front-loaded with the primary action and resource, and every phrase provides unique value. No redundancy with the schema or annotations, and it is appropriately concise for the information it conveys.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core purpose and a key safety characteristic, but with 9 parameters, 0 required, low schema coverage, and no output schema, it omits many important details: what parameters do, what the scaffold contains, what 'dry-run/approval-gated' means for invocation, and what the return value or side effects are. It leaves a significant context gap for an agent to correctly invoke and interpret the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 22% (only name and parent_path have descriptions), and the description does not compensate by explaining any of the parameters, their enums, or how they relate to the tool. The enums like stt_mode, llm_target, and approval_mode have some inherent meaning, but the description adds no guidance, leaving most parameters semantically under-specified.

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?

Description has a clear verb ('Create') and a specific resource ('voice-to-prompt TouchDesigner scaffold'), further qualified by 'dry-run/approval-gated' and 'for AI Party-style workflows.' It explicitly states what the tool does and distinguishes it from sibling tools by emphasizing the approval-gating and the constraint that it never dispatches raw hardware effects.

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 implies usage for AI Party-style workflows and for scenarios requiring dry-run or approval-gated voice-to-prompt scaffolding. It includes an exclusion ('never dispatches raw hardware effects') which helps the agent avoid using this when hardware dispatch is intended, but it does not explicitly name alternatives or provide a clear when-not-to-use statement beyond the hardware constraint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_volumetric_fieldCreate volumetric fieldA

Build a stacked-slice fake-volumetric noise field: smoke, nebula, ember, ice, toxic or mono palettes. Architecture: Simplex 3D noiseTOP → optional displace+blur → cacheTOP (depth = slice_count) → viewer glslTOP (Beer-Lambert accumulation across slices, baked palette) → nullTOP output. NOTE: this is a stacked-2D-slice approximation, NOT a raymarched volume. There is no per-pixel ray traversal or SDF. For a true raymarcher see the planned create_volumetric_raymarch (L-effort follow-up). Cook cost scales roughly linearly with slice_count × resolution. Default 16 slices is the safe sweet spot; drop to 4–8 on integrated GPUs. Returns a summary JSON with container path, created node paths, the output path, exposed controls, any node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoContainer name (must start with a letter, alphanumeric + underscore).volumetric_field
densityNoHow opaque/milky the field reads (0 = transparent, 1 = fully opaque). Maps to uDensity in the viewer shader.
color_mapNoPalette baked into the viewer GLSL shader: smoke (grey haze), nebula (purple/magenta), ember (orange/red), ice (blue/cyan), toxic (green), mono (black→white).smoke
turbulenceNoNoise evolution speed and swirl amplitude. Drives the displacement weight and noise period. 0 = flat/still field; skips the displace TOP.
parent_pathNoParent network where the volumetric_field baseCOMP is created./project1
slice_countNoNumber of 2D z-slices stacked into the pseudo-volume. Build-time only — changing it rewires the cache stack. Higher = smoother depth but heavier cook (linear cost). Default 16 is the safe sweet spot.
expose_controlsNoExpose Density, Turbulence and ColorMap knobs on the container.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the sparse annotations by disclosing the full toolchain architecture (noiseTOP → cacheTOP → viewer glslTOP), the approximation nature ('stacked-2D-slice approximation'), performance scaling ('cook cost scales roughly linearly with slice_count × resolution'), and the return format (summary JSON with node errors, warnings, inline preview). These are important behavioral traits that annotations do not cover.

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 dense but every sentence adds value: it covers purpose, architecture, limitation, performance, and return format in a structured flow. It is front-loaded with the core concept and uses no filler. The length is justified by the technical complexity.

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?

With 7 parameters fully documented in the schema, the description focuses on what the schema cannot convey: architecture, performance, limitations, and output. It clearly states the return JSON fields, addresses the main limitation (2D-slice approximation), and gives actionable performance advice. This is comprehensive for a creation tool.

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 100%, providing a solid baseline of 3. The description adds extra context beyond the schema, such as recommending lower slice counts on integrated GPUs ('drop to 4–8') and explaining the impact of slice_count on rewiring the cache. It also clarifies the turbulence parameter's effect on displacement and noise period, adding practical meaning.

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 starts with a specific verb and resource: 'Build a stacked-slice fake-volumetric noise field'. It lists palettes and explicitly distinguishes itself from a raymarched volume ('NOT a raymarched volume'), which differentiates it from sibling tools like create_volumetric_raymarch. The architecture summary and mention of optional displace+blur further clarify the scope.

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 explicitly says when not to use this tool: 'For a true raymarcher see the planned create_volumetric_raymarch'. It also gives performance guidance ('drop to 4–8 on integrated GPUs'), which helps in choosing appropriate parameters. However, it does not compare against other volume-related siblings like create_sdf_field or create_raymarch_scene, so it lacks a broader when-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_voxel_stackCreate voxel stackA

Isometric voxel-stack renderer driven by any TOP. Builds a single instanced Geometry COMP (boxSOP, N=cols·rows instances up to 256×256) with a CHOP chain sampling luminance for column height and per-instance color. Color modes: source_color (sample TOP directly), palette (Monument-Valley pastel ramp), height_ramp (same palette, height-based). Isometric ortho cam (rx=-35.264°, ry=45°) by default; perspective available. Exposes HeightScale, VoxelSize, and RotateY controls. If source_top_path is omitted, an animated noiseTOP drives the stack.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoBase name for the container (defaults to 'voxel_stack').
paletteNoRamp endpoints as [r,g,b] tuples (2–8 stops). Used only when color_mode='palette'. Defaults to a Monument-Valley pastel 5-stop ramp.
grid_sizeNoVoxel grid cols × rows. Hard-capped at 256×256 (65k instances).
color_modeNoPer-instance color: sample source TOP directly (source_color), look up into a palette ramp (palette), or use a default pastel height ramp (height_ramp).source_color
voxel_sizeNoCube edge length in world units; also the XZ spacing between voxels.
camera_modeNoIsometric uses ortho camera at rx=-35.264°, ry=45° (classic iso). Perspective uses a standard 35mm orbit cam.isometric
parent_pathNoParent network where the voxel stack container is created./project1
height_scaleNoMultiplier on luminance → Y translate. 0 = flat slab.
expose_controlsNoWhen true, expose HeightScale, RotateY, and VoxelSize knobs on the container.
source_top_pathNoPath to an existing TOP that drives heights and colors. If omitted, a built-in animated noiseTOP feeds the stack.
output_resolutionNoRender TOP resolution [width, height].

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Exceeds annotation signals by detailing internal construction (boxSOP, N=256x256 instances), color modes, camera defaults, exposed controls, and fallback to animated noiseTOP. This is rich context beyond the readOnly/destructive flags.

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?

Four sentences, information-dense, front-loaded with the core purpose. No fluff.

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?

Covers the tool's behavior thoroughly: build method, limits, color modes, camera, controls, and default source. For a creation tool without output schema, this is sufficient.

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 covers 100% of parameters with descriptions. The description does not add new parameter meaning; it summarizes color modes and controls already enumerated in the schema. Baseline 3 is appropriate.

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?

States a specific verb+resource: 'Isometric voxel-stack renderer driven by any TOP' and describes construction details (instanced Geometry COMP, CHOP chain). Clearly distinguishes from sibling create_3d_scene or create_geo_visualization by focusing on voxel-stack rendering.

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?

Implied usage from the description but no explicit when-to-use vs alternatives. It notes TOP-driven input and default noise TOP, which gives context, but doesn't name alternative tools or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_waveformCreate waveform oscilloscopeA

Build a time-domain audio waveform / oscilloscope — the actual audio signal scrolling left-to-right as a moving trace (the time-domain companion to create_spectrum's frequency bins and detect_onsets' transients). A Trail CHOP keeps a rolling buffer of recent samples (time_window seconds), a CHOP-to-SOP turns those samples into a real scope LINE (x=time, y=amplitude) rendered by a Geometry COMP through an orthographic Camera + Render TOP, and a Constant TOP tints the trace to the chosen colour. Unlike create_audio_reactive (which renders a spectrum), this shows the raw waveform. Source can be the live device (mic/line — may prompt for macOS permission), an audio file, a synthetic oscillator (for testing), or an existing CHOP. Output is a Null TOP. Scale is the vertical amplitude zoom; TimeWindow is the horizontal time span.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoWaveform colour as a hex string ('#00ff88' = classic phosphor green). Tints the rendered scope line via a Constant TOP multiplied over the Render TOP image.#00ff88
scaleNoAmplitude gain on the signal before it is drawn — the vertical zoom of the trace. Drives a Math CHOP's gain (1 = raw signal).
sourceNoAudio source. 'device' = live microphone/line in (the real-world default; creating it may pop a one-time macOS microphone-permission dialog — click Allow). 'file' = an audio file. 'oscillator' = a synthetic tone, handy for testing the scope without any device permission. 'existing_chop' = reuse a CHOP you already have.device
parent_pathNoParent COMP path the self-contained 'waveform' container is created inside./project1
time_windowNoHow much recent history the scrolling trace holds, in seconds — the horizontal time span. Drives the Trail CHOP's Window Length (wlength, units = seconds).
audio_file_pathNoAudio file path (source='file').
expose_controlsNoExpose live Color / Scale / TimeWindow controls bound to the right node parameters.
existing_chop_pathNoPath of an existing audio CHOP to scope (source='existing_chop').

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits beyond the annotations: it mentions the macOS microphone-permission prompt, the creation of a self-contained container, and that the output is a Null TOP. It describes the internal operator chain (Trail CHOP, CHOP-to-SOP, Geometry COMP, etc.), giving the agent a clear picture of side effects and results. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with purpose, but the final sentence about scale and time_window is redundant with the schema parameter descriptions. It could be trimmed slightly without losing needed content, though it remains logically organized and free of fluff.

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?

The description covers all essential aspects for such a complex tool: what it does, how it works (operator chain), output type, source choices and their implications (permission, testing), and differentiation from close siblings. With no output schema, the 'Output is a Null TOP' statement fills that gap. It is complete for the tool's complexity.

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?

All 8 parameters have rich descriptions in the input schema (100% coverage) that already explain their meanings, defaults, and underlying CHOP mappings. The description largely repeats this information (e.g., 'Scale is the vertical amplitude zoom; TimeWindow is the horizontal time span') without adding new parameter-level insight. Baseline 3 is appropriate since the schema does the heavy lifting.

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+resource: 'Build a time-domain audio waveform / oscilloscope' and immediately clarifies the exact nature (actual audio signal scrolling as a moving trace). It also distinguishes itself from sibling tools by naming create_spectrum, detect_onsets, and create_audio_reactive, making the tool's unique purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit guidance on when to use this tool and names alternatives: 'the time-domain companion to create_spectrum's frequency bins and detect_onsets' transients' and 'Unlike create_audio_reactive (which renders a spectrum), this shows the raw waveform.' It also gives practical advice on choosing the source (e.g., oscillator for testing without permission).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_window_output_matrixCreate Window output matrixC

Create a Window COMP output matrix scaffold with window maps, source maps, status, and setup notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.window_output_matrix
activeNo
parent_pathNoParent COMP for the Window output matrix scaffold./project1
perform_modeNo
window_countNo
resolution_widthNo
resolution_heightNo

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the create semantics are implied. The description adds that it produces a 'scaffold' with specific internal elements, but does not disclose side effects, whether existing nodes are modified, or performance implications. It is consistent with annotations and adds modest context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler words. It is efficient but arguably too terse given the tool's complexity; however, for what it covers, every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, low schema coverage, and many competing create_* siblings, a one-sentence description is insufficient. It does not cover usage scenarios, parameter roles, or expected results, leaving significant gaps for an agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29%, with descriptions for just name and parent_path; the remaining five parameters (active, perform_mode, window_count, resolution_width, resolution_height) are undocumented in the schema. The description does not explain any parameter behavior or relationships, so an agent is left without meaning for the majority of inputs.

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 uses a specific verb ('Create') and identifies the resource ('Window COMP output matrix scaffold') along with its key components ('window maps, source maps, status, and setup notes'). It clearly conveys the tool's purpose but does not explicitly differentiate it from similar sibling tools like create_multi_output or setup_output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. The description only states what it creates, without mentioning conditions, prerequisites, or exclusions such as 'use this instead of create_multi_output when...'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_xy_padCreate XY padA

Build a draggable 2D (XY) gesture pad — a Container COMP whose pointer drag drives an x/y CHOP of normalized control channels, optionally remapped into ranges and bound by expression to target parameters (e.g. an effect's two main knobs). Add a 3rd (Z) axis via z_target to also get a slider. Open the container in Perform/Panel mode and drag inside it to scrub X/Y live. The pad reads its drag through a Panel CHOP; the u/v drag-channel names are probed at build time (they vary by TD build) and any mismatch is reported as a warning. Leave the axis targets empty to just expose the x/y channels and bind them later with bind_to_channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the container COMP built as the draggable pad.xy_pad
sizeNoPad size in pixels (square: width = height = size).
label_xNoDisplay label for the X axis (used in the summary).X
label_yNoDisplay label for the Y axis (used in the summary).Y
x_rangeNoOutput range [low, high] for X. The pad's normalized u (0..1) is remapped into it.
y_rangeNoOutput range [low, high] for Y. The pad's normalized v (0..1) is remapped into it.
z_rangeNoOutput range [low, high] for the optional Z slider (0..1 remapped into it).
x_targetNoOptional 'nodePath.parName' driven by the X axis. Empty = just expose the x/y channels (bind later with bind_to_channel).
y_targetNoOptional 'nodePath.parName' driven by the Y axis. Empty = none.
z_targetNoOptional 'nodePath.parName' driven by a 3rd (Z) axis. When set, a slider is added (the pad has no native 3rd axis) and its value0 drives this target.
parent_pathNoCOMP path that will hold the XY pad (e.g. '/project1')./project1

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal a mutating build operation (readOnlyHint=false, openWorldHint=true, destructiveHint=false); the description adds non-obvious behavior: drag is read through a Panel CHOP, u/v channel names are probed at build time (varying by TD build) with warnings on mismatch, and z_target adds a slider. No contradiction with 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?

Two dense sentences front-load the core purpose, then add operational details (Perform mode, Panel CHOP, warning behavior, optional binding). Every clause earns its place with no filler or redundancy.

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 11-parameter build tool with no output schema, the description covers invocation, optional Z axis, warning conditions, and post-build binding workflow, complemented by rich schema descriptions. An explicit example target string ('nodePath.parName') would help, but the schema already gives the format.

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 description coverage is 100%, so baseline is 3; the description adds semantic relations beyond the schema—ranges remap normalized u/v values, z_target triggers a slider rather than a native axis, and empty x/y targets expose channels for later bind_to_channel. This enriches parameter understanding.

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 'Build' and names the resource ('a draggable 2D (XY) gesture pad'), then details what it produces (Container COMP, x/y CHOP channels, optional Z slider). It clearly distinguishes itself from sibling create_* tools by focusing on this unique XY pad interaction.

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?

Provides clear usage context: open in Perform/Panel mode, drag inside to scrub X/Y live, add Z via z_target, and leave targets empty to bind later with bind_to_channel. It lacks explicit exclusions or named alternative tools, but the workflow guidance is clear enough for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_yolo_onnx_trackerCreate YOLO ONNX tracker scaffoldA

Build a deterministic TouchDesigner scaffold for YOLO-style object tracking. Creates source input, backend receiver placeholder, detections DAT, stable tracks_out CHOP channels, annotated_out TOP, and setup notes. Live detection requires an external detector or validated TouchDesigner Python ONNX runtime.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoContainer name for the tracker scaffold under parent_path.yolo_onnx_tracker
activeNoStart live receiver operators active. Default is off until validation.
backendNoDetection transport or runtime scaffold to build.external_websocket
model_pathNoONNX model path documented by onnx_script mode.
server_urlNoExternal WebSocket detector URL used by external_websocket mode.ws://127.0.0.1:8766
max_objectsNoMaximum tracked object slots exposed as stable CHOP channels.
parent_pathNoParent COMP that will receive the YOLO/ONNX tracker container./project1
class_filterNoOptional class names the external detector or ONNX postprocess should keep.
input_top_pathNoOptional source TOP path pulled into the container through a Select TOP.
confidence_thresholdNoMinimum detection confidence expected from the detector or postprocess.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-destructive, writable operation with potential external interaction. The description adds valuable behavioral context by specifying the exact operators it creates and the dependency on an external detector or validation, which goes beyond what the annotations provide. It does not fully disclose overwrite behavior or permissions, but the bar is lower due to existing 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 two sentences with high information density: the first sentence names the action and deliverables, and the second notes the critical live-detection dependency. Every word contributes value, with no redundancy.

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 the tool's complexity (10 parameters, creation tool, no output schema), the description adequately covers the scaffold's components and the external-runtime constraint. It could be enhanced by stating what the tool returns (e.g., container path or manifest), but this is not essential for a create operation that likely returns a standard result.

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?

All 10 parameters have full descriptions in the JSON schema (100% coverage), so the tool description does not need to add parameter-level detail. The description adds no extra semantics beyond the schema, making the baseline score of 3 appropriate.

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 states a specific action ('Build a deterministic TouchDesigner scaffold') and resource ('YOLO-style object tracking'), and lists the concrete deliverables (source input, backend receiver placeholder, detections DAT, stable tracks_out CHOP channels, annotated_out TOP, setup notes). This clearly distinguishes it from sibling tools that handle other tracking types or general operator creation.

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?

The description mentions that 'Live detection requires an external detector or validated TouchDesigner Python ONNX runtime,' which implies the tool is for scaffolding rather than producing a live tracking system. However, it does not explicitly name alternative tools or provide when-not-to-use guidance, so usage direction remains implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_zed_depth_busCreate ZED depth busB

Create a ZED camera depth/body/point-cloud scaffold with ZED TOP/CHOP/SOP placeholders and runtime-gated warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated baseCOMP name.zed_depth_bus
activeNo
body_countNo
parent_pathNoParent COMP for the ZED scaffold./project1
camera_indexNo
stream_countNo
include_pointcloudNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false, aligning with the 'Create' action. The description adds the behavioral detail of 'runtime-gated warnings,' which is beyond the annotations, but it does not explain what conditions gate the warnings or what consequences the scaffold creation may have. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler, front-loading the action and resource. However, it relies on domain jargon ('TOP/CHOP/SOP placeholders') that may confuse users, slightly reducing clarity without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters and no output schema, the description is too sparse to fully contextualize the tool's behavior, parameter relationships, or the nature of the runtime warnings. It does not explain what the scaffold contains, how it is used, or why a user would invoke this tool over simpler alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 29% (only 'name' and 'parent_path' have descriptions), and the tool description provides zero parameter-level explanations. Parameters like 'body_count', 'stream_count', and 'include_pointcloud' remain ambiguous, and the description does not bridge the gap left by the sparse schema descriptions.

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 uses a specific verb 'Create' with a clear resource: 'ZED camera depth/body/point-cloud scaffold.' It also mentions ZED TOP/CHOP/SOP placeholders and runtime-gated warnings, which distinctly identifies the tool's function and separates it from similar depth-bus creation tools for other cameras (e.g., realsense, azure_kinect).

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?

The description implies usage for creating a ZED-based depth/body/point-cloud scaffold, but it does not explicitly state when to prefer this tool over alternatives or provide any exclusions. The context from sibling tools suggests a family of camera bus creators, yet the description offers no guidance on selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

curated_collection_packCurated Collection PackA

Bundles a curated, hand-picked set of vault assets (recipes, components, looks, raw assets) into a single portable, shareable pack with provenance + integrity. action=pack gathers items into a .pack/ directory tree with a JSON manifest and checksum manifest. action=unpack restores the tree, optionally verifying integrity. Fully offline — no TD bridge required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPack identifier; becomes <name>.pack/ dir name.
tagsNoPack-level tags for search.
itemsNopack only. Files to include. Empty is an error.
actionYes
out_dirYesAbsolute dir where the pack is written (pack) or restored into (unpack).
overwriteNoReplace existing pack dir (pack) or existing files in out_dir (unpack).
pack_pathNounpack only — path to existing <name>.pack/ or its pack.manifest.json.
vault_pathNoRoot for resolving relative items[].path. Falls back to TDMCP_VAULT_PATH env.
descriptionNoFree-form note baked into pack.manifest.json.
verify_on_unpackNounpack only — re-run checksumAndVerifyPack after copy and fail if not OK.
include_provenanceNoCopy .provenance.json sidecars if present; else synthesize via provenanceStamp.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral detail beyond the annotations: it creates a directory tree with JSON and checksum manifests, supports pack/unpack with optional integrity verification, and is fully offline. It does not fully disclose failure modes or overwrite semantics, but annotations already cover the general safety profile.

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 filler. It front-loads the purpose, then details pack/unpack behavior, and closes with a key constraint (offline). Every sentence earns its place.

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 11-parameter, two-mode tool with rich schema descriptions, the overview plus action details give enough context for selection and invocation. It could mention return values or explicit alternative usage, but the schema and annotations fill most gaps.

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 high (91%), but the description adds semantics for the action parameter (pack vs unpack), explains the name parameter becomes <name>.pack/, and enumerates asset kinds (recipes, components, looks, raw assets) that map to the items[].kind enum.

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 clearly states the tool bundles curated vault assets (recipes, components, looks, raw assets) into a portable pack, and explains the two actions (pack/unpack). It distinguishes itself from siblings like export_recipe_bundle by focusing on multi-asset curated packs with provenance and integrity, and by being fully offline.

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 provides clear context: use when you need a portable, shareable, offline bundle of curated vault assets with provenance and integrity checks. However, it does not explicitly say when not to use it or name alternative sibling tools for single-asset exports.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_td_nodeDelete TouchDesigner nodeA
Destructive

Safely remove or bypass one TouchDesigner node. mode:'delete' asks the artist in TouchDesigner to choose exactly Delete / Bypass / Keep; close, timeout, error or unavailable UI means Keep. mode:'bypass' is immediate and reversible. TDMCP_YOLO is an explicit audited skip policy, never inferred from missing UI. The bridge wraps the final mutation in a TouchDesigner undo block; whole-tool undo across multiple REST requests remains unverified. Returns the decision, action applied, final path, confirmation policy/request id and undo label when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'delete' (default) destroys the node; 'bypass' is the safer, reversible middle ground — it turns the operator's bypass flag on instead of removing it, so the artist can re-enable it with one click.delete
pathYesFull path of the node to delete, e.g. '/project1/noise1'.
confirmation_timeout_msNoBounded wait for the TD-native Delete / Bypass / Keep decision.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations. It details the confirmation workflow, fallback behavior on UI unavailability, reversibility of 'bypass', the explicit TDMCP_YOLO skip policy, the wrapping in a TouchDesigner undo block, and the limitation that whole-tool undo across multiple requests is unverified. It also states the return fields (decision, action applied, final path, confirmation policy/request id, undo label). This is exemplary transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured; it front-loads the core purpose and then expands on safety, modes, undo behavior, and return values. Each sentence adds useful information. The only slight issue is its length and the somewhat niche reference to 'TDMCP_YOLO', which may require external knowledge, but it is still concise for the complexity it covers.

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?

Given that this is a destructive operation with two modes, a confirmation step, and no output schema, the description covers all essential aspects: what it does, how each mode behaves, failure fallbacks, undo handling, and what will be returned. It is complete enough for an agent to select and invoke the tool correctly without needing additional documentation.

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 100%, so the baseline is 3. The description adds value by explaining the behavioral implications of 'mode' and the timeout parameter (e.g., 'asks the artist', 'immediate and reversible', 'bounded wait'). It does not repeat schema descriptions verbatim, and it adds context about how parameters affect the operation. This pushes it above the baseline.

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 clearly states the tool's purpose: 'Safely remove or bypass one TouchDesigner node.' It distinguishes between two modes ('delete' and 'bypass'), and the 'Safely' prefix sets expectations around destructive behavior. It is specific enough to stand apart from sibling mutation tools like swap_operator or disconnect_nodes.

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 when to use each mode: 'delete' asks the artist for confirmation and falls back to 'Keep' on close/timeout/error, while 'bypass' is immediate and reversible. It also mentions the TDMCP_YOLO skip policy and the undo caveat. However, it does not explicitly compare with alternative tools (e.g., swap_operator), so it slightly loses points on explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_onsetsDetect onsetsA

Build a transient/onset detector that flags kick/snare/hi-hat hits in live audio and exposes a per-band pulse channel (a 0→1 spike on each hit) on a Null CHOP. Unlike create_tempo_sync (a fixed internal clock), this follows the ACTUAL audio: bind a parameter to op('…/onsets/onsets')['kick'] to flash or cut exactly on the kick drum. Each band is built from primitives (band filter → RMS energy → moving-baseline compare → threshold), so a Threshold knob tunes hit sensitivity and a Sensitivity knob scales the output. Source can be the live device (mic/line — may prompt for macOS permission), an audio file, a synthetic oscillator (for testing), or an existing CHOP. With emit_events on, it also broadcasts an onset event over the bridge WebSocket on each hit. The audio-following complement to create_tempo_sync.

ParametersJSON Schema
NameRequiredDescriptionDefault
hat_hzNoHigh-pass cutoff (Hz) isolating the hi-hat/cymbal band.
sourceNoAudio source. 'device' = live microphone/line in (the real-world default; creating it may pop a one-time macOS microphone-permission dialog — click Allow). 'file' = an audio file. 'oscillator' = a synthetic tone, handy for testing without any device permission. 'existing_chop' = reuse a CHOP you already have.device
kick_hzNoLow-pass cutoff (Hz) isolating the kick/bass-drum band.
snare_hzNoBand-pass centre (Hz) isolating the snare/body band.
thresholdNoHow far an instant's band energy must rise above its own moving baseline (in RMS units) to count as a hit. Band-RMS magnitudes are small (a steady tone reads ~0.002 live), so the default is 0.01 — the old 0.15 was unreachable and never fired. Lower = more sensitive; raise it if a loud track double-triggers. Tune live per source (needs real percussive audio to dial in).
emit_eventsNoAlso broadcast an `onset` event over the bridge WebSocket on every detected hit (with the band name), so `tdmcp-agent watch` and the AI can react to drum hits live.
parent_pathNoParent COMP path the self-contained 'onsets' container is created inside./project1
audio_file_pathNoAudio file path (source='file').
expose_controlsNoExpose live 'Sensitivity' (output gain) and 'Threshold' (hit sensitivity) knobs.
existing_chop_pathNoPath of an existing audio CHOP to analyze (source='existing_chop').

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only state readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds substantial behavioral detail beyond that: it walks through the signal chain (band filter -> RMS -> baseline compare -> threshold), explains the macOS permission prompt, describes the output pulse channel, and mentions the optional WebSocket event broadcast. This gives the agent a clear mental model of what the tool does at runtime.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured, covering purpose, differentiation, internals, sources, events, and relationship to a sibling. It is somewhat long and repeats the 'Unlike create_tempo_sync' idea twice (once at the start and once at the end), which is slightly redundant. Still, every paragraph contributes meaningful 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 complex creation tool with 10 parameters and no output schema, the description covers the essential aspects: what is built, how it behaves, what sources are supported, and a notable side effect (macOS permission prompt). It could have mentioned how the generated container integrates with the existing network or how to access the per-band channels, but the provided details are sufficient for an agent to invoke it correctly.

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 description coverage is 100%, so baseline is 3. The description adds value by explaining how the Threshold and Sensitivity knobs relate to the detection chain, and it mentions the source options (live device, file, oscillator, existing CHOP) in context. This goes beyond per-parameter schema descriptions, though not every parameter is elaborated in the description itself.

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: 'Build a transient/onset detector that flags kick/snare/hi-hat hits in live audio and exposes a per-band pulse channel... on a Null CHOP.' It explicitly distinguishes itself from the sibling create_tempo_sync by stating it follows actual audio rather than a fixed internal clock, making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly contrasts with create_tempo_sync ('Unlike create_tempo_sync') and even calls itself 'the audio-following complement to create_tempo_sync.' It provides concrete use cases (e.g., bind a parameter to flash or cut on kick), making it clear when to choose this tool over the tempo-sync alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_pitchDetect pitch (experimental)A

EXPERIMENTAL monophonic pitch tracker. Estimates the dominant musical pitch of live audio and exposes pitch_hz (frequency in Hz), note (MIDI note number), and confidence (peak magnitude) on a Null CHOP — bind a colour/parameter to op('…/pitch/pitch')['pitch_hz'] to drive visuals from a melody. Built entirely from stock CHOPs (the Pitch CHOP isn't createable in this build): an Audio Spectrum CHOP in 1-sample-per-Hz mode, trimmed to a [min_hz, max_hz] search band, then an Analyze CHOP argmax (highestpeakindex) whose index IS the frequency. A Threshold knob mutes the pitch when nothing is clearly playing and a Sensitivity knob scales the magnitude. Source can be the live device (mic/line — may prompt for macOS permission), an audio file, a synthetic sine oscillator (for testing), or an existing CHOP. Caveats: ~1 Hz resolution, no harmonic/octave correction, monophonic only — approximate and best tuned live.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_hzNoTop of the frequency search range (Hz). The search ignores everything above this. 2000 Hz comfortably covers the fundamental of most melodic instruments and voice; raise it for piccolo/whistle, lower it to reject high harmonics.
min_hzNoBottom of the frequency search range (Hz). The dominant-bin search ignores everything below this, so sub-bass rumble / DC offset can't masquerade as the pitch. 80 Hz ≈ low male voice / bass guitar E.
sourceNoAudio source. 'device' = live microphone/line in (the real-world default; creating it may pop a one-time macOS microphone-permission dialog — click Allow). 'file' = an audio file. 'oscillator' = a synthetic tone (a SINE wave at a fixed frequency → a clean single peak, the ideal device-free test for pitch tracking). 'existing_chop' = reuse a CHOP you already have.device
parent_pathNoParent COMP path the self-contained 'pitch' container is created inside./project1
audio_file_pathNoAudio file path (source='file').
expose_controlsNoExpose live 'Sensitivity' (magnitude gain) and 'Threshold' (minimum peak magnitude below which the pitch is treated as silence) knobs.
existing_chop_pathNoPath of an existing audio CHOP to analyze (source='existing_chop').

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses significant behavioral details beyond the annotations: it is implemented with stock CHOPs because the Pitch CHOP isn't createable, it may trigger a macOS permission prompt, it creates a Null CHOP, and it has Threshold/Sensitivity knobs. It also clearly lists caveats (~1 Hz resolution, no harmonic correction, monophonic only). This far exceeds what the sparse annotations (readOnly:false, openWorld:true, destructive:false) provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a clear purpose statement and then provides implementation details, usage, and caveats in a logical flow. It is slightly long but every sentence contributes information (how it works, how to use, source options, limitations). It earns a 4 rather than 5 because the internal CHOP chain explanation could be trimmed for ultimate conciseness, though it is valuable.

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?

With no output schema, the description fully explains what the tool produces (pitch_hz, note, confidence) and how to access it via a Null CHOP path. It covers all source types, parameter effects, limitations, and a concrete example of driving visuals. This is a complete and self-sufficient description for an agent to select and invoke the tool correctly.

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?

The input schema covers all 7 parameters with detailed descriptions (100% coverage), so the baseline is 3. The tool description adds extra value by explaining the min_hz/max_hz search band in context and describing the behavior of Threshold and Sensitivity knobs (which are exposed via expose_controls), giving operational meaning to the parameters.

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 'EXPERIMENTAL monophonic pitch tracker' and states it 'Estimates the dominant musical pitch of live audio', clearly identifying the action (detect/estimate) and resource (pitch). It distinguishes itself from siblings like detect_tempo or detect_onsets by specifying it outputs pitch_hz, note, and confidence on a Null CHOP.

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 provides clear usage context: bind a color/parameter to the CHOP channel to drive visuals, source options (device, file, oscillator, existing CHOP), and a 'monophonic only' caveat implying when not to use it. It does not explicitly name alternative tools but gives practical guidance and limitations. A minor gap is the lack of explicit 'use this when...' versus 'use other tools when...'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_tempoDetect tempo (auto-BPM, experimental)A

EXPERIMENTAL automatic tempo (BPM) detection WITHOUT manual tapping. Detects beat onsets in live audio (kick band → RMS energy → moving-baseline threshold, reusing detect_onsets' primitive), measures the time between beats, and reduces the recent inter-onset intervals to a stable tempo (median → BPM = 60/interval) exposed as a bpm channel on a Null CHOP — bind a parameter to op('…/detect_tempo/bpm')['bpm']. Complements sync_external_clock (which is tap-tempo) and detect_onsets (which flags hits but derives no tempo). With drive_tempo on, it writes the detected BPM to the global tempo (op('/').time.tempo) so every Beat CHOP — create_tempo_sync, create_autopilot — follows the music automatically. Source defaults to a synthetic gated tone (device capture can hang TD on a macOS permission modal); also accepts a file, an existing CHOP, or the live device. Caveats: time-dependent (reads 0 on a paused timeline), can lock to half/double time, and must be tuned live per source (Threshold + Smoothing knobs).

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoAudio file path (source='file').
nameNoName for the generated system container.detect_tempo
sourceNoAudio source. Defaults to 'synthetic' (an internal gated tone at a known rate) because live device capture can hang TouchDesigner on a one-time macOS microphone-permission modal — same default rationale as extract_audio_features / detect_pitch. 'device' = live microphone/line in (creating it may pop that permission dialog — click Allow). 'file' = an audio file. 'existing' = reuse a CHOP you already have.synthetic
max_bpmNoUpper clamp on the reported tempo. Also rejects too-short intervals (a double-trigger shorter than 60/max_bpm seconds is ignored, so a stray transient can't double the tempo).
min_bpmNoLower clamp on the reported tempo. Also rejects implausibly long gaps between beats (an interval longer than 60/min_bpm seconds is ignored, so a missed beat can't halve the tempo).
audio_inNoPath of an existing audio CHOP to analyze (source='existing').
drive_tempoNoWhen true, the engine also writes the detected BPM to the project's global tempo (op('/').time.tempo), so every Beat CHOP downstream — create_tempo_sync, create_autopilot — follows the detected beat automatically (same write as sync_external_clock).
parent_pathNoParent COMP path the generated system container (see `name`) is created inside./project1
sensitivityNoOnset-detection sensitivity 0..1. Higher = lower threshold = more beats registered (and a faster, twitchier lock); lower = only strong transients count. It maps to the excess-over-baseline threshold the kick band must clear (band-RMS magnitudes are tiny, so the usable window is small — tune live per source).
expose_controlsNoExpose live 'Threshold' (onset sensitivity — lower fires on more beats) and 'Smoothing' (how many recent intervals the median locks over — higher = steadier, slower to react) knobs.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which only indicate non-read-only and open-world), the description discloses concrete behaviors: it creates a Null CHOP with a 'bpm' channel, can write to global tempo when drive_tempo is on, may hang on macOS permission modal with device source, reads 0 on a paused timeline, can lock to half/double time, and requires live tuning. This is rich, honest context.

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 dense but every sentence earns its place: purpose, algorithm, output, integration, source options, and caveats are all covered. It is front-loaded with the key experimental label and core function, and the structure flows logically from what → how → when → caution.

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?

Given the tool's complexity (10 parameters, no output schema, and nontrivial behavioral caveats), the description covers all essential angles: detection method, output channel path, global tempo integration, source selection, and failure modes. It is sufficiently complete for an agent to invoke and interpret the tool correctly.

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 coverage is 100% and each parameter already has a detailed description (e.g., source rationale, min/max clamps, sensitivity mapping). The tool description adds overall algorithmic context but does not significantly augment individual parameter semantics beyond what the schema already states, so the baseline of 3 is appropriate.

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+resource: 'automatic tempo (BPM) detection WITHOUT manual tapping,' and clearly distinguishes itself from sibling tools by noting it 'Complements sync_external_clock (which is tap-tempo) and detect_onsets (which flags hits but derives no tempo).' This makes both purpose and differentiation explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear when-to-use guidance by contrasting with tap-tempo and onset-only tools, and provides practical source-selection advice (defaults to synthetic to avoid macOS permission hang, also accepts file/existing/device). The drive_tempo option's downstream effect on Beat CHOPs is also explained, helping the agent decide when this tool fits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagnose_hardware_environmentDiagnose hardware environmentA
Read-only

Read-only: check whether TouchDesigner is reachable, whether display/projector topology matches expectations, and whether generated sensor/helper status DATs such as source_status or bridge_status are healthy. This is a room/hardware preflight for physical installations; it returns PASS/WARNING/FAIL/UNVERIFIED checks without mutating the TD project.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoSubset of hardware checks to run. Defaults to bridge + display, and also status_surfaces when status_paths is non-empty.
status_pathsNoOptional DAT paths containing generated status JSON, such as source_status or bridge_status.
expected_min_monitorsNoOptional minimum display/monitor count expected for the room/projector setup.

Output Schema

ParametersJSON Schema
NameRequiredDescription
bridgeNo
checksYes
systemNo
overallYes
endpointYes
connectedYes
status_surfacesNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only' and 'without mutating the TD project.' It adds behavioral details about the check types, return statuses (PASS/WARNING/FAIL/UNVERIFIED), and dependency on generated DATs, which goes beyond the annotation values.

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 two sentences, front-loaded with 'Read-only' and then the specific checks. Every phrase adds value: scope, return type, and context. No fluff or redundancy.

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?

Despite having three optional parameters and an output schema, the description is complete enough for an agent to decide when and how to invoke it. It covers the purpose, safety profile, return statuses, and example DATs. The existence of an output schema means return-value details need not be spelled out.

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?

Input schema description coverage is 100%, so the schema already documents all three parameters. The description mentions example DAT paths (source_status, bridge_status) and the overall purpose, but does not add significant new meaning beyond the schema fields. Baseline 3 is appropriate.

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 uses a specific verb ('check') and clearly lists the resources checked (TD reachability, display/projector topology, status DATs), distinguishing it from general info tools like get_td_info or get_td_topology. The phrase 'room/hardware preflight' reinforces its specific purpose.

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 provides a clear usage context: 'a room/hardware preflight for physical installations.' While it does not explicitly name alternative tools, the context is enough to guide an agent on when to select this over a general topology or info tool. No exclusions are stated, but the preflight framing is a strong signal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagnose_tdableton_mapperDiagnose TDAbleton MapperA

Inspect a TouchDesigner TDAbleton mapper COMP and its source CHOP. Reports common mapper symptoms and can optionally repair Oscinputchop, Reorder, Bypass, and Min/Max parameters without requiring AbletonMCP or a live Ableton connection.

ParametersJSON Schema
NameRequiredDescriptionDefault
repairNoIf true, apply best-effort mapper parameter repairs inside TouchDesigner.
mapper_pathNoOptional explicit path to the TDAbleton TDA_Mapper COMP.
parent_pathNoParent COMP/project used when auto-searching for a TDA_Mapper COMP./project1
source_chopNoCHOP expected to drive the TDAbleton mapper./project1/hand_ableton_mapper/mapper_send
expected_reorderNoExpected Reorder parameter value and required source channel list.map1 map2 map3 map4

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds valuable context by naming the exact parameters that can be repaired (Oscinputchop, Reorder, Bypass, Min/Max) and the condition that no AbletonMCP/live Ableton connection is required. No contradiction with 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 two sentences, front-loaded with the primary action, and contains no redundant or filler content. Every word earns its place.

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 no output schema, the description adequately covers the tool's purpose, scope, repair capability, and external constraints. The reference to 'common mapper symptoms' is slightly vague, but it is sufficient for a diagnostic tool and does not mislead.

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?

The schema descriptions cover all 5 parameters (100% coverage), so the description does not need to add parameter-level detail. The mention of 'Oscinputchop, Reorder, Bypass, and Min/Max' refers to internal parameters of the mapper COMP, not the tool's own parameters, so it adds behavioral context rather than parameter semantics. Baseline 3 is appropriate.

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 uses specific verbs ('Inspect', 'Reports', 'repair') and clearly identifies the resource ('TDAbleton mapper COMP and its source CHOP'). This distinguishes it from sibling tools like setup_tdableton or create_hand_ableton_mapper by focusing on diagnosis and optional repair.

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?

Provides clear context: it diagnoses mapper symptoms and can optionally repair without AbletonMCP or a live connection. However, it does not explicitly name alternatives or state when not to use the tool, so it lacks the explicit exclusions/alternatives that would warrant a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diff_library_assetsDiff library assetsA
Read-only

Offline deep diff of two saved library assets on disk (recipe JSONs, component manifests, or serialize-network spec JSONs). Reports added/removed keys and changed values (old to new); for recipes it also diffs nodes, per-node params, and connections. Does not touch TouchDesigner. Use diff_snapshots to compare two live TD graphs.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoHow to interpret both files. 'auto' picks by parsing (recipe-aware if both validate against the recipe schema, otherwise a generic deep diff). 'recipe' forces recipe-aware diffing (node/param/connection level). 'manifest' uses the same generic deep object diff as 'json' but reports mode_used='manifest' for component-manifest callers.auto
a_pathYesFirst saved library asset on disk (recipe / component manifest / spec JSON).
b_pathYesSecond saved library asset to compare against the first (same kind).

Output Schema

ParametersJSON Schema
NameRequiredDescription
a_pathYes
b_pathYes
detailsYes
summaryYes
mode_usedYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to restate those. It adds useful behavioral context: offline operation, no TouchDesigner interaction, and detailed output behavior (added/removed keys, old-to-new values, recipe-level diffs of nodes/params/connections). No contradiction; a slight gap is that error handling or file-access prerequisites are not mentioned.

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?

Three efficient sentences with no filler. The first sentence front-loads the core purpose, the second covers output behavior, and the third gives an alternative tool. Every sentence earns its place.

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?

Given the annotations (read-only, open-world, non-destructive) and presence of an output schema, the description sufficiently covers the tool's complete behavior: what it operates on, what it reports, and when to use a sibling. It is a well-rounded, self-contained description for an agent to select and invoke the tool correctly.

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 description is not required to explain parameters. It adds a bit of context by listing asset types in the description, but the mode enum descriptions already cover recipe-aware diffing, so it provides little beyond the schema. Baseline 3 is appropriate.

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?

Clearly states it performs an offline deep diff of two saved library assets on disk, listing specific asset types (recipe JSONs, component manifests, serialize-network spec JSONs). It distinguishes itself from diff_snapshots for live TD graphs, providing a specific verb+resource and unique scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative tool: 'Use diff_snapshots to compare two live TD graphs.' Also states 'Does not touch TouchDesigner,' making the offline/online distinction clear and telling the agent when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diff_snapshotsDiff snapshotsA
Read-only

Compare two network snapshots (from snapshot_td_graph) and return a readable diff: which nodes were added or removed, which connections changed, and which parameters changed (with before/after values). Snapshot before an edit and after to see exactly what changed, or to version a patch over time. Pure analysis — touches nothing in TouchDesigner.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterYesLater snapshot to compare against.
beforeYesEarlier snapshot (from snapshot_td_graph, include_params for param diffs).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description reinforces this with 'Pure analysis — touches nothing in TouchDesigner,' but adds no substantial new behavioral disclosure beyond what annotations provide. It does not mention potential performance or memory implications.

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, front-loaded with the main action, and each sentence adds value: purpose, usage scenarios, and safety. No fluff or redundant details.

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?

The description covers the tool's purpose, usage workflow, and safety, and the schema provides input structure. It is fairly complete for an analysis tool with no output schema, though it could mention limitations or expected output format. Overall, it gives enough context for an agent to select and invoke the tool correctly.

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 coverage is 100% and the schema descriptions for 'before' and 'after' already explain their role and origin (e.g., 'Earlier snapshot (from snapshot_td_graph, include_params for param diffs)'). The description does not add new input-specific semantics beyond referencing the source of snapshots.

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 clearly states a specific verb ('Compare'), resource ('two network snapshots from snapshot_td_graph'), and output ('readable diff' with added/removed nodes, connection changes, parameter changes with before/after values). It distinguishes itself from sibling tools like compare_td_nodes by focusing on network snapshots rather than individual nodes.

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?

Provides explicit usage scenarios: 'Snapshot before an edit and after to see exactly what changed, or to version a patch over time.' This implies when to use the tool and what to prepare. It does not mention specific alternatives or exclusions, but the context is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

disconnect_nodesDisconnect node wire(s)A

Remove one or more input wires from a node in TouchDesigner. By default removes every incoming wire into to_path; narrow the scope with from_path (only wires from that upstream node) and/or to_input (only that input slot index). Returns the list of removed wires (input index + upstream node path), a probe of the Connector API attributes seen at runtime, and any per-wire warnings. Fatal only when to_path is not found — partial removals with per-wire warnings still succeed. The inverse of connect_nodes.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_pathYesThe downstream node to remove input wire(s) from.
to_inputNoOnly clear this input index on to_path (0-based). Omit to clear all inputs.
from_pathNoOnly remove wires coming from this upstream node. Omit to remove ALL input wires into to_path (scoped by to_input if given).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses important runtime behaviors: returns a list of removed wires, a probe of Connector API attributes, and per-wire warnings. It also explains failure semantics ('Fatal only when to_path is not found — partial removals with per-wire warnings still succeed') and implies mutation consistent with readOnlyHint=false.

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?

Four sentences, front-loaded with the core action. Every sentence adds distinct value: scope, return values, error behavior, and relationship to connect_nodes. No redundancy or fluff.

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?

With no output schema, the description fully explains return values and error conditions. It covers the default behavior, scoping options, partial failure handling, and the inverse relationship. This is complete for a 3-parameter tool with high schema coverage.

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 100%, so baseline is 3. The description adds meaningful context on how parameters interact: 'narrow the scope with from_path (only wires from that upstream node) and/or to_input (only that input slot index).' This clarifies the combined filtering behavior beyond individual schema descriptions.

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: 'Remove one or more input wires from a node in TouchDesigner.' It clearly distinguishes itself from the inverse operation by stating 'The inverse of connect_nodes.' This is explicit and 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 provides clear usage context: default behavior (removes every incoming wire), how to narrow scope via from_path and to_input, and partial success behavior. It mentions 'The inverse of connect_nodes' as an alternative, though it doesn't explicitly say when not to use this tool versus other wire-related operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

document_networkDocument networkA
Read-only

Document an EXISTING network: read its nodes and connections and return a readable map — counts by operator family and type, plus a Mermaid flowchart of the data flow you can paste into docs. Unlike plan_visual (which plans from a description), this describes what's actually in the project. Use it to explain or hand off a patch.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoNetwork root to document./project1
recursiveNoInclude all descendants (otherwise just the direct children).

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is known, but the description adds valuable behavioral context: it reads nodes/connections and returns counts plus a Mermaid flowchart. It also clarifies scope (existing network) and that it does not plan or create. This goes beyond the annotations without contradicting them.

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?

Three sentences, each earning its place: first defines the function and output, second contrasts with a sibling tool, third gives a clear use case. No filler words, well front-loaded with the core action and deliverable.

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?

With only two parameters, no output schema, and readOnly annotations, the description fully explains what the tool returns (readable map with counts and Mermaid flowchart), what it operates on (existing network), and when to use it (explain/hand off a patch). No missing information for a tool of this complexity.

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?

The input schema already provides 100% coverage for both parameters (path with default and description, recursive with default and description). The description adds no parameter-specific detail, but the schema handles that burden. Baseline 3 is appropriate.

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?

Clearly states it documents an existing network by reading nodes and connections and returning a readable map with counts by operator family/type plus a Mermaid flowchart. Explicitly distinguishes itself from the sibling plan_visual by focusing on the actual project state rather than a plan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit comparison with plan_visual: 'Unlike plan_visual (which plans from a description), this describes what's actually in the project.' Also names concrete use cases: 'Use it to explain or hand off a patch.' This tells the agent exactly when to choose this tool over the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

draft_recipe_from_operator_chainDraft recipe from operator chainA
Read-only

Read-only: convert an ordered TouchDesigner operator chain into a RecipeSchema draft without writing files or touching the TD bridge.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoOptional recipe id. Generated when omitted.
nameNoOptional recipe display name. Generated when omitted.
tagsNoOptional recipe tags.
chainYesOrdered TouchDesigner operator names, display names, slugs, or optypes, e.g. ['Noise TOP', 'Level TOP', 'Null TOP'].
familyNoOptional operator family/category constraint, e.g. TOP, CHOP, SOP, DAT.
strictNoWhen true, unresolved operators or family mismatches return an isError result.
difficultyNointermediate
descriptionNoOptional recipe description. A chain summary is generated when omitted.
td_version_minNo2023

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
recipeYes
validationYes
chainReportYes
nextToolHintsYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, but the description adds specific context beyond that: 'without writing files or touching the TD bridge'. This clarifies the non-destructive and non-interactive nature of the tool, which is valuable context not fully captured by 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 a single, well-structured sentence that front-loads the most important information ('Read-only') and clearly states the action and output. Every word earns its place, with no unnecessary details or repetition.

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 that an output schema exists, the description need not explain return values. It adequately covers the tool's purpose, read-only nature, and output being a 'draft', which is sufficient for an agent to understand the high-level behavior. It does not mention error cases or strict mode, but those are covered by the schema and parameters.

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 high (78%), and the description does not add parameter-level details beyond what the schema already provides. The only mention of 'ordered TouchDesigner operator chain' aligns with the 'chain' parameter description in the schema, so the description adds no new semantic value for parameters.

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 clearly states the tool converts an 'ordered TouchDesigner operator chain' into a 'RecipeSchema draft', using a specific verb and resource. This distinguishes it from sibling tools like draft_recipe_from_technique or draft_recipe_from_tutorial by focusing on operator chains as input.

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?

The description implies usage by framing the operation as 'Read-only' and noting it avoids writing files or touching the TD bridge, which suggests safe use for conversions without side effects. However, it does not explicitly mention when to use this tool versus alternatives or provide exclusions, so guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

draft_recipe_from_techniqueDraft recipe from techniqueA
Read-only

Read-only: convert an embedded TouchDesigner technique with GLSL source into a RecipeSchema draft without writing files or touching the TD bridge.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoOptional recipe id override.
nameNoOptional recipe display name override.
tagsNoExtra recipe tags to append.
strictNoReturn an error when the technique cannot be converted to a valid draft.
categoryYesTechnique pack category id or display name.
difficultyNoOptional recipe difficulty override.
descriptionNoOptional recipe description override.
technique_idYesTechnique id or name inside the selected category.
td_version_minNoMinimum TouchDesigner version.2023
include_glsl_codeNoInclude technique GLSL source in the draft recipe's glsl_code block.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
recipeNo
sourceYes
warningsYes
validationYes
nextToolHintsYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly says 'Read-only' and 'without writing files or touching the TD bridge,' which adds safety context beyond the annotations (readOnlyHint, destructiveHint). It also clarifies the input scope ('embedded' technique) and the nature of the operation (conversion to a draft). This goes beyond simple annotation repetition, though it doesn't cover error paths or edge cases.

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 a single, front-loaded sentence that starts with the safety annotation ('Read-only') and then states the action and output. Every part of the sentence adds value without redundancy or fluff, making it highly efficient.

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?

The description provides clear purpose and safety profile, and the output schema covers return values. However, it does not mention when to choose this tool over sibling recipe-drafting tools, and it doesn't discuss failure modes (e.g., what happens if conversion fails, which is relevant to the strict parameter). Given the overall complexity (10 params, output schema), it is adequate but not fully exhaustive.

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?

The input schema has 100% description coverage for all 10 parameters, each with meaningful details. The tool description does not add parameter-specific semantics beyond the schema, but it doesn't need to; the schema already provides the necessary information. The only minor addition is the inference that include_glsl_code relates to the 'GLSL source' mentioned in the description.

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 clearly states the verb and resource: 'convert an embedded TouchDesigner technique with GLSL source into a RecipeSchema draft.' It also differentiates from siblings like draft_recipe_from_operator_chain and draft_recipe_from_tutorial by specifying the source type (embedded technique with GLSL). The 'without writing files or touching the TD bridge' adds scope precision.

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?

The description implies usage for drafting recipes from embedded techniques, but it does not explicitly state when to use it vs alternatives like draft_recipe_from_operator_chain or draft_recipe_from_tutorial. No when-not conditions or alternative guides are provided, so it relies on the reader to infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

draft_recipe_from_tutorialDraft recipe from tutorialA
Read-only

Read-only: extract a conservative operator chain from an embedded TouchDesigner tutorial and draft a RecipeSchema JSON without writing files or touching the TD bridge.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoOptional recipe id override.
nameYesTutorial id or display name to draft from.
tagsNoExtra recipe tags to append.
familyNoOptional operator family/category constraint, e.g. TOP, CHOP, SOP, DAT.
strictNoReturn an isError result when no RecipeSchema-valid draft can be produced.
max_stepsNoMaximum operator references to keep from the tutorial.
difficultyNointermediate
descriptionNoOptional recipe description override.
recipe_nameNoOptional recipe display name override.
td_version_minNo2023
include_glsl_codeNoInclude a complete GLSL pixel-shader code block when a GLSL TOP tutorial provides one.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
recipeNo
tutorialYes
warningsYes
draftableYes
validationYes
chainReportNo
nextToolHintsYes
extractedOperatorsYes
unsupportedReasonsYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds valuable context beyond that: 'without writing files or touching the TD bridge' and 'conservative operator chain'. These behavioral traits (in-memory draft only, no bridge interaction, conservative extraction) are not redundant with 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 a single, front-loaded sentence that conveys the purpose, constraints, and output without any filler. Every phrase adds information: 'Read-only', 'conservative operator chain', 'embedded tutorial', 'without writing files or touching the TD bridge'.

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 tool with 11 parameters and an output schema, the description is sufficiently complete: it states what it does, the read-only nature, the source (tutorial), and the output format (RecipeSchema JSON). The output schema and annotations cover return values and safety, and the description adds the key limiting behaviors. No critical context is missing.

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 82%, so the schema already documents most parameters. The description does not add any additional parameter semantics beyond what is in the schema, but given the high coverage, the baseline score of 3 is appropriate.

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 states a specific verb ('extract', 'draft'), resource ('embedded TouchDesigner tutorial'), and output ('RecipeSchema JSON'), clearly distinguishing it from sibling tools like draft_recipe_from_operator_chain or draft_recipe_from_technique by the 'tutorial' source. The read-only modifier and 'without writing files or touching the TD bridge' further clarify the scope.

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 clearly implies when to use this tool: when you have an embedded tutorial and want to draft a recipe schema, emphasizing a conservative, read-only process. It does not explicitly name alternatives or exclusions, but the 'from tutorial' phrasing provides sufficient contextual guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drive_streamdiffusionDrive StreamDiffusionTDA

Wraps the community StreamDiffusionTD.tox (by dotsimulate) into a one-shot Layer 1 setup: locate the .tox via candidate-path discovery, drop it into a fresh baseCOMP, wire a camera/source TOP into its input, set the prompt/strength/cfg/seed custom pars, and optionally re-broadcast the output via Syphon/Spout or NDI. Returns a friendly error when the .tox is not installed. The result envelope includes validated_pars so downstream tools (create_ai_mirror) know which SD pars to bind a control panel to.

ParametersJSON Schema
NameRequiredDescriptionDefault
cfgNoClassifier-free guidance scale. Low CFG (1–2) is normal for StreamDiffusion/LCM.
seedNoRandom seed. -1 = random per tox convention.
promptNoSets the Prompt custom par on the tox.a vibrant neon cyberpunk portrait, ultra detailed
t_indexNoSets Tindex (denoise step list index) when present; omitted = tox default.
strengthNoimg2img denoising strength — sets Strength par.
tox_pathNoOptional explicit absolute or project-relative override. When set, becomes the only candidate; standard discovery is skipped.
output_modeNointernal = Null TOP only. syphon_spout / ndi = adds an FM-01 sender wired from out1.internal
output_nameNoSender/source name when output_mode != 'internal'.tdmcp_streamdiffusion
parent_pathNoParent network for the fresh streamdiffusion_driver baseCOMP./project1
expose_controlsNoReserved for v2 — the tox already surfaces its own UI; this field is accepted but not acted on in v1.
source_top_pathNoFile system path to a video/image file to feed into the StreamDiffusionTD container (creates a moviefileinTOP). When omitted, a synthetic noise TOP is created for device-free preview.
controlnet_weightNoSets Controlnetweight when the par is present in the tox build.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral details beyond the annotations: it creates a fresh baseCOMP, wires inputs, sets custom parameters, optionally rebroadcasts, returns a friendly error, and includes validated_pars in the result envelope. This aligns with the annotations (readOnly=false, openWorld=true, destructive=false) and provides useful operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense with three sentences and no filler. The first sentence is a bit long, but it efficiently covers the setup workflow, error handling, and output envelope. Breaking it into more digestible chunks could improve readability slightly.

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 the tool's complexity (12 parameters, no output schema, open-world external dependency), the description covers the key workflow, error behavior, and result envelope adequately. It does not describe every parameter, but the schema already does, so the description provides enough context for an agent to understand the tool's role and use it appropriately.

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 schema already documents each parameter thoroughly. The description adds only a high-level grouping of prompt/strength/cfg/seed and mentions source/top wiring, but does not add new syntax or semantics beyond what is already in the schema.

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 clearly states the tool wraps the StreamDiffusionTD.tox into a one-shot Layer 1 setup, enumerating concrete actions: locate .tox, create baseCOMP, wire input, set pars, and optionally rebroadcast. It distinguishes itself from sibling tools by mentioning downstream consumers like create_ai_mirror that rely on validated_pars.

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 provides clear context about when to use the tool: for one-shot setup of StreamDiffusionTD, with explicit behavior when the .tox is missing (friendly error). However, it does not explicitly state exclusions or alternative tools that should be used instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

duplicate_networkDuplicate a networkA

Copy a node or whole COMP (and all its contents) to a new node, placed in the source's parent or another parent_path. Returns the source path and the new copy's path. Use duplicate this way to clone a built network; use create_container instead when you just need a fresh empty COMP.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the copy (auto-generated if omitted).
parent_pathNoWhere to place the copy (defaults to the source's parent).
source_pathYesPath of the node/COMP to duplicate.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal readOnlyHint=false and destructiveHint=false. The description adds useful behavioral details: it returns the source path and new copy's path, and copies contents. This exceeds what annotations provide, though it does not describe side effects or naming rules.

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 two sentences, front-loaded with the action, and includes usage guidance without redundancy. Every sentence adds value, and it is highly efficient.

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?

The description covers the core operation, return value, and usage context, and clarifies the distinction from a sibling tool. It does not mention error cases or naming behavior, but given the tool's modest complexity and lack of output schema, it is reasonably complete.

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 coverage is 100%, so the schema documents all three parameters. The description reinforces the meaning of parent_path ('placed in the source's parent or another parent_path') but does not add new semantic detail beyond the schema. Baseline 3 is appropriate.

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 clearly states the tool copies a node or COMP and all its contents to a new location, and specifies the placement (source's parent or another parent_path). It also distinguishes itself from create_container, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly indicates when to use this tool ('to clone a built network') and provides an alternative ('use create_container instead when you just need a fresh empty COMP'). This gives clear guidance on selecting the right tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_dat_contentEdit DAT content (surgical)A
Destructive

Surgically replace a substring inside a Text or Table DAT's .text. Without replace_all, requires exactly one match — 0 or >1 occurrences is an error, forcing the caller to add context or set replace_all. Use set_dat_content to overwrite an entire DAT's text in place; use this to make a targeted edit.

ParametersJSON Schema
NameRequiredDescriptionDefault
dat_pathYesAbsolute path to the Text or Table DAT to edit (e.g. '/project1/mytext1').
new_stringYesReplacement text. May be empty to delete the matched substring.
old_stringYesExact substring to find. Must match at least once. Empty strings are rejected.
replace_allNoWhen false (default), requires exactly one match — 0 or >1 occurrences is an error. Set true to replace every occurrence.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation nature is known. The description adds valuable behavioral context: the error condition when 0 or >1 matches occur without `replace_all`, and the requirement to add context. This goes beyond annotations but doesn't mention potential side effects on Table DAT structure or whether the edit triggers a cook, so it's not a 5.

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 deliver a clear purpose, error semantics, and an alternative tool without any filler. The main verb and target appear up front, and every clause earns its place. This is a model of concise, high-signal description.

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 mutation tool with no output schema, the description covers the target, the matching rules, the `replace_all` switch, and the alternative tool. It's missing details about what happens on error (beyond saying it's an error) and the return value, but the core selection and invocation guidance is complete for the agent's needs.

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 100%, so the baseline is 3. The description adds meaning to `replace_all` by explaining the exact-match error behavior and that setting it true replaces every occurrence. This is a genuine semantic addition beyond the schema's 'Replace every occurrence' intent, pushing the score above baseline.

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 uses a specific verb+resource construct: 'Surgically replace a substring inside a Text or Table DAT's `.text`.' This precisely defines the operation and scope. It also distinguishes from the sibling set_dat_content by explicitly contrasting targeted replacement with full overwrite, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: use this tool for targeted edits, and use set_dat_content to overwrite an entire DAT's text. It also explains the critical `replace_all` behavior and the exact-match requirement, giving the caller clear usage context and an alternative tool for the other use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_shader_live_loopEdit shader live loopA
Destructive

Edit a GLSL/Text DAT and immediately run the practical shader feedback loop: write or surgically replace source text, inspect the shader/output node for errors, and optionally capture a compact inline preview. Uses set_dat_content/edit_dat_content under the hood so DAT write guardrails stay consistent.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoset overwrites the shader DAT; replace performs a surgical text replacement.set
dat_pathYesAbsolute path to the GLSL/Text DAT to edit.
error_pathNoNode to inspect for errors after the edit. Defaults to preview_path, then dat_path.
new_stringNoReplacement text. Required when mode is replace.
old_stringNoSubstring to find. Required when mode is replace.
replace_allNoFor replace mode, replace all matches instead of requiring exactly one match.
shader_codeNoFull shader source. Required when mode is set.
jpeg_qualityNoJPEG quality.
parent_depthNoUpstream depth for inline-preview error inspection.
preview_pathNoTOP path to preview after the shader edit, usually the GLSL TOP output or Null TOP.
preview_widthNoPreview width.
preview_formatNoPreview encoding.jpeg
preview_heightNoPreview height.
include_previewNoCapture a compact inline preview after editing when preview_path is supplied.
recursive_errorsNoIf true, check errors recursively under error_path.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations flag readOnly=false and destructive=true, and the description aligns by describing write/replace actions. It adds value by disclosing that the tool immediately runs the feedback loop, inspects errors, and can produce a preview, plus mentions DAT write guardrails.

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?

Three sentences, each adding value: purpose, workflow, and implementation detail. No redundancy or filler.

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 tool with 15 parameters and no output schema, the description provides a strong mental model of the workflow, including edit, inspect, and preview. It doesn't explicitly state the return structure, but the preview mention hints at output, making it reasonably complete.

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 100%, so the baseline is 3. The description adds meaning by framing parameters like mode ('write or surgically replace'), the error inspection workflow, and the compact inline preview, which helps connect parameters to the tool's purpose.

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 clearly states the tool edits a GLSL/Text DAT and runs a shader feedback loop including error inspection and optional preview. This distinguishes it from generic DAT editing tools like edit_dat_content and set_dat_content by emphasizing the shader-specific workflow.

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 implies usage for shader editing with immediate feedback and mentions the underlying set_dat_content/edit_dat_content functions, providing context on delegation. However, it doesn't explicitly state when not to use this tool or name direct alternatives for non-shader DAT editing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_td_node_metadataEdit TouchDesigner node metadataA
Destructive

Atomically edit an operator's name, parent, exact Network Editor position, color, comment, or writable flags. The bridge prevalidates requested fields, reads values back, and rolls back partial failures; parent moves copy and validate the destination before destroying the source. Returns the final path and per-field results. Does not use raw Python fallback.

ParametersJSON Schema
NameRequiredDescriptionDefault
lockNo
nameNoNew operator name.
pathYesFull path of the operator to edit.
colorNoOperator RGB color, each channel in 0..1.
bypassNo
node_xNoExact Network Editor X coordinate.
node_yNoExact Network Editor Y coordinate.
renderNo
viewerNo
commentNoBounded operator comment, including empty.
displayNo
cloneImmuneNo
parent_pathNoDestination parent COMP for a safe move.
allowCookingNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, but the description adds substantial behavioral context: atomicity, prevalidation, rollback, parent-move copy-and-validate semantics, and the return format. It also clarifies that it avoids raw Python fallback, going well beyond the annotation baseline.

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, each dense with valuable information. It is front-loaded with the primary action and scope, followed by atomicity/rollback details and return value. No redundant or filler words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers atomicity, rollback, and return results well, but it omits details about the individual boolean flags and does not mention prerequisites or error conditions beyond rollback. For a 14-parameter tool with no output schema, this leaves noticeable gaps for an agent trying to use all parameters correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%, and the seven boolean flags (lock, bypass, render, viewer, display, cloneImmune, allowCooking) have no schema descriptions. The description only refers to them collectively as "writable flags" without enumerating or explaining each. For the described parameters (name, path, color, node_x, node_y, comment, parent_path), the schema is already adequate, but the description does not compensate for the undocumented flags.

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 uses a specific verb ("edit") and enumerates the exact metadata fields: name, parent, Network Editor position, color, comment, and writable flags. This clearly distinguishes it from sibling tools like update_td_node_parameters (which edits parameter values) and delete_td_node (which removes nodes).

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 provides clear context for when to use this tool: it is atomic, prevalidates fields, rolls back partial failures, and explicitly states it does not use raw Python fallback, implying it is a safer alternative to execute_python_script. However, it does not explicitly name alternatives or state when not to use it, so it misses the top tier for explicit when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

elicit_missing_argsElicit missing tool argsA
Read-only

Use the schema + LLM to propose values for a tool call's missing required args.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoNatural-language context the user gave (a chat message, prompt, etc.).
tool_nameYesRegistered tdmcp tool name, e.g. 'create_audio_reactive'.
max_fieldsNoCap on how many missing required fields to elicit in one call.
temperatureNoSampling temperature for elicitation. Low by default for determinism.
partial_argsNoArgs already known. Missing required fields will be elicited.

Output Schema

ParametersJSON Schema
NameRequiredDescription
filledYesElicited values keyed by field name. `null` when LLM declined/unavailable.
sourceYes'llm' if the model answered, 'offline' if no LLM, 'none-needed' if nothing missing.
missingYesRequired fields that were still missing after elicitation (filled[k] === null).
warningsYes
tool_nameYes
proposed_argsYespartial_args merged with non-null filled, validated against the tool schema.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, so the description does not need to restate safety. It adds the method context ('use the schema + LLM') and clarifies it 'proposes' rather than executes, but it does not describe output shape, failure behavior, or limits, leaving behavioral detail to the schema and output schema.

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 a single, front-loaded sentence that communicates the core purpose with no wasted words. It is direct and efficient, earning a high score on conciseness.

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 the rich schema, clear annotations, and presence of an output schema, the description is sufficient to understand the tool's primary role. It could be slightly more complete by stating it does not execute the target tool, but 'propose values' already implies this, so the overall description is reasonably complete.

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 applies. The description itself does not add parameter-level nuance; all parameter meaning is carried by the input schema. It neither harms nor significantly augments the schema.

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 clearly states the tool's function: using the schema and an LLM to propose values for missing required arguments in a tool call. It identifies a specific verb ('propose') and resource ('missing required args'), but it does not explicitly contrast it with sibling tools, so it stops short of full differentiation.

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?

Usage is implied: use this when a tool call has missing required args. There is no explicit 'when to use' or 'when not to use' guidance, nor mention of alternative approaches, so the guidance is minimally viable but not robust.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enhance_buildEnhance a TouchDesigner build (LLM-planned)A

Run score_build and ask the configured LLM for bounded allowlisted improvements. Legacy calls are unchanged. Optional visualCritique uses the exact calibrated local vision receipt, explicit numeric targets, preview-only defaults, native Apply/Keep approval, CAS/readback, and compensating restore; autoApply never bypasses approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
rescoreNoWhen autoApply=true, re-run score_build after dispatch and include after + delta. Ignored when autoApply=false.
autoApplyNoWhen true, dispatches each proposed call against the allowlisted tools. Default is preview-only because dispatch mutates the TD project.
scopePathNoNetwork root to enhance. Forwarded to score_build./project1
targetFpsNoForwarded to score_build.
maxProposalsNoCap on proposed (and applied) tool calls. Keeps blast radius small.
focusCriterionNoWhen set, the planner targets only this axis. errors/perf are excluded (use summarize_td_errors / optimize_performance).
visualCritiqueNoOpt-in bounded visual critique of one explicit TOP and 1-6 numeric constant parameters. Preview-only unless autoApply=true; every apply still requires native Apply/Keep approval.

Output Schema

ParametersJSON Schema
NameRequiredDescription
afterNo
deltaNo
beforeYes
appliedYes
warningsYes
proposalsYes
scopePathYes
visualCritiqueNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description significantly enriches the annotations by disclosing critical behavioral traits: preview-only defaults, autoApply never bypassing approval, CAS/readback, and compensating restore. It also clarifies that legacy calls are unchanged. This goes far beyond the sparse annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) and provides valuable safety and execution context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact—three sentences—and front-loads the core purpose. Each sentence adds value, though the third sentence is dense with specialized terminology (e.g., 'calibrated local vision receipt', 'CAS/readback') that may reduce accessibility. It is efficient but not maximally clear.

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?

Given the tool's complexity (7 parameters, nested objects, output schema), the description sufficiently covers the high-level workflow, including the role of score_build, the bounded nature of improvements, and critical safety mechanisms. The schema handles parameter details and return values, so the description does not need to repeat them. It provides enough context for correct selection and invocation.

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?

The input schema provides 100% coverage with descriptions for all parameters, including detailed explanations for visualCritique, autoApply, and focusCriterion. The tool description itself adds no parameter-specific meaning beyond the schema, so it meets the baseline but does not exceed it.

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 clearly states the tool's function: it runs score_build and uses an LLM to create bounded allowlisted improvements. It differentiates itself from siblings like score_build (which only scores) and optimize_performance by focusing on LLM-driven enhancement with preview and approval. The clause 'Legacy calls are unchanged' further clarifies its scope.

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?

The description implies usage after score_build and mentions safety defaults, but it does not explicitly state when to use this tool versus alternatives like optimize_performance or summarize_td_errors. It relies on the schema's focusCriterion parameter for exclusions, which is not part of the description. Thus, usage context is present but not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

exec_node_methodCall node methodA
Destructive

Escape hatch — invoke an arbitrary Python method on a node (operator). Prefer structured tools where one exists; use this for operations they don't cover (e.g. .cook(), .copy(), .destroy()).

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoPositional arguments.
pathYesFull path of the node to call the method on.
kwargsNoKeyword arguments.
methodYesMethod name to call, e.g. 'cook', 'par', 'destroy', 'copy'.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true. The description adds the 'escape hatch' framing and example methods including .destroy(), but does not detail potential side effects, failure modes, or return behavior—though these are inherently unpredictable for arbitrary method calls.

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, front-loaded with the core purpose, and every clause earns its place. The 'Escape hatch' opener immediately signals the tool's nature and appropriate usage.

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 escape-hatch tool with open-world semantics, the description covers what it does, when to use it, and why. There is no output schema, and return values are inherently method-dependent, so the description is reasonably complete for this class of tool.

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%, with all four parameters documented. The description adds example method names but does not meaningfully go beyond the schema's own description of 'method' and the positional/keyword argument arrays.

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 clearly states the tool invokes an arbitrary Python method on a node (operator), framing it as an escape hatch. It distinguishes from structured siblings by positioning this as the fallback for operations they don't cover, with concrete examples.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to prefer structured tools when one exists and to use this only for operations they don't cover. Provides concrete examples (.cook(), .copy(), .destroy()) and sets context as a last-resort tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_python_scriptExecute Python in TouchDesignerA
Destructive

Escape hatch — run an arbitrary Python script inside the TouchDesigner process. Prefer the structured tools (find_td_nodes, get_td_node_parameters, update_td_node_parameters, summarize_td_errors, snapshot_td_graph, …); reach for this only when no structured tool can express the operation. Code runs in TD only, never on the local machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYesPython source to execute inside TouchDesigner (runs in the TD process, not locally).
return_outputNoCapture stdout / the value of the last expression and return it.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag readOnlyHint=false and destructiveHint=true. The description adds valuable context that code runs only in TD and never on the local machine, which is a meaningful behavioral boundary. It does not restate the safety flags but adds execution-scope context, earning above baseline.

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 with zero filler. The first sentence states purpose, the second provides usage guidance and execution context. Every word earns its place.

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 generic escape-hatch tool, the description fully covers purpose, when-to-use, execution environment, and safety boundaries. The rich annotations and complete schema fill remaining gaps, so nothing essential is missing.

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 provides 100% parameter coverage with descriptions for 'script' and 'return_output', including a default. The description does not add parameter-level detail, but the schema already carries that burden, so the baseline of 3 is appropriate.

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 uses a specific verb ('run') and names the resource ('arbitrary Python script inside the TouchDesigner process'). It clearly distinguishes itself from siblings by labeling it an 'escape hatch' and pointing to structured tools, making its purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool ('reach for this only when no structured tool can express the operation') and names concrete alternative structured tools. This is exemplary guidance for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_externalized_treeExport externalized .tox tree (git-diffable)A
Destructive

Save a COMP as a git-diffable externalized .tox tree using TouchDesigner's 'save external' (COMP.saveExternalTox). Instead of one opaque binary, the component — and, with recurse=true, every descendant COMP — is written to its own .tox file on disk with its externaltox parameter pointed at that file, so a version-controlled project shows per-node diffs. Writes files under out_dir (destructive) and mutates the live COMP's externaltox pars. out_dir is passed to the TouchDesigner process, so it must be a path that process can write to.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoRoot .tox stem. Defaults to the last path segment of comp_path.
out_dirYesLocal folder to write the externalized .tox tree into. Passed to TouchDesigner as the save target, so it must be reachable from the TD process's filesystem.
recurseNoWhen true, externalize every descendant COMP too (each becomes its own .tox file), so the whole subtree is git-diffable. When false, only the root COMP is externalized.
comp_pathYesFull path of the COMP to externalize (its .tox is written to out_dir/<name>.tox).

Output Schema

ParametersJSON Schema
NameRequiredDescription
compYesEchoed COMP path that was externalized.
countYesNumber of COMPs externalized.
recurseYesWhether descendant COMPs were externalized too.
root_toxYesAbsolute path of the root externalized .tox.
warningsYes
externalizedYesEach COMP that now points at an external .tox file (node path → externaltox path).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the annotations by detailing that files are written under out_dir (destructive), that the live COMP's externaltox parameter is mutated, and that out_dir must be writable by the TouchDesigner process. These specifics disclose side effects and prerequisites not covered by structured fields.

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 two sentences, dense but well-organized. It starts with the core action, then explains the mechanism, side effects, and a key constraint without redundancy.

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?

Given the output schema exists, the description provides sufficient context about what the tool does, its side effects, recurse semantics, and filesystem requirements. It is complete for an agent to decide when and how to invoke it.

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?

While the schema already covers all parameters, the description adds meaningful context: out_dir must be reachable by the TD process, recurse=true externalizes descendants, and name defaults to the last path segment of comp_path. This enriches the schema information.

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 clearly states the tool saves a COMP as a git-diffable externalized .tox tree, naming the underlying mechanism (COMP.saveExternalTox). It distinguishes this from an opaque binary save and contrasts with related tools like make_portable_tox by emphasizing per-node diffs for version control.

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 why you would use this over saving a single binary (git-diffability, per-node diffs) and describes the recurse option's behavior. It does not explicitly name alternatives or state when not to use the tool, but the use case is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_look_toxExport a look as a portable .tox into the vaultA

Save a COMP as a .tox inside <vault>/<folder>/<slug>.tox and write a sibling Markdown note (id/type=look + name + tags + assets + created + source_path). Defaults folder to Looks. The artist-publishing primitive for portable looks; integrates with browse_vault_library and tag_and_search_library via the note frontmatter. Requires TDMCP_VAULT_PATH and a running TouchDesigner bridge.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoLook name (defaults to the COMP's name).
tagsNoTags written to the note frontmatter.
assetsNoVault-relative asset paths to record in the metadata sidecar.
folderNoVault subfolder under TDMCP_VAULT_PATH.Looks
licenseNoSPDX-id of the look's license, e.g. 'MIT' or 'CC-BY-NC-4.0'. Stored in the sidecar note frontmatter.
descriptionNoShort human description for the note body.
source_pathYesCOMP path to package (e.g. '/project1/myLook').
license_tierNoLicense bucket so search/filter can group by trust level: public-domain | permissive | copyleft | proprietary | unknown.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds valuable behavioral context: it creates a .tox and a sibling Markdown note with specific fields, defaults folder to 'Looks', requires TDMCP_VAULT_PATH and a running TouchDesigner bridge, and integrates via frontmatter. It does not contradict annotations, and the prerequisites are disclosed. It could go further by mentioning overwrite behavior or return value, but the additions are meaningful beyond 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 a single dense paragraph with no wasted words. It front-loads the core action, then details the side effects, defaults, integrations, and prerequisites. 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 a tool with 8 parameters and no output schema, the description is quite complete: it covers the primary operation, sidecar note contents, default folder, integration points, and runtime requirements. It lacks explicit error-handling or overwrite semantics, but for a publishing primitive the key context is present. A comprehensive summary is provided without needing to consult the schema in detail.

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 each parameter is already documented. The description reinforces the folder default and mentions slug generation implicitly, but it does not explain relationships between parameters (e.g., license vs license_tier) or add syntax guidance beyond the schema. It provides marginal added value over the structured fields.

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 begins with 'Save a COMP as a `.tox` inside `<vault>/<folder>/<slug>.tox` and write a sibling Markdown note...', which is a specific verb+resource+output combination. It clearly distinguishes this from siblings like make_portable_tox by positioning it as 'The artist-publishing primitive for portable looks' and by naming its integration with browse_vault_library and tag_and_search_library.

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 provides clear context: it is the artist-publishing primitive for portable looks and states how it integrates with vault browsing and searching. However, it does not explicitly state when NOT to use it or mention alternative tools like make_portable_tox or save_component_to_vault, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_network_to_vaultExport network docs to the vaultA

READ an existing TD network's topology and WRITE it as an Obsidian note: a Mermaid flowchart plus [[wikilinks]] for every operator and connection, so the vault's graph view becomes a clickable map of the patch. The note (Networks/.md by default) is fully rewritten on each call. Use this to persist a browsable map in the vault; use document_network to get the same documentation back as a tool result without touching the vault. Returns the note path and the node/connection counts (and whether output was truncated). Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoVault note path (defaults to Networks/<path>.md).
pathNoNetwork root to document./project1
recursiveNoInclude all descendants (otherwise just the direct children).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that the note is 'fully rewritten on each call,' which is important behavioral context beyond the annotations. Also describes the side effect (vault graph becomes a clickable map) and return value (note path, node/connection counts, truncation flag). No contradiction with readOnlyHint=false or destructiveHint=false.

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 compact and every sentence carries essential information: what it does, output format, default behavior, alternative usage, return values, and prerequisite. No filler or redundant repetition of schema/annotations.

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 three-parameter tool with no output schema, the description adequately covers what is returned, the file behavior, the environment requirement, and the distinction from a sibling. This gives an agent enough context to invoke it correctly and interpret the result.

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 schema already documents all three parameters (note, path, recursive). The description adds little additional parameter-level meaning beyond what is in the input schema, so baseline 3 is appropriate.

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 states a specific action: READ an existing TD network's topology and WRITE it as an Obsidian note, including Mermaid flowchart and wikilinks. It also distinguishes itself from the sibling document_network by clarifying that this tool persists to the vault while the alternative returns documentation without touching the vault.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to persist a browsable map in the vault; use document_network to get the same documentation back as a tool result without touching the vault.' This gives clear when-to-use guidance and names the alternative tool. It also notes the TDMCP_VAULT_PATH requirement, which is a prerequisite for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_palette_componentExport palette componentA
Destructive

Save a COMP as a .tox into TouchDesigner's native Palette folder so it appears in the Palette browser for drag-and-drop reuse.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFile stem for the .tox (default: the basename of comp_path)
categoryNoPalette subfolder to group the component undertdmcp
comp_pathYesPath to the COMP to export, e.g. /project1/base1
palette_dirNoExplicit palette folder to use. Empty resolves TouchDesigner's user palette folder live.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true, so the description's write-to-filesystem behavior is consistent. The description adds specific behavioral context by explaining the effect (the .tox appears in the Palette browser), which goes beyond the annotations. It doesn't mention overwrite risks, but the annotations carry the safety burden.

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?

A single, front-loaded sentence that states action, resource, destination, and benefit without unnecessary words. Every phrase earns its place.

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 simple tool with full schema coverage and annotations, the description provides enough context to understand the action and outcome. It doesn't describe return values or error cases, but no output schema is provided and the tool's behavior is straightforward.

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 coverage is 100%, with all parameters described in the schema. The description adds minimal parameter-specific meaning, only reinforcing 'native Palette folder' which relates to palette_dir. Baseline 3 is appropriate since the schema does the heavy lifting.

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 uses a specific verb ('Save') with a clear resource (COMP) and output (.tox), and specifies the destination (native Palette folder) and purpose (appears in Palette browser for drag-and-drop reuse). This clearly distinguishes it from siblings like export_look_tox or save_component_to_vault.

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 implies strong usage context: it should be used when you want a COMP to become a reusable palette component. It doesn't explicitly name alternatives or exclusions, but the context is clear and distinct from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_recipe_bundleExport recipe bundleA
Destructive

Write a portable JSON recipe bundle to out_file. When include_all=false, recipe_ids selects the entries; when include_all=true, the full local library is exported and recipe_ids is ignored. Unknown IDs are reported in missing rather than silently substituted. Use import_recipe_bundle to restore the bundle on another machine or publish_recipe_bundle when you need checksums/versioned handoff artifacts. This writes a local file and returns the bundle kind, version, timestamp, exported recipes, and missing IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
out_fileYesDestination path for the portable recipe-bundle JSON file.
recipe_idsNoRecipe IDs to export when include_all=false; unknown IDs are listed in missing.
include_allNoExport the complete local recipe library when true; otherwise export recipe_ids only.

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindYes
missingYes
recipesYes
versionYes
exported_atYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and readOnlyHint=false. The description adds useful behavior beyond that: unknown IDs appear in 'missing' rather than being silently substituted, and it discloses the return payload (bundle kind, version, timestamp, exported recipes, missing IDs). It does not explicitly discuss file overwrite semantics, but the destructive hint covers that risk.

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?

Three tight sentences, front-loaded with the primary action, no fluff, and every sentence earns its place: purpose, conditional logic, sibling guidance, and return value summary. Ideal density.

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?

Given the tool's moderate complexity, the presence of a full output schema, and rich annotations, this description is fully sufficient. It covers all decision points, error handling (missing IDs), and output essentials without needing to restate schema details. The agent can select and invoke this tool correctly with no gaps.

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 100%, so baseline is 3. The description enriches the parameter semantics by explaining the conditional interaction: when include_all=true, recipe_ids is ignored; unknown IDs are surfaced in 'missing'. This goes beyond the schema's per-parameter descriptions and clarifies the actual runtime behavior.

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+resource+output: 'Write a portable JSON recipe bundle to out_file.' It clearly differentiates from siblings by naming import_recipe_bundle (restore) and publish_recipe_bundle (checksums/versioned artifacts), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains when to use this tool vs alternatives: 'Use import_recipe_bundle to restore the bundle on another machine or publish_recipe_bundle when you need checksums/versioned handoff artifacts.' Also clarifies the include_all/recipe_ids selection logic, so the agent knows exactly how to invoke the right option.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_render_presetExport render presetA

Start/stop a movie export with named VJ/editorial presets (HAP, HAP Alpha, ProRes 422/4444, NotchLC, MP4 review) while reusing record_movie's Movie File Out TOP recorder. This records a TOP to a file written by TouchDesigner and documents the expected codec/extension/fps for downstream playback tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNoOverride the preset frame rate.
fileNoOutput movie path on the TD machine. Required for action=start.
actionNoStart or stop the preset recording pass.start
presetNoDelivery preset to document and apply.hap
secondsNoOptional fixed loop duration. Omit to record until a stop call.
node_pathYesPath of the TOP to record.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly=false and destructive=false, so the description only needs to add behavioral context. It discloses that the tool records a TOP to a file via TouchDesigner and documents expected codec/extension/fps for downstream playback, which adds value beyond the annotations. However, it doesn't mention overwrite behavior or whether starting a new export replaces an existing one, so the transparency is adequate but not exhaustive.

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 exactly two sentences, front-loaded with the core action and preset list, then adding the recorder relationship and downstream documentation purpose. Every clause earns its place with no redundancy or fluff.

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 start/stop tool, the schema covers parameter requirements, and the description explains the recording mechanism, presets, and downstream documentation benefit. There is no output schema, so return values aren't expected, but the description doesn't mention whether the call blocks or signals completion; this minor gap is offset by the strong schema coverage.

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 coverage is 100% with detailed parameter descriptions, so the description need not explain parameters. The prose lists presets by name, but that only echoes the enum values without adding new semantics. Baseline 3 is appropriate when the schema fully carries parameter meaning.

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 clearly states the tool's function: start/stop a movie export using named VJ/editorial presets, listing specific presets and explicitly distinguishing it by reusing record_movie's Movie File Out TOP recorder. The verb-resource relationship is precise and scope is well-defined.

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 indicates this tool is a preset-driven wrapper around record_movie's recorder, offering clear context for when to use it (for named delivery presets). It doesn't explicitly state when not to use it or provide exclusions, but the relationship to record_movie is implicitly a usage guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_setlist_to_vaultExport setlist to vaultA

Serialize the current cues stored on a COMP (manage_cue snapshots, keyed 'tdmcp_cues') into a setlist note in the Obsidian vault, so a live-built show can be round-tripped into the vault library as a git-diffable setlist. The note frontmatter tracks array matches what import_setlist expects — each cue becomes a track with its title and optional bpm, ready for a recipe id to be added by hand. Re-import the note later with import_setlist to rebuild the visuals. Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesSetlist note name to write (e.g. 'Friday Set').
folderNoVault subfolder (match import_setlist's expected location).Setlists
targetYesCOMP whose stored cues/scenes to export as a setlist.
include_tempoNoCapture the project's global tempo into the note.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable context beyond the annotations: it reveals the note frontmatter structure, the COMP snapshot key, the prerequisite TDMCP_VAULT_PATH, and the round-trip workflow with import_setlist. It does not disclose behavior if the note already exists or if the COMP has no cues, but given the annotations, this is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, information-dense, and front-loaded with the primary action. It uses some jargon (COMP, tdmcp_cues) but each sentence contributes essential context, and it is not overly verbose.

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?

Given the 100% schema coverage, annotations, and no output schema, the description is complete: it explains the note format, prerequisites, and the re-import path. It fully covers the intended use case and relationships to sibling tools.

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 description coverage is 100%, so parameters are already well-defined. The description enhances the target parameter by specifying the 'tdmcp_cues' key and explains the relationship with import_setlist, adding meaning beyond the schema for the target and include_tempo parameters.

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?

Purpose is crystal clear: it serializes cues from a COMP into a setlist note in Obsidian, with specific format details and a round-trip purpose. It cites the 'tdmcp_cues' key and names import_setlist as the counterpart, distinguishing it from other export tools.

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 explicitly states the use case: round-tripping a live-built show into the vault as a git-diffable setlist, and it names import_setlist for re-import. However, it does not explicitly contrast with alternative export tools (e.g., export_network_to_vault) 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.

export_sop_to_svgExport a SOP's geometry as SVGA
Destructive

Walk a SOP's primitives via the bridge and emit an SVG document of polylines (each primitive becomes one <polyline>). Projects to x/y (drops z), auto-fits viewBox, supports stroke/fill/scale/flip_y. Writes to disk when output_path is supplied and always returns the SVG string in the report. Pen-plotter / laser / print deliverable.

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleNoScale factor applied to SOP units (TD SOPs are typically [-1..1]).
flip_yNoFlip Y so the SVG matches TD's viewport orientation.
fill_colorNoCSS color for fills (default 'none' — outlines only, plotter-style). Same allowlist as stroke_color.none
output_pathNoFilesystem path to write the SVG to. Absolute is recommended; relative paths are resolved against the server's current working directory. Omit to only return the SVG inline.
source_pathYesSOP path to export (e.g. '/project1/geo1/circle1').
stroke_colorNoCSS color for polyline strokes (default black). Accepts hex, rgb()/rgba()/hsl()/hsla(), or a named colour; anything that could break out of an SVG attribute is rejected.#000000
stroke_widthNoStroke width in SVG units.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by detailing the internal process: 'each primitive becomes one <polyline>', projection to x/y, viewBox auto-fit, and the guarantee to 'always return the SVG string in the report'. It also explicitly discloses the disk write side effect, aligning with the destructiveHint annotation. No contradictions.

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 compact and front-loaded. The first sentence states the core action, follow-up sentences add projection, styling, output behavior, and use case. Every sentence contributes value without redundancy or fluff.

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 tool with no output schema, the description adequately explains what is returned ('SVG string in the report') and the optional side effect. It covers the transformation logic, styling options, and target applications. This is sufficient for an agent to select and invoke the tool confidently.

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 coverage is 100% and each parameter already has a detailed description. The tool description references parameters (stroke/fill/scale/flip_y) and the output_path condition, but adds no significant new semantic meaning beyond what the schema already provides. It stays at the baseline for complete schema coverage.

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: 'Walk a SOP's primitives... emit an SVG document of polylines'. It clearly distinguishes this from other export tools (e.g., export_recipe_bundle, export_look_tox) by explicitly naming SVG output and SOP geometry. Details like 'Projects to x/y (drops z)' further refine the scope.

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 provides clear context by ending with 'Pen-plotter / laser / print deliverable', indicating the intended use cases. It also explains the optional disk write behavior with output_path. However, it does not explicitly exclude alternative tools or state when not to use it, so a small gap remains for a perfect 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extend_data_source_fabricExtend data source fabricA

Adds extra transports to the data-source fabric beyond create_data_source: 'mqtt' subscribes to a broker, 'ws-binary' streams binary frames over a WebSocket, 'midi-mmc' listens for MIDI Machine Control transport bytes (play/stop/record/locate). Same downstream shape as create_data_source — a Null DAT for the raw text/bytes and a Null CHOP whose channels are ready for bind_to_channel / create_data_visualization.

ParametersJSON Schema
NameRequiredDescriptionDefault
tlsNo(mqtt/ws-binary) Use TLS — flips mqtts:// or wss://.
hostNo(mqtt/ws-binary) Broker or WebSocket host. Ignored by midi-mmc.127.0.0.1
nameNoBase name for the created sub-network.
portNo(mqtt/ws-binary) TCP port. Defaults: mqtt=1883, ws-binary=9001.
topicNo(mqtt) Subscription topic(s), comma-separated. (ws-binary) URL path, e.g. '/stream'.
deviceNo(midi-mmc) MIDI input device name. Omit to use the first device.
fieldsNo(mqtt) JSON keys to extract from each message into the sample table → Null CHOP channels.
channelsNo(ws-binary) Number of numeric channels per frame to expose on the Null CHOP.
passwordNo(mqtt) Broker auth password.
usernameNo(mqtt) Broker auth user.
transportYesWhich transport branch to build. 'mqtt' subscribes to a broker, 'ws-binary' streams binary frames over a WebSocket, 'midi-mmc' listens for MIDI Machine Control transport bytes.
parent_pathNoCOMP to build the sub-network inside./project1
frame_formatNo(ws-binary) How each frame's bytes decode into numeric samples.float32-le
expose_controlsNoSurface an 'Active' toggle (and a 'Reconnect' pulse for mqtt/ws-binary).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the output structure (Null DAT and Null CHOP) and the functional behavior of each transport (subscribes, streams, listens). Annotations already provide readOnlyHint=false and destructiveHint=false, so there is no contradiction. The description adds useful context about the downstream integration without over-explaining.

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 two sentences, front-loaded with the main action, and efficiently covers the three transports and the output shape. No unnecessary filler or repetition of schema details.

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 complex tool with 14 parameters and no output schema, the description adequately explains the output (Null DAT/CHOP) and downstream usage. It doesn't cover prerequisites or failure modes, but the schema provides strong parameter-level detail, making the description sufficient for an agent to invoke it correctly.

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?

The schema covers all 14 parameters with descriptions, so the baseline is 3. The description adds marginal value by noting that 'fields' map to Null CHOP channels, but for the most part it just restates the transport names already in the enum. No significant extra parameter semantics provided.

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 clearly states the tool 'Adds extra transports to the data-source fabric' and enumerates the three transport types (mqtt, ws-binary, midi-mmc), giving a specific verb+resource scope. It explicitly distinguishes itself from create_data_source, so the purpose 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?

The description gives clear context by positioning itself 'beyond create_data_source' and noting the resulting structure is 'ready for bind_to_channel / create_data_visualization.' However, it doesn't explicitly name alternative tools like connect_mqtt_iot_bus or provide when-not-to-use guidance, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_audio_featuresExtract audio featuresA

Build an audio-analysis chain that exposes ready-to-bind reactive channels — overall level plus bass/mid/treble band energies — on a Null CHOP. Unlike create_audio_reactive (which renders a spectrum visual), this produces the raw signals so you can drive ANY parameter: bind a node parameter to op('…/audio_features/features')['bass'] and it pulses with the music. A Sensitivity knob scales all channels. Source can be the live device (mic/line — may prompt for macOS permission), an audio file, a synthetic oscillator (for testing), or an existing CHOP. Use create_spectrum for N fine per-band channels instead of these four coarse bands, and pass this Null as the source_chop to bind_audio_reactive to make a whole COMP react.

ParametersJSON Schema
NameRequiredDescriptionDefault
mid_hzNoBand-pass centre for the mid band.
sourceNoAudio source. 'device' = live microphone/line in (the real-world default; creating it may pop a one-time macOS microphone-permission dialog — click Allow). 'file' = an audio file. 'oscillator' = a synthetic tone, handy for testing without any device permission. 'existing_chop' = reuse a CHOP you already have.device
bass_hzNoLow-pass cutoff for the bass band.
treble_hzNoHigh-pass cutoff for the treble band.
parent_pathNoParent COMP path the self-contained 'audio_features' container is created inside./project1
audio_file_pathNoAudio file path (source='file').
expose_controlsNoExpose a live 'Sensitivity' knob (a gain over every feature channel).
existing_chop_pathNoPath of an existing audio CHOP to analyze (source='existing_chop').

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds context beyond these: it may trigger a macOS permission dialog, the Sensitivity knob scales all channels, and it produces raw signals rather than a visual. It doesn't mention every side effect but sufficiently discloses the key behaviors for an open-world creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured: it leads with purpose, then contrasts with alternatives, explains output usage, and lists source options. It is longer than minimal but earns its length with actionable guidance and no filler.

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?

This is a fairly complex tool with 8 parameters and no output schema, yet the description covers the output channels, how to bind them, source choices, permission caveats, and alternatives. It gives enough context for an agent to select and use the tool without needing additional resources.

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 coverage is 100% with detailed per-parameter descriptions, so the baseline is 3. The description adds a practical binding example ('op('…/audio_features/features')['bass']') and mentions the Sensitivity knob, but it does not materially extend the parameter semantics beyond what the schema already explains.

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 uses a specific verb and resource: 'Build an audio-analysis chain' that exposes reactive channels on a Null CHOP, and explicitly contrasts itself with create_audio_reactive ('renders a spectrum visual') and create_spectrum ('N fine per-band channels'). This clearly distinguishes its purpose from nearby siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance: use this for raw signals to drive ANY parameter, use create_spectrum for fine per-band channels, and pass this Null as source_chop to bind_audio_reactive. It also explains the four source modes and their appropriate use cases (testing, file, live device, existing CHOP).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_paletteExtract a K-color palette from a TOPA
Read-only

Sample dominant colors from a TOP by capturing its preview PNG and running deterministic k-means on the decoded RGB pixels. Returns {source_top, k, width, height, pixels_sampled, hex_colors[], swatches[{hex,rgb,weight}], warnings[]} sorted by dominance (most-frequent cluster first). Feeds AI grading prompts, create_palette, and design hand-offs. Read-only; no nodes are created or modified.

ParametersJSON Schema
NameRequiredDescriptionDefault
kNoNumber of palette colors to extract (2..16).
widthNoWidth to render the preview at before sampling (smaller is faster).
heightNoHeight to render the preview at before sampling.
source_topYesPath of the TOP to sample colors from.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only; no nodes are created or modified.' It adds useful behavioral details like the deterministic nature of k-means and the sorting by dominance, which go beyond the annotations without contradicting them.

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 concise (three sentences), front-loaded with the core action, and efficiently packs method, return format, and use cases without unnecessary filler. Every sentence contributes meaningful information.

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?

Despite no output schema, the description fully specifies the return object structure and sorting order, making the tool's behavior and outputs clear. The read-only nature is stated, and the use cases provide sufficient context for an agent to decide when to invoke it.

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 covers all parameters at 100%, but the description adds value by explaining the rendering process (e.g., 'smaller is faster' for width/height) and how the parameters relate to the output (k colors, dimensions). This exceeds the baseline of 3 for full schema coverage.

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 clearly states the tool samples dominant colors from a TOP using a specific method (capturing preview PNG and running deterministic k-means). It distinguishes itself from siblings like create_palette and get_preview by focusing on extraction from an existing TOP.

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 mentions concrete use cases ('Feeds AI grading prompts, create_palette, and design hand-offs'), giving clear context for when to use it. It does not explicitly contrast with alternatives or say when not to use it, but the intended usage is well implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_td_nodesFind TouchDesigner nodesA
Read-only

Read-only: compact bridge-side node search by name/path glob, exact or partial operator type, family and bounded depth. Returns {count, truncated, matches/paths, search_metadata} without transferring topology; older bridges fall back only to structured list/topology reads. Prefer this over get_td_nodes when looking through a sub-tree; use get_td_topology only when you need wiring.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoCase-insensitive operator-type substring (e.g. 'TOP', 'noise').
limitNoMax matches to return.
familyNoOptional exact TouchDesigner operator family.
patternNoCase-insensitive name/path filter with '*' wildcards (e.g. 'text*', '*noise*').
max_depthNoMaximum descendant depth; 1 means direct children. Overrides recursive=true.
name_globNoAdditional name-only '*' glob.
path_globNoAdditional absolute-path '*' glob.
path_onlyNoReturn only matching paths.
recursiveNoSearch the whole sub-network (true) or only direct children (false).
type_matchNoWhether `type` is a substring or an exact operator type.partial
parent_pathNoWhere to search from./project1
time_limit_msNoHard bridge-side search budget in milliseconds.
node_scan_limitNoHard cap on nodes inspected inside TouchDesigner.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesTotal nodes matched before `limit` truncation.
pathsNopath_only mode: the matched node paths and nothing else.
sourceYes
matchesNoDefault mode: each matched node as {path, name, type, family}.
warningsNo
recursiveYesWhether descendants were searched, echoing the request.
truncatedYesTrue if more nodes matched than `limit` returned.
parent_pathYesThe network root the search ran under.
search_metadataNoCurrent-bridge scan completeness and budget evidence; absent on an older-bridge fallback.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses behavior beyond annotations: it's 'Read-only' (consistent with readOnlyHint), notes it returns '{count, truncated, matches/paths, search_metadata} without transferring topology' (efficient/compact), and states 'older bridges fall back only to structured list/topology reads' (fallback behavior). This adds significant context without contradicting 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?

Three concise sentences cover purpose, return format/fallback, and usage guidance. Front-loaded with the main function, and every sentence adds value. No filler or repetition.

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?

Despite 13 parameters, the description covers purpose, return fields, fallback behavior, and sibling differentiation. With a full output schema and 100% parameter descriptions, nothing critical is missing. The guidance about older bridges addresses edge cases in tool availability.

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 description doesn't need to explain individual parameters. The description does synthesize key concepts ('name/path glob', 'exact or partial operator type', 'family', 'bounded depth') which map to schema params, but adds no new meaning beyond what the schema already provides.

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 clearly states it's a node search tool with specific filter capabilities: 'compact bridge-side node search by name/path glob, exact or partial operator type, family and bounded depth.' It also distinguishes from siblings by explicitly naming get_td_nodes and get_td_topology and when to use each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidance: 'Prefer this over get_td_nodes when looking through a sub-tree; use get_td_topology only when you need wiring.' Also notes fallback behavior for older bridges, so the agent knows when this tool's advanced features may not be available.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_td_parametersFind TouchDesigner parametersA
Read-only

Read-only: bounded bridge-side search for live TouchDesigner parameters by node, operator type/family, parameter name, evaluated value, expression, mode, or non-default state. Values are point-in-time snapshots; likely secrets are redacted and cannot satisfy value/expression filters. Inspect scan_truncated and count_complete before claiming project-wide completeness. Requires the current structured bridge route and never falls back to raw Python or a full parameter dump.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
typeNoTouchDesigner operator type filter.
limitNo
familyNo
max_depthNoMaximum descendant depth; 1 means direct children.
root_pathNoNetwork root to inspect./project1
type_matchNopartial
value_globNoAnchored point-in-time evaluated-value '*' glob.
node_patternNoLegacy-style case-insensitive name-or-path pattern; '*' is a wildcard.
node_name_globNoAnchored node-name '*' glob.
node_path_globNoAnchored absolute node-path '*' glob.
parameter_globNoAnchored parameter-name '*' glob.
time_budget_msNo
expression_globNoAnchored expression-text '*' glob.
node_scan_limitNo
non_default_onlyNo
parameter_scan_limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitYes
matchedYes
resultsYes
returnedYes
max_depthYes
root_pathYes
truncatedYes
elapsed_msYes
stop_reasonYes
scanned_nodesYes
count_completeYes
scan_truncatedYes
scanned_parametersYes
skipped_parametersYes
redacted_parametersYes
unreadable_parametersYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and destructiveHint annotations, the description adds critical behavioral details: values are point-in-time snapshots, likely secrets are redacted and cannot satisfy filters, and the scan_truncated/count_complete fields must be inspected for completeness. It also states the prerequisite of the current structured bridge route and that it never falls back to raw Python or a full dump. This substantially enriches the agent's understanding.

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 compact, front-loaded with 'Read-only' and a clear purpose, and every sentence adds value—covering scope, constraints, limitations, and usage tips. No redundant or repetitive content is present.

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?

Given the tool's complexity (17 parameters, live system interaction, output schema present), the description covers all key aspects: what it searches for, the bounded/read-only nature, point-in-time semantics, redaction, completeness checks, prerequisites, and the guarantee of not falling back to raw Python. The output schema handles return-value details, so the description is sufficiently complete for effective use.

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 53%, so the description is not fully responsible for parameter semantics. The description summarizes the searchable dimensions (node, type/family, parameter name, value, expression, mode, non-default state) which maps to several parameters, but it does not clarify the semantics of parameters like time_budget_ms, node_scan_limit, parameter_scan_limit, limit, or type_match. These remain only partially understood from names and defaults, so the description only partially compensates for the coverage gap.

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 uses a specific verb ('search') and resource ('live TouchDesigner parameters'), and enumerates the filter dimensions ('node, operator type/family, parameter name, evaluated value, expression, mode, or non-default state'). It clearly differentiates from siblings like get_td_node_parameters by framing it as a bounded search rather than a full listing, and explicitly states it never falls back to raw Python or a full parameter dump.

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 provides clear context: it is a read-only, bounded search for live parameters, and advises to inspect scan_truncated and count_complete before claiming project-wide completeness. It implicitly discourages using raw Python or full parameter dumps, but it does not explicitly name alternative tools like get_td_node_parameters or specify 'use this when you need to search by criteria rather than list all.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

focus_network_editorFocus the Network EditorA

Safely follow one same-parent operator group in an existing TouchDesigner Network Editor. Reuses the active/already-owning pane, replaces stale selection, sets an explicit current operator, and returns applied or fail-closed suppression readback. UI-only: it never creates panes or changes project topology, and Perform/headless/disabled states do not steal focus. Smooth colour highlights remain held pending live compare-and-swap proof.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesOperator paths to frame in the Network Editor, e.g. the nodes you just created.
actionNoAction category used to make the follow receipt understandable and auditable.view
animateNoRequest bounded next-frame follow. On the live-proven build, framing uses six generation-checked ease-out viewport steps and reports stepped or instant readback.
enabledNoExplicit opt-out. Disabled follow returns a typed suppression without moving the UI.
framingNoHow to frame the result: auto avoids surprise zoom-in, selection fits targets, owner homes the network, and none changes only current/selection.auto

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint false, destructiveHint false), the description discloses that it replaces stale selection, sets an explicit current operator, returns a fail-closed suppression readback, and does not steal focus in perform/headless states. This is valuable, though the final phrase about 'live compare-and-swap proof' is vague.

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 description is fairly compact but includes a final sentence about 'Smooth colour highlights remain held pending live compare-and-swap proof' that is jargony and adds little actionable value for an agent. It could be rephrased or removed, so it doesn't fully earn its place.

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 UI-only focus tool with 5 well-documented parameters, the description sufficiently covers side effects, safety, and return behavior (applied or fail-closed readback). No output schema is present, but the description adequately indicates what the agent can expect.

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 100% with good per-parameter descriptions, but the tool description adds the 'same-parent operator group' constraint for paths, which is not explicit in the schema, and notes that the action parameter is for auditability. This gives extra meaning beyond the schema.

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 uses the specific verb 'follow' with the resource 'operator group in an existing TouchDesigner Network Editor,' and adds the same-parent constraint. This clearly distinguishes it from sibling tools like arrange_network or duplicate_network.

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 provides clear context about when it is safe to use: it reuses the active pane, is UI-only, never creates panes or changes topology, and does not steal focus in Perform/headless/disabled states. However, it does not explicitly name alternative tools or state when to prefer them, so it only reaches a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_from_moodboardGenerate art from a moodboard noteA

READ a moodboard note (frontmatter technique/palette/colors/speed plus a prose description) and CREATE a matching generative system in TouchDesigner via create_generative_art. Side effect is node creation in TD, not file writes; the palette/mood is passed only as a best-effort color hint. Use this to seed a system from a vault moodboard; call create_generative_art directly to specify the technique and palette inline. Returns the created generative-art network (same result as create_generative_art). Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesMoodboard note: a vault path, or a name resolved against the Moodboards/ folder.
techniqueNoOverride the technique (otherwise the note's `technique` frontmatter, else fractal).
parent_pathNoCOMP to build the generative system in./project1

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits beyond annotations: side effects are node creation in TD, not file writes; color is only a best-effort hint; and a configured TDMCP_VAULT_PATH is required. It also states the return value, providing clear expectations 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 dense sentences with no filler. It front-loads the core READ/CREATE action and then delivers necessary side-effect, alternative-use, and prerequisite details efficiently.

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?

Despite having no output schema, the description explains the return value, side effects, input source, alternative invocation, and prerequisite. This is sufficient for an agent to correctly select and invoke the tool for the intended moodboard-to-system workflow.

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 100%, so the baseline is 3. The description adds value by explaining the frontmatter fields (technique/palette/colors/speed) and clarifying that the palette is only a best-effort color hint, which enriches the meaning of the 'note' parameter beyond the schema.

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 clearly states the verb-resource pair: READ a moodboard note and CREATE a generative system in TouchDesigner. It further differentiates from the sibling create_generative_art by explaining that this tool reads a vault moodboard instead of taking inline parameters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells the agent when to use this tool: 'Use this to seed a system from a vault moodboard.' It also names the alternative, 'call create_generative_art directly to specify the technique and palette inline,' and identifies the prerequisite TDMCP_VAULT_PATH.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_library_indexGenerate library indexA

Write one Markdown contact-sheet note of the whole vault library — recipes, shaders, presets, components, and setlists — as a grid of cards, each with its thumbnail (the .png sibling written by save_recipe_to_vault / save_component_to_vault), title, tags, and a copy-paste load snippet (e.g. apply_recipe id=…). No TouchDesigner connection required: it reads the local vault on disk and writes the index note. Filter by category (kinds) and/or a substring query. Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindsNoWhich library categories to include. 'all' = every category.
queryNoCase-insensitive substring filter on title/tags.
outputNoVault-relative path of the contact-sheet note to write.Library Index.md
columnsNoCards per row in the contact-sheet grid.
overwriteNoWhen false, refuse to overwrite an existing index note.
include_thumbnailsNoEmbed each asset's <stem>.png sibling when present; false = text-only.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false and destructiveHint=false, so it is already known as a write operation. The description adds valuable context: it reads local vault contents, writes a file, requires a configured TDMCP_VAULT_PATH, and performs no network/TD interaction. This goes beyond the annotations by clarifying side effects and prerequisites, though it does not mention the overwrite default behavior (covered by the schema).

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 two sentences, front-loaded with the core action and output, then providing essential context (no TD connection, filters, requirement). Every clause adds useful information without redundancy. It is concise and well-structured for an agent to parse quickly.

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 the tool's complexity (6 optional parameters, no output schema), the description is quite complete: it explains the output note format, the data source (local vault), the thumbnail source, filtering options, and the environment requirement. It does not mention the overwrite default or edge cases, but those are specified in the input schema. The description gives enough context for correct selection and invocation, though not exhaustive.

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 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining the output structure (grid of cards with thumbnails and load snippets) and mapping 'kinds' to library categories (recipes, shaders, presets, components, setlists). It also ties thumbnails to the include_thumbnails parameter. This elevates it above baseline, though it does not describe every parameter individually.

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 clearly states the tool 'Write[s] one Markdown contact-sheet note of the whole vault library' with specific content (grid of cards, thumbnails, tags, load snippets). This distinguishes it from siblings like save_recipe_to_vault or browse_vault_library, which have different outputs and purposes. The verb 'Write' and the resource are explicit and 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 says 'No TouchDesigner connection required: it reads the local vault on disk and writes the index note,' which gives clear when-to-use context (when you need an index without a live TD connection). It also mentions filtering by category/query, implying use cases for targeted indexes. However, it does not explicitly name alternatives or say when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_readmeGenerate project READMEA
Read-only

Produce a Markdown project document for any COMP or project: family/type counts, custom-parameter table, inputs/outputs, child inventory, external file dependencies, and an optional preview thumbnail of the output TOP. Use include_mermaid to add a Mermaid flowchart and max_nodes to cap large inventories. Returns the full Markdown on the structured channel under markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath of the project or COMP to document (e.g. /project1 or /project1/myComp)./project1
titleNoDocument title. Defaults to the COMP name when omitted.
max_nodesNoMaximum child nodes to include in the Child inventory table. Nodes beyond this limit are omitted and a note is appended. Default 200.
include_mermaidNoEmbed a Mermaid flowchart block in the ## Data flow section. Off by default to keep output compact.
include_previewNoCapture and embed a preview thumbnail of the output TOP as a base64 inline image.

Output Schema

ParametersJSON Schema
NameRequiredDescription
familiesYesNode counts by operator family.
markdownYesFull Markdown document.
node_countYesTotal child nodes inspected.
has_previewYesWhether a preview thumbnail was successfully embedded.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description only needs to add extra behavioral context. It does so by stating the result is returned 'on the structured channel under markdown' and by mentioning max_nodes to cap large inventories. While it doesn't warn about potential cost of thumbnail generation, the read-only nature and added details make this solid.

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 only two sentences, yet it packs in the tool's purpose, output sections, key parameters, and the return channel. It is front-loaded with the main verb and resource, and every word earns its place.

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?

With an output schema present, the description needn't detail return fields. It covers the scope (any COMP/project), lists all included sections, mentions relevant parameters, and specifies the structured output key. The only minor gap is a lack of explicit performance caveats, but max_nodes partially addresses large inventories.

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 100%, so the baseline is 3. The description adds value by explaining include_mermaid and max_nodes in the context of document generation, and the phrase 'optional preview thumbnail' connects to include_preview. These contextual hints go beyond the bare schema descriptions.

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: 'Produce a Markdown project document for any COMP or project' and then enumerates the exact sections (family/type counts, custom-parameter table, inputs/outputs, child inventory, external file dependencies). This level of detail clearly distinguishes it from more generic sibling tools like document_network or project_documentation_site.

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 provides clear context: it is for generating a Markdown project document for any COMP or project, with specific output components. It does not explicitly name sibling alternatives or state when not to use it, but the context is unambiguous enough for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generative_classics_packGenerative classics recipe packB
Destructive

Curated technique pack of canonical generative looks (feedback tunnel, audio spectrum, noise landscape, particle galaxy, reaction-diffusion, webcam glitch). list_only=true returns the technique cards plus the list of recipes the active library can satisfy; list_only=false also writes a portable bundle JSON (import_recipe_bundle-compatible) at install_path. Pure Node — no TouchDesigner bridge required.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_onlyNoWhen true (default), just list the technique cards + which are available; when false, also emit the portable bundle JSON.
overwriteNoWhen list_only=false: overwrite an existing bundle file at install_path.
install_pathNoWhere to write the bundle JSON when list_only=false. Defaults to 'recipes/generative_classics.pack.json' inside the cwd.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that list_only=false writes a portable bundle JSON at install_path, and the overwrite parameter in the schema indicates potential file replacement. This aligns with the destructiveHint annotation. However, the description does not go beyond the schema to warn about side effects or clarify the impact on the active library, so it adds moderate value beyond 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with a clear front-loaded purpose. It lists examples that aid understanding and includes essential behavioral details without excessive verbosity. The structure is efficient and easy to scan for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides a good overview of inputs and outputs, mentions compatibility with import_recipe_bundle, and notes the Node-only requirement. However, it does not explain what 'active library' means, nor does it detail the contents or structure of the bundle, which could be relevant for a destructive operation. Given the tool's moderate complexity and absence of an output schema, it is adequate but has gaps.

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 coverage is 100%, so the parameters are already well documented. The description reinforces the list_only behavior and mentions the bundle format is import_recipe_bundle-compatible, but it does not add significant new meaning about the parameters themselves. This matches the baseline for high schema coverage.

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 clearly states this tool provides a curated pack of canonical generative looks, listing specific examples. It distinguishes itself from sibling tools by focusing on a pack/bundle rather than creating individual effects. The list_only vs. write bundle behavior is described, making the tool's function specific and unambiguous.

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?

The description implies when to use this tool (when you want a curated collection of generative techniques) and provides a key technical constraint ('Pure Node — no TouchDesigner bridge required'). However, it does not explicitly name alternatives or state when NOT to use this tool, relying on the agent to infer from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_bridge_logsGet bridge logs and cook errorsA
Read-only

Read-only: collect recent cook errors and warnings from the running TouchDesigner project for debugging. Walks the operator tree under scope and gathers each operator's current cook errors and warnings (guaranteed). Also attempts a best-effort probe of textport/log DATs if they exist in the project. Use this when a script or cook fails and you need more context than the immediate error string — it surfaces the real Python traceback or operator cook errors without requiring a new REST endpoint. Returns {lines[], count, probe} where probe reports which log sources were reachable in this TD build.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoNetwork path to collect cook errors/warnings from (default whole project). Must be an existing operator path./
max_linesNoCap how many log lines to return (1–500).
include_cook_errorsNoInclude current operator cook errors/warnings across the scope.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesTotal number of lines returned (after capping at max_lines).
linesYesCollected log lines, newest-first within each source.
probeNoDiagnostic info about which log sources were reachable in this TD build (cook_errors always present; textport availability varies by build).
scopeYesThe network path that was scanned, echoing the request.
warningsYesNon-fatal issues during collection (e.g. truncation notes).

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds meaningful behavior beyond the readOnlyHint annotation: guaranteed walking of the operator tree, best-effort probe of textport/log DATs, and probe reporting which log sources are reachable. Consistent with annotations and no contradiction.

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?

Four dense sentences front-load purpose, then give behavior, use case, and return shape. Every sentence earns its place with no fluff or redundancy.

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?

Complete for a project-scope debugging read with good schema, annotations, and output schema. Explains guarantee vs best-effort, walk scope, and the probe return field; no significant gaps.

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 covers all three parameters with full descriptions, so the schema already does the heavy lifting. Description adds no additional parameter-level meaning beyond the baseline schema coverage.

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?

Specific verb+resource+scope: collects cook errors/warnings across the operator tree under `scope`, plus best-effort log DAT probe. Clearly distinguishes from narrower per-node error tools by project-wide scope and its guaranteed vs best-effort split.

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?

Explicitly states when to use: 'when a script or cook fails and you need more context than the immediate error string.' It also contrasts with needing a new REST endpoint, but it does not name sibling alternatives or give explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dat_contentRead DAT content (paginated)A
Read-only

Read a Text or Table DAT with pagination so a large table cannot flood context. Returns total row/col counts, a header (table DATs), a sliced page (offset/limit), an optional stable head preview (preview_rows), and a row_range only on a partial read. Table DATs are split on tabs/newlines client-side — that split is lossy if a cell embeds a literal tab or newline (probe live before relying on it). Use edit_dat_content/set_dat_content to write.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows/lines to return. Capped so a large table never floods context.
offsetNoFirst data-row index to return (0-based). For a table DAT it indexes data rows (after the header when include_header is true); for a non-table Text DAT it indexes lines.
dat_pathYesAbsolute path to the Text or Table DAT to read (e.g. '/project1/table1').
preview_rowsNoIf > 0, ALSO return the first N rows regardless of offset — a stable head preview alongside a deep page. 0 disables the separate preview.
include_headerNoFor table DATs, treat row 0 as a header: return it in `header` and make offset/limit index the data rows after it. Set false to treat every row as data.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds significant context: return structure (total counts, header, sliced page, preview, row_range), the lossy split caveat for cells with embedded tabs/newlines, and the advisory to probe live data. This goes well beyond the annotation baseline, though it doesn't cover error handling or invalid paths.

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, densely packed with essential information. The first sentence front-loads the purpose and return values; the second provides a critical caveat and points to write tools. Every word earns its place.

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?

With no output schema, the description fully explains the return values (total row/col counts, header, sliced page, preview, row_range) and covers the lossy split limitation. It also addresses pagination intent and the presence of sibling write tools, making it complete for a read tool of this complexity.

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 100% with rich descriptions. The description adds extra meaning by explaining how offset/limit interact with the header, how preview_rows provides a stable head preview, and when row_range appears. This clarifies parameter behavior beyond the schema's individual definitions.

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 clearly states this tool reads a Text or Table DAT with pagination, distinguishing it from sibling tools like edit_dat_content and set_dat_content. The verb 'Read' and resource 'DAT' are specific, and the pagination purpose is explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly names edit_dat_content/set_dat_content as the tools to use for writing, providing a clear alternative. It also explains when pagination is useful (to avoid flooding context) and warns about probing live data before relying on the table split.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_editor_contextGet TouchDesigner editor contextA
Read-only

Read compact project and editor state for references such as 'this node', 'the selected node', and 'place it here'. Returns only available project/build, perform mode, pane, active Network Editor, current/selected, rollover and viewport fields; unavailable UI fields are omitted with warnings instead of inferred. Does not dump project topology or mutate TouchDesigner.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context beyond the annotations. It discloses that only available fields are returned, unavailable UI fields are omitted with warnings instead of inferred, and that it does not mutate TouchDesigner. This informs the agent about the tool's non-inferring behavior and its side-effect-free nature, which is not fully captured by the readOnlyHint and destructiveHint annotations alone.

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 exceptionally concise, consisting of three sentences that front-load the purpose, then detail the return behavior, and end with exclusions. Every sentence adds value with no redundancy or filler. It is well-structured for quick comprehension.

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 zero-parameter, read-only tool with no output schema, the description is complete. It specifies the exact fields returned (project/build, perform mode, pane, active Network Editor, current/selected, rollover, viewport), how missing fields are handled (omitted with warnings), and what it does not do (dump topology or mutate). This fully equips an agent to understand the tool's behavior and limitations.

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?

The tool has zero parameters and the schema is empty (100% coverage). Per the rubric, a baseline of 4 is appropriate when there are no parameters to describe. The description does not need to detail parameters, and it doesn't, so it fully meets the baseline.

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 clearly states the tool's purpose: 'Read compact project and editor state for references such as 'this node', 'the selected node', and 'place it here'.' It specifies the exact verb (read), resource (project and editor state), and the use case (resolving references). It also distinguishes itself from topology-focused tools by explicitly saying it does not dump project topology, making it stand out among siblings.

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 implies when to use the tool: when you need compact editor context for reference resolution. It also provides an exclusion: 'Does not dump project topology,' signaling that it is not for topology queries. However, it does not explicitly name alternative tools, so the guidance is clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_inline_previewInline preview (snapshot)A
Read-only

Read-only one-shot inspection of a TOP: small base64 thumbnail (default 256² JPEG) + parent error sweep (BFS up parent_depth hops) + top-N changed-from-default parameters + cook stats. One call instead of chaining get_preview / get_td_node_errors / get_td_node_parameters when you just want to know 'is this op alive and healthy?'. Use get_preview/render_output for delivery-grade frames; this thumbnail is intentionally tiny + lossy.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path of the TOP to inspect.
widthNoThumbnail width in pixels (16–1024). Capped — this is for snapshots, not delivery.
formatNoThumbnail encoding. JPEG keeps the payload small (~8–20 KB at 256²); PNG when alpha matters.jpeg
heightNoThumbnail height in pixels (16–1024).
jpeg_qualityNoJPEG quality 1–100. Ignored when format is png.
parent_depthNoHow many upstream hops to also check for errors. 0 = just path; 1 = path + direct inputs.
max_changed_paramsNoTop-N parameters whose value differs from the operator default, ranked alphabetic. 0 = skip.
include_full_paramsNoIf true, also include the full parameters object (mirrors get_td_node_parameters).

Output Schema

ParametersJSON Schema
NameRequiredDescription
cookYes
pathYes
typeYes
aliveYes
errorsYes
familyNo
warningsNo
thumbnailYes
parametersNo
changed_paramsYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only and non-destructive, and the description adds meaningful behavioral context: 'one-shot', 'base64 thumbnail', 'BFS up parent_depth hops', 'intentionally tiny + lossy', and the inclusion of cook stats. It goes well beyond what annotations provide, and it does not contradict them.

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 compact yet information-dense. The first sentence front-loads the core purpose and output components; the second sentence gives usage guidance and a caveat. Every clause earns its place, and it is well-structured for quick comprehension.

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?

Given the tool's moderate complexity (8 params, output schema present, annotations present), the description is remarkably complete. It covers what the tool does, what it returns, when to use it, when not to use it, and the intentionally lossy nature of the preview. There is no significant missing behavioral context.

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 100%, so the baseline is 3. The description adds extra semantics by explaining the BFS error sweep in relation to parent_depth, the 'top-N changed-from-default' for max_changed_params, and that include_full_params mirrors get_td_node_parameters. It doesn't add detail for every parameter, but it enriches the most context-dependent ones.

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 uses a specific verb ('inspection') with a clear resource ('TOP') and enumerates exactly what the tool returns: thumbnail, error sweep, changed parameters, and cook stats. It also explicitly distinguishes itself from siblings like get_preview, get_td_node_errors, and get_td_node_parameters by framing it as a single composite call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit when-to-use ('when you just want to know is this op alive and healthy?') and when-not-to-use guidance ('Use get_preview/render_output for delivery-grade frames'). It also names the alternative tools, making the decision clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_module_helpGet module/class helpA
Read-only

Read-only: human-readable Markdown help (description, members, method signatures) for a TouchDesigner Python class or module, from the embedded knowledge base (offline). Returns formatted text, or {found:false, suggestions[]} of near-name matches if unknown. Use get_td_class_details instead when you need the same information as structured JSON to process in code.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesClass or module name to get help for, e.g. 'OP', 'App', 'Project'.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, but the description adds context: offline knowledge base, return format with formatted text or {found:false, suggestions[]}. This goes beyond the structured fields. No contradictions.

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 two sentences, front-loaded with 'Read-only', and contains no fluff. It efficiently conveys purpose, output, and alternative.

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?

Given no output schema, the description adequately explains return values (formatted text or found:false with suggestions). It covers source (offline), scope (class/module), and alternative, making it complete for a single-param read-only tool.

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?

The only parameter 'name' is fully described in the schema with examples. The description adds no extra parameter semantics beyond what the schema provides, so the baseline 3 applies.

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 clearly states the tool provides human-readable Markdown help for TouchDesigner Python classes/modules from an offline knowledge base. It distinguishes from get_td_class_details by specifying the output format (Markdown vs structured JSON).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names get_td_class_details as the alternative when structured JSON is needed, and implies use for human-readable output. It also mentions the fallback behavior with suggestions for unknown names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_node_state_runtimeGet operator runtime stateA
Read-only

Read-only: inspect a single operator's runtime telemetry — cook time, cook count, last-cook frame, resolution (TOPs), channel/sample counts (CHOPs), GPU memory usage, cook errors, and optional Info CHOP channels via include_info_chop. Complements get_td_performance (which aggregates cook times across a network) by providing deep per-op detail for the 'why is it black / why is it slow' diagnostic loop. Returns {path, type, family, cook_time_ms, cook_count, last_cook_frame, resolution, num_chans, num_samples, gpu_memory, info_chop?, errors[], warnings[], extra}. Attribute names are flagged UNVERIFIED and vary by TD build; the extra map records which attrs were actually present for live confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path of the operator to inspect (e.g. '/project1/noise1').
include_info_chopNoWhen true, create a temporary Info CHOP beside the operator and sample its channels for deeper per-op telemetry. Fail-forward: unreadable Info CHOP data becomes warnings.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYesEchoed operator path.
typeYesOperator type string (e.g. 'noiseTOP').
extraNoAdditional Info attributes found via getattr probing — allows live-validation to confirm real attr names.
errorsYesCook errors from op.errors(recurse=False).
familyNoOperator family: TOP, CHOP, SOP, DAT, COMP, MAT, etc.
warningsYesBridge-level warnings about unreadable attributes.
info_chopNoOptional Info CHOP telemetry when include_info_chop=true.
num_chansNoNumber of channels for CHOPs (op.numChans). UNVERIFIED.
cook_countNoTotal number of times the op has cooked (op.totalCooks / op.cookCount). UNVERIFIED.
gpu_memoryNoGPU memory used in bytes for TOPs (op.gpuMemory). UNVERIFIED attr name.
resolutionNo[width, height] for TOPs (op.width, op.height). UNVERIFIED.
num_samplesNoNumber of samples per channel for CHOPs (op.numSamples). UNVERIFIED.
cook_time_msNoLast cook duration in milliseconds (op.cookTime * 1000). UNVERIFIED attr name.
last_cook_frameNoAbsolute frame number of the last cook (op.cookAbsFrame). UNVERIFIED attr name.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only'. It adds valuable context beyond annotations: return shape, UNVERIFIED attribute names that vary by TD build, and the `extra` map for live confirmation. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense but every sentence earns its place: scope and fields, sibling context, and return/caveat details. It is front-loaded with 'Read-only' and well-structured, though slightly long for the minimalist ideal.

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 read-only telemetry tool with two simple parameters and strong annotation coverage, this description is complete. It covers what fields are returned, the diagnostic use case, safety, and the important UNVERIFIED attribute caveat. The Info CHOP fallback behavior is also documented in the schema.

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% for both parameters, so baseline 3 applies. The description mentions include_info_chop's purpose at a high level but adds no syntax or constraints beyond what the schema already states. path is straightforward and needs no extra explanation.

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?

Description opens with 'Read-only: inspect a single operator's runtime telemetry', giving a specific verb and resource, then lists concrete fields. It explicitly differentiates from sibling get_td_performance by noting the per-op vs network-aggregate scope.

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 states the diagnostic context ('why is it black / why is it slow') and names get_td_performance as the network-level aggregation tool. However, it presents the relationship as 'complements' rather than an explicit 'use X instead when Y', so it lacks a firm exclusion rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_operator_workflow_guideGet operator workflow guideA
Read-only

Read-only: return an embedded TouchDesigner operator workflow guide with common inputs, outputs, examples, and next-operator suggestions. For unknown operators, returns candidate guide ids instead of failing.

ParametersJSON Schema
NameRequiredDescriptionDefault
operatorYesOperator name, display name, or slug to look up.
next_limitNoMaximum number of next-operator suggestions to return.
include_examplesNoInclude Python examples, expressions, and generated usage patterns.

Output Schema

ParametersJSON Schema
NameRequiredDescription
foundYesTrue when the embedded knowledge base has a workflow guide.
guideNoOperator connection guide, when found.
examplesNoOperator examples, when requested and available.
operatorYesThe operator string from the request.
suggestionsYesCandidate operator ids when no exact guide is found.
nextOperatorsYesSuggested downstream operators.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only:' at the start. It adds valuable behavioral context by stating that for unknown operators it 'returns candidate guide ids instead of failing,' which is a meaningful edge-case behavior beyond the annotations. This goes beyond the annotation baseline.

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 two sentences, with the most important information front-loaded ('Read-only: return...'). It is concise, free of fluff, and every phrase adds value—the content, the examples, and the fallback behavior.

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?

Given that an output schema exists and annotations cover safety, the description is complete for a lookup tool. It communicates the core purpose, the return content, and an important edge-case behavior. No significant gaps remain; the schema handles parameter details and return structure.

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 coverage is 100%, so the baseline is 3. The description does not add parameter-specific semantics beyond what the schema already provides, though it implicitly relates to the 'operator' parameter via the fallback behavior. The schema fully documents each parameter, so no deduction is needed.

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 clearly states the tool's function: 'return an embedded TouchDesigner operator workflow guide with common inputs, outputs, examples, and next-operator suggestions.' This is specific with a verb and resource, and it distinguishes itself from sibling tools like get_td_docs or get_td_info by focusing on workflow guidance. The fallback behavior for unknown operators further clarifies the purpose.

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?

The description implies when to use the tool (when needing operator workflow guidance) but does not explicitly mention alternatives or when not to use it. It lacks exclusions or comparison with sibling tools like get_td_docs or search_operators, so the guidance is only implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_parameter_menuGet parameter menu valuesA
Read-only

Read-only: for each menu parameter of a node, live-fetch the menu option values (menuNames — the machine values you set with par.val), their human-readable UI labels (menuLabels), and the currently selected value (current). Use this before setting a Menu / StrMenu parameter so you pick a valid option instead of guessing. Values come straight from the running TouchDesigner build, so they are authoritative and even include dynamically-populated menus (device lists, file menus) — an empty menuNames on a known-menu parameter means the menu has not populated yet (the node has not cooked / the device is not enumerated), not that there is no menu. Requires TDMCP_BRIDGE_ALLOW_EXEC=1; when raw exec is unavailable it falls back to the bundled catalog and attaches a stale-catalog warning.

ParametersJSON Schema
NameRequiredDescriptionDefault
keysNoOnly report these parameter names (case-sensitive). Omit for all menu parameters.
pathYesFull path of the node whose parameter menus to read.
menu_onlyNoOnly return parameters that actually have a menu (Menu / StrMenu). Set false to see every parameter with its (usually empty) menu.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
pathYes
typeYes
warningsYes
parametersYes
stale_catalog_warningNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses valuable behavioral traits: values come live from the running build and are authoritative, dynamic menus are included, empty menuNames means not-populated-yet (not absence), requires TDMCP_BRIDGE_ALLOW_EXEC=1, and falls back to a bundled catalog with a stale-catalog warning. No contradiction with 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 front-loaded with 'Read-only' and the primary function, then provides dense but necessary context: usage scenario, authoritative source, empty-menu interpretation, and environment requirement. Every sentence earns its place; no filler or repetition.

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?

The description is complete for a read-only menu inspection tool. It explains what is returned, how to interpret results, environment prerequisites, fallback behavior, and dynamic menu nuances. With an output schema and annotations present, nothing essential is missing.

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 input parameters (path, keys, menu_only) are already well documented. The description focuses on output semantics (menuNames, menuLabels, current) and behavior rather than adding new meaning to the input parameters. Baseline 3 is appropriate.

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 clearly states the tool's function: live-fetch menu option values, labels, and current selection for each menu parameter of a node. It uses specific verbs and identifies the resource ('menu parameter of a node'), distinguishing it from sibling tools like get_td_node_parameters which cover all parameters generically.

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 explicitly instructs when to use the tool: 'Use this before setting a Menu / StrMenu parameter so you pick a valid option instead of guessing.' This is clear context, though it does not name alternative tools or state when not to use it, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_previewPreview a TOPA
Read-only

Capture a TOP node's current output as an inline PNG image so you can see what was created — read-only, it creates and modifies nothing. Returns the image (scaled to width×height) plus a caption with the node path and actual dimensions; only TOPs can be previewed (CHOP/SOP/etc. have no image). For a much cheaper check (is it alive / roughly what colour?) pass sample_grid=N to get an N×N grid of RGBA samples + per-channel stats as JSON instead of an image.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoWidth of the captured preview image in pixels (1–4096; default 640).
heightNoHeight of the captured preview image in pixels (1–4096; default 360).
job_idNoCollect a previously deferred capture (from a delay_frames call) by its job_id.
node_pathNoPath of the TOP node to capture. Required unless collecting a deferred job by job_id.
pre_pulsesNoParameters to pulse in the SAME frame immediately before capturing — e.g. reset a feedback loop or fire a timer so a transient is actually visible. All targets are validated before any fires (all-or-nothing).
sample_gridNoWhen set (2–16), return a lightweight N×N grid of RGBA samples + per-channel min/max/mean as JSON instead of an image — 10–50× cheaper. Use this when you only need to know whether the output is alive / roughly what colour it is, not its spatial detail.
delay_framesNoDefer the capture by N frames (to catch an event that appears a few frames after a pulse). Returns a job_id + wait_ms instead of the image; call get_preview again with that job_id to collect the result.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations already declare readOnlyHint=true, the description adds behavioral specifics: 'it creates and modifies nothing', and details the return format (image with caption, RGBA samples with per-channel stats). This goes well beyond the simple safety hints and sets expectations for output.

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 each serving a purpose: main action, output format/limitation, and cheaper alternative. It is front-loaded with the core purpose and avoids fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description thoroughly explains the direct image mode and sample_grid mode, but omits key usage paths such as delay_frames/job_id and pre_pulses, which are documented only in the schema. Since there is no output schema, the return values for these modes are not described in the description.

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?

The input schema provides exhaustive descriptions for all 7 parameters (100% coverage), so the description offers little additional parameter semantics; it mainly restates the sample_grid trade-off ('cheaper check') already captured in the schema.

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 clearly states a specific action: 'Capture a TOP node's current output as an inline PNG image'. It also distinguishes from other tools by noting 'only TOPs can be previewed' and by contrasting with the sample_grid variant.

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 explicitly gives a cheaper alternative ('For a much cheaper check... pass sample_grid=N') and an exclusion ('only TOPs can be previewed (CHOP/SOP/etc. have no image)'). However, it does not mention the deferred capture workflow via delay_frames/job_id, nor does it differentiate from the sibling get_inline_preview.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_td_class_detailsGet TD Python class detailsA
Read-only

Read-only: full STRUCTURED documentation for one TouchDesigner Python class (members + methods) from the embedded knowledge base (offline). Returns the class object, or {found:false, suggestions[]} of near-name matches if unknown. Use get_module_help instead when you want the same content as ready-to-read Markdown rather than structured JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesPython class name, e.g. 'OP', 'TOP', 'App', 'CHOP'.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only and non-destructive. The description adds valuable context: offline mode, return shape for unknown classes with {found:false, suggestions[]}, and the structured nature of the documentation. This exceeds the annotation baseline.

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?

Three concise sentences, front-loaded with the read-only designation and core purpose. Each sentence adds distinct value: what it returns, behavior for unknown names, and guidance on the alternative tool.

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 simple one-parameter tool, the description fully covers purpose, return format, error behavior, offline operation, and the relevant alternative. No output schema exists, so the description adequately fills that gap by describing the return object.

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 coverage is 100% with a clear description and examples for class_name. The tool description adds no extra parameter semantics beyond the schema, so baseline 3 is appropriate.

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 states a specific verb ('provides'), resource ('one TouchDesigner Python class'), and scope ('members + methods from embedded knowledge base'), clearly distinguishing it from the sibling get_module_help by contrasting structured JSON versus Markdown.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names get_module_help as the alternative when Markdown is preferred, and implies this tool is for structured JSON output. This gives the agent a clear choice criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_td_classesList TD Python classesA
Read-only

Read-only: list TouchDesigner Python API class names from the embedded knowledge base (works offline, never touches TD). Returns {classes[]} of name/displayName entries. Optionally filter by name. Use get_td_class_details or get_module_help to expand one class into its members and methods.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional case-insensitive substring to filter class names by.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and destructiveHint, and the description adds valuable context beyond that: it says the tool works offline and never touches TD, which is more specific than a generic read-only hint. It also discloses the return shape ({classes[]}), enhancing behavioral transparency.

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. It front-loads 'Read-only' and each sentence provides distinct value: purpose, behavior/return format, and alternative tool guidance.

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 simple list tool with one optional parameter and clear annotations, this description is complete. It covers what it does, safety profile (offline/read-only), return format, and how to proceed for more detail, without needing an output schema.

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 coverage is 100% for the single 'filter' parameter, which already includes a description ('case-insensitive substring'). The description's 'Optionally filter by name' adds minimal extra meaning, so the baseline of 3 is appropriate—schema does the heavy lifting.

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 clearly states the tool lists TouchDesigner Python API class names from the embedded knowledge base, with a specific verb ('list') and resource ('class names'). It also explicitly distinguishes from siblings by pointing to get_td_class_details and get_module_help for expansion, making its purpose unique.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: use this tool for listing class names, and use get_td_class_details or get_module_help to expand a class into members/methods. It also notes that it works offline and never touches TD, giving clear context for when it's appropriate to invoke.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_td_docsGet build-aware TouchDesigner docsA
Read-only

Read-only: resolve compact TouchDesigner operator, Python API, or concept documentation from the installed OfflineHelp corpus first, then the embedded KB. Returns section ids for bounded drill-down plus installed/running build provenance. Web fallback is off by default and, when explicitly enabled, is restricted to docs.derivative.ca and labeled as latest-web rather than installed-build truth. Never accepts a filesystem path or returns raw HTML.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoDocumentation kind: auto, operator, python, or concept.auto
queryYesOperator type, Python class/page id, or concept text; never a filesystem path.
sourceNoSource policy: installed, embedded, web, or local-first auto.auto
sectionNoStable heading id or an exact unique section title from sections_available.
max_charsNoMaximum returned documentation body characters (1000-12000).
web_fallbackNoAllow auto mode to try the Derivative web API when the server gate is enabled.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
queryYes
statusYes
contentNo
warningsYes
candidatesYes
provenanceYes
content_charsYes
kind_requestedYes
selected_sectionNo
content_truncatedYes
sections_availableYes
sections_truncatedYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and destructiveHint, but the description adds valuable behavior beyond those: the source search order, the restriction of web fallback to a specific domain with 'latest-web' labeling, and the guarantee of never accepting filesystem paths or returning raw HTML. This enriches the agent's understanding without contradiction.

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?

Three dense, front-loaded sentences. Every sentence adds critical information: read-only nature and sources, return contents and provenance, web fallback policy, and hard constraints. No filler or repetition of schema fields.

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 6-parameter tool with an output schema, the description covers all key aspects: what it does, where it looks, what it returns, constraint boundaries, and fallback behavior. The output schema handles return-value details, so no further explanation is needed. It is fully contextualized within the large sibling set.

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 description coverage is 100%, so the baseline is 3. The description adds extra meaning by explaining how 'section ids' enable bounded drill-down and by tying the 'query' to operator/Python/concept resolution. It also clarifies the 'web_fallback' and 'source' semantics beyond the schema, which aids parameter selection.

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 'Read-only: resolve compact TouchDesigner operator, Python API, or concept documentation' — a specific verb, resource, and scope. It distinguishes itself from sibling tools by naming the OfflineHelp corpus, embedded KB, and restricted web fallback, and by stating what it never does (filesystem paths, raw HTML).

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 states the source resolution order (installed OfflineHelp first, then embedded KB) and when web fallback is applicable ('off by default, when explicitly enabled'), plus its restriction to docs.derivative.ca. It does not explicitly name alternative sibling tools for different doc searches, but the context implies this is the primary docs-resolution tool, so guidance is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_td_infoGet TouchDesigner infoA
Read-only

Read-only health check + TouchDesigner server info. Returns {connected, endpoint, touchdesigner version info, knowledge-base stats, bridge_stale?} and changes nothing. Use this first to confirm the bridge is reachable; it succeeds even when TD is offline, reporting connected:false with the reason. Also warns when the running Python bridge is older than this build (a common gotcha — editing td/ doesn't reload the running bridge), pointing you at reload_bridge.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial context beyond that: it succeeds with connected:false when TD is offline, reports a reason, and warns about bridge version mismatches. These are behavioral traits not inferable from annotations alone, making the description highly transparent.

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 concise sentences, front-loaded with the core purpose. Every sentence provides value: what it does, what it returns, when to use it, and an edge-case warning. No filler or repetition, achieving high information density without verbosity.

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 tool with no parameters and no output schema, the description fully covers the essential context a caller needs: return fields, offline behavior, and the stale-bridge gotcha with a pointer to the corrective tool. It is complete for its simplicity and leaves no major operational ambiguity.

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?

The tool takes zero parameters, so the schema is trivially complete with no description needed for parameter syntax. The description implicitly confirms this by focusing entirely on output. Following the baseline for 0 params (4), this is appropriate even though no param-level detail is added.

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 clearly states the tool is a 'Read-only health check + TouchDesigner server info' with a specific verb and resource. It lists the exact return fields and explicitly says 'changes nothing', distinguishing it from mutation tools. It also differentiates itself by advising 'Use this first', setting it apart from diagnostic siblings like get_td_performance or get_bridge_logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to 'Use this first to confirm the bridge is reachable', providing clear when-to-use guidance. It also explains behavior when TD is offline and warns about a stale bridge, pointing to reload_bridge as the alternative/fix. This gives the agent actionable decision logic without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_td_node_errorsGet node errorsA
Read-only

Read-only: check one node (or, with recursive:true, its whole sub-network) for cook/compile errors and warnings. Pass summary:true for grouped counts instead of the full list. Returns {total, errors[] or by_type}. For a large network prefer summarize_td_errors, which clusters errors by shared cause and points at the worst-offending nodes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path of the node (or network root) to check for errors.
summaryNoReturn only counts grouped by error type instead of the full error list.
recursiveNoIf true, check the whole network under `path`; otherwise just that node.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYesThe node or network root that was checked, echoing the request.
totalYesTotal number of errors/warnings found (0 means clean).
errorsNoFull mode: each error/warning with its node path, type and message.
by_typeNosummary mode: count of errors grouped by error type.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description aligns with 'Read-only'. It adds behavioral context beyond annotations: explains recursive sub-network traversal, summary mode, and the return structure. This enriches understanding without contradicting annotations, though it doesn't detail performance implications or edge cases.

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?

Three sentences, each adding distinct value: the read-only nature and scope, the summary grouping behavior, and the alternative tool for large networks. Front-loaded with 'Read-only' and the primary purpose; no filler.

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?

With an output schema present, the description is complete for the tool's complexity: covers usage with recursive and summary, return format, and a specific alternative tool for large networks. It addresses all key aspects an agent would need to invoke it correctly.

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 100% and descriptions are provided for all parameters. The tool description adds value by explaining the combined effect of recursive and summary, and clarifies the return format ({total, errors[] or by_type}), which enriches the schema definitions without redundancy.

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 clearly states the tool reads node errors and warnings, with a specific verb ('check') and resource ('node or sub-network'). It distinguishes itself from the sibling summarize_td_errors by mentioning the alternative for large networks, making its purpose and scope unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to prefer summarize_td_errors for large networks, providing an alternative and the reason (clustering by shared cause, pointing at worst-offending nodes). Also describes when to use recursive and summary parameters, giving clear context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_td_node_flagsGet node flags & wiring (why-is-it-black inspector)A
Read-only

Read-only: report each node's operator flags (bypass / render / display / lock / allowCooking / clone) plus index-aware input wiring, network position, color and comment — the signals that explain a black/blank output that a parameter dump hides. Scan one node or a subtree (recursive); set only_problems to surface just the ops whose flags or cook errors would suppress output. Returns structuredContent for code to process.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path of the node to inspect, or the COMP whose children to scan when recursive is set.
max_nodesNoCap the number of nodes scanned during a recursive subtree walk.
recursiveNoAlso scan the immediate children (depth 1) of path. Use this on a container to diagnose its whole network in one round-trip.
only_problemsNoReturn only nodes whose flags or cook errors would suppress output: bypass on, allowCooking off, or a cook error present. Conservative — display/render are reported but never used to filter (they default off on many visible ops).

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
nodesYes
probeNo
scannedYes
warningsYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavior beyond this: it enumerates the specific flag and wiring data returned, explains the recursive subtree scanning, and notes the conservative filtering behavior of only_problems. It also mentions structuredContent for code processing. This goes beyond merely repeating 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, front-loaded with the core purpose and read-only guarantee. It packs details about flags, wiring, position, color, comment, recursive scanning, and the only_problems filter without any filler or redundancies.

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?

Given the presence of an output schema and 100% parameter coverage, the description fully covers the tool's purpose, usage patterns, and behavioral nuances. It explains what the tool returns (flags, wiring, position, color, comment), how to scan subtrees, and how to focus on problem nodes, making it complete for an agent to select and invoke correctly.

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 mentions recursive and only_problems but essentially paraphrases the schema's own descriptions, adding no net-new parameter meaning. It does not add syntax or formatting details beyond what the schema already provides. Therefore, the description adds marginal value over the schema.

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 states a specific verb ('report') and resource ('each node's operator flags... plus index-aware input wiring, network position, color and comment'). The title adds a clear diagnostic purpose ('why-is-it-black inspector'), and the content distinguishes it from sibling tools like get_td_node_parameters or get_td_topology by focusing on output-suppression signals.

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 clarifies when this tool is valuable: 'the signals that explain a black/blank output that a parameter dump hides.' It also explains the recursive scan mode and the only_problems filter. However, it does not explicitly name alternatives or state when not to use it, stopping short of a full when/when-not comparison.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_td_node_parametersGet node parametersA
Read-only

Read-only: read the current parameters (and inputs/outputs) of one node. Returns {path, type, name, parameters, inputs, outputs}. Pass keys to project specific parameters or omit_io:true to drop the inputs/outputs lists. Use compare_td_nodes to diff two nodes' parameters at once. Token economy: pass keys to fetch only the parameters you care about and omit_io:true to drop inputs/outputs — a full parameter dump is large.

ParametersJSON Schema
NameRequiredDescriptionDefault
keysNoOnly return these parameter names (case-sensitive). Omit to return all parameters.
pathYesFull path of the node to inspect.
omit_ioNoDrop the inputs/outputs lists from the result to save context.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
pathYes
tagsNo
typeYes
colorNo
flagsNo
nodeXNo
nodeYNo
errorsNo
familyNo
inputsNo
viewerNo
commentNo
outputsNo
wires_inNo
parametersYes
operator_idNo
already_existedNo
parameter_warningsNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description goes beyond by warning that a full parameter dump is large, explaining the token economy rationale, and disclosing that inputs/outputs are included unless omitted. This adds practical behavioral context not captured in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose. The token economy point is repeated twice (keys and omit_io), which is slightly redundant, but the description remains efficient and well-structured.

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?

Given the simple scope (3 params, full schema coverage, output schema exists, annotations present), the description fully covers purpose, usage, alternatives, and performance considerations. No critical gaps.

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?

All parameters have schema descriptions (100% coverage), so baseline is 3. The description adds meaning beyond the schema by explaining why to use keys and omit_io (token economy) and that a full dump is large, which ties parameter choices to usage context.

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 clearly states the verb ('read') and resource ('current parameters of one node'), and distinguishes it from siblings by explicitly naming compare_td_nodes for diffing. It also lists the exact return fields, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names compare_td_nodes as the alternative for diffing two nodes, and explains when to use keys and omit_io for token economy. This gives clear context on when to use this tool vs. alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_td_nodesList TouchDesigner nodesA
Read-only

Read-only: list the DIRECT child nodes of one COMP. Defaults to a compact summary (count + type breakdown + sample paths); pass detail_level:"full" or path_only:true for the complete list, and pattern to filter by name. Returns {count, by_type/sample or paths/nodes}. Use this to browse one level; use find_td_nodes to search recursively and by operator type, or get_td_topology when you also need the connections between nodes. Token economy: keep the default compact summary and scope with pattern; only request the full list when you truly need every path, and avoid re-listing a path you already inspected.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoCap the number of nodes returned.
patternNoCase-insensitive filter on node name/path. Supports '*' wildcards (e.g. 'text*', '*noise*').
path_onlyNoReturn only the list of node paths, dropping type/name.
parent_pathNoParent COMP whose direct children should be listed./project1
detail_levelNo'summary' (default) returns a count, a type breakdown and the first few paths; 'full' returns every node. Use 'full' (or path_only) when you need the complete list.summary

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoSummary mode: note that the list was sampled, with how to get all of it.
countYesNumber of children matched (before any limit truncation).
nodesNoFull mode: every matched node as {path, name, type}.
pathsNopath_only mode: the matched node paths and nothing else.
sampleNoSummary mode: paths of the first few matched nodes.
by_typeNoSummary mode: count of matched nodes per operator type.
truncatedYesTrue if `limit` cut the list short of the full match count.
parent_pathYesThe parent COMP whose children were listed.
detail_levelYesWhich detail level produced this result, echoing the request.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces and extends this by explaining the output behavior (compact summary vs full list), return shape, and operational caveats like avoiding re-listing inspected paths. It fully discloses the tool's scope and side-effect-free nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and contains no filler, but the token economy and alternative-tool guidance spans multiple sentences and could be tightened. Every sentence still adds value, so it's above average but not maximally compact.

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?

Covers purpose, output shape, default behavior, parameter choices, alternatives, and best practices, which is complete for a read-only list tool. The rich schema and annotations handle the remaining details, and no critical operational context is missing.

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 100% with detailed parameter descriptions, satisfying the baseline, but the description adds meaning by explaining how detail_level/path_only/pattern relate to output modes and filtering, and by noting the default parent scope. It doesn't restate everything in the schema but provides enough additional context to select and combine parameters effectively.

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?

Description clearly states the action ('list the DIRECT child nodes of one COMP'), defines the scope (direct children, one level), and explicitly distinguishes this from sibling tools find_td_nodes and get_td_topology. The verb+resource+scope combination is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use and when-not-to-use guidance: use for one-level browsing, use find_td_nodes for recursive search, use get_td_topology for connections. It also offers token economy recommendations about when to request full vs summary output, which is actionable context beyond the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_td_performanceGet network performanceA
Read-only

Read-only: report cook times under a network (recursively by default, slowest node first) and warn about nodes that exceed the frame budget. Returns {targetFps, frameBudgetMs, totalCookMs, nodes[], warnings[]} and changes nothing. Use this to just measure; use optimize_performance when you want suggestions and the option to auto-shrink the slow TOPs.

ParametersJSON Schema
NameRequiredDescriptionDefault
recursiveNoMeasure every descendant (true, default) so cook time inside generated containers is counted, not just the root's direct children.
root_pathNoNetwork root to measure cook times under./project1
target_fpsNoFrame-rate target used to flag slow nodes.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYesThe network root that was measured, echoing the request.
nodesYesPer-node cook times, slowest first.
warningsYesBudget warnings: one line per node whose cook time exceeds the frame budget, plus a final aggregate line when the summed total cook time exceeds the budget. Empty when everything is within budget.
targetFpsYesThe frame-rate target used to derive the per-frame budget.
totalCookMsYesSum of the measured nodes' last cook times, in milliseconds.
frameBudgetMsYesMilliseconds available per frame at the target FPS (1000 / targetFps).

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states 'Read-only' and 'changes nothing,' reinforcing the existing annotations (readOnlyHint=true, destructiveHint=false). It goes beyond annotations by detailing the return shape and ordering behavior ('slowest node first'), adding valuable context about what the tool produces without modifying state.

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 tightly packed sentences deliver all critical information: read-only nature, recursive behavior, ordering, frame-budget warnings, return shape, and explicit usage alternative. No wasted words; information is front-loaded.

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?

The description is complete for this tool: it covers purpose, usage, behavioral guarantees, and parameter implications. The output schema already documents the return structure, so the description's mention of key fields is sufficient. It also appropriately cross-references the alternative tool, making the decision context clear.

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 description coverage is 100%, so the parameters are already documented. The description adds semantic context by mentioning 'recursively by default' (matching the recursive parameter) and 'warn about nodes that exceed the frame budget' (linked to target_fps). This enriches the parameter understanding without being fully redundant.

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 clearly states a specific action: 'report cook times under a network (recursively by default, slowest node first) and warn about nodes that exceed the frame budget.' It also distinguishes itself from the sibling tool optimize_performance by explicitly contrasting measurement-only behavior with suggestion/auto-shrink functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance: 'Use this to just measure; use optimize_performance when you want suggestions and the option to auto-shrink the slow TOPs.' This clearly separates the tool from its closest alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_td_topologyGet network topologyA
Read-only

Read-only: return the nodes AND the connections (wiring) under a network root, flagging obvious structural issues. Returns {nodeCount, connectionCount, issues[], topology}. Use this when you need how nodes are wired together; use get_td_nodes/find_td_nodes when you only need the node list without connections, or snapshot_td_graph when you also want each node's parameters captured for diffing. Token economy: point it at a specific network root rather than the project root, and leave recursion off unless you need nested networks.

ParametersJSON Schema
NameRequiredDescriptionDefault
root_pathNoNetwork root to map./project1

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYesThe network root that was mapped, echoing the request.
issuesYesPlain-language structural problems detected, e.g. dangling or orphaned nodes.
topologyYesThe full graph: the node list and the connection list.
nodeCountYesTotal number of nodes found under the root.
connectionCountYesTotal number of wires (connections) between those nodes.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only'. It adds valuable behavioral context: returns a structured object with nodeCount, connectionCount, issues[], and topology, and flags structural issues. The recursion advice is useful but not fully backed by the schema (no recursion parameter), preventing a perfect score.

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 compact and well-structured: three sentences that front-load the read-only nature and return shape, then provide usage alternatives and operational advice. Every sentence contributes value with no redundancy.

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?

Given that an output schema exists and annotations cover safety, the description is complete: it states purpose, return structure, explicit alternatives, and practical usage constraints. The only minor gap is the unbacked recursion reference, but overall the description fully equips an agent to select and invoke the tool correctly.

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 100% for the single root_path parameter, providing a basic description. The description adds meaningful guidance by advising users to point at a specific network root rather than the project root for token economy, which goes beyond the schema. The mention of recursion is slightly ambiguous since no recursion parameter appears in the schema.

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 clearly states the tool returns nodes and connections under a network root, with the specific verb 'return' and resource 'network topology'. It also distinguishes itself from siblings by explicitly mentioning get_td_nodes/find_td_nodes and snapshot_td_graph as alternatives for different needs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance ('Use this when you need how nodes are wired together') and names alternative tools for other scenarios. It also gives practical token-economy advice: target a specific network root and avoid recursion unless needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_technique_detailGet technique detailA
Read-only

Read-only: inspect embedded TouchDesigner technique packs and individual techniques, with optional code snippets and setup/workflow details.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoTechnique pack category id or display name.
include_codeNoInclude code snippets in technique detail results.
technique_idNoTechnique id or name inside the selected category.
include_setupNoInclude setup/workflow guidance in technique detail results.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
packNo
packsNo
techniqueNo
techniquesNo
nextToolHintsYes
availableTechniqueIdsNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description reinforces this with 'Read-only' and adds the context of 'embedded' technique packs, but does not disclose additional behavioral details such as return format or potential errors. No contradiction with 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?

Single sentence, front-loaded with the read-only safety qualifier, and precise with no filler words.

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 the simple read-only nature, the presence of an output schema, and annotations covering safety, the description is largely complete. It could be more explicit about what constitutes a 'technique pack' or navigation between category and technique_id, but it suffices for basic use.

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 coverage is 100%, so the baseline is 3. The description mentions optional code snippets and setup/workflow details, mapping to include_code and include_setup, but does not add meaning beyond the schema's own property descriptions.

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 clearly states the tool inspects embedded TouchDesigner technique packs and individual techniques, using the specific verb 'inspect' and naming the resource scope. This distinguishes it from sibling tools by focusing on technique pack internals.

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?

Provides clear context for when to use this tool, i.e., for read-only inspection of embedded technique packs and techniques. However, it does not explicitly mention alternatives or when-not to use it, falling short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tutorialGet TouchDesigner tutorialA
Read-only

Read-only: list embedded TouchDesigner tutorials, search tutorial metadata/content, or retrieve one by id/name. With include_content, the content is capped (~30K chars) and comes with a sections_available list; pass a section title to drill into just that part instead of pulling the whole document.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional tutorial id or name to retrieve.
limitNoMaximum tutorials to return for list and search modes.
queryNoOptional search text to match against embedded tutorial metadata and content.
sectionNoWith include_content, drill into one section by title (from sections_available) instead of the intro overview — the cheap way to read a long tutorial.
include_contentNoWhen true, include tutorial content (capped, with a sections_available list) in returned entries.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
nameNo
countYes
queryNo
tutorialNo
tutorialsNo
nextToolHintsYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly declares read-only behavior, matching the annotations, and adds valuable behavioral details: content cap (~30K chars), sections_available list, and section-based drilling. This goes beyond the annotation to set expectations for return content.

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 with no filler. The first sentence covers primary operations concisely; the second efficiently explains the include_content behavior and section guidance. Every word earns its place.

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 read-only retrieval tool with a rich output schema, the description covers the main usage modes and the special content-handling behavior. The only minor gap is explicit differentiation from similar sibling tools, but the description is otherwise complete.

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?

While the schema already documents all 5 parameters, the description adds the relationship between include_content and section, explaining the content cap and sections_available list. This enhances understanding beyond the schema's individual parameter descriptions.

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 clearly states three concrete actions (list, search, retrieve) with a specific resource (embedded TouchDesigner tutorials) and notes retrieval by id/name. This distinguishes it from generic doc retrieval tools like get_td_docs.

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 explains when to use list, search, or retrieve modes and gives guidance on using include_content with section to avoid pulling full documents. However, it does not explicitly compare against sibling tools like get_td_docs or search_touchdesigner_knowledge.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_to_particlesImage → particlesA

Turn any image (a file path or an existing TOP) into a GPU particle field: each particle's rest position is its pixel in the source and (by default) its colour is sampled from that pixel. A spring force pulls particles toward their rest pixel; an optional audio chain scatters them away and lets them spring back, producing the iconic 'image dissolves into points on the drop, then re-forms' VJ look. Builds a new baseCOMP holding a downsampled source TOP, a one-shot rest-position GLSL TOP, velocity + position feedback loops (RGBA32float), an instanced Geometry COMP, Render, and a Null output. This is the only particle tool seeded by image/video pixels (rest positions + per-pixel colour); pick a sibling instead when particles are NOT driven by an image: create_gpu_particle_field for a free noise/curl/gravity drift field, create_particle_flock for boids/flocking, create_pop_particle_system for TouchDesigner's native POP particle network, create_particle_system for a simple CPU emitter. Default source is TD's stock Banana.tif; default audio source is 'none' (image idles statically) — 'file' and 'device' are opt-in (the latter may pop the macOS mic-permission dialog). Returns a summary plus a JSON block with the container path, particle count, output path, exposed controls, node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
dampNoPer-frame velocity damping.
sideNoParticle grid edge; count = side². 192 → 36 864 particles. The source TOP is resampled to side×side so each texel maps 1:1 to one particle.
sourceNoImage source: { kind:'file', path } loads a moviefileinTOP, { kind:'top', path } references an existing TOP. Default uses TD's stock Banana.tif from app.samplesFolder.
audio_fileNoAudio file path when audio_source='file'.
color_modeNo'image' = particle colours sampled from source pixels (via instancecolorop). 'mono' = white points. 'tint' = single colour multiplied by luminance.image
tint_colorNoRGB used when color_mode='tint'.
parent_pathNoParent network where the container is created./project1
audio_sourceNoDrives the scatter impulse. 'none' = image idles statically. 'file' = audiofileinCHOP (set audio_file). 'device' = audiodeviceinCHOP (opt-in; may pop the macOS mic-permission dialog).none
particle_sizeNoRadius of each instanced dot (TOP instancing applies translate only, so size lives on the source sphere SOP).
expose_controlsNoWhen true, expose live PointSize / SpringStiff / ScatterStr / Damp / Zoom knobs.
scatter_strengthNoAudio impulse magnitude. 0 = particles sit perfectly on the image.
spring_stiffnessNoForce pulling each particle toward its rest pixel. Higher snaps back faster.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description discloses that it builds a new baseCOMP with a specific node structure, may pop the macOS mic-permission dialog when using audio device, resolves sentinel paths, and returns a JSON block with container path, particle count, output path, etc. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph that is front-loaded with the purpose and includes only relevant details. It is appropriately sized for the tool's complexity, though it could be better structured with separations for defaults, return value, and alternatives. Still, every sentence earns its place.

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 12-parameter tool with no output schema, the description is exceptionally complete: it explains the pipeline, default behaviors, return format, permission caveats, and even path resolution quirks ('bare 'Banana.tif' does NOT resolve'). The agent has everything needed to select and invoke the tool correctly.

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 high-level context for some parameters (e.g., default source is Banana.tif, audio_source options) but mostly relies on the schema. It does not introduce meaning beyond the schema, which is acceptable given full coverage.

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 states a specific verb+resource: 'Turn any image (a file path or an existing TOP) into a GPU particle field'. It details the mechanism (rest position per pixel, colour sampling, spring force) and explicitly distinguishes itself from siblings: 'This is the only particle tool seeded by image/video pixels... pick a sibling instead when particles are NOT driven by an image'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use and when-not-to-use guidance is given, naming four alternative tools with their use cases: 'create_gpu_particle_field for a free noise/curl/gravity drift field, create_particle_flock for boids/flocking, create_pop_particle_system for TouchDesigner's native POP particle network, create_particle_system for a simple CPU emitter'. It also clarifies default behavior and opt-in audio sources, including a permission caveat.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_isf_shaderImport ISF shaderA

Create a new TouchDesigner system container containing an ISF (.fs) shader as a GLSL TOP, companion DATs, and optional live controls. Accepts raw source, a local file path, or an http(s) URL; URL fetches are bounded by fetch_timeout_ms. Returns the container/GLSL/output paths, generated controls, provenance, warnings for inputs that need manual wiring, and an inline preview when capture_preview=true. Use create_glsl_shader for hand-written GLSL or import_shadertoy for Shadertoy sources.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSystem container name (sanitized). Defaults to ISF DESCRIPTION or 'isf_shader'.
sourceYesISF (.fs) source: raw shader text, a local file path, or an http(s) URL.
resolutionNoGLSL TOP output resolution [width, height].
parent_pathNoContainer parent COMP path./project1
source_kindNoOverride the source sniffer; 'raw' skips IO.auto
pixel_formatNoPixel format for the generated GLSL TOP.rgba8
capture_previewNoCapture an inline preview after the shader is built; disable for faster headless runs.
expose_controlsNoExpose ISF inputs as live custom controls on the generated system container.
control_defaultsNoOverride the ISF DEFAULT for any input at build time.
fetch_timeout_msNoTimeout in milliseconds for URL sources; local files and raw source do not need network access.
channel_overridesNoOverride default placeholder noise for ISF image/audio inputs.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey non-read-only, non-destructive, and open-world traits. The description adds useful context: URL fetches are bounded by fetch_timeout_ms, the tool returns specific artifacts (container/GLSL/output paths, controls, provenance, warnings, conditional preview), and it creates companion DATs. This meaningfully goes beyond the structured 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?

Three sentences, each earning its place: first states core creation and output, second covers input modes and network timeout, third lists return values and alternatives. Front-loaded with the essential action, no filler.

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?

No output schema exists, so the description compensates by enumerating return contents (paths, controls, provenance, warnings, inline preview). It covers creation scope, input flexibility, and alternatives. Nested parameter behavior is left to the schema, but overall it provides a solid decision-making picture.

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 parameters are already well-documented. The description echoes source modes (raw/file/URL) and mentions fetch_timeout_ms and capture_preview, but adds little new meaning beyond the schema's own per-parameter descriptions.

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 clearly states the tool creates a new TouchDesigner system container with an ISF shader as a GLSL TOP plus companion DATs. It distinguishes from siblings by explicitly naming create_glsl_shader and import_shadertoy as alternatives for different source types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It specifies when to use the tool (for ISF .fs shaders from raw/text/file/URL) and provides explicit alternatives for hand-written GLSL and Shadertoy sources. It also notes runtime considerations like fetch_timeout_ms and capture_preview for headless runs, giving clear selection and usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_modelImport 3D modelA

Import a 3D model file (.obj/.fbx/.usd) and render it to a TOP: a File In SOP reading model_path, fed into a Geometry COMP, with a Camera, a Light, and a Render TOP output as a Null. Omit model_path to fall back to a default primitive so the network still builds with no dependencies. Exposes RotateY (spin), Zoom (camera distance) and Scale knobs — the imported-model sibling of create_3d_scene.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoomNoCamera distance from the model along Z (exposed as the Zoom knob).
scaleNoUniform scale applied to the model (1 = imported size).
rotate_yNoInitial rotation of the model around Y in degrees (exposed as the RotateY knob).
model_pathNoPath to a 3D model file (.obj/.fbx/.usd) read by a File In SOP. Omit to fall back to a default primitive so the network still builds and previews with no file dependency.
parent_pathNoParent COMP path the self-contained 'model' container is created inside./project1
expose_controlsNoExpose live RotateY (spin), Zoom (camera distance) and Scale knobs.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description reveals the exact network structure: File In SOP, Geometry COMP, Camera, Light, Render TOP output as a Null. It also discloses the fallback behavior when model_path is omitted and the exposed knobs. This is rich behavioral context with no contradictions.

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 a single, efficient sentence that front-loads the core action, then details the network, fallback, and sibling relationship. Every clause earns its place with no redundant words.

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?

The description covers the main purpose, network construction, fallback behavior, exposed controls, and the sibling relationship. It does not mention parent_path or container creation, but the schema fully covers those, and there is no output schema to explain. Overall, it is complete for a creation tool with good annotations.

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%, and each parameter already has a detailed description. The tool description adds no new parameter semantics beyond referencing model_path and the knob names, which the schema already documents. Baseline 3 is appropriate.

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 states a specific verb+resource: 'Import a 3D model file (.obj/.fbx/.usd) and render it to a TOP.' It also clearly differentiates from the sibling tool create_3d_scene by calling itself 'the imported-model sibling,' so an agent can tell them apart.

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 names the alternative create_3d_scene explicitly and distinguishes the use case (importing a model file vs. creating a scene). However, it does not explicitly state 'when not to use' or provide a direct comparison of scenarios, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_recipe_bundleImport recipe bundleA
Destructive

Import recipes from a portable JSON bundle into a recipe directory. The inverse of export_recipe_bundle: each recipe is validated before it is written, so a malformed bundle fails loudly instead of corrupting the directory. Writes files (destructive).

ParametersJSON Schema
NameRequiredDescriptionDefault
out_dirYes
overwriteNo
bundle_fileYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint annotation, the description adds the validation behavior: each recipe is validated before write, so a malformed bundle fails loudly instead of corrupting the directory. This is useful behavioral context. The final sentence reinforces the destructive nature already noted in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences and front-loads the core purpose. The last sentence ('Writes files (destructive)') is somewhat redundant with the destructiveHint annotation, but overall the description is concise and without unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, validation, and destructive behavior, but it lacks details on the overwrite parameter's behavior and any return value. Given the sparse schema and absence of an output schema, a bit more explanation of these operational aspects would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only indirectly maps 'bundle' to bundle_file and 'directory' to out_dir. The optional 'overwrite' parameter is not mentioned at all, leaving the agent without guidance on its semantics or the consequences of setting it true.

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 clearly states the tool imports recipes from a portable JSON bundle into a recipe directory. It explicitly identifies the inverse relationship with export_recipe_bundle, which differentiates it from sibling tools.

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 names export_recipe_bundle as the counterpart, giving clear context for when to use this tool. It also implies limitations by specifying 'portable JSON bundle', which separates it from URL-based imports, though it doesn't explicitly list exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_recipe_from_urlImport recipe from URLA
Destructive

Fetch, validate, and import a recipe or recipe-bundle JSON from an HTTPS URL into a local recipes directory (host-allowlisted, size-capped).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesHTTPS URL of a recipe or recipe-bundle JSON (e.g. a git-raw link).
out_dirYesRecipe directory to write imported recipes into.
max_bytesNoMaximum download size in bytes (default 1 MiB, hard cap 10 MiB).
overwriteNoOverwrite existing recipe files.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey destructiveness (destructiveHint=true) and write semantics (readOnlyHint=false). The description adds useful behavioral context beyond annotations: it fetches from the network (openWorldHint), validates content, and is subject to 'host-allowlisted, size-capped' limits. It does not mention overwrite behavior or failure modes, but the added constraints are valuable.

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 a single, front-loaded sentence that conveys the operation, constraints, and expected input format with zero redundant words. Every element ('fetch', 'validate', 'import', 'host-allowlisted', 'size-capped') earns its place.

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 the tool's relative simplicity, the description combined with full schema coverage and annotations is substantial. It clarifies the URL source, destination directory, and constraints, and the annotations cover destructive/write behavior. The lack of an output schema and absence of return-value description are minor gaps for a straightforward import tool.

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 some contextual meaning (e.g., 'host-allowlisted' relates to url, 'size-capped' relates to max_bytes), but it does not introduce new syntax or deepen parameter understanding beyond the schema's per-parameter descriptions.

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 states a specific verb ('Fetch, validate, and import') with a clear resource ('recipe or recipe-bundle JSON from an HTTPS URL') and destination ('local recipes directory'). It also adds distinguishing constraints ('host-allowlisted, size-capped') that differentiate it from sibling tools like 'import_recipe_bundle'.

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 clearly implies the use case (importing recipe JSON from a remote HTTPS URL) and notes important constraints (host allowlist, size cap). However, it does not explicitly mention alternatives or when not to use this tool, so it lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_setlistImport a setlist from the vaultA

READ a setlist note (frontmatter tracks: an array of recipe ids or {title, recipe, preset, bpm, notes} objects, OR the newer scenes: an array of {id, cue, recipe, preset, steps, …} scene objects) and build each scene's recipe — CREATING the operators in TouchDesigner under parent_path — to pre-stage a show's visuals. Recipe ids resolve against both built-in and vault recipes; preset-only and cue-only scenes are skipped (recall them live via setlist_runner instead). Use dry_run:true to validate the note without touching TD. Returns the resolved note path and the lists of built vs skipped tracks. Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesSetlist note: a vault-relative path, or a name resolved against the Setlists/ folder.
dry_runNoOnly resolve and report what would be built; do not touch TouchDesigner.
parent_pathNoCOMP to build each track's recipe inside./project1

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=false and destructiveHint=false, but the description goes further by disclosing that operators are created, some scenes are skipped, dry_run can avoid side effects, and what is returned. It also notes the environment prerequisite, adding value beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main action and every sentence carries operational value, but it is dense with parentheticals and long clauses. It remains appropriate for the complexity, but is slightly less crisp than the two-sentence ideal.

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?

With no output schema, the description explicitly mentions the return value (resolved note path and built vs skipped lists). It also covers alternative tool usage, dry_run behavior, excluded scene types, and an environment prerequisite, making it complete for a complex build tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds substantial meaning: it explains the frontmatter structure (tracks and scenes arrays), how recipe ids resolve against built-in/vault recipes, and clarifies dry_run's validation purpose. This is a clear value-add over the terse schema descriptions.

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 states a specific compound action: READ a setlist note and build each scene's recipe by CREATING operators under parent_path, clearly establishing the tool's purpose. It distinguishes from sibling tools by explicitly mentioning preset-only/cue-only scenes are skipped and directing to setlist_runner instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says preset-only and cue-only scenes are skipped and names setlist_runner as the alternative for those. It also instructs to use dry_run:true to validate without touching TD and states the prerequisite of a configured TDMCP_VAULT_PATH.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_shadertoyImport ShadertoyA

Build a GLSL TOP from a Shadertoy URL, ID, or pasted source. Wires iChannels (defaulting to noise placeholders), exposes Speed (and optional Mouse) controls, and captures a preview. First fetch on macOS may trigger an outgoing-connection permission prompt. Set TDMCP_SHADERTOY_KEY for reliable fetches; paste into raw_source to stay offline.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoFull Shadertoy URL: https://www.shadertoy.com/view/<id>.
nameNoshadertoy
channelsNo
shader_idNoShadertoy 6-char ID, e.g. 'XsXXDn'.
raw_sourceNoPasted Shadertoy-style fragment (must contain mainImage). Offline-safe.
resolutionNo
parent_pathNo/project1
pixel_formatNorgba8
capture_previewNo
provenance_overrideNo
expose_mouse_controlNo
expose_speed_controlNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral context beyond the annotations. It discloses that the first fetch on macOS may trigger a permission prompt, that setting TDMCP_SHADERTOY_KEY improves fetch reliability, and that pasting into raw_source keeps operations offline. These details align with the openWorldHint and give the agent actionable expectations about network behavior and side effects.

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 compact, three sentences, with the core purpose front-loaded. Every sentence adds value: main function, feature details, and important network/offline caveats. No unnecessary words or filler.

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 12 parameters, nested objects, and no output schema, the description covers the essential workflow: what gets built, how inputs are provided, and critical operational notes. It does not describe return values or all parameter options, but it gives enough context for an agent to invoke the tool successfully for the primary use case.

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?

With schema description coverage at only 25%, the description compensates for some key parameters (url, shader_id, raw_source, channels, expose_speed_control, expose_mouse_control, capture_preview) but leaves many others undocumented, such as resolution, pixel_format, parent_path, and provenance_override. It adds meaning to the main inputs but does not fully cover the parameter space.

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 clearly states the tool's function: 'Build a GLSL TOP from a Shadertoy URL, ID, or pasted source.' It identifies the resource (GLSL TOP) and the specific input formats, distinguishing it from sibling import tools like import_isf_shader. The mention of wiring iChannels, exposing Speed/Mouse controls, and capturing previews further clarifies the tool's scope.

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 provides clear usage context: it explains the three input modes (URL, ID, pasted source) and gives guidance on offline usage via raw_source and reliability via TDMCP_SHADERTOY_KEY. It does not explicitly mention alternatives or when-not-to-use, but the context is sufficiently clear for an agent to select this tool appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

insert_operator_at_selectionInsert operator at the active selectionA

Atomically insert one same-family operator on one deterministic downstream edge of the exactly selected/current TouchDesigner operator. Requires an exact editor-context compare-and-swap and an idempotency key; returns bounded before/after connector receipts, explicit non-overlapping placement and rollback state. Fan-out siblings and sibling inputs are preserved. Uses the authenticated structured bridge with ALLOW_EXEC=0; it never invokes raw Python, mouse-interactive placeOPs, or implicit pane selection.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional valid TouchDesigner operator name; TD generates one when omitted.
typeYesLive-creatable same-family TouchDesigner operator type, e.g. nullTOP.
parametersNoAt most 64 bounded JSON parameter values applied only to the new operator.
idempotency_keyYesOpaque retry key; exact retries replay and conflicting payloads fail closed.
expected_contextYesExact active Network Editor owner/current/single-selection snapshot to compare immediately before mutation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nodeYes
afterYes
beforeYes
statusYes
contextYes
rollbackYes
warningsYes
undo_labelNo
idempotency_keyYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description richly discloses behaviors beyond annotations: atomicity, compare-and-swap semantics, idempotency replay, bounded before/after connector receipts, rollback state, preservation of fan-out siblings, and the use of an authenticated bridge with ALLOW_EXEC=0. This far exceeds the minimal readOnly/destructive hints and accurately characterizes the tool's side effects and safety guarantees.

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, front-loaded with the core action in the first sentence, followed by essential constraints and safety details. Each sentence adds distinct value with no redundancy or filler, making it dense yet concise.

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?

Given the tool's complexity (atomic mutation with compare-and-swap, idempotency, rollback) and the presence of an output schema, the description is complete. It covers operation, prerequisites, return receipts, side effects, and execution model. No critical behavioral aspect is left unexplained.

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?

The input schema already provides detailed descriptions for all 5 parameters (100% coverage), including type patterns, idempotency semantics, and expected_context requirements. The tool description reinforces the importance of idempotency_key and compare-and-swap but does not add substantial new parameter-level meaning beyond what the schema already documents, so the baseline of 3 applies.

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 clearly states the action: 'Atomically insert one same-family operator on one deterministic downstream edge of the exactly selected/current TouchDesigner operator.' It specifies the verb, resource, and precise location, and distinguishes it from sibling tools like create_td_node or connect_nodes by emphasizing the atomic, context-compare, single-edge insertion.

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 provides clear context for use: requires an 'exact editor-context compare-and-swap' and an 'idempotency key', and explicitly contrasts with unsafe alternatives by stating 'it never invokes raw Python, mouse-interactive placeOPs, or implicit pane selection.' It does not name specific sibling alternatives, but the context is sufficient for an agent to infer when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_component_manifestInspect component manifestA
Read-only

Read and validate a tdmcp component/library manifest from a package folder or file. Read-only: use it to check a package's metadata, declared assets, and docs before install_library_package or make_portable_tox; reports validation problems instead of throwing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, destructiveHint), the description adds valuable behavioral context: it 'reports validation problems instead of throwing.' This discloses error-handling behavior not captured by the annotations. It also clarifies the input scope ('package folder or file') and what is checked (metadata, declared assets, docs), adding meaningful transparency.

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 concise at two sentences, front-loaded with the core action, and every clause adds value. No redundant or filler content exists. It efficiently packages purpose, usage context, and error behavior without wasted words.

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 simple validation tool with a single parameter and strong annotations, the description is largely complete. It explains what the tool does, when to use it, and its error-handling approach. The only minor gap is that it does not describe the return value on success, but given the tool's simplicity and no output schema, this is not a major deficiency.

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?

With 0% schema description coverage, the description needed to explain the 'path' parameter. It does say 'from a package folder or file,' which clarifies that path can reference either a folder or a file. However, it lacks details like accepted formats, relative vs absolute paths, or examples, so it only partially compensates for the absent schema documentation.

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 clearly states the tool's function: 'Read and validate a tdmcp component/library manifest from a package folder or file.' It specifies the verb (read and validate), the resource (manifest), and the scope (package folder/file). It also distinguishes this tool from related tools by framing it as a pre-installation check for install_library_package and make_portable_tox, making its unique purpose evident.

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 explicitly says to use this tool 'before install_library_package or make_portable_tox', giving clear when-to-use context. It does not explicitly name alternatives or provide when-not-to-use guidance, but mentioning the two dependent tools is sufficient context for an agent to select this over more general inspection tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_gpu_and_displaysInspect GPU and displaysA
Read-only

Read-only: returns the host GPU info (name, driver, VRAM), attached monitor topology (resolution, refresh rate, primary flag, position), and whether the project is in Perform Mode. Use to plan output mapping, dome rigs, and multi-display shows without leaving the chat. Offline-safe — returns { connected: false, reason } when TD is unreachable.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoSubset of sections to read; omit for all three.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond the annotations: it explicitly states 'Read-only' (reinforcing the readOnlyHint), and crucially discloses the offline behavior with a fallback return of '{ connected: false, reason }'. It also lists the types of data returned, exceeding what the annotations provide.

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 two sentences with no wasted words. It front-loads the key safety property ('Read-only'), then lists the return contents, the use case, and the offline fallback. Every sentence earns its place, making it highly concise and well-structured.

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 simple read-only tool with one optional parameter and good annotations, the description is complete. It covers what data is returned, when to use it, and how it behaves offline. The lack of an output schema is compensated by the explicit enumeration of returned data categories, making this a fully specified tool description.

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?

The input schema already provides full coverage (100%) for the 'include' parameter, including an enum and description. The description does not add any additional parameter-specific semantics beyond what the schema states, so the baseline score of 3 is appropriate.

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 clearly states the tool's function: it returns GPU info, monitor topology, and Perform Mode status. The verb 'returns' and specific resource scope make it distinct from siblings like get_td_info or get_td_performance, and the use-case mention ('plan output mapping, dome rigs, and multi-display shows') further differentiates it.

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 gives a clear context for when to use the tool: 'Use to plan output mapping, dome rigs, and multi-display shows without leaving the chat.' It implies usage without explicitly stating when not to use it or naming alternatives, but the context is clear enough for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_op_extensions_storageInspect COMP extensions, storage, and custom parametersA
Read-only

Read-only: inspect what a COMP exposes — its Python storage dict (keys + values), its extension class descriptors (name, promoted flag, public members), and its custom-parameter definitions (page/name/style/default). Closes the inspect side of the reusable-component loop: use after scaffold_extension + add_custom_parameters to verify what was built, or call standalone to examine any COMP without resorting to raw Python. Returns structured data for agent code-path consumption. API names vary by TD build; the probe field records which attributes were reachable.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesCOMP to inspect.
include_storageNoInclude the COMP's Python storage dict (keys + JSON-able values).
include_extensionsNoInclude extension classes + promoted members.
include_custom_parsNoInclude custom-parameter definitions (page/name/style/default).

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYesFull path of the inspected COMP.
typeYesOperator type of the COMP (e.g. 'baseCOMP').
probeNoAPI-reachability map from the bridge — records which storage/extension/custom-par APIs were available on this TD build. UNVERIFIED: exact attribute names vary by build.
storageNoPython storage dict — keys and their JSON-serializable values (non-serializable values are stringified).
warningsYesPer-item problems that did not abort the inspection.
extensionsNoExtension class descriptors attached to the COMP.
custom_parsNoCustom-parameter definitions on the COMP, across all custom pages.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds valuable context beyond these: it notes return data is 'structured data for agent code-path consumption,' explains that 'API names vary by TD build,' and introduces the 'probe' field as a record of reachable attributes. This openly addresses the open-world variability hinted at by openWorldHint.

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?

Four sentences, front-loaded with the key safety qualifier 'Read-only', then listing the three inspection targets. Every sentence earns its place: usage guidance, return format, and API-variability caveat. No fluff or repetition.

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?

Given four parameters, rich annotations, and an output schema, the description covers the essential context: what the tool does, when to use it (in the component-creation loop), what it returns, and the 'probe' fallback for varying API names. The output schema handles detailed return fields, so no further elaboration is needed.

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?

The input schema has 100% coverage with descriptive parameter comments, so the baseline is 3. The description restates some content (e.g., 'custom-parameter definitions (page/name/style/default)') but does not add new semantics about the path parameter or boolean flags beyond what the schema already provides. The mention of the 'probe' field concerns output, not parameters.

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 uses a specific verb ('inspect') and resource ('a COMP'), then specifies exactly what is inspected: Python storage dict, extension class descriptors, and custom-parameter definitions. This clearly distinguishes it from sibling tools like inspect_component_manifest or get_td_node_parameters by enumerating unique inspection targets.

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 gives explicit when-to-use guidance: 'use after scaffold_extension + add_custom_parameters to verify what was built, or call standalone to examine any COMP without resorting to raw Python.' It does not name specific alternative sibling tools for exclusion, but the usage context and the 'without raw Python' note clarify positioning.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

install_library_packageInstall library packageA
Destructive

Install a local tdmcp component package folder, .zip, .tox, or manifest into an explicit project/user package scope, or preserve the legacy dest_dir/ form. Project scope requires project_dir and uses /.tdmcp/packages. Use inspect_component_manifest first for unknown packages. This copies or extracts files, refuses replacement unless overwrite=true, rejects symlinked directory trees, and returns scope plus resolved paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoPackage ownership scope; project scope requires project_dir.user
sourceYesLocal package folder, .zip, .tox, or manifest file.
dest_dirNoLegacy explicit library directory. Omit it to use the selected project/user package scope.
overwriteNoWhen false, fail if the destination package already exists; set true to replace it.
project_dirNoExplicit project directory used for <project>/.tdmcp/packages.
packages_rootNoLegacy advanced user-scope package root override.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behaviorbeyond annotations: it copies/extracts, refuses replacement unless overwrite=true, rejects symlinked directory trees, and returns scope plus resolved paths. Since destructiveHint=true, the overwrite refusal is consistent and enhances the safety profile. It doesn't contradict 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 tightly packed sentences: target formats and modes, project scope prerequisite, and core behavioral constraints and return value. No fluff—each sentence earns its place and the key purpose is front-loaded.

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 complex tool with 6 parameters, no output schema, and a destructive hint, the description covers installation modes, prerequisites, behavioral safety (overwrite, symlink rejection), and return value. Given 100% schema coverage, this is sufficiently complete for an agent to invoke correctly.

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 100%, so baseline is 3. The description adds meaning beyond schema by explaining the project scope requirement (project_dir and the <project_dir>/.tdmcp/packages path) and the legacy dest_dir/<packageName> form, enriching the context for scope and dest_dir parameters.

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 uses a specific verb ('Install') and clearly identifies the resource types (folder, .zip, .tox, manifest) and the two installation scopes (project/user explicit scope, legacy dest_dir form). This distinguishes it from siblings like manage_packages and manage_component.

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 gives an explicit alternative and prerequisite: 'Use inspect_component_manifest first for unknown packages.' It also clarifies when project scope is needed by noting project_dir is required. However, it doesn't explicitly state when not to use the tool or contrast it with other install-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

learn_controlLearn control (MIDI/OSC learn)A

EXPERIMENTAL two-step 'MIDI learn'. Call once with mode:'snapshot' (controls at rest) to record every channel of an input CHOP (a midiin/oscin CHOP or a Null fed by one); then wiggle one hardware knob/fader and call again with mode:'bind' — it diffs against the snapshot, finds the channel that moved the most, and binds your target parameter to it by expression (with optional scale/offset). The snapshot is kept in the parent COMP's storage between the two calls. This is live/stateful: verify the matched channel in the report.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYessnapshot: record the current value of every channel of source_chop. bind: re-read source_chop, find the channel that moved the most since the snapshot, and bind target to it. Call snapshot first (controls at rest), wiggle one hardware control, then call bind.
scaleNoMultiply the matched channel value (mapping gain).
offsetNoAdd to the scaled value (mapping offset).
targetNoParameter to drive, written as 'nodePath.parName' (e.g. '/project1/sys/transform1.scale'). Required for mode:'bind'; switched to expression mode so it tracks the matched channel live.
min_deltaNomode:'bind' minimum NORMALIZED movement (default 0.05). The winning channel's delta is normalized by max(|old|, |new|, epsilon) — a unit-free relative change — so a 0–127 MIDI CC and a 0–1 OSC float compare fairly. If the top channel moved less than this, nothing is bound and you're told to wiggle the control harder. Raise it to reject controller jitter; lower it for very small/slow knobs.
parent_pathNoCOMP whose storage persists the snapshot between the snapshot and bind calls (defaults to /project1)./project1
source_chopYesAbsolute path of the input CHOP carrying the hardware controls (e.g. a midiin/oscin CHOP or a Null fed by one).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate non-read-only, non-destructive, open-world behavior. The description adds significant behavioral context: it's stateful (snapshot stored in parent COMP), requires two calls, binds via expression, and is experimental. It also warns to verify the matched channel, which is important for correctness. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph that front-loads the experimental nature and core purpose. Every sentence is informative, but it's somewhat run-on and could be broken into steps for easier parsing. Still, no wasted words.

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 complex, stateful tool with no output schema, the description covers the workflow, statefulness, prerequisites, and a sanity check (verify channel). It also references failure handling (min_delta warning) indirectly. The description is sufficiently complete for an agent to invoke it correctly.

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 baseline is 3. The overall description does not add parameter-specific semantics beyond what the schema already provides; it merely mentions 'optional scale/offset' and references the source CHOP and target generically, which are already detailed in the schema.

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 clearly states a specific two-step process ('snapshot' then 'bind') with precise verbs: record, diff, find, bind. It identifies the resource (input CHOP, target parameter) and distinguishes itself from typical MIDI learn tools by the stateful snapshot approach and experimental status.

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?

Provides explicit step-by-step instructions: call with mode:'snapshot' first, wiggle a control, then call with mode:'bind'. It clarifies prerequisites (input CHOP, controls at rest) and warns to verify the matched channel. However, it doesn't mention alternatives or when not to use this tool, so it's clear context without explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

learn_conventionsLearn the artist's house conventions from a live TD subtreeA

Read a TouchDesigner subtree under scope_path without changing TD, infer naming/colour/topology/parameter conventions, and write the result to the configured Obsidian vault. This is read-only on the TD side but mutates vault files: by default it writes Memory/conventions.md and may merge confident naming/layout signals into Memory/style.md. Set dry_run=true to inspect the extract without disk writes. Use learn_from_my_corpus when the source is already in the vault and load_session_profile when you only need to consume cached preferences. Requires TDMCP_VAULT_PATH and returns sampled conventions plus write flags.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoIf true, return the extracted conventions but do NOT write the vault note.
observeNoWhich convention families to extract.
max_nodesNoCap on nodes walked (BFS, depth-unlimited until cap).
scope_pathNoRoot COMP whose subtree is sampled. Defaults to /project1./project1
min_supportNoA pattern must appear at least this many times to be recorded.
also_patch_style_memoryNoIf a confident naming/layout signal is found, also merge it into Memory/style.md.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the annotations by clarifying the dual-side effect: 'read-only on the TD side but mutates vault files', names default writes (Memory/conventions.md and possible Memory/style.md merge), and explains dry_run behavior. This is substantial behavioral context not available from annotations alone.

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 compact but information-dense; every sentence adds value (purpose, side effects, dry_run, alternatives, requirements/returns). It is front-loaded with the core function and avoids redundancy.

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 tool with six parameters and no output schema, the description covers purpose, side effects, alternatives, environmental prerequisite, and a summary of returns ('sampled conventions plus write flags'). This is sufficient for correct selection and invocation.

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 100%, so the baseline is 3. The description adds meaningful context beyond the schema by mentioning the TDMCP_VAULT_PATH requirement and how dry_run affects writes, enriching parameter understanding without duplicating schema details.

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 uses a specific verb ('Read a TouchDesigner subtree... infer naming/colour/topology/parameter conventions, and write the result') and clearly identifies the resource and output. It distinguishes itself from sibling tools by naming alternatives (learn_from_my_corpus, load_session_profile), leaving no ambiguity about its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is given: 'Use learn_from_my_corpus when the source is already in the vault and load_session_profile when you only need to consume cached preferences.' The dry_run flag is also presented as an inspection option, making the tool's usage contexts clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

learn_from_my_corpusLearn the artist's house style from the saved vault corpusA

Offline companion to learn_conventions: walks the Obsidian vault corpus (Recipes/, Components/, Looks/, Setlists/, Moodboards/) and distils palette, naming, recipe-shape, and param-default preferences into Memory/corpus_style.md (and optionally merges palettes/naming/favorite_generators into Memory/style.md). No TouchDesigner required — pure filesystem read. Requires TDMCP_VAULT_PATH (or pass vault_path).

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoIf true, return findings but do NOT write vault notes.
observeNoWhich families to extract; subsets keep the run cheap.
vault_pathNoOptional vault root override; defaults to TDMCP_VAULT_PATH.
min_supportNoMinimum frequency for a pattern to be recorded.
top_k_paletteNoHow many most-frequent palettes to keep.
also_patch_style_memoryNoIf confident, merge palettes/naming/favorite_generators into Memory/style.md.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that it writes to Memory/corpus_style.md and optionally merges into Memory/style.md, which is important since readOnlyHint=false. It also notes the env var requirement and that it is a pure filesystem operation. The phrase 'pure filesystem read' is slightly misleading given the writes, but the writes are clearly disclosed.

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 only two sentences, front-loaded with the sibling relationship and then packing in details about inputs, outputs, and prerequisites. Every clause contributes new information without redundancy.

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?

Covers the core purpose, input parameters, output files, optional merge behavior, and prerequisites. However, it does not describe the return value (especially for dry_run mode) or explain that also_patch_style_memory defaults to true, which would be useful given there is no output 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?

The input schema has 100% coverage with detailed descriptions for all 6 params. The description adds value by mapping the observe families (palette, naming, recipe-shape, param-default) to the vault corpus folders and by explaining vault_path via TDMCP_VAULT_PATH. It does not merely duplicate schema details.

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 clearly states the tool 'walks the Obsidian vault corpus' and 'distils palette, naming, recipe-shape, and param-default preferences' into specific output files. It distinguishes itself from sibling learn_conventions by explicitly calling itself the 'Offline companion' and noting 'No TouchDesigner required'.

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?

Provides clear context for when to use: as an offline companion to learn_conventions, with no TouchDesigner required. It also states the prerequisite of TDMCP_VAULT_PATH or vault_path. However, it does not explicitly describe when not to use it or directly contrast with other alternatives beyond learn_conventions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

library_lineage_graphLibrary lineage graphA
Read-only

Read-only, offline tool that scans the vault library (Recipes, Shaders, Presets, Components, Setlists), extracts lineage frontmatter (parent_recipe, source_assets, remix_of, forked_from), and emits a lineage graph. Output as JSON (machine-consumable), Mermaid (paste into docs), or Graphviz DOT. No TouchDesigner connection required.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindsNoCategories to scan. 'all' includes every category.
formatNoOutput format.json
max_nodesNoSafety cap on nodes returned.
cluster_byNoGrouping for Mermaid subgraph / DOT cluster.style_tags
vault_pathNoAbsolute path override; falls back to TDMCP_VAULT_PATH.
include_orphansNoWhen false, exclude nodes with no lineage edges.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond the existing annotations by noting the tool is offline, requires no TouchDesigner connection, and lists the specific frontmatter fields it extracts. It also mentions output formats, which the annotations do not cover. Although the return structure is not detailed, the read-only nature is both annotated and described consistently, and the added context raises it above a mere annotation repeat.

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 concise and front-loaded, stating the core action in the first sentence, then elaborating with output formats and the offline/no-connection detail. No words are wasted, and the structure flows logically from what it does to how it outputs.

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 6 parameters and no output schema, the description gives a solid overview: it covers the scanned sources, extracted fields, output formats, and the offline nature. However, it does not describe the expected graph structure (nodes/edges) or the safety cap (max_nodes) in the description, leaving some context for the user to infer. Overall, it is sufficiently complete for a read-only analysis tool.

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 some context for parameters by listing the categories (kinds) and output formats, but it does not add meaning for max_nodes, cluster_by, vault_path, or include_orphans. The schema already provides adequate descriptions for all parameters, so the description provides only marginal additional semantics.

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 clearly states the tool's purpose: it scans the vault library, extracts lineage frontmatter, and emits a lineage graph. It specifies the resource (Recipes, Shaders, Presets, Components, Setlists) and the output formats, distinguishing it from sibling tools like list_recipes or browse_library that do not provide lineage graph analysis.

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 provides clear context for when to use the tool: it is read-only, offline, and requires no TouchDesigner connection. It implies usage for analyzing lineage/dependencies among library assets, but does not explicitly state when not to use it or name alternatives. Thus, it meets the 'clear context, no exclusions' level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lidar_floor_trackerLiDAR floor trackerA

Build a floor-occupancy tracker scaffold for synthetic rehearsal, Ouster TOP, Leuze ROD4 CHOP, or UDP point input. Produces a tracked_points CHOP plus a floor preview TOP; hardware modes default inactive and remain explicitly unverified until a real sensor is connected.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGenerated container name.lidar_floor_tracker
portNoUDP/network input port.
activeNoEnable live hardware input immediately. Defaults false for rehearsal safety.
sensorNoSensor scaffold to create. Hardware modes stay inactive by default.synthetic
thresholdNoOccupancy threshold.
parent_pathNoParent COMP path to build inside./project1
floor_depth_mNoTracked floor depth in meters.
floor_width_mNoTracked floor width in meters.
sensor_addressNoIP address for Ouster/Leuze hardware modes.
expose_controlsNoExpose Threshold and Scale controls.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=false and destructiveHint=false, the description adds valuable context beyond annotations: it builds a scaffold, creates specific CHOP/TOP outputs, and explicitly warns that hardware modes are neither active nor verified until a real sensor is connected. This sets accurate expectations without contradicting any annotation.

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 with no waste: the first front-loads the core purpose and outputs, and the second adds a critical safety/verification note. Every word contributes to understanding the tool's function and constraints.

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 10-parameter tool with no output schema, the description does well by naming output node types and clarifying hardware verification state. It doesn't explain parameter interactions or preconditions, but the schema covers individual parameters, and the core behavior is adequately described.

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?

The input schema already provides 100% coverage with individual parameter descriptions, so the description does not need to add per-parameter explanations. It adds no parameter-specific semantics, but the schema carries the burden fully, supporting the baseline score.

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 clearly states the tool builds a floor-occupancy tracker scaffold, specifies the exact input sources (synthetic, Ouster TOP, Leuze ROD4 CHOP, UDP point input), and names the outputs (tracked_points CHOP, floor preview TOP). This distinguishes it from sibling lidar bus creation tools and makes its purpose unmistakable.

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 gives clear usage context by naming the intended rehearsal and hardware input modes, and it includes a safety caveat about hardware modes being inactive and unverified. It does not explicitly name alternative tools or exclusion criteria, but the context is sufficient for selection among the broader sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_recipe_libraryLint recipe libraryA
Read-only

Offline semantic linter for recipes/*.json. Checks schema, id/filename match, duplicate node names, unknown operator types, dangling connections, bad parents, render-outside-geometryCOMP, missing parameter nodes, unresolved control bind_to, GLSL uniforms on non-GLSL hosts, and hygiene (tags/description/preview_description). Returns a structured report; never calls TouchDesigner.

ParametersJSON Schema
NameRequiredDescriptionDefault
rulesNoSubset of rule ids to run; default runs every rule.
fail_onNoSeverity at which the tool returns isError (CLI maps to exit code).error
severityNoMinimum severity to include in the result.warn
recipe_idNoIf set, lint only this one recipe (matched by id); otherwise lint all.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description adds critical behavioral details: it states 'never calls TouchDesigner' (no external side effects) and 'Returns a structured report' (output format). It also lists the exact rules checked, providing transparency about what the tool validates. This adds value beyond the annotations and sets expectations for safe, offline execution.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, with the first sentence stating the core purpose and the second listing the checks. While the second sentence is long, every item is necessary to convey scope. It is front-loaded with 'Offline semantic linter' and ends with a state guarantee. The structure is acceptable but could be improved by breaking the rule list into a more scannable format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's function and key behavioral traits, but it does not describe the structure of the returned report (e.g., list of issues with severity levels). Although the schema-parameter descriptions explain fail_on and severity, the actual report format remains vague. Given there is no output schema, the description should have elaborated on what the 'structured report' contains for a complete understanding.

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?

The input schema has 100% coverage: every parameter (rules, fail_on, severity, recipe_id) includes a description with defaults and enums. The tool description itself does not add parameter-level details, but since the schema is thorough, it meets the baseline. No additional compensation is needed.

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 clearly identifies the tool as an 'Offline semantic linter for recipes/*.json' and enumerates the specific checks it performs (schema, id/filename match, duplicate node names, etc.). It uses a specific verb ('lints') and resource ('recipes/*.json'), and distinguishes itself from siblings by emphasizing offline operation and never calling TouchDesigner.

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 provides clear context for when to use the tool: it is offline, never calls TouchDesigner, and runs a set of semantic checks on recipe files. However, it does not explicitly name alternative tools or state when not to use it (e.g., 'use validate_recipe_bundle for schema-only validation'). The 'never calls TouchDesigner' hint implies a safe offline choice but lacks explicit comparison to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_recipesList recipesA
Read-only

List the built-in recipe library — ready-made network templates (feedback tunnel, particle galaxy, reaction-diffusion, projection mapping, …) with their id, name, tags and difficulty. Offline. Apply one with apply_recipe.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoOptional tag/keyword to filter recipes by (matches tags or name).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as read-only and non-destructive. The description adds useful behavioral context: it works 'Offline' and lists 'built-in' recipes, implying a static, pre-populated set. It does not contradict annotations and adds extra value beyond the structured safety hints.

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 two sentences, front-loaded with the main purpose and key output fields. Every word is useful; no redundancy or filler. It efficiently communicates scope, content, and the related apply_recipe action.

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 simple list tool with one optional parameter and no output schema, the description is complete. It states the source (built-in library), the fields returned, the offline nature, and the next step. It does not need to explain return structure further since it lists the exact output fields.

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?

The input schema already fully documents the optional 'tag' parameter with a clear description ('matches tags or name'), giving 100% schema coverage. The tool description itself doesn't mention the filter, but this is acceptable since the schema carries the semantic weight; the description adds no extra parameter context.

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 clearly states the verb ('List'), the resource ('built-in recipe library'), and the output contents ('id, name, tags and difficulty'). It also distinguishes from siblings by emphasizing 'built-in' and explicitly names the follow-up tool 'apply_recipe', making the tool's 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 implies when to use the tool ('Offline', to browse ready-made templates) and points to the next action ('Apply one with apply_recipe'). It provides clear context but doesn't explicitly discuss alternatives or exclusion cases, though the word 'built-in' differentiates it from library-management siblings like browse_library.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_session_profileLoad or initialise the persistent session profileA

Reads ~/.tdmcp/session-profile.json (or a custom path) and returns a unified JSON snapshot that an agent should load at the start of every session. The profile caches the most recent outputs of style_memory, recall_similar_work, learn_conventions, and learn_from_my_corpus so the agent has the artist's preferences and past work at hand without running all four tools every time. If no file exists, a default skeleton is created and returned. Pass reset=true to overwrite with fresh defaults. The profile_path field in the returned object is always the resolved path that was read or written.

ParametersJSON Schema
NameRequiredDescriptionDefault
resetNoIf true, overwrite the existing profile with the built-in defaults and return them.
profile_pathNoAbsolute path to the session-profile JSON file. Defaults to ~/.tdmcp/session-profile.json.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYesHuman-readable notes about what was loaded or defaulted.
resetYesTrue when reset=true was requested.
createdYesTrue when the profile was created fresh (no prior file).
loaded_atYesISO-8601 timestamp of this read.
conventionsNoSnapshot from learn_conventions (Memory/conventions.md) if previously captured.
recent_workNoTop hits from recall_similar_work if previously captured.
corpus_styleNoSnapshot from learn_from_my_corpus (Memory/corpus_style.md) if previously captured.
profile_pathYesAbsolute path of the profile file read or written.
style_memoryNoSnapshot from style_memory (Memory/style.md) if previously captured.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, but the description adds important behavior: it creates a default skeleton if no file exists, overwrites when reset=true, and always returns the resolved path. This clarifies that the tool mutates the filesystem only in controlled ways and adds context about the file path behavior beyond 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 four sentences long, front-loaded with the main action, then adds purpose, edge-case behavior, and a return-field note. Every sentence earns its place without redundant or vague wording.

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 the tool has an output schema and only two optional parameters, the description is quite complete: it covers default path, custom path, default creation, reset behavior, and the resolved path in the return. Minor gaps such as error handling for corrupted files are not critical for this simple tool, so a 4 is appropriate.

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's mention of 'custom path' and reset=true essentially repeats what the schema parameters already document. It does not add substantive new meaning for the parameters beyond the schema definitions.

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 clearly states the tool reads ~/.tdmcp/session-profile.json and returns a unified JSON snapshot, with specifics about creating a default if absent. It also distinguishes itself from sibling tools by explaining it caches outputs of four other tools, so the agent can load a session profile without running them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs the agent to load it 'at the start of every session' and frames it as a substitute for running style_memory, recall_similar_work, learn_conventions, and learn_from_my_corpus every time. This provides clear when-to-use guidance and a direct comparison to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

local_marketplace_indexLocal marketplace indexA
Destructive

Scan a local package directory and write an index of installable tdmcp packages. Use it to make a folder of components browsable and installable as a simple local marketplace; the written index is what browse_library and install_library_package consume. Writes a file (destructive).

ParametersJSON Schema
NameRequiredDescriptionDefault
out_fileNo
package_dirYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation already flags destructiveHint=true, and the description reinforces this with 'Writes a file (destructive)'. It adds the specific information that the tool writes a file, which is more concrete than the generic annotation. However, it does not disclose details like whether existing files are overwritten or what happens if out_file is omitted, so it does not fully exploit the opportunity to add behavioral context.

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 extremely concise: three short sentences that each add distinct value. The first states the action, the second provides context and consumers, the third flags side effects. No filler or repetition of annotations, making it highly efficient.

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?

The description effectively explains the tool's purpose, its place in the marketplace workflow, and its destructive nature. With simple inputs and no output schema, this is mostly sufficient. The missing explanation of out_file is the only notable gap, preventing a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description carries full responsibility for parameter meaning. It implicitly covers package_dir via 'Scan a local package directory', but completely omits out_file—its purpose, default behavior, or relationship to the writing action. This is a significant gap for a two-parameter tool, leaving the agent to guess the second parameter's role.

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 clearly states the tool's action: 'Scan a local package directory and write an index of installable tdmcp packages'. It specifies the resource (local package directory) and the output (index). It further differentiates from siblings by naming the consumers (browse_library and install_library_package), making its role in the marketplace workflow explicit.

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 gives a clear use case: 'Use it to make a folder of components browsable and installable as a simple local marketplace'. It also explains how the output relates to other tools, which implies when this tool is needed (before browsing/installing). However, it does not explicitly contrast with alternative tools like generate_library_index or mention when not to use it, so it lacks full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

log_performanceLog a performance to the vaultA

READ a snapshot of a TD network (node/connection counts plus any errors) and, optionally, a preview image of an output TOP, then WRITE a dated journal entry to Performances/-.md in the vault (the thumbnail is saved as a binary attachment). Use this to build a diary of your shows over time. Returns the note path, whether a thumbnail was saved, and the node/issue counts. Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoFree-form notes: what played, what worked.
titleNoShort title for the entry (e.g. venue or set name).
widthNoThumbnail width in pixels for the captured output_path preview.
heightNoThumbnail height in pixels for the captured output_path preview.
comp_pathNoNetwork to snapshot for the log./project1
output_pathNoTOP to capture as the entry's thumbnail.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool both reads and writes, specifies the file naming convention and location, notes the optional thumbnail binary attachment, and mentions the prerequisite TDMCP_VAULT_PATH. This goes beyond the annotations (readOnlyHint=false, openWorldHint=true) by explaining the side effects and external dependency, which is valuable context for an agent.

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: the first clearly explains the action, the second gives the use case, and the third covers return values and prerequisites. Every sentence earns its place, the key verb 'READ'/'WRITE' is front-loaded, and there is no redundant fluff.

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?

There is no output schema, but the description explicitly states return values (note path, thumbnail saved, node/issue counts). It also covers prerequisites (vault path) and the core workflow, making it sufficiently complete for a write tool with optional parameters. It doesn't detail error handling or directory creation, but those are minor gaps given the schema and annotations.

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%, with each of the 6 parameters having a description. The tool description adds a bit of semantic context (e.g., 'preview image of an output TOP' for output_path, 'node/connection counts' for comp_path), but most parameter meaning is conveyed by the schema. The description doesn't need to compensate extra, so baseline 3 is appropriate.

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 states a specific verb+resource: 'WRITE a dated journal entry to Performances/<date>-<title>.md' and 'READ a snapshot of a TD network'. It clearly distinguishes this from sibling tools like get_td_performance or snapshot_td_graph by emphasizing the journal-writing purpose, making it unmistakably a logging/writing tool.

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 explicitly says 'Use this to build a diary of your shows over time', giving a clear context and when to invoke. It doesn't explicitly name alternatives or when not to use, but the purpose is specific enough to avoid ambiguity. A slight deduction for not mentioning sibling tools like get_td_performance as a read-only alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

macro_recorderMacro recorderB
Destructive

Record the sequence of MCP tool calls to a portable JSON macro file. Actions: start | stop | list | load. Replay ships separately as run_macro_script.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNo
nameNo
actionYes
redactSensitiveNo
allowUnsafeRecordingNoRequired when redactSensitive=false because raw scripts/secrets may be persisted.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true, but the description does not elaborate on what destructive behaviors may occur (e.g., overwriting files or stopping recordings). It adds actions and the JSON format, but no behavioral details about side effects, safety of stop/load, or handling of sensitive data. The description contradicts no annotations, but fails to add meaningful transparency beyond the flags.

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 two sentences, front-loaded with the core purpose, and lists actions efficiently. It adds a pointer to the replay tool without fluff, earning a high score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With five parameters and four actions plus destructive hints, the description is insufficiently complete. It lacks parameter meanings, action-specific behavior, and side-effect warnings. The absence of an output schema further increases the need for explanation, which is not met.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, so the description must compensate, but it does not explain parameters like file, name, or redactSensitive. The action enum is self-explanatory and allowUnsafeRecording has a schema description, but the rest remain ambiguous, making it hard to invoke correctly.

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 clearly states the tool records MCP tool calls to a JSON macro file, listing specific actions (start/stop/list/load). It distinguishes from sibling run_macro_script by noting replay ships separately. This is a specific verb+resource scope.

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 provides clear context that this is for recording macros and points to run_macro_script as the replay alternative. However, it does not explicitly state when not to use this tool or compare to other macro-related tools like create_macro, so exclusions are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

make_portable_toxMake portable toxA
Destructive

Save one live TouchDesigner COMP as a portable .tox package on disk, then write a tdmcp-component manifest beside it and optionally copy docs/README files. Use this for packaging a finished component; use bundle_dependencies instead when external media must be collected and relinked. Requires a running bridge and writes/overwrites local files in out_dir; returns the saved .tox path, manifest path, README path, and warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
docsNoOptional local documentation files to copy into out_dir/docs and reference in the manifest.
nameNoOptional filesystem-safe package stem; defaults to the COMP name from comp_path.
out_dirYesLocal output directory that will receive the .tox, manifest, README, and docs.
comp_pathYesAbsolute TouchDesigner COMP path to save, for example /project1/my_component.
help_snapshotNoOptional exact-build installed OfflineHelp snapshot, verified through a non-9980 quarantine bridge.
include_readmeNoWrite a package README.md with node inventory, custom parameters, inputs/outputs, and external file references.
idempotency_keyNo
overwrite_policyNoRefuse an existing .tox or request native Overwrite/Keep consent.refuse
provenance_policyNorecord
expected_git_commitNo
operation_timeout_msNo
confirmation_timeout_msNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true, but description adds specifics: 'writes/overwrites local files in out_dir' and mentions return values (paths and warnings). It also notes the requirement of a running bridge, which goes beyond schema/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?

Three sentences pack purpose, usage guidance, side effects, and returns with no filler. Front-loaded with the action verb; efficient.

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 tool with nested object help_snapshot and 12 params, the description covers key aspects: what it does, when to use, side effects, and what is returned. However, it omits details about the overwrite_policy and help_snapshot semantics, relying on schema for those.

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 58% (7/12 params), so description should compensate. It names out_dir and docs/README but does not explain remaining undocumented params like idempotency_key, provenance_policy, or timeout settings. Adds minimal param detail beyond schema.

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?

Description opens with a specific verb and resource: 'Save one live TouchDesigner COMP as a portable .tox package on disk, then write a tdmcp-component manifest beside it...' This clearly states the tool's function and scope, distinguishing it from bundle_dependencies and other packaging tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'Use this for packaging a finished component'; then points to an alternative: 'use bundle_dependencies instead when external media must be collected and relinked.' It also warns about prerequisites ('Requires a running bridge') and side effects.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_agent_skillsManage bundled agent skillsA
Destructive

Safely inspect, install, update, or uninstall the small bundled tdmcp skill catalog for Codex or Claude. Mutations default to dry-run, use exact manifest ownership, reject unowned conflicts and symlinks, and roll back partial filesystem changes. Only package-bundled skills are accepted; this is not a remote or arbitrary skill installer.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYesAgent host whose skill directory is managed.
scopeYesProject-local or current-user skill installation scope.
actionYesInspect, install, update, or uninstall manifest-owned bundled tdmcp skills.
skillsNoBundled skills to manage. Omit for the complete curated catalog.
dry_runNoPlan without writing. Must be explicitly false to apply a mutation.
project_rootNoAbsolute project path. Required for project scope unless a CLI injects its cwd.
force_owned_driftNoAllow replacement/removal of content already recorded by the manifest but locally changed. Never permits touching unowned paths.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hostYes
scopeYes
actionYes
skillsYes
statusYes
appliedYes
dry_runYes
plannedYes
warningsYes
target_rootYes
manifest_pathYes
source_versionYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by disclosing concrete safety behaviors: mutations default to dry-run, exact manifest ownership, rejection of unowned conflicts and symlinks, and rollback of partial filesystem changes. This complements the destructiveHint annotation without contradicting it.

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 carry a high information density: purpose, constraints, safety model, and exclusions. It is front-loaded with the action and resource, with no filler or repetition of schema fields.

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?

Given the rich input schema, explicit annotations, and output schema, the description is complete enough. It conveys the tool's safety model, scope limitations, and host applicability, leaving parameter syntax and return values to the schemas where they already live.

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 description coverage is 100%, so the baseline is 3. The description adds meaningful semantic context by reinforcing the dry-run default, explaining manifest ownership semantics, and bounding acceptable skills to package-bundled items, which helps interpret the 'skills' and 'dry_run' parameters beyond the schema.

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 set ('Safely inspect, install, update, or uninstall') tied to a precise resource ('the small bundled tdmcp skill catalog for Codex or Claude'). It clearly distinguishes itself from generic installers by stating 'this is not a remote or arbitrary skill installer.'

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 clearly establishes scope: only package-bundled skills are managed, and it explicitly says it is not a remote/arbitrary installer. However, it doesn't name a specific sibling tool as an alternative, so the 'when to use vs alternatives' guidance is strong but not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_annotationManage annotationA

Self-document a network: create a titled annotation box; safely edit an existing Annotate COMP's title, body, RGBA background, or exact node-space bounds; set an op comment; list annotations; or inspect geometric enclosure. The edit action is a structured, verified transaction that works with raw Python disabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
hNo(create) Node-space height of the box.
wNo(create) Node-space width of the box.
xNo(create) Node-space X position for the box's left edge.
yNo(create) Node-space Y position for the box's top edge.
bodyNo(edit) Exact Annotate COMP body; empty clears it.
nameNo(create) Name for the annotation COMP (defaults to 'anno').
textNo(create) The title/text shown on the box; (comment) the comment string to set.
colorNo(edit) Exact RGBA background colour, four channels from 0 to 1.
titleNo(edit) Exact Annotate COMP title; empty clears it.
actionYes'create' a titled annotation box, 'edit' an Annotate COMP's text/style/bounds, 'comment' to set an op's comment, 'list' the annotations in a network, or 'enclosed' to list the ops a box geometrically encloses.
node_pathNo(comment) The op to comment on; (enclosed) the annotation box whose enclosed ops to list.
parent_pathNo(create/list) The network (COMP) to act in./project1

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false. The description adds valuable behavioral context by calling the edit action 'a structured, verified transaction that works with raw Python disabled', which explains safety guarantees and a technical constraint beyond the annotations. It does not contradict any annotation.

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 two sentences, front-loaded with the primary purpose ('Self-document a network'), followed by a concise list of actions. The second sentence adds important safety/constraint information without redundancy. Every phrase earns its place.

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 the tool's complexity (12 parameters, 5 action types, no output schema), the description covers all major action categories and includes a caveat about raw Python. It does not detail return formats for list/enclosed operations, but this is somewhat inferable from the action names. Overall, it is sufficiently complete for an agent to use correctly.

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 schema already documents every parameter with action-specific descriptions. The description does not add significant new meaning to the parameters beyond summarizing the actions at a high level. Thus the baseline score of 3 is appropriate.

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 uses specific verbs and resources: 'create a titled annotation box', 'safely edit an existing Annotate COMP's title, body, RGBA background, or exact node-space bounds', 'set an op comment', 'list annotations', or 'inspect geometric enclosure'. This clearly distinguishes it from sibling tools like document_network or edit_td_node_metadata by focusing on Annotate COMPs and annotation-specific operations.

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 opening phrase 'Self-document a network' provides clear context for when this tool is useful. It also enumerates the supported actions, allowing an agent to infer appropriate scenarios. However, it does not explicitly name alternative tools or state when not to use it, so it falls short of the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_artist_workspaceManage a temporary artist workspaceA

Open, inspect, restore, or cancel one bounded TouchDesigner editor workspace using an existing Network Editor plus one right-hand TOP Viewer or Panel split. The bridge schedules every UI access on the TD main thread, keeps only JSON job state, uses compare-and-swap restoration, and fails closed in Perform/headless/conflicted states. It never opens arbitrary UI, creates project operators, adds graph undo, or falls back to raw Python; the authenticated structured routes work with ALLOW_EXEC=0.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
split_ratioNoShare of the existing Network Editor after the right-hand split.
viewer_modeNoUse a bounded TOP Viewer or Panel pane; arbitrary pane types are not accepted.
viewer_pathNoExact TOP output or panel-capable COMP to show.
network_pathNoExplicit COMP to show in the existing Network Editor.
workspace_idNo
lease_secondsNoBounded lease before compare-and-swap cleanup is attempted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
actionYes
reasonYes
statusYes
cleanupYes
targetsYes
baselineYes
warningsYes
workspaceYes
created_atYes
expires_atYes
owned_paneYes
undo_labelYes
source_paneYes
deduplicatedYes
workspace_idYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate not read-only and open world; the description adds rich behavioral detail beyond that: 'schedules every UI access on the TD main thread, keeps only JSON job state, uses compare-and-swap restoration, and fails closed in Perform/headless/conflicted states.' It also states 'authenticated structured routes work with ALLOW_EXEC=0,' disclosing a key execution restriction. No contradiction with 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, front-loaded with the core purpose, followed by implementation details and boundaries. Every sentence earns its place with no filler, making it dense but efficiently structured.

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?

Given the complexity (7 params, 4 actions, output schema present), the description covers critical context: safety model (fails closed), threading (main thread), state persistence (JSON only), restoration mechanism (compare-and-swap), and execution restrictions (ALLOW_EXEC=0). It does not need to describe return values because an output schema exists.

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 description coverage is 71%, so the schema already explains most parameters. The description adds semantic context by clarifying the 'right-hand' split (viewer_mode) and 'bounded'/'temporary' nature (lease_seconds). It does not duplicate all schema details but enhances understanding of the action enum and the workspace lifecycle.

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 first sentence precisely states the tool's function: 'Open, inspect, restore, or cancel one bounded TouchDesigner editor workspace using an existing Network Editor plus one right-hand TOP Viewer or Panel split.' It names the specific resource (workspace) and actions (open/inspect/restore/cancel), and differentiates from siblings by defining its bounded scope and constraints (e.g., 'never opens arbitrary UI, creates project operators, adds graph undo').

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 clearly implies usage for creating/managing a temporary, safe workspace and provides strong exclusions: 'It never opens arbitrary UI, creates project operators, adds graph undo, or falls back to raw Python.' It also notes when it fails closed (Perform/headless/conflicted states), giving practical context, but it does not explicitly name alternative tools or provide an explicit 'use this when' statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_checkpointManage checkpointA
Destructive

Store / restore / list / delete a full snapshot of a sub-network — an 'undo point' to take before risky live edits. A checkpoint captures every node's constant parameters, the wiring, and node positions. Restoring reapplies parameters, recreates nodes that were deleted since (with their wiring), and prunes nodes that were created since. Unlike manage_presets (custom-parameter looks for performance), this captures the whole network for safe experimentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoCheckpoint name (required for store/restore/delete).
actionYesstore a full snapshot of a sub-network, restore one, list all, or delete one. A checkpoint is an 'undo point' before risky live edits.
comp_pathNoRoot COMP whose whole sub-network the checkpoint captures./project1
prune_createdNo(restore) Destroy nodes that were created after the checkpoint was stored.
recreate_deletedNo(restore) Recreate nodes that were deleted after the checkpoint (type + params + wiring, best-effort).

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=true), the description details exactly what a checkpoint captures, what restore does (reapplies parameters, recreates deleted nodes, prunes created nodes), and frames it as an undo point. This is substantial behavioral disclosure that helps the agent understand destructive consequences.

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 four sentences, each earning its place: the action summary, the content of a checkpoint, the restore behavior, and the comparison with manage_presets. It is front-loaded with the core purpose and contains no filler.

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 multi-action tool, the description covers the purpose, content, restore semantics, and alternative, but it does not mention the return value or output format for the list action, which could matter for an agent choosing to use it. Still, with a rich schema and annotations, it is largely complete enough.

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 100%, so the baseline is 3. The description adds meaning by explaining how restore behavior maps to the prune_created and recreate_deleted parameters, and by clarifying that comp_path represents a full sub-network. This goes beyond the schema's field-level descriptions.

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 list ('Store / restore / list / delete a full snapshot of a sub-network') and clearly identifies the resource (sub-network snapshot). It distinguishes itself from manage_presets by contrasting whole-network capture with custom-parameter looks, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states when to use the tool ('before risky live edits', 'for safe experimentation') and explicitly names the alternative (manage_presets), explaining that this tool captures the entire network rather than just parameter looks. This gives the agent clear decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_componentSave / load component (.tox)A
Destructive

Build a reusable component library by moving COMPs to/from .tox files on disk. 'save' uses a deferred, verified same-directory temporary export and refuses overwrite by default; set overwrite_policy='ask' for native Overwrite/Keep consent. 'load' keeps its legacy behavior and reads file_path into parent_path. Paths are on the machine running TouchDesigner.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo(load, linked) Name for the linked COMP; defaults to the file name.
actionYessave a COMP to a .tox file, or load a .tox into the project.
linkedNo(load) Create a live-linked instance (externaltox) that re-reads the file on change, instead of an independent copy.
comp_pathNo(save) The COMP to save as a reusable .tox component.
file_pathYesAbsolute path to the .tox file (e.g. '/Users/me/components/widget.tox').
parent_pathNo(load) COMP to place the loaded component inside./project1
create_foldersNo(save) Create the parent folders if they do not exist.
idempotency_keyNo(save) Opaque retry key for response-loss recovery.
overwrite_policyNo(save) Refuse an existing target, or ask through the native TouchDesigner broker before overwrite.refuse
operation_timeout_msNo(save) Bounded polling deadline for the deferred export job.
confirmation_timeout_msNo(save) Bounded wait for native overwrite consent.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, destructiveHint), the description discloses critical behavioral details: save uses a deferred, verified same-directory temporary export, refuses overwrite by default, and supports an 'ask' policy for native consent. It also explains the load legacy behavior and notes that paths are on the machine running TouchDesigner. This goes far beyond the basic annotations and provides agent-critical safety and execution context.

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 long and front-loaded with the core purpose. Each sentence adds essential information: the overall function, save-specific safety and overwrite behavior, and load/path notes. No redundant or filler content exists, making it efficient and well-structured.

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?

Given the 11 parameters, complete schema coverage, and presence of annotations, the description sufficiently covers the tool's complexity. It explains the key behavioral nuances (deferred save, overwrite policy, legacy load, path location) without needing to reiterate parameter details already in the schema. The absence of an output schema is acceptable as the primary return value is implied (the file operation), and the description delivers a complete operational picture.

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?

The schema already provides 100% description coverage for all parameters, with detailed comments for each. The description itself adds only a small amount of parameter-related context, such as the behavior of overwrite_policy and the relationship between file_path and parent_path. This aligns with the baseline score of 3 for high schema coverage, as the description does not substantially add semantic value beyond the structured data.

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 clearly states the tool's purpose as moving COMPs to/from .tox files on disk to build a reusable component library, which is a specific verb+resource combination. It also distinguishes between the 'save' and 'load' actions. However, it does not explicitly mention or differentiate from sibling tools like manage_component_storage or make_portable_tox, so it misses the full sibling differentiation criterion.

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 provides clear context on when to use the tool: for building a component library by moving COMPs to/from .tox files. It also gives detailed behavior for each action (save/load) and mentions the overwrite policy context, which helps the agent decide. It does not explicitly list alternatives or when-not-to-use cases, but the context is unambiguous and free of exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_component_storageManage Component StorageA
Destructive

CRUD operations on a COMP operator's .storage dictionary. Actions: list (all keys+values), get (one key), set (write a key), delete (remove a key). No operators are created; the target COMP must already exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoStorage key. Required for get/set/delete; omit for list.
pathYesFull path of the COMP whose storage dict to operate on.
valueNoValue to store under 'key'. Required for set. Must be JSON-serialisable (string, number, bool, list, dict, null).
actionYes'list' returns all keys+values; 'get' reads one key; 'set' writes one key; 'delete' removes one key.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive behavior (destructiveHint=true) and non-read-only (readOnlyHint=false). The description adds context by naming the exact destructive actions (delete removes a key, set writes) and the prerequisite that no operator is created. It does not contradict 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?

Two concise sentences: the first covers purpose and actions, the second covers a key exclusion/precondition. No filler, front-loaded with the core function.

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 CRUD tool with 4 well-documented params, the description covers the essential behavior and prerequisites. It could mention return values for set/delete, but given the schema richness and annotations, it is sufficiently complete.

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%, and the description largely repeats what the schema already states (e.g., key required for get/set/delete). It adds minimal extra semantics beyond the schema, so the baseline of 3 applies.

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-resource pairing ('CRUD operations on a COMP operator's .storage dictionary') and enumerates the exact actions (list, get, set, delete). It clearly distinguishes this tool from sibling tools like manage_component or inspect_op_extensions_storage by focusing on the .storage dictionary.

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 provides clear contextual guidance: it is for reading/writing a COMP's .storage dictionary, and explicitly states a precondition ('target COMP must already exist') and an exclusion ('No operators are created'). It does not name alternative tools, but the scope is unambiguous enough for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_cueManage cueA

Live-performance scene system: store / recall / morph / list / delete named cues (snapshots of a COMP's custom-parameter values). Unlike manage_presets, a cue can be reached with a timed morph that crossfades every numeric control from the current look to the cue over N seconds (eased), via a small Execute DAT — so you can glide between looks on stage instead of hard-cutting. Recall and morph also take an optional quantize ('beat'/'bar') that defers the change to the next musical boundary (from the project tempo) so scene changes land on the downbeat. Build cues with create_control_panel, then jump or morph between them.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoCue name (required for store/recall/morph/delete).
actionYesstore a cue (snapshot of the COMP's custom params), recall it instantly, morph to it over time, list, or delete.
durationNo(morph) Crossfade time in seconds from the current look to the cue.
quantizeNo(recall/morph) Snap the scene change to the music. 'off' (the default) fires immediately. 'beat' defers the recall/morph until the next beat boundary; 'bar' until the next bar (measure) boundary — read from the project tempo (op('/').time.tempo) and time signature. The change is scheduled, not blocking.
comp_pathNoCOMP whose custom-parameter values the cue captures (a control-panel container)./project1

TDQS

A3.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite a rich behavioral disclosure of morph timing, easing, Execute DAT, and quantize scheduling, the description directly contradicts the annotations: it explicitly lists 'delete' as an action and mentions deleting cues, while destructiveHint is false. This is a clear annotation contradiction and warrants the lowest score per the rubric.

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 several sentences long, but every sentence earns its place: it front-loads the purpose and action set, then explains the differentiating morph behavior, quantize options, and workflow in a compact, logical flow. There is no filler or redundancy; it is appropriately sized for the tool's complexity.

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 tool with five parameters, multiple action modes, and no output schema, this description is remarkably complete. It covers the system's purpose, the exact actions, prerequisites (create_control_panel), the morph mechanism including tempo-synced quantize, and differentiators from siblings. The absence of list return details is acceptable given no output schema, and the description fills the context needed for an agent to select and invoke this tool effectively.

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?

With 100% schema description coverage, the baseline is 3, and the description adds little beyond the schema. It mentions 'eased' crossfading and references Execute DAT, but the schema already details all parameters including action enum, duration default, quantize semantics, and comp_path. The description does not significantly improve parameter understanding beyond what the schema provides.

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 clearly states the tool's role as a live-performance scene system with a specific verb+resource: store/recall/morph/list/delete named cues (snapshots of a COMP's custom-parameter values). It distinguishes itself from the sibling manage_presets by explicitly naming the differing morph capability, making the purpose obvious and well-scoped.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly contrasts with manage_presets, explaining that cues support timed morphing for stage use and suggesting when this tool is preferable. It also gives workflow guidance: 'Build cues with create_control_panel, then jump or morph between them.' The quantize parameter's musical timing use case is clearly described, providing strong contextual usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_packagesManage TouchDesigner community packagesA
Destructive

Search, list, inspect, doctor, install, reconcile, and uninstall manifest-driven TouchDesigner community packages at explicit user or project scope. Reconciliation is dry-run-first, proves marker ownership, and uses Delete/Bypass/Keep consent before pruning a live package. A legacy uninstall with a live TD target now returns the safe reconciliation plan instead of deleting local state first. This tool never runs third-party scripts, pip installs, model downloads, or external app setup.

ParametersJSON Schema
NameRequiredDescriptionDefault
pinNoOptional Git ref/tag to stage instead of the manifest default.
yesNoAllow replacement of existing staged files / TD package target when applicable.
nameNoOptional custom TD node name for live import.
queryNoSearch query for action='search'.
scopeNoPackage ownership scope. Project scope uses <project_dir>/.tdmcp/packages.user
actionYesPackage-manager action to run.
dry_runNoFor action='install', plan safely without downloading or mutating by default.
plan_idNoOpaque plan id from the immediately preceding reconciliation dry-run.
installedNoFor action='list', include installed state.
package_idNoPackage id or alias, e.g. 'mediapipe', 'raytk', or 'shader-park-td'.
project_dirNoExplicit local project directory; required when scope='project'.
project_pathNoTouchDesigner project COMP for optional live import./project1
packages_rootNoAdvanced override for package state/cache root. Defaults to ~/.tdmcp/packages.
allow_externalNoAcknowledge optional external dependency guidance; does not configure apps/services.
reconcile_choiceNoFor reconcile apply: keep, bypass, or request native approval to delete.Keep
allow_python_depsNoAcknowledge optional Python dependency guidance; does not run pip.
confirmation_timeout_msNoBounded native Delete/Bypass/Keep broker wait.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even though destructiveHint and openWorldHint are provided, the description goes well beyond by detailing the reconciliation flow: 'dry-run-first, proves marker ownership, and uses Delete/Bypass/Keep consent before pruning a live package.' It also notes that legacy uninstall now returns a safe plan instead of deleting. This gives critical safety context that annotations do not convey.

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?

Three sentences, front-loaded with the action list, then safety specifics, then hard exclusions. Every sentence earns its place without redundancy or fluff. The structure is efficient for an agent to parse quickly.

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?

This is a high-complexity tool with 17 parameters and multiple actions, yet the description covers the full action set, scope semantics, safety-critical reconciliation behavior, and strict exclusions. Even without an output schema, the description is sufficient to guide invocation and avoid dangerous mistakes.

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 coverage is 100% for all 17 parameters, so the baseline of 3 applies. The description adds some high-level context about scope and dry-run behavior, but does not add detailed parameter-level meaning beyond what the schema already provides. It is neither misleading nor incomplete, but the schema carries the semantic burden.

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 clearly enumerates the actions: 'Search, list, inspect, doctor, install, reconcile, and uninstall' manifest-driven TouchDesigner community packages. This provides a specific verb+resource combination and unmistakably distinguishes it from sibling tools focused on node creation, rendering, or external integrations.

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 gives clear context via 'at explicit user or project scope' and explicitly excludes what it never does ('never runs third-party scripts, pip installs, model downloads, or external app setup'). However, it does not name alternative tools or explicitly state 'use this when...' versus other package-related tools, so it slightly misses the full 'when-not' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_presetsManage presetsA

Store, recall, list, or delete named snapshots of a COMP's parameter values — the live-performance preset system. Pair with create_control_panel: snapshot the knob positions and jump between looks. Snapshots are saved in the COMP's storage so they persist with the project.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoPreset name (required for store/recall/delete).
actionYesstore a snapshot, recall one, list all, or delete one.
paramsNoSpecific custom-parameter names to capture/restore. Defaults to every custom parameter on the COMP.
comp_pathNoCOMP whose parameter values the preset captures — usually a control-panel container./project1

TDQS

A3.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotation Contradiction: The description explicitly includes 'delete' as a core action, implying destructive side effects, while annotations declare destructiveHint=false. This is a serious inconsistency. The description does disclose persistence and pairing, but the contradiction with the destructiveHint annotation warrants a score of 1.

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?

Three sentences, led by the action list and followed by integration and persistence context. No filler or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's core purpose, integration and persistence, but with no output schema it leaves unclear the return format of 'list' and the exact effects of 'recall' (e.g., whether it overwrites only specified params). The annotation contradiction also undermines completeness for assessing risks.

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 schema already documents all four parameters (action, name, params, comp_path). The description adds only metaphorical context ('snapshot the knob positions') and does not clarify parameter formatting or required values beyond the schema.

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 list ('Store, recall, list, or delete') and identifies the exact resource ('named snapshots of a COMP's parameter values'), making the tool's scope unmistakable. It also distinguishes itself from generic storage tools by framing it as the live-performance preset system and pointing to create_control_panel as a companion.

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 gives clear usage context—snapshot knob positions from a control panel and jump between looks—and explicitly pairs it with create_control_panel. It lacks explicit exclusions or when-not-to-use guidance versus sibling tools like manage_cue or create_preset_morph.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_project_briefRead or replace the project-owned agent briefA

Reads or atomically replaces the versioned brief at /.tdmcp/agent-brief.json. Replace requires expected_revision='absent' for creation or the exact revision returned by read. Root precedence is explicit project_root, TDMCP_PROJECT_ROOT, then the saved-project folder from structured editor context; cwd is never used. Brief text is untrusted project evidence and cannot override current user intent, safety policy, consent, tool tier, verification, or emergency behavior.

ParametersJSON Schema
NameRequiredDescriptionDefault
briefNo
actionYes
project_rootNo
expected_revisionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
briefNo
statusYes
revisionYes
warningsYes
brief_pathYes
project_rootYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description adds rich behavioral context: atomic replacement, versioned file, root resolution order (cwd never used), and the important limitation that 'brief text is untrusted project evidence and cannot override current user intent, safety policy, consent, tool tier, verification, or emergency behavior.' This goes far beyond what annotations convey.

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?

Three information-dense sentences with no fluff. Each sentence earns its place: first describes the core operation, second details replacement requirements, third covers root resolution and safety limitations. Front-loaded and structured efficiently.

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?

Given the output schema exists and annotations provide safety hints, the description covers all critical operational aspects: atomicity, versioning, root precedence, expected_revision semantics, and the untrusted nature of brief content. An agent has sufficient information to invoke both actions correctly.

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 description coverage is 0%, but the description compensates by explaining key parameters: expected_revision ('absent' or exact sha256 revision), project_root precedence (explicit, env var, then editor context), and action (read vs replace). The brief object's nested structure is left to the schema, which is detailed enough.

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 clearly states the tool's function: 'Reads or atomically replaces the versioned brief at <project_root>/.tdmcp/agent-brief.json.' This is a specific verb+resource+location, and it distinguishes itself from all sibling tools, none of which manage the agent brief.

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 provides clear operational guidelines, such as 'Replace requires expected_revision='absent' for creation or the exact revision returned by read' and root precedence rules. It does not explicitly name alternatives because none exist among the many siblings, but the context is clear enough for an agent to know when to use read vs replace.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

marketplace_index_seedMarketplace index seedA
Destructive

Write a guarded starter marketplace index JSON with optional built-in seed entries and custom package entries. Use this before local_marketplace_index when planning a local package marketplace; overwrite=false protects existing index files.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNotdmcp-local-marketplace
entriesNo
out_fileYesPath to the seed marketplace JSON file to write.
overwriteNoWhen false, fail if out_file already exists.
include_builtin_startersNoInclude starter package ideas that can be replaced with real local package paths.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
entriesYes
index_pathYes
custom_countYes
builtin_countYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as not read-only and destructive, and the description adds critical behavioral context: it writes a file, has a guard, and defaults to not overwriting (overwrite=false protects existing files). This goes beyond the annotation flags and helps the agent predict side effects. However, it does not disclose what happens on conflict beyond failing, which is implicit.

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 two sentences, front-loaded with the primary action, and each sentence provides distinct valuable information (purpose/features, then usage/guard). No redundant phrases.

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 the output schema exists, the description doesn't need to detail return values. It covers the tool's purpose, timing relative to a sibling, and the file-safety guard. The remaining parameter details are available in the schema, so the description is sufficient for an agent to understand the tool's role and safe invocation, though it could explicitly mention the failure behavior on existing files for absolute completeness.

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 only 60% schema description coverage, the description compensates partially by referencing three key parameters: 'built-in seed entries' maps to include_builtin_starters, 'custom package entries' to entries, and it explicitly explains overwrite=false protects existing files. It does not mention the `name` parameter, but the schema covers that with a default. Overall, it clarifies the main functional parameters beyond schema alone.

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 ('Write a guarded starter marketplace index JSON') and immediately distinguishes from the sibling tool (`local_marketplace_index`) by specifying this is the preparatory step. It clearly identifies the tool's output and its role in marketplace setup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives explicit timing ('before local_marketplace_index') and scenario ('when planning a local package marketplace'), naming the alternative sibling tool. This tells the agent exactly when to choose this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

merge_vaultsMerge VaultsA
Destructive

Merge the contents of a source Obsidian vault into a target vault (defaulting to TDMCP_VAULT_PATH). Walks Recipes/, Shaders/, Presets/, Components/, Setlists/, and Memory/ folders. sha256-hashes each file pair and resolves conflicts with your chosen strategy: 'theirs' overwrites target, 'ours' keeps target, 'rename' writes a side-by-side copy, 'skip' logs and skips. dryRun=true plans without writing. Note: LF/CRLF differences count as conflicts.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindsNo
dryRunNo
strategyNorename
sourceVaultPathYesAbsolute path to the source vault.
targetVaultPathNoDefaults to the configured TDMCP_VAULT_PATH.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as destructive (destructiveHint=true), but the description adds significant behavioral detail beyond that: it lists the folders walked, the hashing mechanism, conflict resolution strategies with meanings, dryRun behavior, and LF/CRLF conflict caveat. This is exactly the kind of operational context that helps an agent predict side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized: one main sentence followed by conflict-resolution details and a note about line endings. Every sentence adds value, though a slightly more compact phrasing could be achieved without losing information.

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?

Given the tool has no output schema, 5 parameters, and a destructive action, the description covers all critical aspects: source/target resolution, folder scope, conflict handling, dry-run capability, and even edge-case behavior (LF/CRLF). This is a complete picture for an agent to decide and invoke correctly.

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 40%, so the description carries important parameter meaning. It explains 'strategy' values ('theirs', 'ours', 'rename', 'skip'), clarifies dryRun as planning without writing, and specifies that targetVaultPath defaults to TDMCP_VAULT_PATH. It does not detail the 'kinds' parameter beyond listing folders, but the schema's enum and default cover that partially.

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 starts with a specific verb and resource: 'Merge the contents of a source Obsidian vault into a target vault'. It clearly states what the tool does and distinguishes it from vault-related siblings like sync_presets_vault or export_network_to_vault by focusing on full-vault merging with conflict resolution.

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 provides clear context: it is for merging a source vault into a target vault, with an explicit default target path. It does not explicitly name alternatives or when-not-to-use, but the operation is specific enough that the intended use is obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

moodboard_to_systemMoodboard → generative systemA

Ingest 1..6 moodboard images and build a matching generative system in TouchDesigner. Uses the vision-capable local LLM when configured to extract palette + motion + generator pick (palette hint, generator from {audio_reactive, generative_art, particle_flock, feedback_tunnel, gpu_particle_field}, optional post-FX). Falls back to a deterministic style→generator grammar otherwise. Note: preview may read 0 on a paused timeline — press Play.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNoHint that biases generator + post-FX choice.auto
imagesYesImage paths (absolute or cwd-relative). Vault refs allowed when TDMCP_VAULT_PATH is set: e.g. 'Moodboards/foo.png'.
generatorNoForce a generator. 'auto' lets the LLM/grammar pick.auto
intensityNoDrives evolution_speed / particle counts / feedback gain on the chosen generator.
preferLlmNoWhen false, skip the LLM entirely and use the deterministic grammar.
parent_pathNoCOMP to build the generated subsystem in./project1
includePostFxNoChain apply_post_processing with picked effects after the generator builds.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description adds valuable behavioral details: it discloses the use of a vision-capable local LLM when configured, a deterministic fallback grammar, and a specific quirk ('preview may read 0 on a paused timeline'). These context-rich additions exceed the bar set by 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 concise and front-loaded: the first sentence states the core action, the second explains the process and fallback, and the third gives a practical tip. No unnecessary words; the generator list is dense but informative.

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?

With no output schema, the description should ideally explain the return value or result of the build, but it does not. However, it covers inputs, process, fallback, and a behavioral quirk, making it fairly complete for a complex tool. A return value mention would push it to 5.

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?

The schema covers all 7 parameters with descriptions (100% coverage), so the description does not need to add much. It mentions 'palette hint' and the generator enum, but these are already detailed in the schema. The preview quirk is unrelated to parameters. This aligns with the baseline of 3 for high schema coverage.

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 clearly states the action ('Ingest 1..6 moodboard images and build a matching generative system in TouchDesigner') with a specific resource and target. It distinguishes itself from sibling creation tools by referencing moodboard input and a generator enum, making the tool's unique role clear.

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 provides clear context for when to use the tool (when building a generative system from moodboard images), but it does not explicitly name alternatives or state when not to use it. This meets the 'clear context, no exclusions' level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

morph_packPack / unpack a create_preset_morph slot set to a vault JSONA

Export an existing create_preset_morph container's slots ('looks') to a portable, sha256-verified JSON file in the Obsidian vault (action=pack), or re-hydrate a pack file back into a (newly built if missing) create_preset_morph container (action=unpack). Reuses the create_preset_morph engine — does not invent a new morph topology. Requires TDMCP_VAULT_PATH unless inline 'looks' are supplied on unpack.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPack name. Used as the JSON filename (<folder>/<name>.morphpack.json) and the morph container default name on unpack.
looksNo(unpack, advanced) Inline-supply the slot set instead of reading vaultPath. Mutually exclusive with vaultPath on unpack; ignored on pack.
mergeNo(unpack) replace: wipe presets and write only the pack's slots. union: keep existing slots and add/overwrite the pack's slots by id.replace
actionYespack: read an existing create_preset_morph container and serialise its slots to a vault JSON. unpack: re-hydrate a pack file into a (newly built if missing) create_preset_morph container, optionally rebinding to a new target.
parentNo(pack) Parent COMP holding the existing morph container (defaults to /project1, matches create_preset_morph). (unpack) Parent COMP where the container is (re)built./project1
containerNo(pack) Name of the existing morph container inside `parent` to read from. Defaults to `name`. (unpack) Name to (re)build; defaults to `name`.
overwriteNo(pack) Overwrite an existing pack file at vault_path.
vault_pathNoVault-relative path to the pack file. Defaults to `MorphPacks/<name>.morphpack.json`. Resolved through Vault.resolve (cannot escape the vault root).
target_pathNo(unpack) Override the target_path stored in the pack provenance (use when the pack came from a different show file and the target's path is different here). Omit to reuse pack provenance.target_path.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, so the agent knows this tool mutates state. The description adds useful behavioral context: packs are sha256-verified, the tool reuses the existing engine rather than creating new topology, and unpack can rebuild missing containers. It does not mention merge=replace wiping presets in the description, but the schema covers that and there is no direct contradiction.

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, each earning its place: first defines both modes, second clarifies engine reuse and topology compatibility, third gives the environment prerequisite. It is front-loaded and compact without unnecessary filler.

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 dual-mode tool with 9 parameters, the description plus rich schema is sufficient for correct invocation. It includes the key prerequisite (TDMCP_VAULT_PATH) and the container-creation behavior. Return values/provenance details are not described, but the absence is not critical given the schema and sibling context.

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?

The input schema covers 100% of parameters with detailed descriptions, so the baseline is 3. The description adds a high-level mental model (pack vs unpack, inline looks exception) but does not add meaning beyond what the schema already provides for each parameter.

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 clearly states a specific action: export a create_preset_morph container's slots to a sha256-verified vault JSON (pack) or re-hydrate a pack back into a container (unpack). It names the exact resource and distinguishes the two modes, which also differentiates it from sibling tools like create_preset_morph or manage_presets.

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 gives clear usage context: it explains both actions, states that the tool reuses the existing create_preset_morph engine, and notes the TDMCP_VAULT_PATH requirement unless inline looks are supplied. It does not explicitly name alternative tools or state when not to use it, but the context is strong enough to guide correct selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

multipass_3d_depthMultipass 3D scene (SSAO + depth)A

Build a renderable 3D scene with depth cues that read on stage: a Geometry COMP holding the chosen primitive (sphere/box/torus/grid), a Camera, a Light, and a Render TOP beauty pass, output as a Null — like create_3d_scene but with an optional Screen-Space Ambient Occlusion (SSAO) pass for contact shadows, and an optional Depth TOP output. The SSAO TOP is wired directly after the Render TOP (it needs the depth buffer — no TOP between them) and combined with the color. When expose_depth is on, a Depth TOP resolves the same render into a depth map exposed as a second Null ('depth_out'); feed that path into create_depth_displacement or create_depth_silhouette with source='existing_top' for a synthetic depth-driven effect — no depth camera needed. Optionally GPU-instanced into a grid, with spin over time. Exposes Spin, Zoom, and (with SSAO) an Ssao toggle. Returns a summary plus a JSON block with the container path, created node paths, the render/output/depth paths, exposed controls, node errors, warnings, and an inline preview image.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the self-contained container created under parent_path.multipass_3d
spinNoDegrees/sec rotation.
ssaoNoAdd a Screen-Space Ambient Occlusion pass for contact shadows/depth.
geometryNoPrimitive to render.torus
instancesNoGPU-instanced copies scattered over a grid (1 = single).
resolutionNoRender resolution [width, height] in pixels.
parent_pathNoParent COMP path the multipass 3D container is created inside (default '/project1')./project1
expose_depthNoExpose a Depth TOP output (feeds create_depth_displacement/silhouette synthetically).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate non-read-only, open-world, non-destructive. The description adds critical wiring details (SSAO must be directly after Render, no TOP between), depth resolution behavior, and the full return payload (summary, JSON block, preview image). This goes well beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with the core purpose in the first sentence. Every sentence contributes value, covering components, SSAO constraint, depth usage, instancing, and return format. While lengthy, it is justified by the multi-node complexity; minimal fluff. Could benefit from line breaks, but structure is logical.

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 complex tool with 8 parameters and no output schema, the description is remarkably complete: it explains the SSAO wiring constraint, depth output usage, downstream integration, and return payload. The only minor gap is an unexplained 'Zoom' control not present in the input schema, but overall it equips an agent with sufficient context.

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 coverage is 100%, so the schema already documents all 8 parameters. The description adds context like 'Exposes Spin, Zoom, and Ssao toggle' and 'GPU-instanced into a grid', but Zoom is not a schema parameter, which introduces a minor inconsistency. Overall, the description adds marginal meaning beyond the schema's per-parameter descriptions.

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+resource: 'Build a renderable 3D scene with depth cues that read on stage' and enumerates exact components (Geometry COMP, Camera, Light, Render TOP, Null). It explicitly distinguishes itself from sibling create_3d_scene by adding optional SSAO and Depth TOP outputs, making the purpose unmistakable.

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 says 'like create_3d_scene but with...' which clearly positions this tool as a superset variant for depth/SSAO needs. It also names downstream consumers (create_depth_displacement/create_depth_silhouette) and notes 'no depth camera needed', providing concrete usage guidance. It does not explicitly list exclusions, but the alternatives are clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

narrate_setNarrate a live set (persisted decision log)A

Persist the running narration of a live VJ/show set so decisions can be recalled afterwards. mode='append' adds a timestamped line (with optional section + cue) to a markdown session log (default ~/.tdmcp/narration-.md); mode='recall' reads the log back (last tail lines). Pair with the auto_vj_director prompt: instead of narrating only in chat, call narrate_set on each major move so the set leaves a diary/setlist trail. Writes a local file (not read-only). Delta vs log_performance, which writes a one-shot network snapshot rather than an append-only decision log.

ParametersJSON Schema
NameRequiredDescriptionDefault
cueNoOptional cue name being fired/recalled, for cross-reference.
lineNoThe narration line to record (required for mode='append'), e.g. "holding through the build → cue 'drop' on the next bar".
modeNoappend: add a narration line to the running set log. recall: read back the log lines.append
tailNoFor mode='recall': return at most the last N narration lines.
sectionNoOptional song section/phase this line belongs to, e.g. 'intro', 'drop', 'breakdown'.
log_pathNoExplicit path to the narration log file, overriding set_name. Honors TDMCP_NARRATION_PATH otherwise.
set_nameNoSession name; picks the log file ~/.tdmcp/narration-<set_name>.md. Defaults to today's date.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
countYesTotal narration lines in the log.
entriesNoParsed narration entries (mode='recall').
appendedNoThe entry that was appended (mode='append').
log_pathYesAbsolute path of the narration log file.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already set readOnlyHint=false and destructiveHint=false, and the description adds concrete behavioral detail: 'Writes a local file (not read-only)' and explains append is timestamped and recall reads the last `tail` lines. This goes beyond the annotations by specifying the side effect (local markdown file) and append-only nature, though it doesn't discuss permissions or error handling.

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?

Three dense sentences cover purpose, modes, usage context, and sibling distinction with zero filler. The most important information (persist narration) is front-loaded, and every sentence adds value.

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?

Given the tool's moderate complexity (7 parameters, two modes, file I/O), the description covers the essential context: what it does, when to use it, how modes behave, and how it differs from log_performance. The output schema and parameter descriptions fill in remaining details, so the description is fully adequate.

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 100%, so the baseline is 3, but the description adds meaning by explaining how mode='append' and mode='recall' use parameters like section, cue, and tail. It also clarifies the default log path behavior (date-based set_name), enriching the schema's parameter descriptions.

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+resource: 'Persist the running narration of a live VJ/show set so decisions can be recalled afterwards.' It then clearly distinguishes the two modes (append and recall) and explicitly contrasts with the sibling tool log_performance, removing any ambiguity about its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage guidance: 'Pair with the auto_vj_director prompt: instead of narrating only in chat, call narrate_set on each major move.' It also provides a clear alternative: 'Delta vs log_performance, which writes a one-shot network snapshot rather than an append-only decision log,' telling the agent when to use this tool versus log_performance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notch_touchengine_bridgeNotch TouchEngine bridgeA

Build a guarded Notch TOP or Engine COMP/TouchEngine bridge scaffold with notes, output, and optional Notch play/speed controls. This does not validate a Notch license or target runtime; live validation remains explicit.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoCreate a Notch TOP bridge or an Engine COMP TouchEngine bridge.notch_top
nameNoGenerated container name.notch_touchengine_bridge
playNoStart playback/cooking where supported.
widthNoNotch TOP or placeholder output width. Ignored by mode=engine_comp.
activeNoStart the Notch TOP active. Ignored by mode=engine_comp.
heightNoNotch TOP or placeholder output height. Ignored by mode=engine_comp.
tox_pathNoTouchEngine .tox path for mode=engine_comp.
block_pathNoNotch .dfxdll block path for mode=notch_top.
parent_pathNoParent COMP path to build inside./project1
expose_controlsNoExpose Play and Speed controls where possible.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnly=false, openWorld=true, and destructive=false. The description adds meaningful behavioral context: 'This does not validate a Notch license or target runtime; live validation remains explicit.' This discloses a limitation beyond the annotations. No contradiction; openWorldHint aligns with the explicit-validation caveat.

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 concise sentences: the first states the main purpose and elements, the second a key caveat. Every sentence earns its place, no redundant wording, and the structure front-loads the primary action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter scaffold builder with no output schema, the description covers the core purpose and one limitation, but leaves ambiguities: what 'guarded' means concretely, side effects on existing nodes, or relationship to siblings like create_engine_comp. Annotations provide the safety profile, but the description could clarify more about behavior and prerequisites.

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 coverage is 100% with per-parameter descriptions, so the schema carries the parameter documentation burden. The description adds only a general mention of 'optional Notch play/speed controls' which maps to expose_controls, but does not add new semantics beyond the schema.

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 uses a specific verb ('Build') plus resource ('Notch TOP or Engine COMP/TouchEngine bridge scaffold') and lists key contents ('notes, output, optional play/speed controls'). It clearly distinguishes from siblings like create_engine_comp or connect_touchengine_notch by framing it as a 'guarded scaffold' creation tool.

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?

The description implies usage through the tool name and scaffolding frame, but gives no explicit when-to-use guidance or alternative tool exclusions. The caveat about not validating licenses/runtime hints at a use case (pre-validation scaffolding), but the description does not clearly state 'use this instead of X when you need Y'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obs_stream_controlOBS stream controlA

Create an OBS WebSocket v5 control rig in TouchDesigner: websocketDAT connection, Constant CHOP command channels for stream/record/scene actions, and a chopExecute DAT that dispatches op:6 request payloads such as StartStream, StopStream, ToggleStream, StartRecord, StopRecord, ToggleRecord, and SetCurrentProgramScene. tdmcp never accepts or stores OBS passwords; if OBS authentication is enabled, complete Identify authentication manually in the generated obs_dispatch DAT.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoOBS WebSocket host/IP.127.0.0.1
nameNoName of the created/reused baseCOMP.obs_stream_control
portNoOBS WebSocket port.
scenesNoOptional OBS scene names. Each creates a scene_* control that sends SetCurrentProgramScene.
use_tlsNoUse wss:// instead of ws://.
parent_pathNoParent COMP to build the OBS control rig in./project1
auto_connectNoStart the websocketDAT active immediately. Defaults false for show safety.
auth_requiredNoSet true only as a reminder that OBS WebSocket authentication must be completed manually; tdmcp never stores an OBS password.
include_recordingNoAlso create StartRecord, StopRecord, and ToggleRecord controls.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations say readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds meaningful context beyond these: it discloses the authentication limitation ('tdmcp never accepts or stores OBS passwords') and instructs manual Identify completion, which is not covered by annotations. It also specifies WebSocket v5 and op:6 request payloads, giving the agent insight into the underlying mechanics.

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 two sentences, front-loaded with the core action and resource. It includes an actionable list of commands and an important security caveat. Every sentence earns its place without unnecessary words.

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 the complexity of generating a control rig and the absence of an output schema, the description covers the main deliverable (components), supported commands, and the critical authentication requirement. It does not explain the post-generation workflow or lifecycle, but the schema handles parameter context, so the information is sufficient for an agent to understand the tool's scope.

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% with all 9 parameters documented. The description does not add parameter-specific details beyond what is in the schema; it reinforces the role of scene and record controls but does not introduce new semantics. Baseline 3 is appropriate when schema carries the descriptive burden.

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 clearly states the tool's purpose: creating an OBS WebSocket v5 control rig in TouchDesigner. It specifies the exact components (websocketDAT, Constant CHOP, chopExecute DAT) and enumerated commands (StartStream, StopStream, ToggleStream, StartRecord, StopRecord, ToggleRecord, SetCurrentProgramScene), making it distinct from sibling tools like connect_obs_recorder or create_control_surface. The verb 'Create' is specific and the resource is well-defined.

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?

The description implies usage for building an OBS control rig but does not explicitly state when to use this tool versus alternatives. There is no mention of when not to use it or a comparison with siblings such as connect_obs_recorder. The context is clear but exclusions and alternative guidance are missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

one_source_five_waysOne source five waysA
Read-only

Turn one source node, asset, or package entry into five deterministic remix briefs: colorway, motion, texture, spatial reframe, and performance cue. Offline/read-only planning tool for agents before mutating TouchDesigner networks.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalNoCreative objective for the five variants.generate five distinct performance-ready variations
intensityNoHow far the variants should diverge from the source.balanced
source_pathYesTouchDesigner node path, asset id, file path, or package entry to remix.
source_summaryNoOptional description of the source's colors, motion, structure, or performance role.
include_tool_stepsNoInclude suggested tdmcp tool steps for each variant.

Output Schema

ParametersJSON Schema
NameRequiredDescription
goalYes
intensityYes
variationsYes
source_pathYes
source_summaryNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description need not repeat those. It adds valuable behavioral context beyond annotations: 'offline' (no external dependencies), 'deterministic' (same input yields same output), and the fixed count of five briefs. These traits are not derivable from annotations or schema, enriching the agent's understanding of what to expect.

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, front-loaded with the primary action, and no filler. It efficiently conveys purpose, input, output, determinism, and usage context. Listing the five brief types makes the sentence instructional without being verbose. Every word contributes, and the structure is ideal for quick agent scanning.

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?

With an output schema present, the description need not explain return structure. It covers the tool's core function, safety profile, and usage timing. It could briefly clarify what a 'remix brief' contains, but given the output schema and the tool's straightforward purpose, the description is sufficiently complete for an agent to decide when and how to use it.

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 met by the schema alone. The description does not materially clarify parameter behavior beyond what the schema already states; it mentions the source broadly and the five brief types, but the schema already specifies source_path formats and the other parameters. Therefore, the description adds no significant semantic value beyond the structured field descriptions.

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 clearly states the tool's function with a specific verb ('Turn...into'), identifies the input (source node, asset, or package entry), and lists the exact output (five deterministic remix briefs with named categories). It also distinguishes itself from sibling mutation tools by explicitly labeling it as a planning tool for use 'before mutating' networks, making it unique among the many creation tools.

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 provides clear usage context: it is an 'offline/read-only planning tool for agents before mutating TouchDesigner networks.' This implies when to use it (as a safe pre-mutation planning step) and, with the read-only annotation, implicitly warns against expecting network changes. However, it does not explicitly name alternative tools or state when not to use it, so it stops short of full explicitness.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

optimize_performanceOptimize performanceA
Destructive

Scan a network for cook-time bottlenecks and report the slowest nodes with concrete suggestions. By default this is a read-only measurement; with apply=true it mutates flagged TOP resolutions by scale and returns the before/after sizes. Run get_td_performance when you only need metrics; use this tool when you want the bounded resolution change, and leave apply=false for a plan-only pass.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoNetwork to analyze (recursively)./project1
applyNoIf true, actually lower the resolution of the flagged TOPs by `scale`. Default false = just report the bottlenecks and suggestions.
scaleNo(apply) Resolution multiplier for flagged TOPs (0.5 = half on each axis).
threshold_msNoFlag nodes whose last cook took at least this many milliseconds.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral nuances beyond the annotations: default is read-only, apply=true triggers mutation of TOP resolutions, and it returns before/after sizes. This clarifies the destructiveHint annotation by scoping the destructive behavior to a specific flag, while adding output expectations. No contradiction with 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?

Two sentences, tightly packed with relevant information. The first sentence front-loads the core purpose; the second covers behavior, alternatives, and usage guidance without redundancy. Every clause earns its place.

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?

The description covers purpose, usage alternatives, behavioral modes, and return information ('before/after sizes', 'report the bottlenecks and suggestions'). Despite no output schema, it gives enough to understand what the tool returns in both apply modes. The dual-mode complexity is well explained.

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 100%, so baseline is 3. The description adds value by explaining the semantic role of apply and scale in the mutation process ('mutates flagged TOP resolutions by scale') and the resulting before/after sizes, which is not fully captured in the schema. This pushes it above baseline.

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 starts with a specific verb-resource combination: 'Scan a network for cook-time bottlenecks and report the slowest nodes with concrete suggestions.' It clearly differentiates from the sibling get_td_performance by explicitly naming that tool and contrasting its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Run get_td_performance when you only need metrics; use this tool when you want the bounded resolution change, and leave apply=false for a plan-only pass.' This gives both an alternative and a clear conditional usage pattern.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

osc_router_matrixOSC router matrixA

Create an offline-safe OSC control matrix: one Constant CHOP plus OSC Out CHOP per target, deterministic left-to-right layout, target-specific address prefixes, and a structured report of every emitted OSC address. Use it as the primitive for QLab, atemOSC/Companion, Resolume, VDMX, or any OSC-speaking show-control endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the router container COMP.osc_router_matrix
routesYesRoutes/channels to create for every target.
targetsYesOSC destinations. Each target gets a Constant CHOP and OSC Out CHOP.
parent_pathNoParent COMP to build the router in./project1

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the description is not burdened with those. It adds valuable behavioral context: 'offline-safe' suggests that OSC isn't sent until activation, plus deterministic layout and a report of emitted addresses. It does not mention overwrite or collision behavior, but these are minor gaps given the annotation coverage.

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 compact and front-loaded: it starts with the action and then lists the key deliverables in a dense, structured sentence. The second sentence situates the tool in its intended ecosystem without wasting words.

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?

With no output schema, the description compensates by promising a 'structured report of every emitted OSC address' and by specifying the internal CHOP structure. The schema's min/max constraints and annotations cover edge cases and safety, making the description complete enough for an agent to understand the outputs and scope.

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 only high-level pointers like 'target-specific address prefixes' and 'structured report of every emitted OSC address,' but does not provide parameter-level details beyond what the schema already offers. It neither enriches nor contradicts the schema.

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 uses the specific verb 'Create' and clearly enumerates the artifacts: one Constant CHOP plus OSC Out CHOP per target, deterministic left-to-right layout, target-specific address prefixes, and a structured report. It distinguishes itself from sibling connect_* integration tools and create_ndi_router_matrix by positioning this as a generic OSC-ready primitive for multiple show-control endpoints.

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 a concrete use case: 'Use it as the primitive for QLab, atemOSC/Companion, Resolume, VDMX, or any OSC-speaking show-control endpoint.' This implies when to choose this tool over more specific integrations, though it does not explicitly state exclusions or alternatives, leaving the agent to infer boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_td_version_migrationPlan TD version migrationA
Read-only

Read-only: plan a TouchDesigner stable-version migration from offline release highlights plus operator and Python API compatibility records. Returns upgrade boundaries, focused compatibility deltas, and an operator checklist without touching TouchDesigner.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum entries to return in each compatibility section.
queryNoOptional project focus terms, e.g. web render, POP, script, DMX.
to_versionNoTarget TouchDesigner stable version. Defaults to the current stable release.
from_versionYesCurrent TouchDesigner stable version, e.g. 099, 2023, or 2024.

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryNo
warningsYes
checklistYes
directionYes
toVersionYes
fromVersionYes
versionPathYesStable versions crossed after from_version.
operatorChangesYes
operatorRemovalsYes
operatorAdditionsYes
releaseHighlightsYes
pythonApiAdditionsYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only' and 'without touching TouchDesigner', adding context that it operates purely offline. It also discloses return content (upgrade boundaries, deltas, checklist) beyond what annotations convey.

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 two sentences, front-loaded with the key safety property (read-only) and the main action. Every phrase adds value, and there is no redundancy or filler.

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?

Given the presence of an output schema and full parameter descriptions, the description fully covers the tool's purpose, scope, and safety profile. It even names the three types of returned information, which, combined with the output schema, makes the tool's behavior clear for an agent.

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 coverage is 100%, with each parameter having its own description, so the description does not need to explain parameter syntax. It adds no extra parameter-level meaning beyond the schema, so baseline 3 is appropriate.

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 uses a specific verb 'plan' with a clear resource (TouchDesigner stable-version migration), and distinguishes itself from siblings by focusing on planning migration using offline release highlights and compatibility records. It states the outcome (upgrade boundaries, compatibility deltas, operator checklist) unambiguously.

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 gives clear context: it is for planning a TouchDesigner version migration and is read-only, implying use before an actual migration. However, it does not explicitly name alternative tools or exclude other use cases, so it stops short of a full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_visualPlan a visual from a descriptionA
Read-only

Turn a visual description into a read-only build plan. The deterministic planner remains the default and creates nothing. Set planner='llm' to opt into one bounded completion grounded in compact editor/project/recipe/operator evidence; every suggested tool, recipe and operator is validated, and any unavailable or invalid LLM path falls back deterministically without mutating TouchDesigner.

ParametersJSON Schema
NameRequiredDescriptionDefault
plannerNoUse the deterministic keyword planner (default), or explicitly request one bounded, grounded LLM completion with deterministic fallback.deterministic
root_pathNoOptional TouchDesigner root used only for bounded read-only grounding in planner='llm'.
descriptionYesNatural-language description of the visual you want.
llm_timeout_msNoBound the single LLM completion to 1000-10000 ms.

Output Schema

ParametersJSON Schema
NameRequiredDescription
stepsYes
warningsYes
groundingYes
operatorsYes
recipe_idYes
planner_usedYes
interpretationYes
schema_versionYes
fallback_reasonYes
recommended_toolYes
planner_requestedYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the annotations by detailing exactly what happens: 'every suggested tool, recipe and operator is validated,' and 'any unavailable or invalid LLM path falls back deterministically without mutating TouchDesigner.' This discloses fallback behavior and safety guarantees, adding substantial value beyond the readOnlyHint/destructiveHint 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?

Three sentences pack all necessary information: purpose, default behavior, and LLM option details. There is no redundancy or filler; each sentence adds a distinct piece of information.

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?

Given the output schema and full parameter descriptions, the description is highly complete. It covers purpose, safety (read-only), planner behavior, and fallback mechanism, leaving no critical gaps.

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?

The schema already covers 100% of parameters with descriptions, so baseline is 3. The description adds meaning to the 'planner' parameter by explaining the difference between deterministic and LLM modes, including the bounded completion and fallback behavior, which is not in the schema.

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 clearly states the tool's function: 'Turn a visual description into a read-only build plan.' The verb 'turn' plus the resource 'visual description' make the action explicit, and 'read-only build plan' distinguishes it from execution-oriented sibling tools that create or modify TouchDesigner nodes.

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?

The description provides context that this is a planning tool that 'creates nothing,' which implies it should be used before actual node creation. However, it does not explicitly name alternative tools or state when not to use it, leaving the comparison to siblings implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_passes_3d3D-aware post-processing passesA

Compose a chain of 3D-aware post-processing passes (SSAO, SSR, DOF, motion blur) inside a new baseCOMP. Each pass is a glslTOP with companion textDAT that samples color + depth + (optional) normal/velocity AOVs from selectTOPs. Passes run in fixed order SSAO → SSR → DOF → MB and emit a final null TOP ('out1'). SSR is skipped with a warning when normal_top is empty; motion blur falls back to a directional blur when velocity_top is empty; if color_top points at a renderTOP and depth_top is empty, a sibling depthTOP is auto-created (best-effort). Returns container/output paths, the resolved AOV paths, the enabled passes, and any warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the created baseCOMP container.post_passes_3d
color_topYesAbsolute path of the beauty-pass TOP (Render TOP / Null TOP).
depth_topNoAbsolute path of the depth TOP. Empty = auto-derive from a sibling depthTOP when color is a renderTOP.
dof_focusNo
dof_enableNo
normal_topNoAbsolute path of the normal-AOV TOP. Empty = SSR is skipped (warning).
resolutionNo
ssr_enableNo
parent_pathNoParent COMP for the post-pass container./project1
ssao_enableNo
ssao_radiusNo
dof_apertureNo
velocity_topNoAbsolute path of the velocity-AOV TOP. Empty = motion blur falls back to directional.
ssr_intensityNo
ssao_intensityNo
motion_blur_amountNo
motion_blur_enableNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the minimal annotations (readOnly=false, destructive=false). It discloses fixed execution order, fallback behaviors (SSR skip, motion blur directional fallback), auto-creation of a depthTOP, and the exact return payload (paths, enabled passes, warnings). This is rich contextual behavior.

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 a single dense paragraph where each sentence contributes new information: pipeline construction, per-pass implementation, order, fallbacks, auto-depth creation, and return values. It is efficient and well-structured for the complexity.

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 tool with 17 parameters and complex chain behavior, the description covers the main workflow, fallback paths, and return values. It lacks detailed explanation for many parameters, but the schema provides names, defaults, and constraints, so the description is mostly complete.

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 coverage is low (35%), but the description adds meaningful semantics for the AOV inputs: depth_top auto-derivation, normal_top empty triggers SSR skip, velocity_top empty triggers fallback. However, it says nothing about the many numeric/boolean controls (ssao_radius, dof_aperture, etc.), which rely on self-evident names and schema defaults.

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 chain of 3D-aware post-processing passes inside a new baseCOMP.' It names the exact passes (SSAO, SSR, DOF, motion blur) and the container type, and the fixed order differentiates it from generic post-processing siblings like apply_post_processing.

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?

The description implies the tool is for building a 3D-aware post-processing chain but never explicitly contrasts it with alternatives or states when to use it vs. other compositing tools. It provides detailed behavior but no exclusions or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

profile_cook_costProfile cook costA
Read-only

Read-only: sample cook times over a window (N samples × intervalMs) and rank hotspot nodes by p95 cook time. Use this to diagnose intermittent stalls that a single get_td_performance snapshot misses. Returns {path, samples, intervalMs, targetFps, frameBudgetMs, windowMs, hotspots[], warnings[]}.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNNoHow many hotspots to return, ranked desc by p95.
samplesNoHow many snapshots to take across the window.
scopePathNoNetwork root to profile (recursive)./project1
targetFpsNoForwarded to get_td_performance for the per-frame budget annotation.
intervalMsNoDelay between snapshots in milliseconds (>= one frame at 60fps).

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
samplesYes
hotspotsYes
warningsYes
windowMsYes
targetFpsYes
intervalMsYes
frameBudgetMsYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds behavioral context about the sampling methodology (N samples × intervalMs) and output composition (hotspots, warnings), which goes beyond the annotations without contradicting them.

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, front-loaded with the key action ('Read-only') and purpose. Includes a compact return signature. No redundant or placeholder content; every sentence earns its place.

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?

With output schema present and annotations covering safety, the description still adds purpose, use case, and return structure. It is sufficient for an agent to understand when and how to invoke the tool, and the inclusion of the alternative tool makes the context complete.

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 coverage is 100% with each parameter already described in detail. The description reinforces the relationship between samples and intervalMs (window) and mentions targetFps forwarding, but does not add significant new meaning beyond what the schema provides. Baseline 3 applies.

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 clearly states the tool samples cook times over a window and ranks hotspot nodes by p95 cook time. It uses specific verbs ('sample', 'rank') and identifies the resource (cook times, hotspot nodes). It also distinguishes itself from get_td_performance by targeting intermittent stalls a single snapshot misses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool: 'Use this to diagnose intermittent stalls that a single get_td_performance snapshot misses.' It names the alternative tool and the specific scenario where this tool is superior, providing clear guidance for agent selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_documentation_siteProject documentation siteA
Destructive

Compose a one-folder handoff/portfolio documentation PACKAGE for a network: a README.md (title, node count, per-family summary, how-to-load note), a topology.md with a Mermaid graph of the connections, and - when include_thumbnails is set - preview PNGs of output TOPs under thumbs/ linked from gallery.md, all written into out_dir. Unlike generate_readme (a single file), this assembles a small multi-file site folder for sharing or archiving a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoDocument title. Defaults to the basename of parent_path when blank.
out_dirYesFolder to write the documentation package into (relative or absolute).
parent_pathNoThe network to document (project or COMP), e.g. /project1 or /project1/myComp./project1
max_thumbnailsNoMaximum number of output-TOP previews to capture when include_thumbnails is set.
include_thumbnailsNoCapture preview PNGs of output TOPs into thumbs/ and link them in gallery.md.

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag this as potentially destructive (readOnlyHint=false, destructiveHint=true). The description adds the concrete behavior of writing multiple files into out_dir and conditionally generating thumbnails, but it does not clarify whether existing files in out_dir are overwritten or deleted, which is a notable gap given the destructive hint.

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, no filler. The first sentence efficiently packs the purpose and file inventory; the second contrasts with a sibling. Every word earns its place.

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?

The description enumerates all generated files and their contents, the conditional thumbnails, and the output directory. It doesn't discuss overwrite behavior or prerequisites, but for a documentation writer, the key details are present. Output schema absence is mitigated by the detailed package structure description.

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?

All 5 parameters have schema descriptions (100% coverage), so the baseline is 3. The description adds meaning by explaining that include_thumbnails triggers PNG generation linked from gallery.md, and that all files are written into out_dir, going slightly beyond the schema's property descriptions.

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 clearly states it 'compose[s] a one-folder handoff/portfolio documentation PACKAGE for a network' and enumerates the outputs (README.md, topology.md, thumbnails). It also explicitly contrasts with sibling generate_readme, making the tool's scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names generate_readme as the alternative and explains the difference ('a single file' vs 'a small multi-file site folder'), with an explicit use case: 'for sharing or archiving a project.' This gives the agent a clear selection criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

projector_calibration_wizardProjector calibration wizardA

Build a rehearsal-safe projector calibration network: generated grid/crosshair or selected source TOP, per-projector crop/corner-pin/level/output lanes, preview layout, notes, and brightness/gamma controls. Live projector alignment remains explicitly unverified until run on the physical outputs.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the generated calibration container.projector_calibration
widthNoPer-lane output width.
heightNoPer-lane output height.
overlapNoNormalized overlap reserved for soft-edge alignment notes.
projectorsNoNumber of projector lanes to scaffold.
parent_pathNoParent COMP path to build inside./project1
source_pathNoOptional existing TOP to calibrate. Omit to generate a built-in grid/crosshair.
expose_controlsNoExpose Brightness and Gamma controls on every projector lane.
include_corner_pinNoInsert a Corner Pin TOP per projector lane for keystone alignment.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, which are consistent with a build tool. The description adds useful behavioral context by emphasizing that the tool is rehearsal-safe and does not verify live alignment until run on physical outputs, and by listing exactly what components it generates. This goes beyond what annotations convey.

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 only two sentences, front-loaded with the main action and an efficient colon-separated list of features. It includes the crucial caveat about unverified alignment without wasted words. Every phrase earns its place.

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?

The description covers purpose, main components, and a key limitation (unverified alignment). It implicitly clarifies that the result is a network built inside the parent_path. With all parameters fully described in the schema, this is nearly complete. However, it does not explicitly state the return value (e.g., reference to the created container), though this is typical for such tools.

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?

All 9 parameters are described in the schema (100% coverage), so the schema does most of the semantic work. The description adds a high-level context by mentioning 'generated grid/crosshair or selected source TOP' (relating to source_path) and per-projector lanes, but it does not provide significant new details beyond schema descriptions. Baseline of 3 is appropriate.

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 uses a specific verb ('Build') and resource ('rehearsal-safe projector calibration network') and enumerates concrete features (grid/crosshair, per-projector crop/corner-pin/level/output lanes, preview layout, notes, brightness/gamma controls). This clearly distinguishes it from sibling tools like create_projection_mapping or create_mpcdi_projection_mapper, which focus on other projection-mapping approaches.

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 establishes a clear context: it is for building a rehearsal-safe calibration network, with the explicit caveat that 'Live projector alignment remains explicitly unverified until run on the physical outputs.' This implies that this tool is not for final alignment/verification, but it does not name alternative tools or provide explicit 'when not to use' guidance beyond that.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

provenance_stampProvenance StampA

Writes a .provenance.json sidecar next to a saved artifact (tox, recipe note, recipe bundle, component bundle). Records the sha256 checksum, file size, mtime, source COMP path, originating tdmcp tool, toolchain versions, best-effort git metadata, author, tags, and freeform notes. Offline — no TD bridge required.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoFree-form tags for vault search.
extraNoTool-specific extras, e.g. {nodes:7, connections:9}.
notesNoShort human note to attach to the sidecar.
authorNoAuthor label. Defaults to TDMCP_AUTHOR env var then os.userInfo().username.
sourceNoWhere/what produced this artifact.
overwriteNoReplace an existing sidecar. Set false to refuse if one exists.
include_gitNoCapture git commit/branch/dirty from the artifact's directory (best-effort).
artifact_kindNoWhat kind of artifact this is — hint only, not validated.other
artifact_pathYesAbsolute or vault-resolved path to the file to stamp.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful context by listing what the sidecar records (sha256 checksum, file size, mtime, source COMP path, toolchain versions, git metadata, author, tags, notes) and re-emphasizes the offline operation. Annotations already declare write-ish intent (readOnlyHint=false) and non-destructive nature, so no contradiction. Missing is explicit mention of the `overwrite` default behavior, but it's not critical given 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 exactly two sentences: the first front-loads the action and scope, the second lists the recorded data fields. Every clause is informative and there is no filler or repetition.

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?

Even though there are 9 parameters and no output schema, the description covers the essential context: what is written, to what artifact types, what data it records, and that it works offline. Missing are explicit details on overwrite behavior or return value, but these are either implied by the sidecar concept or present in the schema (e.g., `overwrite` parameter).

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 description coverage is 100% (all 9 parameters have descriptions), so the baseline is 3. The description adds value beyond the schema by tying the parameters to the overall purpose (e.g., 'source COMP path', 'originating tdmcp tool', 'best-effort git metadata') which maps to `source`, `include_git`, and `tags`. This supplements the schema without redundancy.

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 uses a specific verb ('Writes') and a specific resource ('.provenance.json sidecar') and clearly lists the artifact kinds it applies to (tox, recipe note, recipe bundle, component bundle). This distinguishes it from generic save/export tools in the sibling list, such as save_recipe_to_vault or export_recipe_bundle.

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 phrase 'next to a saved artifact' gives clear context on when to use the tool, and the 'Offline — no TD bridge required' note indicates an advantage over bridge-dependent tools. However, it does not explicitly name alternative tools or conditions when not to use it, though the context is generally sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_recipe_bundlePublish recipe bundleA
Destructive

Write a local, versioned recipe-bundle publish artifact for CI upload or handoff: .recipes.json, tdmcp-recipe-publish.json, and tdmcp-checksums.json. Use recipe_ids for selected recipes or include_all=true for the whole library; overwrite=false protects existing artifacts. This is a filesystem write tool and returns artifact paths, checksum entries, included recipe count, and missing ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilesystem-safe bundle name; becomes <name>.recipes.json after sanitization.recipe-bundle
out_dirYesLocal directory where the bundle JSON, publish manifest, and checksum manifest are written.
versionNoSemantic version recorded in the tdmcp-recipe-publish manifest.0.1.0
overwriteNoWhen false, fail if any output artifact already exists; set true to replace them.
recipe_idsNoRecipe ids to include when include_all is false; missing ids are reported in the bundle.
include_allNoWhen true, publish every recipe in the loaded recipe library and ignore recipe_ids.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description openly discloses that 'This is a filesystem write tool' and explains the overwrite protection behavior, which complements the destructiveHint annotation. It also states what the return value contains (artifact paths, checksums, count, missing ids), adding useful behavioral context beyond the annotations. No contradiction with 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 compact (three sentences) and front-loads the primary action and purpose. Every sentence contributes value: the output artifact names, the key parameter choices, and the return values. No redundant or filler text.

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?

Given the tool's complexity (6 parameters, no output schema, destructive annotations), the description covers all critical aspects: what files are produced, how to select content, the overwrite safeguard, and the return information. It is sufficiently complete for an agent to invoke and interpret results without additional documentation.

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 100% schema description coverage, the baseline is 3. The description adds meaningful cross-parameter semantics by explaining the selection modes (recipe_ids vs include_all) and overwrite behavior, which clarifies how the parameters interact rather than just repeating each field's schema description.

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 is highly specific: 'Write a local, versioned recipe-bundle publish artifact for CI upload or handoff' and enumerates the exact output files. It clearly states the verb and resource. However, it does not explicitly differentiate itself from sibling 'export_recipe_bundle' or other bundle-related tools, so it misses the sibling-distinction criterion for 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear context for use ('for CI upload or handoff') and gives practical guidance on how to select recipes ('Use recipe_ids for selected recipes or include_all=true for the whole library') and protect existing files ('overwrite=false protects existing artifacts'). It does not mention when not to use it or name alternatives, which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pulse_td_parameterPulse TouchDesigner parameterA

Validate that an existing operator parameter is Pulse style, invoke its structured .pulse() operation, and confirm the result. Missing operators, missing parameters and non-Pulse styles return typed bridge errors. Does not use raw Python fallback.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path of the operator that owns the Pulse.
parameterYesExact name of the Pulse parameter.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses validation-before-invocation, typed error behavior for missing/non-Pulse cases, and the absence of raw Python fallback. This adds meaningful behavioral context about what happens on failure and what the tool intentionally does not do.

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 two sentences, front-loaded with the core action, and each sentence earns its place: the first explains the process, the second covers error semantics and the no-fallback trait. No redundancy or fluff.

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 simple pulse tool, the description covers validation, invocation, error behavior, and the no-fallback policy. The only minor gap is the vague 'confirm the result' without specifying return format, but since no output schema exists and the tool is simple, this is acceptable.

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 coverage is 100% with descriptive parameter entries ('Full path of the operator that owns the Pulse', 'Exact name of the Pulse parameter'). The description does not add extra meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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 clearly states a specific action: 'Validate that an existing operator parameter is Pulse style, invoke its structured .pulse() operation, and confirm the result.' It names the resource (operator parameter), the exact operation (.pulse()), and differentiates from siblings like execute_python_script by noting it does not use raw Python fallback.

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 implies when to use: for Pulse-style parameters needing a structured pulse call. It clarifies limitations ('Does not use raw Python fallback') and error conditions (missing operators/parameters/non-Pulse styles return typed errors). However, it does not explicitly name alternatives or state 'use this instead of X', leaving some room for inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qlab_osc_bridgeQLab OSC bridgeA

Create a QLab OSC control bridge using the OSC router matrix primitive. It exposes /go, /stop, /panic, /pause, /resume, /reset and optional /cue/{number}/start routes to QLab's configurable OSC receive port, without requiring QLab to be running during build.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoQLab machine IP or hostname.127.0.0.1
nameNoName of the bridge container COMP.qlab_osc_bridge
portNoQLab OSC receive port.
activeNoStart OSC sending immediately.
cue_numbersNoOptional QLab cue numbers to expose as /cue/{number}/start routes.
parent_pathNoParent COMP to build the QLab OSC bridge in./project1

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnly=false and destructive=false, which align with 'create'. Description adds useful context about not needing QLab during build and exposing routes to a configurable port, but doesn't disclose runtime behavior or potential side effects beyond that.

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 concise sentences, front-loaded with the core action and resource. Every phrase adds value; no wasted words.

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 build tool with all parameters documented, description covers the main purpose, exposed routes, and a key build-time condition. No output schema or return value explanation necessary. Could mention dependencies on other primitives, but the primitive is named.

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?

Input schema defines all 6 parameters with descriptions (100% coverage). Description adds slight context by referencing optional cue routes that map to cue_numbers, but doesn't add significant meaning beyond the schema.

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?

Description identifies a specific action (create a QLab OSC control bridge), names the primitive used (OSC router matrix primitive), and lists the exact routes exposed. This distinguishes it from sibling tools like connect_qlab_cue_stack or osc_router_matrix.

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?

Provides clear context on what the tool does (builds a bridge with specific OSC routes) and a key non-requirement (QLab doesn't need to run during build). No explicit alternatives are named, but the use case is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

randomize_controlsRandomize controlsA

Randomize a COMP's numeric custom parameters within their slider ranges — an instant new variation for live improvisation. amount blends toward random (1 = fully random, low values nudge the current look). Non-numeric controls (toggles, menus) are left untouched, so it is always safe to fire. Pair with manage_presets/manage_cue to snapshot a happy accident.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoOptional RNG seed for repeatable results.
amountNoHow far to move toward a random value in range: 1 = fully random, 0.2 = a gentle nudge from the current value. Lets you improvise without losing the current look.
paramsNoSpecific custom-parameter names to randomize. Defaults to every numeric one.
comp_pathNoCOMP whose custom parameters to randomize (usually a control-panel container)./project1

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses behavior beyond the annotations: it specifies that non-numeric controls are left untouched, explains the blending behavior of the 'amount' parameter, and explicitly states safety ('always safe to fire'). The annotations already indicate it is not read-only and not destructive, and the description adds valuable detail about what exactly changes and what does not.

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 concise and front-loaded with the core purpose. Each sentence adds distinct value: main action, parameter behavior, safety, and a workflow tip. There is no fluff, and the structure flows logically from what it does to how to use it.

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?

The description is complete enough for a tool with 4 optional parameters and no output schema. It covers the effect on numeric vs non-numeric parameters, the blending behavior, and a use case. It does not explicitly mention whether it works on the current selection or only the specified comp_path, but the schema's comp_path parameter covers this. Minor gap: no mention of return value, but that is not necessary without an output 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 100% and the schema already describes parameters well. The description adds a higher-level interpretation, such as 'amount blends toward random (1 = fully random, low values nudge the current look)' and clarifies that only numeric custom parameters are affected, reinforcing the meaning of the 'params' array. This adds value beyond the schema without redundancy.

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 clearly states the action: 'Randomize a COMP's numeric custom parameters within their slider ranges' with a specific resource and scope. It also adds the use case 'instant new variation for live improvisation,' making it unmistakable what the tool does and distinguishing it from any other tool.

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 gives clear context for use ('live improvisation') and explicitly says it is 'always safe to fire' with no prerequisites. It suggests pairing with manage_presets/manage_cue to snapshot results, but does not explicitly state when not to use it or name an alternative tool. This is clear guidance but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

raytk_expr_graph_builderBuild RayTK expression graphA

Build an editable RayTK ROP expression graph from a preset or explicit nodes/edges: copy RayTK masters live via pathsByOpType/category search, wire typed connectors, apply simple parameter values, lay out copied nodes deterministically, and expose the selected output through out1. Complements create_raytk_scene (minimal scene) and create_raytk_op (single ROP). Requires RayTK staged and loaded; offline tests validate payload/registration only, while live render/cook proof remains explicit.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the generated graph container.raytk_expr_graph
edgesNoCustom graph edges. Preset edges are used when nodes are omitted.
nodesNoCustom RayTK ROP graph nodes. Leave empty to use the selected preset.
presetNoStarter graph to build when nodes are omitted. Use custom with explicit nodes/edges.sphere_union_box
add_lightNoAppend pointLight and wire it into renderer input 2 when a renderer exists.
add_cameraNoAppend lookAtCamera and wire it into renderer input 1 when a renderer exists.
parent_pathNoParent COMP path to build inside./project1
add_materialNoAppend basicMat between the SDF/combine tail and renderer when absent.
add_rendererNoAppend raymarchRender3D when the graph has no output ROP.
library_pathNoOptional explicit path to the loaded RayTK library COMP. Omit to probe pathsByOpType and known namespaces live.
output_node_idNoNode id to expose through out1. Defaults to the renderer added or inferred by the tool.
capture_preview_imageNoCapture an inline preview from out1. RayTK shader compile may still be asynchronous.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-destructive write operation (readOnlyHint=false, destructiveHint=false). The description adds valuable context beyond annotations by explaining that it copies RayTK masters live, lays out nodes deterministically, and explicitly notes that 'offline tests validate payload/registration only, while live render/cook proof remains explicit.' This discloses limitations and behavioral nuances 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, front-loaded with the primary action, and every sentence contributes meaningful information: what it does, how it relates to siblings, and key prerequisites/limitations. There is no fluff or repetition of schema details, making it efficient and well-structured.

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 the tool's complexity (12 parameters, no output schema) and detailed schema, the description covers the overall workflow, prerequisites, and limitations. It does not explain return values, but no output schema exists and the schema handles parameter details. The description is sufficiently complete for an agent to understand the tool's scope and constraints, though it could mention potential side effects if any.

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 conceptual context for parameters (e.g., 'preset or explicit nodes/edges', 'simple parameter values', 'expose the selected output through out1') but does not provide detailed syntax or additional meaning beyond what the schema already documents. It meets the baseline but does not significantly enhance parameter understanding.

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 clearly states the verb and resource: 'Build an editable RayTK ROP expression graph'. It lists specific capabilities (copy masters, wire connectors, apply parameters, deterministic layout, expose output) and distinguishes itself from siblings by naming create_raytk_scene and create_raytk_op as complements. This makes the tool's purpose unambiguous and differentiated.

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 provides usage context by explicitly naming sibling tools ('Complements create_raytk_scene (minimal scene) and create_raytk_op (single ROP)') and states a prerequisite ('Requires RayTK staged and loaded'). It implies when to use this tool (for a full editable graph vs minimal or single-op) but does not explicitly state when not to use it or give strict exclusion criteria, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_parameter_modesRead parameter modesA
Read-only

Read-only: for each parameter of a node, report its mode (CONSTANT / EXPRESSION / EXPORT / BIND), its evaluated value, and its raw expression / bind-expression / export-source strings. Use this to faithfully serialize a network for round-trip editing, diffing, or debugging — the evaluated value alone hides which parameters are driven by expressions or exports. Set non_default_only to surface only the parameters that would be lost in a plain value copy.

ParametersJSON Schema
NameRequiredDescriptionDefault
keysNoOnly report these parameter names (case-sensitive). Omit for all parameters.
pathYesFull path of the node whose parameters to inspect.
non_default_onlyNoOnly return parameters whose mode is not plain constant (i.e. expression/export/bind) — the ones that matter for a faithful round-trip.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
pathYes
typeYes
probeNo
warningsYes
parametersYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only'. It adds context about what is returned (modes, raw strings) but does not describe error behavior, performance, or other side-effect details. The added value is moderate, consistent with the calibration example where annotations cover the safety profile.

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 long, front-loaded with 'Read-only' and a clear summary of what is reported. Every sentence earns its place: the first defines the behavior, the second gives usage scenarios, and the third explains the optional filter parameter. No fluff.

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 the output schema exists and annotations cover safety, the description adequately explains what the tool does and when to use it. It could mention error cases or examples of modes, but the provided information is sufficient for an agent to select and invoke correctly. The `keys` parameter is not discussed in the description, but the schema covers it.

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 description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the practical meaning of `non_default_only` ('parameters that would be lost in a plain value copy') and the overall purpose of mode reporting, which helps interpret the parameters.

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 clearly states the tool reports parameter modes (CONSTANT/EXPRESSION/EXPORT/BIND), evaluated values, and raw expression strings. It uses a specific verb ('report') and resource ('parameters of a node'), and distinguishes itself from sibling tools like get_td_node_parameters by emphasizing mode/expression awareness.

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 explicitly states when to use the tool: 'Use this to faithfully serialize a network for round-trip editing, diffing, or debugging.' It also explains why (evaluated value hides expression/export bindings). It does not explicitly name alternative tools or state when NOT to use, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rebuild_networkRebuild network from a specA
Destructive

Reconstruct a live network inside a COMP from a serialize_network spec — the REBUILD half of a git-diffable round-trip. Takes a JSON spec of nodes (name, operator type, parameters as constants/expressions/binds, inbound wires by name, optional x/y) and, in one pass, creates every node, applies its parameters and expressions, then wires inputs by resolving each from reference to the freshly created node. Fail-forward: an unknown operator type, missing parameter, or unresolved wire becomes a warning and the rest still build, so a partial reconstruction still returns useful results. Set clear_existing to delete the parent's current children first (destructive). Set auto_layout to auto-position every node by dependency (longest-path columns, left→right) from the spec's inputs graph, overriding any manual x/y. Returns the created node names, wire count, parameters set, and any warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
specYesA serialize_network spec to reconstruct.
auto_layoutNoAuto-position every node by dependency (longest-path columns, left→right) from the spec's `inputs` graph, overriding any per-node x/y. False (default) honors manual x/y only.
parent_pathYesCOMP to rebuild the network inside.
clear_existingNoDelete existing children of parent_path first (destructive).

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the destructive clear_existing option and explains the fail-forward behavior (unknown operator, missing parameter, or unresolved wire become warnings). These specifics go beyond the annotations, which only broadly indicate non-read-only and destructive behavior, adding valuable context about failure handling and side effects.

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 dense but efficient, with each sentence covering a distinct aspect: purpose, process, failure mode, option effects, and return values. There is no redundancy, and the structure is front-loaded with the core purpose.

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 complex tool with a nested spec and no output schema, the description is remarkably complete. It specifies the return values (node names, wire count, parameters set, warnings), explains error handling, and describes the behavior of both optional flags. This makes it self-sufficient for correct invocation.

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?

Although the schema covers all parameters, the description adds meaning by explaining how the spec's nested structure (nodes, params, wires) is used during the rebuild process (one-pass creation, wiring by name). This helps the agent understand the relationship between parameters and the tool's operation, going beyond raw schema definitions.

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 clearly states the tool reconstructs a live network from a serialize_network spec, identifying it as the 'REBUILD half of a git-diffable round-trip.' It distinguishes itself from sibling tools like serialize_network and create_td_node by explicitly focusing on whole-network reconstruction from a spec.

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 provides clear context for when to use the tool: as a counterpart to serialize_network for round-trip workflows. It also mentions fail-forward behavior, implying usefulness with partial specs. However, it does not explicitly exclude alternatives like repair_network or create_td_node, though the round-trip framing is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recall_similar_workRecall similar past workA
Read-only

Read-only vault search: rank past memory notes by similarity to a new visual goal so the agent can reuse prior recipes, params, and prompts instead of rebuilding from scratch. Scores by query-token overlap with title/intent/prompt/tags/body, with optional tag and op boosts. Returns ranked hits with vault paths, score, matched terms, and an optional body snippet. Offline; requires TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
opsNoOptional operator types you expect to use (e.g. audioAnalysisCHOP). Boosts notes whose 'ops' overlap.
tagsNoOptional tags that should boost matching notes (additive). Lowercased before match.
limitNoMaximum number of hits to return after sorting.
queryYesFree-text goal/prompt to compare past memory notes against.
min_scoreNoDrop hits whose normalised score is below this threshold.
include_body_snippetNoWhen true, return a ~240-char body excerpt around the best-matching line.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hitsYes
queryYesEcho of the input query (post-trim).
scannedYesNumber of memory notes considered.
warningsYesPer-note read problems; search continues on error.
vault_pathYesAbsolute path of the configured vault root.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint, the description adds valuable behavioral details: it is offline, requires TDMCP_VAULT_PATH, explains the scoring mechanism (query-token overlap with title/intent/prompt/tags/body, optional boosts), and describes return content (ranked hits, paths, score, matched terms, body snippet). No contradictions with 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, front-loaded with the tool's purpose, then explaining scoring and outputs/constraints. Every sentence adds distinct value with no redundancy or fluff.

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 search tool with an output schema, the description covers purpose, behavior, scoring, output, and constraints (offline, path requirement). It is sufficiently complete to guide an agent without needing to reference sibling tools or external docs.

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 coverage is 100% with each parameter already well-described (e.g., tags 'should boost matching notes', ops 'boosts notes whose ops overlap'). The description's mention of 'optional tag and op boosts' is largely redundant with the schema, adding only slight contextualization within the scoring algorithm.

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 uses a specific verb 'rank' and resource 'past memory notes', clearly stating the tool's purpose: to find similar past work for reuse. It distinguishes from siblings by focusing on similarity-based recall over memory notes, not generic search or library browsing.

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 gives clear context: use when starting a new visual goal to reuse prior recipes/params/prompts instead of rebuilding. It implies the primary use case but does not name explicit alternatives or when-not-to-use, though the 'read-only vault search' framing helps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_movieRecord movie / sequenceA

Record a TOP to a movie file (.mov/.mp4) via a Movie File Out TOP — for exporting a clip or a loop, where render_output only saves a single frame. start begins recording (pass file, fps); pass seconds to auto-stop after a fixed length, or call stop to finish (stop also cleans up the recorder node). The file is written by TouchDesigner on the TD machine. For individual numbered frames, use render_output per frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNo(start) Frames per second.
fileNo(start) Output movie path on the TD machine, with a .mov or .mp4 extension. Absolute path recommended.
actionNostart recording the TOP to a file, or stop the current recording.start
secondsNo(start) If set, auto-stop after this many seconds (records a fixed-length loop); otherwise record until you call stop.
node_pathYesPath of the TOP to record.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond the annotations: it explains the start/stop workflow, that stop cleans up the recorder node, and that the file is written by TouchDesigner on the TD machine. With annotations already indicating a non-read-only, non-destructive operation, the description provides useful extra detail without contradicting them.

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 long, front-loaded with the main purpose, and every sentence delivers critical information. No redundancy or filler.

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 tool with 5 parameters and no output schema, the description covers the workflow (start/stop/auto-stop), the file location, the TD machine context, and the alternative for single frames. It is sufficiently complete for an agent to select and invoke the tool correctly.

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 100%, and the description enriches the parameter semantics by explaining how start uses file and fps, seconds auto-stops after a fixed length, and stop finishes recording and cleans up. This is a clear added value over the raw schema descriptions.

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 clearly states the tool records a TOP to a movie file via a Movie File Out TOP, with a specific verb and resource. It explicitly distinguishes itself from render_output, which only saves a single frame, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this tool for exporting a clip or a loop, while recommending render_output per frame for individual numbered frames. This gives clear when-to-use and when-not-to-use guidance, directly naming the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refresh_asset_previewsRefresh asset previewsA
Destructive

Capture fresh preview PNG assets from one or more live TOP nodes and write each target to its file_path. Use it to regenerate stale thumbnails after a network changes; pass targets as {node_path,file_path} plus optional width/height. Requires a running TouchDesigner bridge, overwrites image files, and returns written previews plus per-target warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoPreview width in pixels requested from the bridge capture helper.
heightNoPreview height in pixels requested from the bridge capture helper.
targetsYesPreview capture jobs; each target maps one live TOP node to one local PNG file.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and readOnlyHint=false. The description adds useful context beyond annotations: requires a running TouchDesigner bridge, overwrites image files, and returns written previews plus per-target warnings. This enriches the behavioral picture without contradiction.

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, front-loaded with the key action, then use case, then requirements/return. Every sentence is purposeful, no fluff or redundancy, and it remains appropriately sized for the tool's complexity.

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 no output schema, the description covers return values ('returns written previews plus per-target warnings'), prerequisites (running bridge), and side effects (overwrites image files). It could add details about error handling or edge cases, but it is complete enough for an agent to use the tool safely.

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 schema fully documents width, height, and targets. The description mostly restates schema details (e.g., 'pass targets as {node_path,file_path} plus optional width/height') without adding new meaning or clarifying semantics beyond what is already present.

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 clearly states the tool captures fresh preview PNG assets from live TOP nodes and writes each to its file_path, which is a specific verb+resource+scope. It distinguishes from siblings like get_preview by emphasizing the write-to-file behavior and the 'regenerate stale thumbnails' use case.

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?

Provides explicit context: 'Use it to regenerate stale thumbnails after a network changes'. It doesn't name alternative tools, but the when-to-use scenario is clear. It also implies prerequisites (running bridge) and the target structure, offering guidance without explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reload_bridgeReload bridgeA

Hot-reload the bridge's Python inside the running TouchDesigner, so edits to the td/ modules take effect without reopening the project. Reimports every loaded mcp./utils. module in place and returns the list reloaded. Use after editing bridge code.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include readOnlyHint=false and destructiveHint=false, but the description adds valuable behavioral detail: it performs an in-place reimport, returns the reloaded list, and avoids reopening the project. It discloses that it mutates the running environment, which goes beyond the annotations and gives the agent a clear expectation of side effects.

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, front-loaded with the main purpose, and each sentence adds value (action, mechanism, return value, usage). There is no fluff or redundancy.

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 simple zero-parameter tool with no output schema, the description is complete: it explains what happens, why, and what the agent will receive. It could mention potential risks of reimporting modules (e.g., state reset), but that is beyond the necessary scope given the annotations indicate non-destructive behavior. Overall, it is well-rounded.

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?

The tool has zero parameters, so schema coverage is effectively 100%. The description adds no parameter info needed, and the baseline for no-param tools is 4. It appropriately focuses on the tool's action and return value.

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 clearly states a specific verb ('hot-reload') and resource ('bridge's Python inside the running TouchDesigner'), explaining what it does and how it achieves it (reimports mcp.*/utils.* modules). It distinguishes this from sibling tools like get_bridge_logs by focusing on code reload rather than inspection.

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 explicitly states when to use the tool: 'Use after editing bridge code.' This gives clear context. It does not mention alternatives or exclusions, but the instruction is sufficient for a typical dev workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_outputRender output to fileA

Save a TOP to an image file at its native, full resolution (PNG/JPG/EXR/TIFF by extension) — for exporting a finished frame, unlike get_preview which only transfers a small inline thumbnail. The file is written by TouchDesigner on the TD machine; pass an absolute path.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesOutput file path (written by TouchDesigner, so on the TD machine). Extension picks the format: .png/.jpg/.exr/.tiff. Use an absolute path.
node_pathYesPath of the TOP to render to a file.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation with side effects, and the description adds key context: the file is written by TouchDesigner on the TD machine and an absolute path is required. This helps prevent path confusion. It does not disclose overwrite behavior, but the annotations already signal side effects.

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 pack all essential information: action, formats, contrast with sibling, and file location. No wasted words; front-loaded with the core purpose.

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 simple 2-parameter file-export tool, the description covers purpose, formats, resolution, and machine location. It lacks explicit overwrite semantics, but the schema and annotations fill most gaps, making it sufficiently complete.

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?

The input schema already provides 100% coverage, including the fact that the file path is on the TD machine and extension picks format. The tool description repeats this information but does not add new meaning beyond the schema.

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 uses a specific verb 'Save a TOP to an image file' with resolution detail, and explicitly contrasts with get_preview to clarify its unique role. It clearly identifies the resource (TOP) and the action (exporting full-res image).

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 states 'unlike get_preview which only transfers a small inline thumbnail', providing an explicit named alternative and context for when to use this tool (exporting a finished frame). It could more explicitly say 'use for full-res export, not for quick previews', but the contrast is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

repair_networkRepair network (bounded)A
Destructive

Bounded, autonomous repair: scan cook errors under a subtree, classify each, and plan a safe fix, capped at max_steps so it can never run away. Defaults to dry_run (PLAN only, no changes). Set dry_run:false to apply the known-safe fixes — resetting a broken parameter expression to constant mode, and re-enabling a bypassed/display-off op — within the same bound; risky cases (DAT syntax errors, missing inputs, unclassified errors) are always PLAN-only. Re-checks errors after applying and stops at the bound or when errors clear. Returns {parent_path, dry_run, max_steps, errors_before, errors_after, steps[], remaining[], warnings, rolled_back}. Use it as the diagnostic 'try the obvious safe fixes' loop after a build; for raw triage use summarize_td_errors / get_td_node_errors instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoWhen true (default), only PLAN fixes (no changes applied). Set false to apply within the bound.
max_stepsNoHard cap on repair attempts — the bound that prevents runaway repair.
parent_pathNoRoot of the subtree to scan + repair./project1

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal readOnlyHint=false, destructiveHint=true, openWorldHint=true. The description goes beyond by detailing what destructive actions occur (resetting parameter expressions, re-enabling bypassed ops), the dry_run default that prevents changes, the hard bound max_steps, and the re-check/stop behavior. It also discloses the return object including rolled_back, providing a clear behavioral contract.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat dense but well-structured: it front-loads the core purpose, then explains safety bounds, fix types, return values, and usage. Every sentence contributes value; however, it could be slightly tightened without losing critical details.

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?

Given the tool's complexity (autonomous repair, potentially destructive, multiple failure modes), the description covers all essential aspects: operation, bounding, dry_run behavior, safe vs risky fixes, error re-checking, return structure, and usage context. No output schema exists, so the return object explanation adds necessary completeness.

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?

The schema covers all three parameters with descriptions (100% coverage), so the baseline is 3. The description adds context about how dry_run and max_steps relate to the repair behavior, but it largely reinforces schema information without introducing new parameter semantics.

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 states a specific verb+resource: 'Bounded, autonomous repair' that scans cook errors under a subtree, classifies, and plans a safe fix. It distinguishes from siblings by explicitly naming summarize_td_errors / get_td_node_errors for raw triage, making the tool's unique role clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance: 'Use it as the diagnostic "try the obvious safe fixes" loop after a build' and directs to alternatives for raw triage. It also explains the exclusion of risky cases (DAT syntax errors, missing inputs, unclassified errors) which are always PLAN-only, further clarifying appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolume_vdmx_output_chainResolume / VDMX output-control chainA

Create an OSC control chain for driving Resolume, VDMX, or both from TouchDesigner. It builds target-specific OSC Out lanes with layer opacity, crossfader, speed, clip trigger, and blackout channels; use it beside video/NDI/Syphon output tools when an external VJ app handles playback or final compositing.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoDestination host for Resolume/VDMX OSC.127.0.0.1
nameNoName of the output-control container COMP.resolume_vdmx_output_chain
activeNoStart OSC sending immediately.
targetNoWhich OSC target preset(s) to create.resolume
vdmx_portNoVDMX OSC input port.
parent_pathNoParent COMP to build the Resolume/VDMX control chain in./project1
resolume_portNoResolume OSC input port.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses concrete behavioral details beyond annotations: it 'builds target-specific OSC Out lanes' and lists the specific channels (layer opacity, crossfader, speed, clip trigger, blackout). Annotations only indicate non-read-only, non-destructive, open-world behavior; the description adds meaningful context about what is created, though it omits potential side effects like overwriting existing lanes or prerequisites.

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 two sentences, front-loaded with the core purpose, and every clause adds value. The first sentence states the action and scope; the second details the built channels and the usage context. No fluff or repetition.

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 7 parameters and no output schema, the description covers the tool's essence, creation scope, and usage context. It could be more complete by noting that the target VJ software must be configured to receive OSC on the specified ports, and it does not explain what the return value is (e.g., the created COMP), but overall it is sufficient for an agent to select and invoke the tool.

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 description coverage is 100%, so baseline is 3. The description adds meaning by explaining that the tool creates 'target-specific OSC Out lanes' with specific channel types, which gives context to the 'target' parameter and ports. This goes beyond the individual parameter descriptions by clarifying how the parameters fit together.

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 clearly states a specific action ('Create an OSC control chain') with a defined resource ('for driving Resolume, VDMX, or both from TouchDesigner'), and it distinguishes itself from siblings by detailing the scope (layer opacity, crossfader, speed, clip trigger, blackout channels) and its place 'beside video/NDI/Syphon output tools' for external VJ composition.

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 provides a clear use case ('use it beside video/NDI/Syphon output tools when an external VJ app handles playback or final compositing') and implies alternatives exist by contrasting with output tools. However, it does not explicitly name exclusion criteria or alternative sibling tools such as connect_resolume_arena, so it falls short of exhaustive guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_macro_scriptRun macro scriptA

Replay a MacroRecord JSON file by dispatching each entry through the in-process tool handlers. Use dryRun to plan without invoking, stopOnError to halt on first failure, argsOverrides to shallow-merge per-tool arg replacements, and allowRawPython to opt-in to raw-Python entries (still subject to the server-side ctx gate). Redacted args from a recording may fail at the tool boundary; do not un-redact.

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNo
macroPathYes
stopOnErrorNo
argsOverridesNo
allowRawPythonNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds rich behavioral context beyond annotations, such as dispatching entries through tool handlers, dryRun avoiding invocation, stopOnError halting on first failure, and the warning about redacted args failing at the tool boundary. This complements the annotations without contradicting them.

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 two concise sentences, front-loaded with the core action and followed by parameter details and a warning. Every sentence adds value without redundancy.

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 the complexity of a tool that dispatches to other tool handlers, the description covers the essential behavior, parameters, and a security caveat. No output schema exists, but for a side-effect-driven replay tool, the description adequately guides usage, though it does not mention return values or the overall expected outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description carries full responsibility for parameter semantics. It explains each parameter's purpose: dryRun for planning, stopOnError for failure handling, argsOverrides for shallow-merging replacements, and allowRawPython for opting into raw-Python entries, plus the macroPath is implicitly the file to replay.

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 clearly states the tool's function: replay a MacroRecord JSON file by dispatching entries through in-process tool handlers. This specific verb (replay) and resource (MacroRecord JSON file) distinguishes it from siblings like macro_recorder, which records rather than replays.

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?

The description provides detailed parameter usage guidance (dryRun, stopOnError, argsOverrides, allowRawPython) but does not explicitly state when to use this tool versus alternatives or when not to use it. The usage context is implied by the purpose, but no exclusions or sibling comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_component_to_vaultPackage a COMP as a .tox in the vaultA

Save a live TouchDesigner COMP as a reusable .tox component file inside the Obsidian vault (at /.tox) and write a companion markdown note with frontmatter, a description, and load instructions — completing the build→parameterize→script→package-to-library loop. The saved .tox can later be loaded back with manage_component (load action). Requires a configured TDMCP_VAULT_PATH. The target COMP must exist and be a COMP (not a non-COMP operator).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoComponent name (defaults to the COMP's name). Used for the .tox filename and the note title.
tagsNoTags for the note frontmatter (for browse_vault_library).
folderNoVault subfolder for the .tox + note.Components
auto_tagNoWhen true, inspect the COMP's child nodes via the bridge and union the auto_tag_library_asset suggestions into the note frontmatter's `tags`.
comp_pathYesThe COMP to package as a reusable .tox component.
thumbnailNoCapture a preview PNG next to the component note and embed it. Set false to skip.
descriptionNoA short description stored in the note.
preview_topNoOutput TOP to thumbnail for the component note (e.g. <comp_path>/out1). A COMP itself can't be captured (the preview endpoint renders TOPs), so the thumbnail is skipped unless you pass an explicit TOP path here.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations indicating a write operation and non-destructive behavior, the description adds valuable context: the companion note content, the .tox location format, and the dependency on TDMCP_VAULT_PATH. It doesn't contradict annotations. The only gap is not mentioning overwrite behavior, but the destructiveHint=false already covers safety.

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 concise and well-structured: a main purpose sentence, a cross-reference to manage_component, and two prerequisite statements. No filler or redundancy, every sentence contributes context.

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 the tool's complexity (8 params, no output schema), the description covers the main workflow, prerequisites, and outputs. It doesn't mention return values or error scenarios, but the detailed schema and annotations fill most gaps. Overall it is sufficiently complete for an agent to use correctly.

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 coverage is 100% with each parameter having a detailed description, including preview_top's caveat about TOP rendering. The description itself adds minimal parameter-specific meaning beyond restating folder/name in the path, so the baseline 3 is appropriate.

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 clearly states the tool's function: saving a TouchDesigner COMP as a .tox in the Obsidian vault and writing a companion markdown note. It uses a specific verb (save) and resource (COMP as .tox), and differentiates from siblings like save_recipe_to_vault and export_network_to_vault by focusing on reusable components and the package-to-library loop.

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 places this tool within a workflow ('completing the build→parameterize→script→package-to-library loop') and specifies prerequisites (TDMCP_VAULT_PATH, COMP must exist and be a COMP). It also mentions the inverse operation with manage_component. However, it doesn't explicitly contrast with alternative save/export tools, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_recipe_to_vaultSave network as a vault recipeA

Capture an existing COMP's network (child nodes, non-default parameters, wiring, and text/script DAT bodies) by reading TD, then WRITE it as a reusable recipe note in the Obsidian vault at Recipes/.md; list_recipes/apply_recipe then see it alongside the built-in recipes. Use this to turn a patch you already built into a template — to instantiate a template instead, use apply_recipe. Refuses to overwrite an existing note unless overwrite:true. Returns the note path, recipe id, and node/connection counts. Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRecipe id/slug; also the note filename written under Recipes/ in the vault.
nameNoHuman-friendly title (defaults to the id).
tagsNoFree-form tags for searching/filtering the recipe later (defaults to none).
auto_tagNoWhen true, run the auto_tag_library_asset heuristic on the captured network and merge the suggested tags (union, deduped) into the recipe frontmatter before writing.
comp_pathNoCOMP whose direct children are captured as the recipe./project1
overwriteNoWhen false, refuse to replace an existing Recipes/<id>.md note; set true to overwrite it.
thumbnailNoCapture a preview PNG next to the recipe note and embed it. Set false to skip.
difficultyNoSkill-level label saved in the recipe metadata (defaults to 'intermediate').
descriptionNoOne-line summary stored in the recipe note's frontmatter (defaults to empty).
preview_topNoOutput TOP to thumbnail for the recipe note (e.g. <comp_path>/out1). Defaults to the comp's first/last TOP child; omit a TOP entirely to skip the thumbnail.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that it writes to the vault, refuses to overwrite unless overwrite:true, returns the note path/recipe id/counts, and requires a configured vault path. This adds safety and configuration context beyond the annotations (readOnlyHint=false, destructiveHint=false).

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?

Five sentences, each carrying essential information: action, use case, alternative, overwrite guard, return values, and prerequisite. No filler or repetition.

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?

Comprehensive for a write-to-vault tool: covers purpose, usage, side effects, return values, and configuration requirements. With 100% schema coverage, there are no significant gaps in understanding how to invoke this tool correctly.

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 baseline is 3. The description mentions overwrite:true and Recipes/<id>.md, which slightly reinforces parameter meaning, but it does not add substantial detail beyond what the schema already provides. It does contextualize what is captured (child nodes, wiring, DAT bodies), helping infer parameter intent.

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 clearly states it captures a COMP's network and writes it as a recipe note in the Obsidian vault at Recipes/<id>.md. It uses a specific verb+resource pairing and distinguishes from apply_recipe (instantiate a template) and references list_recipes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool: 'Use this to turn a patch you already built into a template — to instantiate a template instead, use apply_recipe.' Also notes the prerequisite of a configured TDMCP_VAULT_PATH.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_td_projectSave TouchDesigner projectA
Destructive

Save the current TouchDesigner project or Save As to an explicit path. Existing Save As targets require bounded native overwrite consent and fail closed to Keep on timeout, close, error, or unavailable UI. Never opens a native file dialog, loads/quits a project, or falls back to raw Python. Returns the requested/final path, verified save state, decision and project/build metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOptional Save As path. Omit to save the current project at its existing path; unsaved projects require a path.
confirmation_timeout_msNoMaximum bounded wait for native overwrite consent.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as destructive and non-read-only, but the description adds substantial behavioral detail: bounded overwrite consent, fail-closed to Keep on timeout/error, no native file dialog, no project load/quit, no raw Python fallback, and the exact return payload. This far exceeds what annotations alone convey.

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?

Three focused sentences, front-loaded with the core purpose. Every sentence adds operational value—purpose, consent behavior, and constraints/returns. No fluff or redundancy.

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 two-parameter tool with no output schema, the description provides all necessary context: when a path is required, timeout bounds, overwrite consent semantics, fail-closed behavior, what it never does, and what it returns. It is complete and self-contained.

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?

The input schema already provides 100% coverage with clear descriptions for both parameters, so the description doesn't need to add much. It reinforces the 'Save As' path concept but adds no new meaning beyond the schema. Baseline 3 is appropriate.

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 uses a specific verb ('Save') and names the precise resource (current TouchDesigner project) plus the Save As variant. It clearly distinguishes from sibling tools like save_component_to_vault or export_network_to_vault, which target different artifacts.

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 clearly indicates the tool is for saving the current project or a Save As, which implies the primary use case. It does not explicitly name alternatives or exclusions, but the context is unambiguous given the tool name and the niche purpose. Slight deduction for no explicit 'when not to use' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scaffold_extensionScaffold extension classA

Give a COMP a Python extension class: create a Text DAT holding the class (with optional method stubs), wire it into an extension slot, optionally promote it (so members are callable directly on the COMP), and reinitialize. The other half of making a generated network reusable — pair with add_custom_parameters (knobs) and manage_component (save as .tox).

ParametersJSON Schema
NameRequiredDescriptionDefault
slotNoExtension slot (1–8) — a COMP can hold several extensions.
methodsNoOptional method-name stubs to add to the class (each takes only `self`).
promoteNoPromote the extension so its members are callable directly on the COMP (op.Method()).
comp_pathYesThe COMP to give a Python extension class.
class_nameYesExtension class name, e.g. 'WidgetExt' (capitalized to a valid identifier; must already be identifier-safe).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations already indicating a non-read-only, non-destructive, open-world mutation, the description adds meaningful behavioral details: creating a Text DAT, wiring into a slot, optional promotion, and reinitialization. It discloses the main 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 concise (two sentences) and front-loaded with the core action. Every phrase earns its place: the action list is specific, and the pairing guidance is valuable without bloating the text.

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?

The description covers the main workflow steps (create, wire, promote, reinit) for a mutation tool, and the schema fully documents parameters. It is sufficiently complete for an agent to understand when and how to invoke the tool, though it omits potential edge cases like overwriting an existing extension in the slot.

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?

The input schema has 100% description coverage for all parameters, so the baseline is 3. The tool description restates the meaning of `methods` and `promote` but does not add new syntax or constraints beyond what the schema already provides, making its contribution marginal.

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 states a specific verb and resource: 'Give a COMP a Python extension class', and enumerates the concrete steps (create Text DAT, wire into slot, promote, reinitialize). It also distinguishes itself from related tools by naming companion tools (`add_custom_parameters`, `manage_component`), making its role clear.

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 provides clear context: it is 'the other half of making a generated network reusable' and explicitly recommends pairing with `add_custom_parameters` and `manage_component`. However, it does not state when NOT to use this tool versus other scaffold tools, so it lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scaffold_genreScaffold a genre showA

Create a genre-flavored starting network under parent_path — beyond scaffold_show's blank skeleton. Picks a tempo, look, and palette per genre: 'techno' (fast ~130 BPM clock + a hard strobe-y feedback look + dark palette), 'ambient' (slow ~70 BPM + a soft blurred-feedback look + warm palette), or 'installation' (no clock + a slow generative noise look + muted palette). Each builds a 'master' output Null and a genre look already wired into it, and (when a tempo applies) writes the project's global tempo (op('/').time.tempo). Use scaffold_show instead for an empty skeleton with no look or palette. Returns the container path, the master/tempo/look node paths, the BPM written, and the palette. Then add scenes, a layer mixer into master, cues, and a control surface.

ParametersJSON Schema
NameRequiredDescriptionDefault
bpmNoOverride the preset BPM (written to the global tempo). For 'installation' (no clock by default), supplying a bpm adds a beat clock at that tempo.
nameNoName of the show container (default: '<genre>_show').
genreNoGenre preset selecting the tempo, look, and palette of the starting network.techno
parent_pathNoParent COMP path the show container is created inside./project1

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses specific side effects (writes the project's global tempo via op('/').time.tempo), return value structure (container path, node paths, BPM, palette), and genre-specific behaviors (installation has no clock unless bpm provided). It also clarifies that the 'master' output Null and genre look are wired into it. These details go well beyond the annotations, which only state openWorldHint=true and readOnly=false.

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 packed with relevant information but remains well-structured: main purpose, genre-specific details, side effects, return values, and usage alternatives. Every sentence adds value, and there is no fluff or repetition.

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?

The description fully covers what the tool does, when to use it (vs. scaffold_show), what it returns, its side effects, and how to continue after invocation. It also mentions edge cases like installation without a clock. No output schema exists, so the description's explicit return-value list is essential and sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While schema coverage is 100%, the description adds concrete preset values (~130 BPM for techno, ~70 BPM for ambient, dark/warm/muted palettes) and explains the bpm override effect for installation. This enriches the parameter meaning beyond the schema's generic descriptions.

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 'Create a genre-flavored starting network under parent_path', which is a specific verb+resource, and immediately distinguishes from the sibling scaffold_show ('beyond scaffold_show's blank skeleton'). It clearly communicates what the tool does and how it differs from alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use scaffold_show instead for an empty skeleton with no look or palette', providing a clear when-not alternative. It also gives sequential next steps ('Then add scenes, a layer mixer into master, cues, and a control surface'), which guides the user on when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scaffold_recipe_from_networkScaffold a recipe from an existing TD networkA
Read-only

Inverse of apply_recipe: walk a COMP's child network in TouchDesigner and serialize it back to a draft RecipeSchema JSON (nodes + non-default parameters + connections + cross-references). Validates against RecipeSchema before returning. When write_path is set, writes pretty JSON to that vault-relative path; otherwise returns the recipe in structuredContent. Read-only with respect to TD — no operators are created or modified.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRecipe id/slug. Also the default filename stem when write_path is set.
nameNoHuman-friendly title (defaults to the id).
tagsNoRecipeSchema tags.
overwriteNoRefuse to clobber an existing file unless true.
root_pathNoCOMP whose direct children are serialized into the recipe./project1
difficultyNoRecipeSchema difficulty.intermediate
write_pathNoOptional vault-relative path to write the recipe JSON to (e.g. Recipes/myrec.json). When null, the JSON is returned in structuredContent only.
descriptionNoRecipeSchema description (defaults to empty).
include_defaultsNoWhen true, keep every CONSTANT-mode parameter (verbose; useful for round-trip debugging).
detect_cross_refsNoWhen true, rewrite str params whose value matches a sibling node's name to the bare sibling name (the apply_recipe convention).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only with respect to TD — no operators are created or modified'. It additionally discloses the file-writing side effect when write_path is set, validation against RecipeSchema, and the structuredContent return path — all beyond 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 compact: three sentences that front-load the core relationship to apply_recipe, then pack in serialization scope, validation, output behavior, and read-only guarantee. Every sentence earns its place with no filler.

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?

Given the tool has 10 parameters and no output schema, the description adequately explains the return value (RecipeSchema JSON), how it is delivered (write_path or structuredContent), and that validation occurs. The schema covers parameter details, so the description provides enough contextual glue for correct selection and invocation.

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?

The input schema covers all 10 parameters with rich descriptions, so the description does not need to repeat them. It adds high-level context like 'walk a COMP's child network' (which maps to root_path) and the serialized content categories, but it does not add format or syntax details beyond the schema. Baseline 3 is appropriate.

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 'Inverse of apply_recipe', which immediately distinguishes it from the sibling apply tool. It then specifies the exact action: walk a COMP's child network and serialize it to RecipeSchema JSON. This is a specific verb+resource with clear scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly names apply_recipe as the inverse alternative, giving an agent clear directional guidance on when to select this tool. It also explains the two distinct usage modes: write_path set (write file) vs. null (return structuredContent), providing concrete context for invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scaffold_recipe_templateScaffold recipe templateA
Destructive

Write a minimal but valid recipe JSON template to disk as a starting point for a new recipe. Use it to bootstrap a hand-authored recipe that already passes RecipeSchema; fill in nodes/connections, then instantiate with apply_recipe. Writes a file (destructive).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
nameYes
out_fileYes
overwriteNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds 'Writes a file (destructive)' which restates the destructiveHint annotation but adds that it writes a file to disk. It also notes the template is RecipeSchema-valid. However, it doesn't disclose what happens if the file already exists or how overwrite works.

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, front-loaded with the core action of writing a template file. Every sentence adds value, and there is no padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with no output schema and zero schema description coverage, the description is too thin. It omits parameter guidance, overwrite behavior, and only hints at the recipe format. The mention of apply_recipe is helpful but insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the full burden for explaining parameters, but it names none of them. It does not explain id, name, out_file, or overwrite, leaving the agent to guess at their meaning from the schema alone.

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?

Clearly states the tool writes a minimal valid recipe JSON template to disk as a starting point. Distinguishes from similar scaffold tools by emphasizing hand-authored recipes, passing RecipeSchema, and the follow-up apply_recipe step.

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?

Provides clear usage context: use to bootstrap a hand-authored recipe that already passes RecipeSchema, then fill in nodes/connections and instantiate with apply_recipe. Does not explicitly mention when not to use or name alternatives like scaffold_recipe_from_network, but the hand-authored angle implies it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scaffold_showScaffold a showA

Create a starting skeleton for a live show: a new container under parent_path with a 'master' output Null (where your mix lands) and a 'tempo' beat clock for reactivity, but NO scenes or look. Use scaffold_genre instead when you want a genre-flavored start (tempo + a ready-made look + palette already wired in). Returns the container path plus the 'master' and 'tempo' node paths. A blank-canvas starting point — then add scenes, audio features, a layer mixer into master, cues and a control surface.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the show container to create.show
parent_pathNoParent COMP path the show container is created inside./project1

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses exactly what gets created (new container, master and tempo nodes), what is intentionally omitted (scenes/look), and what is returned (container path plus node paths). It goes beyond the basic readOnlyHint=false and destructiveHint=false annotations by describing the structural side effects and the blank-canvas nature, while avoiding any contradiction.

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 clear front-loading: what the tool does, how it differs from a sibling, and what it returns plus next steps. Every sentence adds value without redundancy or fluff.

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?

Despite the absence of an output schema, the description explicitly names the return values (container path, 'master' and 'tempo' node paths) and the absence of scenes/look. It covers all essential context for a simple creation tool with 2 parameters, and the workflow guidance completes the picture.

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?

The input schema already provides 100% coverage with clear descriptions for both parameters ('Name of the show container to create' and 'Parent COMP path the show container is created inside'). The description adds no additional parameter-level detail beyond what the schema states, so the baseline of 3 applies.

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 uses a specific verb ('Create a starting skeleton for a live show') and clearly enumerates what is included ('master' output Null, 'tempo' beat clock) and excluded ('NO scenes or look'). It explicitly names scaffold_genre as a distinct sibling tool, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit alternative with a condition: 'Use scaffold_genre instead when you want a genre-flavored start.' It also implies the use case for scaffold_show (blank-canvas start) and outlines a recommended workflow ('then add scenes, audio features, a layer mixer into master, cues and a control surface').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scaffold_tool_generatorScaffold tool generatorA

Meta DX tool: scaffolds a new tdmcp tool file (xSchema + xImpl + registerX) and a matching offline msw unit test from a one-line idea. Returns the exact integration-hint (import line + array entry + layer index path) so the integrator can wire it without re-deciding shape. No TouchDesigner bridge call — pure local filesystem generator.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYessnake_case tool name, e.g. 'create_smoke_field'
layerNoDestination layer directory under src/tools/layer2
surfaceNoScaffold template variantbridge
overwriteNoOverwrite existing file if true
repo_rootNoRepo root (default: process.cwd()); for tests use a tmpdir
descriptionYesOne-line MCP tool description

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=false and destructiveHint=false, which are minimal. The description adds valuable behavioral context: it is a local filesystem generator with no TD bridge call, and it returns an integration-hint. It does not fully explain overwrite conflict behavior, but the schema's 'overwrite' parameter covers that.

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 only three sentences, front-loaded with the core purpose, and each clause adds essential detail (artifacts, unit test, return hint, no bridge call, local filesystem). No wasted words.

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 6-parameter tool with 100% schema coverage and no output schema, the description explains the most important missing piece—the return value (integration-hint with import line, array entry, layer index). It is complete for the tool's complexity, though it could mention behavior when overwrite=false and a file exists.

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 coverage is 100% with descriptive per-parameter text, so the baseline is 3. The description's 'one-line idea' aligns with the required 'description' parameter but adds no new parameter-level meaning beyond the schema.

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 clearly identifies this as a 'Meta DX tool' with a specific verb ('scaffolds') and resource ('a new tdmcp tool file (xSchema + xImpl + registerX) and a matching offline msw unit test'). It also states the unique return value (integration-hint), distinguishing it from other scaffolding sibling tools.

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 gives clear usage context: use it to generate a new tdmcp tool from a one-line idea, and explicitly notes what it does not do ('No TouchDesigner bridge call — pure local filesystem generator'). It does not name alternative scaffolding tools, but the behavior is specific enough to avoid confusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scaffold_vaultScaffold a starter vaultA

Populate the configured Obsidian vault with a starter layout and worked examples (a README plus example recipe, setlist, shader, and moodboard notes) so you begin from a working vault instead of an empty folder. WRITES Markdown files into the vault root and its subfolders; existing files are skipped unless overwrite:true. Run this once when first setting up a vault, before save_recipe_to_vault/import_setlist/etc. Returns the vault root path and the lists of files created vs skipped. Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
overwriteNoOverwrite starter files that already exist (otherwise they're left untouched).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations already indicating non-read-only behavior, the description adds valuable detail: it writes Markdown files into the root and subfolders, skips existing files unless overwrite:true, requires TDMCP_VAULT_PATH, and describes the return value. This is far beyond what annotations provide alone.

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 efficiently structured in three sentences: purpose, behavior, and usage/prerequisites/return. Every sentence adds distinct information without redundancy, and the most important information is front-loaded.

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 simple tool with one optional parameter and no output schema, the description covers the primary purpose, side effects, prerequisite, return value, and relationship to sibling tools. Complete enough for an agent to select and invoke it correctly.

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 coverage is 100% and the only parameter (overwrite) is fully described in the schema. The description's mention of 'skipped unless overwrite:true' repeats the same meaning without adding new semantic detail beyond the schema.

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 clearly states the tool's purpose with a specific verb ('Populate') and resource ('configured Obsidian vault'), and explicitly differentiates it from sibling tools by noting this runs before save_recipe_to_vault/import_setlist/etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage context: 'Run this once when first setting up a vault' and names the exact ordering relative to related tools. This goes beyond implied usage and offers clear alternatives for later steps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scaffold_vj_deckScaffold a MIDI-mappable VJ deckA

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.

ParametersJSON 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

TDQS

A4.2/5.0
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.

score_buildScore a TouchDesigner buildA
Read-only

Read-only: score a built network 0–100 on a fixed rubric (palette/motion/complexity/errors/perf) and return per-criterion sub-scores plus deterministic improvement suggestions. Optional LLM critique when llmCritique=true and ctx.llm is configured. Composes existing bridge endpoints — creates nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
criteriaNoSubset of rubric criteria to evaluate. Final score is the equal-weight mean of the selected ones.
scopePathNoNetwork root to score. Defaults to /project1./project1
targetFpsNoFPS target used to derive the perf budget (same semantics as get_td_performance).
llmCritiqueNoWhen true and ctx.llm is configured, attach a short paragraph of artist-readable critique. Best-effort: LLM failure never fails the tool.
previewTopPathNoOverride the TOP sampled for palette/motion. Defaults to the first /scopePath/out* TOP, then any /scopePath/*_out TOP.

Output Schema

ParametersJSON Schema
NameRequiredDescription
finalYesEqual-weight mean of returned per-criterion scores, rounded.
critiqueNo
evidenceYesRaw measurements behind the sub-scores.
warningsYes
scopePathYes
suggestionsYes
perCriterionYesSub-scores for the criteria that were requested AND could be measured. Missing keys are reported in warnings.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds beyond that: 'Composes existing bridge endpoints — creates nothing' and mentions optional LLM critique behavior when configured. It also states deterministic suggestions, all consistent with annotations, with no contradiction.

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 filler. It front-loads the core purpose, then adds efficient behavioral notes. Every sentence contributes value.

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?

With full schema descriptions, rich annotations, and an output schema present, the description covers purpose, safety, and key behaviors. It does not need to explain return values because an output schema exists. It is sufficiently complete for a read-only scoring tool.

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 of 3 applies. The description adds some context (e.g., the fixed rubric and LLM critique condition), but it does not elaborate on individual parameters such as scopePath or targetFps, which are already well-documented in the schema.

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 clearly states a specific verb and resource: 'score a built network 0–100 on a fixed rubric (palette/motion/complexity/errors/perf)' and lists the outputs ('per-criterion sub-scores plus deterministic improvement suggestions'). This distinguishes it from sibling tools that mutate or optimize, emphasizing a read-only assessment role.

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 context is clear: this is for read-only scoring of a built network, which implies assessment use cases. However, it does not explicitly name alternatives or state when not to use it (e.g., vs get_td_performance or optimize_performance). The 'creates nothing' note gives implicit exclusions but not explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_operatorsSearch operatorsA
Read-only

Search the embedded operator knowledge base (629 operators) by keyword, exact name, tag/keyword, category, subcategory, parameter metadata, or TouchDesigner version compatibility — ranked by relevance, fully offline by default. Use it to discover the right operator before creating nodes instead of guessing a type (e.g. 'what sends DMX?', 'particle', 'corner pin'). Returns name, family, summary, facets and optional matching parameters. Pass semantic:true to re-rank fuzzy candidates by embedding similarity (needs an LLM endpoint; falls back to keyword). With parameter_search, matched Menu parameters include their menu options; results are stamped with a data_version (which TouchDesigner build the offline catalog reflects) and a stale_hint when the connected TD is on a different major. Token economy: use a specific query and a small limit; one focused search beats several broad ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoSearch mode: fuzzy searches names/summaries/keywords, exact searches only operator names/display names, tag searches tags and keywords.fuzzy
limitNoMax results to return.
queryYesWhat you're looking for — words from a name, family, or description (e.g. 'blur edge', 'audio spectrum', 'instance geometry').
versionNoOptional stable TouchDesigner version filter, e.g. 099, 2019, 2020, 2021, 2022, 2023, or 2024. Operators with compatibility records added after the target version are excluded.
categoryNoOptional operator family/category filter, e.g. TOP, CHOP, SOP, DAT, COMP, MAT, or POP.
semanticNoOpt-in: re-rank keyword candidates by embedding similarity via the configured LLM endpoint (TDMCP_LLM_BASE_URL / _MODEL, Ollama by default). Better for fuzzy/conceptual queries. Falls back to keyword ranking if the endpoint is unavailable — the default (false) needs nothing.
subcategoryNoOptional subcategory filter, e.g. Generators, Filters, Audio, Network, Experimental.
parameter_searchNoAlso search operator parameter names, labels and descriptions; matching parameters are returned per hit.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the readOnlyHint and destructiveHint annotations. It discloses that the search is 'fully offline by default', that results are 'ranked by relevance', that semantic mode 'falls back to keyword' when the LLM endpoint is unavailable, that parameter_search includes menu options, and that results include a data_version and stale_hint when the TouchDesigner major differs. This is rich behavioral detail that significantly exceeds 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 appropriately sized for the tool's complexity. It front-loads the core purpose in the first sentence, then proceeds logically through use case, return format, optional modes, data versioning, and querying guidance. Every sentence provides unique value, and there is no redundancy or tautology. The structure is well-organized despite its length.

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?

Despite having no output schema, the description states what the tool returns ('name, family, summary, facets and optional matching parameters') and covers edge cases such as stale_hint and semantic fallback. It also provides usage examples and trade-offs (offline vs. semantic requiring an LLM endpoint). This is a complete and self-contained explanation for a search tool with 8 parameters.

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 100%, so the baseline is 3. The description adds extra meaning by explaining how parameters interact, e.g., 'Pass semantic:true to re-rank fuzzy candidates by embedding similarity' and 'With parameter_search, matched Menu parameters include their menu options.' It also contextualizes the version and category filters. This added context justifies a 4, though it does not fully re-explain every parameter since the schema already does.

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: 'Search the embedded operator knowledge base (629 operators)' and details the search dimensions (keyword, exact name, tag, category, subcategory, parameter metadata, version compatibility). It clearly distinguishes itself from sibling search tools by focusing exclusively on the operator knowledge base, with concrete example queries like 'what sends DMX?' and 'corner pin'.

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 explicitly states when to use the tool: 'Use it to discover the right operator before creating nodes instead of guessing a type.' This gives clear context and an implicit alternative (guessing). It also provides token economy advice ('use a specific query and a small limit'), but it does not explicitly contrast with sibling search tools such as search_touchdesigner_knowledge, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_python_apiSearch TD Python APIA
Read-only

Read-only: search TouchDesigner Python API classes, methods and members from the embedded offline knowledge base. Supports class category filters and conservative stable-version compatibility filtering where compatibility metadata exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results per group.
queryYesSearch query for TD Python classes, methods, or members.
versionNoOptional stable TouchDesigner version filter, e.g. 099, 2020, 2023, or 2024.
categoryNoOptional Python class category filter, e.g. General or Operator.
search_inNoWhere to search: all, classes, methods, or members.all

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipsYesFollow-up hints when no results are found.
countYesNumber of returned results.
queryYesEcho of the search query.
classesYesMatching Python API classes.
filtersYesFilters applied to the search.
membersYesMatching Python API members.
methodsYesMatching Python API methods.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers safety, and the description adds useful behavioral details: the knowledge base is embedded offline and version filtering is conservative, only applying where compatibility metadata exists. It doesn't contradict annotations and adds meaningful context beyond them.

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, front-loaded with 'Read-only' and a clear action. No redundant content; every clause adds 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?

Given the output schema and full parameter descriptions, this is sufficiently complete: it states the search source, scope, and filtering capabilities. The only missing context is explicit comparison to sibling tools, but that's covered under usage guidelines.

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?

The input schema provides 100% parameter coverage, so the baseline is 3, but the description adds nuance: version filtering is 'conservative' and only applied 'where compatibility metadata exists', clarifying the version parameter's behavior. It also explicitly mentions class category filtering, reinforcing the category parameter's purpose.

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 clearly states the tool searches TouchDesigner Python API classes, methods, and members from an embedded offline knowledge base, using specific verbs and a defined resource scope. It distinguishes itself from sibling search tools like search_operators and search_touchdesigner_knowledge by targeting the Python API specifically.

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 implies usage context: querying the offline Python API knowledge base, with optional filters for category and version. It does not explicitly name alternative tools or state when not to use it, but the context is clear enough for an agent to differentiate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_touchdesigner_knowledgeSearch TouchDesigner knowledgeA
Read-only

Read-only: search the embedded TouchDesigner knowledge router across operators, operator workflows, examples, versions, compatibility notes, technique packs, TD classes, and experimental build notes. Returns normalized results with resource URIs and tool hints for deeper lookups.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return.
queryYesSearch text to route across TouchDesigner knowledge.
surfaceNoKnowledge surface to search: all, operators, operator_workflows, operator_examples, versions, operator_compatibility, python_api_compatibility, techniques, td_classes, or experimentals.all

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of returned results.
queryYesSearch text from the request.
resultsYesNormalized knowledge search results.
surfaceYesSurface requested by the caller.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description confirms read-only behavior (matching readOnlyHint=true) and adds value beyond annotations by disclosing the return structure: normalized results with resource URIs and tool hints for deeper lookups. This gives the agent useful expectations about output and next steps 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 two sentences: the first leads with 'Read-only' and states the broad scope, the second explains the return format and follow-up tool hints. Every word earns its place, with no redundancy or fluff.

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?

Given the tool's moderate complexity, a fully documented schema, and the presence of an output schema, the description sufficiently covers scope and return behavior. It does not need to explain the output schema's details, and the tool hints reference deeper lookups without overexplaining.

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?

The input schema provides 100% parameter description coverage, including the surface enum and descriptions for query and limit. The description's list of knowledge surfaces essentially repeats the surface enum values, adding no new semantic meaning beyond what the schema already documents. Baseline 3 is appropriate.

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 clearly states a specific verb ('search') and resource ('embedded TouchDesigner knowledge router'), and enumerates the knowledge surfaces covered (operators, workflows, examples, versions, compatibility, techniques, classes, experimentals). This distinguishes it from sibling tools like search_operators by being a broad cross-domain search rather than a domain-specific one.

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 implies when to use this tool: when you need to search across multiple TouchDesigner knowledge surfaces simultaneously. It lists the covered domains, giving clear context, but does not explicitly contrast with alternatives such as search_operators or search_python_api, nor does it 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.

serialize_networkSerialize network to diffable JSONA
Read-only

Read-only: serialize a COMP's immediate children into a git-diffable JSON spec — each node's name, op type, parameters (with mode + expression, not just the evaluated value), input wires by source node name, and position — plus best-effort custom-parameter definitions. This is the serialize half of a round-trip pair: feed the output spec to rebuild_network to reconstruct the subtree. Use it to snapshot a network as text you can diff across edits or commit to version control. Returns {root, nodes[], truncated?, warnings[]}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRoot COMP whose children to serialize into a diffable spec.
max_nodesNoCap nodes serialized.
include_custom_paramsNoInclude custom-parameter definitions (best-effort).

Output Schema

ParametersJSON Schema
NameRequiredDescription
rootYesThe serialized root path.
nodesYesEvery serialized child node of the root.
warningsYesPer-item problems collected without failing the read.
truncatedNoTrue when the child count exceeded max_nodes and the spec was capped.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds 'Read-only' plus detailed behavioral context: best-effort custom parameters, truncation behavior, and the exact return shape {root, nodes[], truncated?, warnings[]}. This goes well beyond the annotations and fully discloses the tool's operational characteristics.

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 information-dense yet well-structured: it front-loads the read-only nature, defines the exact serialization behavior, explains the round-trip pairing, and gives concrete use cases. Every sentence contributes meaning without redundancy.

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?

Given the rich input schema, output schema, and annotations, the description covers all necessary aspects: what the tool does, what it returns, when to use it, and edge cases like truncation and best-effort parsing. No significant gaps remain.

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?

All three parameters are fully described in the schema (100% coverage), so the baseline is 3. The description adds some context like 'immediate children' and 'best-effort' for include_custom_params, but it does not materially extend the schema's parameter semantics.

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 clearly states the tool serializes a COMP's immediate children into a git-diffable JSON spec and enumerates exactly what is captured (node name, op type, parameters, wires, position). It distinguishes itself by positioning as the serialize half of a round-trip pair with rebuild_network, setting it apart from other network/snapshot tools.

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 provides explicit use cases: snapshot a network for diffing or version control, and pair with rebuild_network for reconstruction. It does not explicitly name alternative tools or state when not to use it, but the context is strong enough to guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_dat_contentSet DAT content (whole)A
Destructive

Overwrite a Text or Table DAT's entire .text with new content. Unlike edit_dat_content (which makes a surgical find-and-replace), this replaces everything in one shot — use it to deploy a full script or template. Refuses to write empty/whitespace-only text unless confirm_wipe:true is passed, preventing silent data loss.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe full new contents of the DAT. Every existing character will be discarded; this string becomes the entire `.text` value.
dat_pathYesAbsolute path to the Text or Table DAT whose content will be fully replaced (e.g. '/project1/mytext1').
confirm_wipeNoSet true to allow writing empty or whitespace-only text, which clears the DAT. When false (default), the tool refuses to write blank content to prevent silent data loss.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (destructiveHint, readOnlyHint), the description discloses a safety guard: it refuses empty/whitespace-only text unless `confirm_wipe:true` is passed, and explains the rationale ('preventing silent data loss'). This adds meaningful behavioral context not present in 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?

Three concise sentences, each adding essential information: purpose, differentiation/usage, and safety behavior. No filler.

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 destructive write operation with no output schema, the description fully covers the tool's function, appropriate use cases, and safety constraints, making it self-sufficient for an agent to decide when and how to invoke it.

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%, with each parameter already well-documented. The description reiterates the `confirm_wipe` role but introduces no new parameter semantics beyond the schema.

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 uses a specific verb ('Overwrite') and resource ('Text or Table DAT's entire .text'), and explicitly contrasts with `edit_dat_content` for surgical edits, clearly distinguishing its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly names the alternative sibling tool `edit_dat_content` and states when this tool is preferred ('use it to deploy a full script or template'), plus explains the `confirm_wipe` condition for blank content.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_parameter_expressionSet parameter expression / bind / constantA

Set one or more parameters on a node to an expression, bind expression, or constant value without needing the raw-Python escape hatch. Supports five modes: 'expression' (par.expr = ...), 'bind' (par.bindExpr = ...), 'constant' (par.val = ...), 'reset' (restore the parameter default via par.reset()), and 'unbind' (freeze the current evaluated value as a constant, dropping the driver). Multiple assignments are applied fail-forward — per-item failures accumulate as warnings so a partial batch still returns useful results. Batches using reset/unbind run through the exec path and require TDMCP_BRIDGE_ALLOW_EXEC=1. Use this instead of execute_python_script when TDMCP_RAW_PYTHON is off.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path of the node whose parameters to set.
assignmentsYesOne or more parameter assignments.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds rich behavioral context beyond annotations: explains fail-forward batch behavior (per-item failures become warnings), partial batch returns useful results, reset restores defaults, unbind freezes current value and drops the driver, and the exec path requirement. This significantly exceeds what annotations provide.

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?

Four sentences, each carrying essential information: purpose, modes, batch behavior, and usage guidance. No fluff or repetition; structure is logical (purpose -> modes -> behavior -> alternative).

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 tool with no output schema, the description covers the key operational aspects: all five modes, batch semantics, prerequisites, and the relationship to a sibling tool. It gives the agent enough to invoke correctly and anticipate results.

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 coverage is 100%, so baseline is 3. The description restates mode behavior that is already in the schema (expression/bind/constant/reset/unbind), but adds the fail-forward and environment variable context, which is more about tool behavior than parameter semantics. Minimal additional parameter-specific value beyond schema.

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: 'Set one or more parameters on a node to an expression, bind expression, or constant value.' It clearly distinguishes from siblings by mentioning it avoids the raw-Python escape hatch and explicitly references execute_python_script as an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool instead of execute_python_script when TDMCP_RAW_PYTHON is off. It also provides a critical prerequisite for reset/unbind modes (TDMCP_BRIDGE_ALLOW_EXEC=1), giving clear usage conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_parameters_batchSet parameters (batch)A

Update parameters on multiple nodes in a single batch request. Each update reports its own success; a failure does not roll back the others.

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYesList of { path, parameters } updates sent in one batch request (per-update results; not transactional — a failed update does not roll back the others).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses a key behavioral trait: per-update success reporting and lack of rollback. This is valuable context for an agent evaluating side effects and error handling. It adds meaningful information without contradicting 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 two sentences long, front-loads the core purpose, and includes the most important behavioral caveat. Every word earns its place with no redundancy or filler.

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?

With a fully documented schema, annotations, and a description covering both purpose and non-transactional behavior, the tool description is largely complete for an agent. The only minor gap is lack of explicit guidance on response format or alternatives, but the description sufficiently covers the essential usage context.

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?

The input schema already provides full descriptions for all parameters (100% coverage), including the path, parameters map, and the array semantics. The description adds little beyond restating the batch behavior, so it does not significantly enhance parameter understanding beyond the schema.

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 clearly states the tool's function: 'Update parameters on multiple nodes in a single batch request.' This specifies a precise verb (update), resource (parameters on nodes), and scope (multiple nodes in a batch), distinguishing it from single-node tools like update_td_node_parameters.

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 implies the tool is for batch updates across multiple nodes, which guides when to use it. It also includes a critical caveat about non-transactional behavior ('a failure does not roll back the others'), which helps the agent decide if this tool is appropriate. However, it doesn't explicitly mention alternatives or 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.

set_perform_modeSet perform modeA

Toggle perform mode — the one switch the artist flips before going live. When enabled, tdmcp stores an advisory flag that tools can read before doing nonessential compute; the built-in guard currently suppresses auto preview captures. The flag is stored on the TD root op (op('/').store('tdmcp_perform_mode', ...)). Advisory: this does not stop the TD timeline or kill audio/video processing. Call with enabled=false after the show to resume normal operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYestrue to enter perform mode before a live show, false to leave it afterward. While perform mode is ON, tools that honor the advisory flag skip nonessential compute. The built-in guard currently suppresses auto preview captures; future tools can opt in by checking op('/').fetch('tdmcp_perform_mode', False) before doing expensive work. It does NOT stop the TD timeline or kill audio/video processing.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the readOnlyHint/destructiveHint annotations by explaining the internal storage location (TD root op), the advisory mechanism, and the concrete side effect (suppresses auto preview captures). It also clarifies what it does not do, adding valuable context.

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 compact and well-organized: a clear opening sentence, technical details in the middle, and a practical call-to-action at the end. Every sentence adds value without redundancy.

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?

Given the tool's simplicity (one boolean parameter, no output schema), the description is fully complete. It covers the purpose, mechanism, side effects, exclusions, and usage lifecycle, leaving no critical questions unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage for the single boolean parameter, and the description reinforces its meaning with real-world usage ('enabled=false after the show'). The parameter description in the schema even explains the mechanism and limitations, exceeding baseline expectations.

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 clearly states the tool toggles perform mode, a specific advisory flag used before live shows. It distinguishes this from sibling tools like get_td_performance or optimize_performance by focusing on the single switch artists flip before going live.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use it ('before going live', 'after the show') and provides an advisory exclusion ('does not stop the TD timeline or kill audio/video processing'). This gives clear guidance on appropriate contexts vs. alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_body_trackingSet up body trackingA

One-shot body tracking from a webcam: loads the free mediapipe-touchdesigner ENGINE (install it first with tdmcp install mediapipe-touchdesigner) into your project, starts the timeline (the engine captures the webcam through an embedded browser that only runs while playing), reads its pose JSON DAT through an adapter that emits a 33-landmark pose CHOP, and builds a live skeleton so you only need to pick your webcam and enable Pose. If the engine isn't installed yet, it tells you how. Loading the engine will prompt for camera permission on macOS (click Allow).

ParametersJSON Schema
NameRequiredDescriptionDefault
tox_pathNoPath to the MediaPipe ENGINE .tox (MediaPipe.tox — the full tracker that captures the webcam, not the bare pose_tracking.tox processor). Defaults to the package staged by `tdmcp install mediapipe-touchdesigner`, falling back to the legacy ~/tdmcp-packages path.
parent_pathNoCOMP to load the engine into./project1
build_skeletonNoAlso build a pose-skeleton visual wired to the tracked body so you see it working.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint false, openWorldHint true, destructiveHint false), the description reveals important behavioral traits: the engine only captures the webcam while playing, it reads pose JSON DAT through an adapter, and macOS shows a camera permission prompt. These are useful disclosures not present in the structured metadata.

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 compact yet information-dense, with a clear logical flow: one-shot setup, installation prerequisite, engine behavior, adapter pipeline, skeleton output, and permission warning. Every sentence contributes new information, and the structure is front-loaded with the core purpose.

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?

Given the tool's moderate complexity, no output schema, and rich annotations, the description covers the complete workflow, prerequisites, runtime behavior, and expected user actions. It even addresses the failure case (engine not installed) and platform-specific permission prompts, making it fully self-contained.

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 baseline is 3. The description adds contextual meaning by explaining the engine (.tox) referenced in tox_path and the live skeleton built by build_skeleton, but it does not directly map each parameter. The schema already provides clear descriptions, so no significant additional parameter semantics are added.

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 clearly states the tool's verb and resource: 'One-shot body tracking from a webcam.' It details the full workflow (loads mediapipe engine, starts timeline, reads pose JSON, builds skeleton), which distinguishes it from sibling tools like setup_face_tracking and setup_hand_tracking.

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 provides clear context on when to use this tool (for one-shot body tracking) and includes a prerequisite instruction ('install it first with tdmcp install mediapipe-touchdesigner'). It does not explicitly mention alternatives or exclusions, but the unique webcam body-tracking workflow makes its usage scope evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_face_trackingSet up face trackingA

One-shot face-landmark tracking from a webcam: loads the MediaPipe ENGINE (install first with tdmcp install mediapipe-touchdesigner), starts the timeline, and builds an adapter Script CHOP that emits a 468-sample (or 478 with iris) face-landmark CHOP (tx/ty/tz/confidence, centred on nose tip). Feeds directly into bind_to_channel and create_data_visualization.

ParametersJSON Schema
NameRequiredDescriptionDefault
tox_pathNoPath to the MediaPipe ENGINE .tox (MediaPipe.tox). Defaults to the package staged by `tdmcp install mediapipe-touchdesigner`, falling back to ~/tdmcp-packages.
parent_pathNoCOMP to load the engine into./project1
num_landmarksNo468 = MediaPipe FaceMesh base; 478 adds iris landmarks (10 extra) when iris tracking is enabled in the engine.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits: it loads a specific engine, starts the timeline, and builds an adapter Script CHOP, which is consistent with the annotations (readOnlyHint=false, openWorldHint=true). It also explains the output format (468/478 landmarks, tx/ty/tz/confidence, nose tip centering) beyond what annotations provide. No contradiction found.

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 two dense but well-structured sentences. It front-loads the primary action ('One-shot face-landmark tracking from a webcam'), includes a practical installation note, lists the build steps, and ends with downstream integration. Every sentence earns its place with no redundancy.

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 the tool's complexity (setup with engine load, node creation, data output) and the absence of an output schema, the description covers the essential aspects: what it does, prerequisites, output format, and downstream tools. It could mention naming or access to the created CHOP, but it is sufficiently complete for an agent to invoke successfully.

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?

The input schema already documents all three parameters with 100% coverage. The description adds semantic value by explaining how num_landmarks relates to the output (468 base vs 478 with iris), and clarifies the tox_path default behavior via the install command. This goes beyond schema descriptions to enhance understanding.

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 clearly states a specific verb+resource: 'One-shot face-landmark tracking from a webcam' and details the operational steps (loads MediaPipe engine, starts timeline, builds adapter Script CHOP). It also distinguishes from sibling tracking tools by explicitly focusing on face landmarks and noting downstream usage with bind_to_channel and create_data_visualization.

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 provides clear usage context: tracking face landmarks from a webcam, including the prerequisite installation command and the intended downstream tools. It does not explicitly contrast with alternatives like setup_hand_tracking, but the scope is unambiguous enough that an agent can decide when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_hand_trackingSet up hand trackingA

One-shot MediaPipe hand tracking from a webcam: loads the mediapipe-touchdesigner ENGINE (install with tdmcp install mediapipe-touchdesigner), starts the timeline, locates the engine's hand JSON DAT, and builds an adapter Script CHOP that converts the hand JSON into a canonical max_hands×21-landmark CHOP (channels: tx/ty/tz/confidence/handedness). Use coordinate_space='world' for gesture detection (3D, curled fingers separate in z). The output CHOP at //hand is ready for bind_to_channel or create_pose_skeleton. Shares the same engine as setup_body_tracking — both can run in the same project.

ParametersJSON Schema
NameRequiredDescriptionDefault
tox_pathNoPath to the MediaPipe ENGINE .tox (MediaPipe.tox). Defaults to the package staged by `tdmcp install mediapipe-touchdesigner`, falling back to ~/tdmcp-packages. The same engine is shared with setup_body_tracking.
max_handsNoMaximum number of hands tracked (1 or 2). Output CHOP allocates max_hands*21 samples.
parent_pathNoCOMP to load the engine into./project1
adapter_nameNobaseCOMP name created under parent_path to house the hand Script CHOP.mp_hand_adapter
coordinate_spaceNo'world' reads worldLandmarks (3D, meters, gesture-safe — curled fingers separate in z). 'image' reads normalised 2D landmarks, centred on the wrist. Use 'world' for gesture detection.world

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are minimal (readOnly=false, openWorld=true, destructive=false), but the description adds substantial behavioral context: it installs/loads an engine, starts the timeline, creates a Script CHOP, and specifies the output path. This matches the annotations and gives agents a clear model of side effects without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences cover the full pipeline, output format, usage recommendation, and sibling relationship without fluff. It is denser than a two-sentence ideal, but every sentence earns its place and the primary action is front-loaded.

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 setup tool with 5 parameters and no output schema, the description fully explains what is built, where the output lives, what channels it provides, and how it can be consumed downstream. It also covers installation and shared-engine compatibility, making it self-sufficient for an agent.

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?

The input schema already describes all 5 parameters at 100% coverage, including defaults and coordinate_space guidance. The description reinforces key points like the output path and world-coordinate suitability but does not add significant new parameter-level detail beyond the schema.

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 specifies a concrete pipeline: loads the MediaPipe engine, starts the timeline, locates the hand JSON DAT, and builds an adapter Script CHOP with a canonical channel layout. It also explicitly contrasts with setup_body_tracking by noting they share the same engine, distinguishing it from siblings.

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 clear usage context: one-shot webcam hand tracking setup, recommends coordinate_space='world' for gesture detection, and notes compatibility with setup_body_tracking. It does not explicitly state when to prefer alternatives like create_hand_gesture_bus or Leap Motion bridges, but the guidance is strong enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_mediapipe_pluginSet up MediaPipe plugin (multi-modal)A

Drop the torinmb mediapipe-touchdesigner ENGINE in one shot and enable any combination of face, hand, body, and segmentation pipelines. Use this instead of running setup_face_tracking + setup_hand_tracking + setup_body_tracking + setup_segmentation separately — those tools each re-load the engine, resulting in multiple competing MediaPipe COMPs fighting for the webcam. This tool loads the engine ONCE and toggles its Face/Hand/Body/Segmentation pars. IMPORTANT: there is NO stock TouchDesigner MediaPipe; all five mediapipe tools (this one + the four setup_*_tracking tools) rely on the free torinmb plugin — install it first with tdmcp install mediapipe-touchdesigner. Output paths for face/hand/body are DATs (JSON landmark streams from the plugin), not CHOPs — use a Script CHOP adapter to convert to numeric channels. The engine requires the TD timeline to be PLAYING (uses an embedded browser for webcam capture).

ParametersJSON Schema
NameRequiredDescriptionDefault
tox_pathNoOverride path to the torinmb mediapipe-touchdesigner ENGINE .tox (MediaPipe.tox — the full tracker with webcam capture, NOT the bare pose_tracking.tox or hand_tracking.tox processors). Defaults to the package staged by `tdmcp install mediapipe-touchdesigner`.
enable_bodyNoEnable the Body/Pose tracking pipeline inside the engine.
enable_faceNoEnable the Face detection pipeline inside the engine.
enable_handNoEnable the Hand tracking pipeline inside the engine.
parent_pathNoExisting COMP to load the engine into./project1
container_nameNoInner baseCOMP name. Matches the default used by setup_body_tracking / setup_hand_tracking so re-running is idempotent (the engine is reused, not duplicated).MediaPipe
source_video_pathNoOptional path to a video file to use as input instead of the live webcam. The engine's Camera/Source/Videofile/File par is probed in that order and the first match is set.
enable_segmentationNoEnable the Segmentation pipeline (outputs a matte TOP; heavier GPU cost than the landmark pipelines).

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description reveals crucial behavioral details: the tool loads the engine once, toggles pars, requires the timeline to be playing (embedded browser webcam), and outputs DATs rather than CHOPs. It also warns that there is no stock MediaPipe and all five tools rely on the torinmb plugin.

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 dense but every sentence serves a purpose: purpose, differentiation, prerequisite, behavioral quirks, and output format. It is front-loaded with the primary action and maintains a logical flow without repeating parameter schema details. No fluff.

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 complex setup tool with 8 parameters, no output schema, and multiple sibling tools, the description covers prerequisites, alternatives, side effects, output types, and operational constraints (timeline playing, container_name idempotency). It is thorough enough for an agent to safely invoke the tool.

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 100% with each parameter already well-described. The tool description adds value beyond the schema by explaining that enabling pipelines produces DAT outputs and describing the source_video_path probing order, which is not fully captured in parameter descriptions. This enriches parameter understanding, so a slight upgrade from baseline is warranted.

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 uses a specific verb+resource ('Drop the torinmb mediapipe-touchdesigner ENGINE') and clearly states the tool's scope (enable any combination of face, hand, body, and segmentation pipelines). It also distinguishes itself from the four setup_*_tracking siblings, which is a key differentiator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent to use this tool instead of running the four separate setup tools, explaining why (each reloads the engine, causing competing MediaPipe COMPs). It also names the prerequisite install step ('tdmcp install mediapipe-touchdesigner') and notes the timeline playing requirement, providing complete usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_outputSet up outputA

Route a finished TOP to an output destination: a display window, NDI stream, Syphon/Spout, a recording, or Touch Out. Creates the matching output node ('out') under parent_path; for a window it points the Window COMP's winop at the source and sets its size, and for the other types it bridges the source in through a Select TOP (TD wires can't cross COMP boundaries). Typically the LAST step after building a visual — feed it the output Null from a create* tool or a create_layer_mixer. Returns the created output node path, the output type, the source path, and any non-fatal warnings (e.g. if wiring or window config failed).

ParametersJSON Schema
NameRequiredDescriptionDefault
resolutionNoWindow size for output_type='window' (720p=1280×720, 1080p=1920×1080, 4K=3840×2160); ignored by the other output types.1080p
output_typeNoDestination: 'window' (a Window COMP display), 'ndi' (NDI Out TOP network stream), 'syphon_spout' (Syphon/Spout Out TOP for other apps), 'record' (Movie File Out TOP to disk), or 'touch_out' (Touch Out TOP to another TD instance).window
parent_pathNoParent COMP path the output node (and any bridging Select TOP) is created inside./project1
source_pathYesPath of the final TOP to output.
record_formatNoFile format for output_type='record' (sets the Movie File Out TOP's type); ignored otherwise.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations, explaining that a matching output node is created under parent_path, how window mode differs (points the Window COMP's winop), and why a Select TOP bridge is used for other types (TD wires can't cross COMP boundaries). It also discloses the return value including non-fatal warnings, which is valuable behavioral context.

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 dense but highly informative. Each sentence adds distinct value: destination list, per-type wiring logic, usage as last step, and return value. It is front-loaded with purpose and ends with outcome expectations, with no filler.

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 tool with no output schema, the description fully covers what the agent needs to know: prerequisites, input expectations, node creation behavior, special cases for window vs other types, and return value semantics including warnings. It is complete for its moderate complexity.

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 100% and each parameter has a description, so the baseline is 3. The description adds meaning by explaining the purpose of the source_path ('final TOP'), how output_type affects behavior (window vs NDI/Syphon/Spout/record/Touch Out), and what happens with the created node. This adds value beyond the enum labels.

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 action ('Route a finished TOP to an output destination') and enumerates five distinct destination types. It clearly differentiates itself from sibling tools like render_output or record_movie by covering the full output-routing step, including node creation and special wiring behavior.

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 explicitly states when to use this tool: 'Typically the LAST step after building a visual' and tells the agent to feed it the output Null from a create_* tool or create_layer_mixer. It does not explicitly mention when not to use it or name alternative tools, but the contextual guidance is clear and practical.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_segmentationSet up selfie segmentationA

One-shot selfie segmentation via the MediaPipe TouchDesigner engine (install with tdmcp install mediapipe-touchdesigner). Loads the engine, enables Selfie Segmentation, and builds an adapter COMP with a clean alpha-mask Null TOP (optionally inverted and/or feathered) plus an optional pre-keyed RGBA Null TOP (person on transparent). Wire the mask into create_keyer, create_depth_silhouette, or any matte-consuming tool. The engine reuses an existing MediaPipe op if already loaded (idempotent). Keep the TD timeline PLAYING so the embedded browser captures the webcam; click Allow if macOS prompts for camera permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoAdapter COMP name under parent_path. Defaults to 'mp_segmentation'.
modelNoSelfie-segmentation model variant. 'general' works at any orientation; 'landscape' is tuned for wide-angle scenes.general
smoothNoEnable the engine's mask temporal smoothing parameter if present.
tox_pathNoPath to the MediaPipe ENGINE .tox (MediaPipe.tox). Defaults to the package staged by `tdmcp install mediapipe-touchdesigner`, falling back to the legacy ~/tdmcp-packages path.
feather_pxNoSoft-edge blur radius on the mask before publishing (Blur TOP). 0 = hard mask.
invert_maskNoOutput 1 − mask (useful for background-only effects). Applied via a Level TOP on the mask branch.
parent_pathNoCOMP to load the engine into. Reuses the existing engine if MediaPipe already exists./project1
publish_prekeyedNoAlso build a person_rgba Null TOP (camera × mask) so you can drop 'person on transparent' straight into a comp.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals behavioral details beyond annotations: it loads an engine, creates a COMP with Null TOPs, is idempotent, and requires the timeline playing and camera permission. These specifics about side effects and runtime conditions are not present in 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 a single concise paragraph that front-loads the purpose, immediately states the install prerequisite, and details the workflow in four sentences. Every sentence adds operational value without redundancy.

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?

The description explains the setup workflow, outputs (mask and RGBA Null TOPs), integration with other tools, idempotency, and runtime requirements. However, it does not explicitly state what the function returns (e.g., the COMP path), which would be valuable since there is no output schema.

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 descriptions cover 100% of the 8 parameters, providing thorough explanations such as feather_px's blur radius and invert_mask's Level TOP application. The tool description adds no additional parameter-level semantics beyond these, so it does not exceed the baseline score.

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 clearly states 'One-shot selfie segmentation via the MediaPipe TouchDesigner engine' and details the build steps, distinguishing it from sibling tracking setup tools. It specifies the resource (selfie segmentation) and the output (adapter COMP with alpha-mask Null TOP), making its purpose 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 advises 'Wire the mask into create_keyer, create_depth_silhouette, or any matte-consuming tool', establishing a clear usage context. However, it does not explicitly exclude alternatives like setup_hand_tracking or setup_face_tracking, relying on the name and sibling list for differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_tdabletonSetup TDAbleton BridgeA

Wire up an Ableton Live bridge inside a tdmcp-managed container. Auto mode probes for the official TDAbleton Palette COMP; if found, clones it and surfaces tempo/beat/track/device channels as binding-ready Null CHOPs. Falls back to a full OSC fabric (oscinCHOP + selectCHOP fan-out) if the Palette isn't available. Either branch exposes the same Null CHOP names at the container boundary so downstream bind_to_channel calls work regardless of which path was taken.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoAbleton host IP for the OSC Out CHOP.127.0.0.1
modeNoBridge mode. 'auto' = probe palette then fall back to OSC. 'palette' = require Palette (warn on miss, still builds OSC fallback). 'osc' = skip palette probe entirely.auto
nameNoContainer baseCOMP name.tdableton
port_inNoUDP port TD listens on (Live → TD).
port_outNoUDP port TD sends to (TD → Live).
parent_pathNoParent COMP to host the container (default '/project1')./project1
track_countNoNumber of /live/track/<i>/volume channels to materialise as bind-ready Nulls.
include_tempoNoAdd Null CHOPs for tempo, beat, and bar.
expose_devicesNoIf true, generate /live/track/<i>/device/<j>/parameter/<k> listener rows up to device_param_count.
include_masterNoAdd Null CHOPs for /live/master/volume and /live/master/crossfader.
device_param_countNoPer-track device-param count to materialise (used only when expose_devices).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses meaningful behavioral details beyond the annotations, such as probing for the Palette, falling back to an OSC fabric, and guaranteeing the same Null CHOP names. Annotations already say readOnly=false and openWorld=true, and the description aligns with those. It could add more about error handling or prerequisites, but the disclosed branch logic is valuable.

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 concise, front-loaded with the primary purpose, and uses three well-structured sentences to cover the auto-probe logic, fallback, and the consistent output guarantee. Every sentence adds value with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, two modes, no output schema), the description covers the main setup behavior well but does not mention what the tool returns (important since no output schema exists) or any prerequisites/limitations. It is adequate but has gaps.

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?

The input schema already provides descriptions for all 11 parameters (100% coverage). The description adds context about the overall goal (downstream bind_to_channel) but does not individually enrich the parameter meanings beyond what the schema provides. Baseline of 3 is appropriate.

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 clearly states a specific action ('Wire up an Ableton Live bridge') with a specified scope ('inside a tdmcp-managed container') and explains the auto-probe/fallback behavior. This distinguishes it from similar sibling tools like connect_ableton_link_session and create_hand_ableton_mapper.

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 provides clear context for when to use the tool (when an Ableton Live bridge is needed in a tdmcp container with binding-ready Null CHOPs) and explains the two modes, but it does not explicitly state when not to use it or point to specific alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

show_preflight_reportShow preflight reportA
Read-only

Read-only pre-show check: bridge reachability, node errors, topology, cook-time budget, GPU/display topology and perform-mode status in one PASS/UNVERIFIED/WARN/FAIL report. Use before rehearsals or venue handoff to see what is safe, unverified, suspicious, or failing without mutating the project.

ParametersJSON Schema
NameRequiredDescriptionDefault
recursiveNoInspect nested nodes for topology/performance.
root_pathNoNetwork root to inspect before a show./project1
target_fpsNoFrame-rate target for cook-time warnings.
include_displaysNoInclude GPU/display/perform-mode checks.
include_performanceNoInclude network cook-time budget checks.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksYes
statusYes
summaryYes
root_pathYes
target_fpsYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description reinforces this with 'without mutating the project' and adds context on what the report includes and how results are categorized. It does not discuss latency, network calls, or environmental dependencies, but given strong annotation coverage, the added context is valuable enough for a 4.

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 two sentences, front-loaded with the key qualifier 'Read-only pre-show check'. It lists all major capabilities in a compact enumeration and ends with a direct usage statement. Every word earns its place with no redundancy or filler.

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?

The description provides a clear purpose, scope, usage timing, and safety guarantee. An output schema exists, so return details are handled elsewhere. It does not mention prerequisites or failure modes of the preflight itself, but for a read-only aggregate tool with strong annotations and complete schema, this is sufficiently complete.

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 each parameter is already documented with name, type, default, and description. The tool description adds no additional parameter-level detail, but it doesn't need to; the schema carries the full burden. Baseline 3 is appropriate.

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 clearly states a specific verb+resource: 'Read-only pre-show check' and enumerates the exact set of checks (bridge reachability, node errors, topology, cook-time budget, GPU/display, perform-mode status). It distinguishes itself from sibling tools by presenting itself as a consolidated report generating PASS/UNVERIFIED/WARN/FAIL results.

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 explicitly says 'Use before rehearsals or venue handoff', giving clear when-to-use context. It does not name alternative tools or provide explicit when-not-to-use guidance, but the aggregation nature and the 'in one PASS/UNVERIFIED/WARN/FAIL report' phrasing imply it should be preferred for a comprehensive pre-show overview.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

snapshot_td_graphSnapshot network graphA
Read-only

Read-only: capture a compact, serializable snapshot of a network — nodes, connections, structural issues, and optionally each node's parameters — for review, diffing, or documentation. Returns {nodeCount, connectionCount, issues[], nodes[], connections[]}. Set compact for a token-cheap whole-COMP read that hoists per-type default parameters and stores only each node's deltas. Feed two of these snapshots to diff_snapshots to see exactly what changed across an edit.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoNetwork root to snapshot./project1
compactNoToken-cheap whole-COMP read: hoist each operator type's most-common parameter values into a shared `typeDefaults` map and store only each node's *deltas* from them (Embody-style read_tdn). Implies fetching parameters. Use for feeding a large network to an agent without paying for repeated identical values.
include_paramsNoAlso fetch each node's parameters (one request per node; capped for large graphs).
include_parameter_modesNoAlso preserve TouchDesigner parameter modes/expressions/binds where available. Compact mode implies this so reactive expressions are not flattened to their current value.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYesThe network root that was snapshotted, echoing the request.
nodesYesEvery captured node, optionally with its parameters.
issuesYesPlain-language structural problems detected in the graph.
compactNoTrue when compact mode hoisted per-type default parameters and delta-encoded nodes.
nodeCountYesTotal number of nodes captured.
connectionsYesEvery wire as {source_path, target_path, …}, suitable for diffing.
typeDefaultsNoCompact mode only: each operator type's hoisted default parameter values; nodes store only their deltas from these.
connectionCountYesTotal number of connections captured.
params_truncatedYesTrue if params were requested (`include_params` or `compact`) but the graph exceeded the per-node fetch cap.
parameter_modes_truncatedNoTrue if parameter modes were requested (`include_parameter_modes` or `compact`) but the graph exceeded the per-node fetch cap.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false, and the description reinforces this with 'Read-only'. It goes far beyond annotations by explaining compact-mode hoisting of per-type defaults, delta storage, per-node request behavior with caps, and that compact mode implies parameter-mode preservation. This is rich, non-obvious behavioral detail.

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 dense but every sentence earns its place: purpose, return shape, compact-mode guidance, and downstream diffing workflow. It is front-loaded with the most important information ('Read-only: capture...') and contains no filler or redundancy.

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?

Given the 4 optional parameters and the existence of an output schema, the description is complete: it explains the return shape, the trade-offs of each parameter mode, caps on per-node requests, and the intended workflow with diff_snapshots. An agent has enough context to select and invoke this tool correctly without needing additional clarification.

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 100%, so the baseline is 3. The description adds meaningful extra semantics: why compact is useful ('without paying for repeated identical values'), the relationship between compact and include_parameter_modes, and the 'Embody-style read_tdn' analogy. These go beyond the schema's already-thorough property descriptions.

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+resource: 'capture a compact, serializable snapshot of a network' and enumerates the exact contents (nodes, connections, structural issues, optionally parameters). It distinguishes itself from sibling tools like get_td_topology or serialize_network by emphasizing the serializable snapshot format and diffing use case.

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 states use cases ('for review, diffing, or documentation') and gives concrete guidance to set `compact` for a token-cheap whole-COMP read and to feed two snapshots to diff_snapshots. It does not explicitly call out when not to use it or name alternative tools beyond diff_snapshots, but the context is strong enough for an agent to choose correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

style_memoryRead or update the artist's standing style memoryA

READ or UPDATE the long-lived Memory/style.md note in the configured Obsidian vault — the artist's standing preferences across sessions (palettes, default energy, banned moves, favourite generators, naming/layout conventions, tags). mode='show' returns a compact one-line context string suitable for feeding an LLM, 'read' returns the full structured note, 'update' field-wise merges a patch (lists union+dedup, scalars overwrite) and bumps the updated date. Touches the vault only — no TouchDesigner side effects. Requires TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoshow: short compact context string (cheap to feed an LLM). read: full structured note. update: field-wise merge a patch (palettes/banned/favorites union+dedup; scalars overwrite).show
patchNoPatch applied when mode='update'. Ignored for show/read.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description far exceeds the sparse annotations (readOnlyHint: false, destructiveHint: false). It details mode-specific behaviors ('show' returns compact context string, 'read' returns full note, 'update' field-wise merges with lists union+dedup and scalars overwrite, bumps updated date). It also states the side-effect boundary ('no TouchDesigner side effects') and environment requirement, giving the agent complete operational expectations.

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 two sentences with zero filler. It opens with the core action and resource, then succinctly packs mode behaviors, merge semantics, side-effect scope, and a prerequisite. Every clause adds value; it is a model of efficient technical writing.

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 the tool has no output schema, the description covers most needed context: return formats for show/read, merge behavior for update, side effects, and prerequisites. The only minor gap is not explicitly stating what 'update' returns (e.g., the updated note) and no error-handling detail beyond the required env var, but this is a small omission in an otherwise thorough description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds substantial semantic enrichment. It explains the meaning of each mode in practical terms and the merge strategy for the patch (lists union+dedup, scalars overwrite), which is not present in the schema descriptions. It also clarifies that patch is ignored for show/read, and that TDMCP_VAULT_PATH is required.

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 clearly states two specific verbs ('READ or UPDATE') and the exact resource ('Memory/style.md note in the configured Obsidian vault'), plus its scope ('artist's standing preferences across sessions'). This distinctively separates it from sibling vault and TouchDesigner tools.

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 conveys when to use the tool: for accessing or modifying long-lived style memory, not for ephemeral operations. It notes 'Touches the vault only — no TouchDesigner side effects' and the prerequisite 'Requires TDMCP_VAULT_PATH'. However, it does not explicitly name alternative tools or state 'when not to use', so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_operator_chainSuggest operator chainA
Read-only

Read-only: suggest a small ordered TouchDesigner operator chain for a creative or technical goal from offline operator docs and workflow patterns. Returns connection hints and next tool hints; it does not create nodes.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesCreative or technical goal for the operator chain.
familyNoOptional operator family/category preference, e.g. TOP, CHOP, SOP, DAT.
max_stepsNoMaximum number of operators to return in the suggested chain.
seed_operatorNoOptional starting operator name, display name, or slug.

Output Schema

ParametersJSON Schema
NameRequiredDescription
goalYes
chainYes
familyNo
warningsYes
seedOperatorNo
nextToolHintsYes
sourceMatchesYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description discloses valuable behavioral traits: it operates offline, returns connection hints and next tool hints, and explicitly does not create nodes. This adds meaningful context about data source and side-effect-free behavior, complementing the annotations without contradicting them.

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 exceptionally concise, delivered in two short sentences. It front-loads the critical 'Read-only' signal, then efficiently conveys the tool's function, data source, return type, and non-destructive nature. Every phrase serves a purpose, with no redundancy or extraneous detail.

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 the presence of an output schema and complete parameter descriptions, the description covers the essential context: purpose, read-only nature, offline operation, and return value summarization. It is well-rounded but could improve by explicitly guiding selection against sibling tools like search_operators or validate_operator_chain, though this is a minor gap.

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?

The input schema provides descriptions for all four parameters (goal, family, max_steps, seed_operator) with 100% coverage. The tool description does not add any additional parameter-specific meaning or constraints, so the baseline score of 3 is appropriate since the schema already carries the semantic weight.

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 clearly states the tool's purpose: suggesting a small ordered TouchDesigner operator chain for a creative or technical goal, using offline docs and workflow patterns. It distinguishes itself from mutation tools by explicitly noting it returns hints and does not create nodes, setting it apart from siblings like create_node_chain and validate_operator_chain.

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 implies appropriate usage for planning and suggestion scenarios, emphasizing read-only behavior and the absence of node creation. However, it does not explicitly name alternative tools for validation or creation, and doesn't state when one should prefer this over search_operators or get_operator_workflow_guide, leaving exclusions implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

summarize_td_errorsSummarize network errorsA
Read-only

Read-only: collect errors across a network and cluster them by message, type, or parent container, with the worst-offending nodes and a suggested order to investigate. Returns {total, groups[], suggestions[]}. Use this for network-wide triage instead of reading every node's errors one by one; use get_td_node_errors when you just want the raw error list for one node or sub-tree.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoNetwork root to collect errors under./project1
group_byNoHow to cluster errors: by exact message, by error type, or by parent container (to find a common upstream cause).message

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYesThe network root errors were collected under, echoing the request.
totalYesTotal number of errors found across the network (0 means clean).
groupsYesError clusters, largest first; fixing a big cluster's cause clears it at once.
group_byYesHow the errors were clustered, echoing the request.
suggestionsYesPlain-language next steps, e.g. the common cause and which nodes to check first.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read nature is known. The description adds meaningful behavior: clustering by message/type/parent, returning a summary with groups and suggestions, and indicating a severity-based investigation order. This goes beyond the annotation coverage and clarifies the tool's output behavior.

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 compact and front-loaded: it states the core function, the return shape, and the usage distinction in three sentences. Every sentence adds value, and the formatting is easy to parse.

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?

The tool has an output schema that presumably documents {total, groups[], suggestions[]}, so the description need not elaborate on return fields. It includes usage guidance and alternatives, which suffices for network-wide triage. However, it does not mention potential performance implications or whether the traversal is recursive, which could matter for large networks. Still, the provided context is strong overall.

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 coverage is 100% and both parameters ('path' and 'group_by') have clear descriptions in the schema. The description references the grouping options by enumerating 'message, type, or parent container,' but this simply mirrors the schema's enum rather than adding new meaning. It does not provide extra parameter context such as path syntax or behavior with missing paths.

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 uses a specific verb ('collect errors across a network and cluster them') and names the resource (network errors) with clear output features (worst-offending nodes, suggested investigation order). It also explicitly distinguishes itself from the sibling tool get_td_node_errors, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: 'Use this for network-wide triage' versus 'use get_td_node_errors when you just want the raw error list for one node or sub-tree.' This directly addresses alternatives and exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

swap_operatorSwap an operator's type in placeA
Destructive

Change an operator's TYPE while preserving its name, position, incoming + outgoing wires, and any parameters that exist on the new type. Snapshots wires + params, deletes the old node, creates a new node of new_type at the same parent/name/x/y, re-applies matching params (others go into dropped_parameters), and rewires connectors. Fail-forward: per-wire / per-param failures are reported as failed_inputs[] / failed_outputs[] / dropped_parameters[] rather than aborting. Returns {old_type, new_path, preserved_parameters, dropped_parameters, reconnected_inputs, reconnected_outputs, failed_inputs, failed_outputs, warnings}.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_typeYesNew operator type, e.g. 'rampTOP', 'constantCHOP'.
node_pathYesPath of the node to swap (e.g. '/project1/noise1').
preserve_parametersNoRe-apply parameters that exist (by name) on the new type.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the destructiveHint annotation by detailing the internal procedure: snapshots wires+params, deletes old node, creates new node, re-applies params, rewires connectors. It also discloses fail-forward behavior and return fields, providing a rich behavioral model not covered by 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 dense but well-structured: core action, procedure, failure handling, and return value are each given a sentence. Every sentence contributes essential information for a complex destructive operation.

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?

The tool is complex and has no output schema, but the description explains the full lifecycle and return structure including failed_inputs/outputs and warnings. This is sufficient for an agent to understand what will happen and interpret results.

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?

All 3 parameters have schema descriptions (100% coverage), so the baseline is 3. The description reinforces preserve_parameters behavior but adds no new syntactic details beyond the schema; it mentions parameter preservation and dropped_parameters in the return context.

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+resource: 'Change an operator's TYPE while preserving its name, position, incoming + outgoing wires, and any parameters that exist on the new type.' This clearly distinguishes it from sibling create/delete/update tools by emphasizing in-place type swap with preservation.

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?

The description implies the use case—when you need to change an operator's type without losing connections—but does not explicitly name alternatives or state when not to use it. It lacks comparative guidance like 'use this instead of delete+create'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_external_clockSync external clock (tempo)A

Lock the project tempo to a live source so beat-synced visuals follow the music. mode picks the source: 'tap' (default) gives a Bpm knob + Tap pulse you dial/tap by ear; 'ableton_link' locks to an Ableton Link session on the network; 'midi_clock' derives BPM from incoming MIDI timing-clock (24 PPQN). All modes write the global tempo (op('/').time.tempo), so create_tempo_sync clocks and create_autopilot follow. The Link/MIDI modes are hardware-gated — without that source present the manual Bpm knob still drives the clock.

ParametersJSON Schema
NameRequiredDescriptionDefault
bpmNoStarting tempo in BPM (match the DJ's displayed BPM, then fine-tune by tapping).
modeNoHow the tempo is sourced. 'tap' (default): a Bpm knob + Tap pulse you dial/tap by ear. 'ableton_link': lock to an Ableton Link session on the network (an Ableton Link CHOP's tempo drives the clock). 'midi_clock': derive BPM from incoming MIDI timing-clock (24 PPQN). The Link/MIDI modes need that source present on the machine — without it they fall back to the manual Bpm knob.tap
parent_pathNoParent COMP path the self-contained 'tempo_clock' container is created inside./project1

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false), the description discloses specific side effects: 'All modes write the global tempo (op('/').time.tempo)' and explains the hardware-gated nature of Link/MIDI modes with fallback to the manual Bpm knob. This adds significant behavioral context not present in 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?

Four sentences, front-loaded with the core purpose, and every sentence contributes: purpose, mode details, side-effect, and hardware gating. No redundant or filler content.

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?

The description covers the tool's purpose, modes, side effects, hardware dependencies, and relationship to downstream tools. It does not state return values, but no output schema exists and the tool's function is a side-effecting action (creating a container and setting tempo), so this gap is minor.

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%, with each parameter (bpm, mode, parent_path) already having detailed descriptions. The tool description largely restates the mode semantics and adds no new parameter-specific meaning. Baseline 3 is appropriate since the schema does the heavy lifting.

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+resource: 'Lock the project tempo to a live source so beat-synced visuals follow the music.' It clearly distinguishes the tool by explaining the three modes and explicitly positions it as the source that create_tempo_sync and create_autopilot follow, differentiating it from sibling tools.

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 provides clear context for when to use this tool: to sync project tempo to a live source (tap, Ableton Link, MIDI clock). It names downstream consumers (create_tempo_sync, create_autopilot), but does not explicitly state when NOT to use it or enumerate alternative tools. This matches 'clear context, no exclusions'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_presets_vaultSync presets with the vaultA

Bridge a COMP's manage_presets snapshots with the Obsidian vault. With action 'export' it READS TD storage and WRITES a Markdown note (diffable, shareable) under Presets/; with action 'import' it READS that note and WRITES the presets back into TD storage (merging by name). Returns the note path plus the affected preset names. Use this to version-control or share presets across machines; use manage_presets to capture/recall them live. Requires a configured TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoVault note path (defaults to Presets/<comp>.md).
actionYesexport TD presets to a vault note, or import a note's presets back into TD.
comp_pathNoCOMP whose presets live in storage (the manage_presets target)./project1

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false, destructiveHint=false, but the description adds substantial context: export READS TD and WRITES Markdown, import READS note and WRITES into TD merging by name, and it returns the note path plus affected preset names. This exceeds the annotation coverage.

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?

Five sentences, each earning its place: purpose, action semantics, return value, usage guidance, and prerequisite. No fluff, front-loaded with the core purpose. This is concise and well-structured.

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 two-action sync tool with no output schema, the description fully explains the workflow, return value, relationship to sibling tool, and required configuration. It is complete enough for an agent to select and invoke correctly.

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 covers all 3 parameters with descriptions (100% coverage), so baseline is 3. The description adds some context like merging behavior and default paths, but doesn't significantly enhance the meaning of individual parameters beyond what schema descriptions already provide.

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 states exactly what the tool does: bridges manage_presets snapshots with the Obsidian vault, with explicit export/import directions. It also distinguishes from sibling manage_presets by noting that manage_presets captures/recalls live, whereas this tool is for version-control/share.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to version-control or share presets across machines; use manage_presets to capture/recall them live.' This provides both when-to-use and when-not-to-use. It also states the prerequisite of a configured TDMCP_VAULT_PATH.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_timecodeSync project to external timecodeA

Wire an external SMPTE/MTC/LTC/OSC timecode source into the TouchDesigner timeline. Creates the input op + Math CHOP normaliser + Null CHOP 'tc_out' (channels 'frame' and 'seconds'); optionally adds an Execute DAT that writes project.frame = tc_out['frame'] each cook so the timeline follows house clock. Requires the project to be playing — paused TD will not advance. LTC has no native TD decoder; the tool surfaces a warning and creates the audio input so the artist can attach an external decoder. MTC operator availability is build-dependent.

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNoReference frame-rate for SMPTE→frame conversion (24/25/29.97/30).
hostNo(osc) Bind interface; ignored for mtc/ltc. Defaults to '0.0.0.0'.
nameNoName prefix for the timecode subsystem COMP (defaults to 'tc_in1').
portNo(osc) UDP port (default 7000) or (mtc/ltc) device index (default 0). The device picker can hang on a macOS permission modal — keep the default unless you know the device.
parentNoCOMP to host the timecode subsystem in./project1
sourceYesTimecode transport: 'mtc' = MIDI Time Code (MIDI In), 'ltc' = Linear Time Code from audio (no native TD decoder — surfaces a warning), 'osc' = OSC In CHOP listening on host:port.
osc_addressNo(osc) OSC address pattern carrying the timecode payload. Defaults to '/timecode'.
cue_on_labelNo(osc) If the payload is a string matching a project cue name, call project.cue(name) instead of seeking.
drive_timelineNoWhen true, an Execute DAT writes project.frame = tc_out['frame'] each cook. Requires the project to be playing — paused TD will not advance.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description exposes substantial behavior beyond annotations: it creates a full node chain ('input op + Math CHOP normaliser + Null CHOP tc_out'), optionally writes project.frame via Execute DAT, and warns about LTC's missing native decoder and MTC's build-dependent availability. This goes well beyond the sparse 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 front-loaded with the core purpose, then compactly covers node creation, optional timeline driving, and important caveats. Every sentence earns its place; it is detailed but not bloated.

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 9-parameter tool with no output schema, the description adequately explains what will be created (tc_out, channels, Execute DAT), how it behaves, and what limitations exist. It is complete enough for an agent to understand the tool's effects and prerequisites.

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 coverage is 100% and each parameter already has a detailed description. The tool description adds some global behavioral context (e.g., MTC availability) but doesn't materially enhance per-parameter meaning beyond the schema.

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: 'Wire an external SMPTE/MTC/LTC/OSC timecode source into the TouchDesigner timeline.' It clearly distinguishes itself from related siblings like create_ltc_timecode_bridge by covering multiple timecode standards and the timeline-driving behavior.

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 provides clear context and a key prerequisite: 'Requires the project to be playing — paused TD will not advance.' It also flags LTC and MTC caveats. However, it doesn't explicitly name when alternatives like create_ltc_timecode_bridge or sync_external_clock should be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tag_and_search_libraryTag & search the vault libraryA

Faceted browse + tag editing over a vault library (Recipes/ + Components/ markdown notes). op='list' enumerates every asset and its tags; op='search' filters by free-text query and/or tags_any/tags_all set logic; op='tag' edits one asset's frontmatter tags (union or replace, always preserving '*'-pinned user tags); op='filter' returns assets matching a license_tier bucket (and optional SPDX license id). Pure vault I/O — no TouchDesigner bridge required. Requires TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
opNoOperation: 'tag' edits one asset; 'search'/'list' read across the library; 'filter' returns assets matching a license_tier (and optional license SPDX-id).search
tagsNoop='tag': tags to apply. Tags prefixed '*' are preserved as user-pinned.
limitNoMaximum number of matches to return.
queryNoop='search': free-text substring matched against id/name/description/tags (case-insensitive).
foldersNoVault subfolders to scan. Defaults to ['Recipes', 'Components'].
licenseNoop='filter' (optional refinement): also require frontmatter `license` to equal this SPDX-id (case-insensitive).
replaceNoop='tag': when true, replace existing tags (kept '*'-pinned); when false, union.
tags_allNoop='search': match assets that carry every one of these tags.
tags_anyNoop='search': match assets that carry at least one of these tags.
asset_pathNoVault-relative path to one asset note (e.g. 'Recipes/feedback_tunnel.md'). Required for op='tag'.
license_tierNoop='filter': return only assets whose frontmatter `license_tier` equals this bucket.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the annotations (all false) by specifying that the 'tag' operation can edit frontmatter, supports union or replace, and always preserves '*'-pinned tags. It also clarifies that the tool is pure vault I/O and requires an environment variable. This adds useful behavioral context beyond what annotations convey, though it does not detail return formats or error behavior.

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 a single dense paragraph that front-loads the primary purpose, then uses semicolons to enumerate operations efficiently. Every sentence contributes meaningful information, and the structure makes it 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?

Given the tool's complexity (11 parameters, 4 operations, no output schema), the description covers all operations and key constraints. It lacks details on return values or edge cases, but the functional coverage is strong enough for an agent to select and invoke the tool correctly in most scenarios.

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 100%, so the baseline is 3. The description adds value by grouping parameters under their relevant operations (e.g., tags, replace for 'tag'; query, tags_any, tags_all for 'search') and clarifies the set logic and pinned-tag behavior, enriching the raw schema definitions.

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+resource pair ('Faceted browse + tag editing over a vault library') and immediately enumerates four distinct operations (list, search, tag, filter) with clear scoping to Recipes/ and Components/ markdown notes. This makes the tool's purpose instantly clear and differentiates it from sibling tools like browse_library or generate_library_index.

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 defines the exact condition for use: it operates on the vault library and mentions 'no TouchDesigner bridge required', contrasting with many siblings. It also states the prerequisite 'Requires TDMCP_VAULT_PATH'. However, it does not explicitly name alternatives or say when not to use this tool, so it lacks explicit exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tutorial_companion_packScaffold a teaching companion pack from a COMPA

Build a teaching/selling companion for a network: snapshot the COMP's topology, capture preview PNGs of its output TOPs, scaffold an N-step lesson plan in Markdown, and emit a documentary network snapshot. Writes into <vault>/<folder>/<slug>/ as tutorial.md + topology.json + network_snapshot.json + previews/*.png. The snapshot captures nodes + connections by TD path for reference only — it is not a RecipeSchema-compatible installable recipe. Composes existing read-only bridge calls — the artist edits the lesson body afterwards. Requires TDMCP_VAULT_PATH and a running TouchDesigner bridge.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoPack name; defaults to the COMP's name.
tagsNoTags written to the pack's frontmatter.
folderNoVault subfolder for the pack.Tutorials
descriptionNoOne-paragraph human description for the lesson.
source_compYesCOMP whose contents are the subject of the tutorial.
lesson_countNoNumber of lesson steps to scaffold (1..20).
preview_widthNo
preview_heightNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral detail beyond annotations: it discloses exact file writes, the read-only nature of bridge calls (no mutation of TD), and the requirement of environment variables and bridge connection. This goes well beyond the readOnlyHint=false and openWorldHint=true annotations, providing no contradictions.

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 four sentences, densely packed with useful information: purpose, outputs, file layout, constraints, and non-recipe status. There is no fluff or repetition; every sentence contributes value, and the most critical details are front-loaded.

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 tool with eight parameters and multiple output artifacts, the description covers inputs, outputs, exact file paths, environmental requirements, and the read-only nature of its underlying calls. No output schema exists, but the description's explicit list of files and the 'for reference only' caveat fully compensate, making the tool's behavior predictable.

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 75% (6/8 parameters), so the schema already documents most parameters. The description adds meaning for lesson_count ('N-step'), folder ('vault subfolder'), and name ('slug'), but does not clarify preview_width or preview_height, which are undocumented in the schema. This is acceptable but not exceptional.

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 clearly states the tool's verb ('Build') and resource ('teaching/selling companion for a network'), and enumerates concrete outputs (tutorial.md, topology.json, network_snapshot.json, previews/*.png). It also distinguishes itself from siblings by explicitly stating it is not a RecipeSchema-compatible installable recipe, making its purpose unmistakable.

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 provides clear context on when to use: to scaffold a tutorial pack via read-only bridge calls, and it notes prerequisites (TDMCP_VAULT_PATH, running bridge). It also gives an when-not by clarifying the snapshot is for reference only and not an installable recipe, though it does not explicitly name alternative sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_td_node_parametersUpdate node parametersA

Modify an existing node by setting one or more of its parameters to constant values. The update is strict (not best-effort): an unknown parameter name fails the whole call atomically without changing anything, and a bad value (wrong type or out of range) returns an error naming which parameters applied and which failed. On success returns the updated {node}. To inspect valid parameter names/current values first use get_td_node_parameters; to make a parameter move over time use animate_parameter instead of a static value.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path of the node whose parameters to update.
parametersYesParameter overrides as key→value pairs, e.g. { period: 4, amplitude: 0.5 }.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the annotations by disclosing strict atomic behavior, error semantics (unknown names fail entirely, bad values report partial success), and the returned value. This adds critical behavioral context for an agent to predict outcomes.

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?

Three sentences that front-load the core purpose, then detail behavioral nuances, then offer usage alternatives. No wasted words; every sentence adds value.

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?

The description fully equips an agent to use the tool correctly: it states purpose, prerequisites for parameter discovery, preconditions for animation, strictness semantics, and return value. No output schema is present, but the description fills that gap sufficiently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though schema coverage is 100%, the description enhances parameter understanding by clarifying that parameters are set to 'constant values', that unknown parameter names cause atomic failure, and that invalid values trigger a detailed error. This significantly augments the raw schema.

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 states a specific action: 'Modify an existing node by setting one or more of its parameters to constant values.' It clearly distinguishes from sibling tools like get_td_node_parameters and animate_parameter, and the title aligns with the described behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance on when to use this tool vs. alternatives: 'To inspect valid parameter names/current values first use get_td_node_parameters; to make a parameter move over time use animate_parameter instead of a static value.' This directly addresses usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_library_assetValidate library assetA
Read-only

Check that a local library asset exists and is referenced by an optional manifest. The default static mode preserves the cheap filesystem check. Opt-in deep_roundtrip validates an absolute .tox in an authenticated disposable quarantine bridge on a non-9980 port, using a structured loadTox-only job with bounded polling and verified scratch cleanup; offline evidence is UNVERIFIED, never PASS.

ParametersJSON Schema
NameRequiredDescriptionDefault
deepNo
pathYes
manifest_pathNo
validation_modeNostatic

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and non-destructive behavior, but the description adds rich detail: deep_roundtrip runs in an 'authenticated disposable quarantine bridge on a non-9980 port', uses a 'structured loadTox-only job with bounded polling and verified scratch cleanup', and clarifies 'offline evidence is UNVERIFIED, never PASS.' This significantly exceeds the annotation baseline.

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 exactly two sentences with no filler. The first sentence states the purpose, and the second packs the deep-mode behavior and result interpretation ('offline evidence is UNVERIFIED, never PASS') into a single dense sentence. Every word earns its place.

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 the tool's complexity (nested deep object, no output schema), the description gives a solid behavioral overview but omits return-value specifics beyond the UNVERIFIED note. It also does not explain the deep sub-parameters or failure modes. Still, the core purpose and mode distinction are well covered, making it reasonably complete.

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%, so the description must compensate. It explains path (local library asset), manifest_path (optional manifest), and validation_mode (static/deep_roundtrip), and hints that deep_roundtrip requires an 'absolute .tox' and quarantine port. However, the many sub-parameters of the deep object (max_nodes, timeout_ms, expected_contract, etc.) are not described, leaving a coverage gap.

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 states a specific action: 'Check that a local library asset exists and is referenced by an optional manifest.' This clearly distinguishes the tool from siblings that validate operator chains or checksums, and identifies the resource and scope.

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 provides clear context on mode selection: 'default static mode preserves the cheap filesystem check' vs 'Opt-in deep_roundtrip' for more thorough validation. However, it does not explicitly mention alternatives or when-not-to-use, so it falls short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_operator_chainValidate operator chainA
Read-only

Read-only: validate an ordered TouchDesigner operator chain against embedded operator docs, documented connections, family/category filters, and optional TouchDesigner version compatibility. It does not create or modify TD nodes.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesOrdered TouchDesigner operator names, display names, or slugs to validate.
familyNoOptional expected operator family/category, e.g. TOP, CHOP, SOP, DAT, or POP.
categoryNoAlias for family; optional expected operator category.
target_versionNoOptional target TouchDesigner stable version, e.g. 099, 2023, or 2024.
require_documented_connectionsNoWhen true, adjacent pairs must be documented by embedded connection guides.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
issuesYes
severityYes
warningsYes
suggestionsYes
nextToolHintsYes
normalizedChainYes
connectionChecksYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description reinforces this with 'Read-only' and 'does not create or modify TD nodes' and adds the validation criteria, but does not disclose other behavioral aspects (e.g., error handling, performance). Consistent with 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?

A single, well-structured sentence front-loaded with 'Read-only' immediately conveys safety. Every phrase adds value without unnecessary repetition.

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?

The description covers the tool's purpose, validation scope, and safe behavior. Since an output schema exists, return values don't need description. Minor gaps like the meaning of 'documented connections' are acceptable given the schema's parameter descriptions.

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?

Input schema covers all 5 parameters with 100% description coverage. The description mentions 'family/category filters' and 'version compatibility', which maps to the family/category/target_version parameters, but adds little beyond what the schema already describes.

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 uses a specific verb ('validate') and resource ('ordered TouchDesigner operator chain'), and clarifies the validation scope (embedded docs, connections, filters, version compatibility). This distinguishes it from sibling tools like suggest_operator_chain or create_node_chain.

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 clearly states the context for use: validating an ordered chain against specific criteria. It does not explicitly list exclusions or alternative tools, but the 'validate' framing provides clear context without confusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

variant_packGenerate a stochastic variant pack from a seed lookA

Generate N perturbed variants around an anchor parameter look and write the whole pack to the Obsidian vault as a morph_pack-compatible JSON. Probes the target COMP's customPars for slider ranges to clamp + integer-round per param, then perturbs each variant uniformly within ±delta_range × (normMax − normMin). The resulting file is consumed directly by morph_pack (action=unpack). Requires TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPack name. File defaults to MorphPacks/<name>.morphpack.json.
seedNoRNG seed for repeatable packs.
countNoNumber of perturbed variants (1..64).
parentNoParent COMP recorded into provenance.container_path./project1
comp_pathNoCOMP whose customPars give slider ranges for clamping. Defaults to target_path else parent.
overwriteNoAllow replacing an existing pack file.
seed_lookYesAnchor look: { paramName: number }. Names must be numeric custom pars on comp_path.
vault_pathNoOverride default MorphPacks/<name>.morphpack.json. Resolved via Vault.resolve.
delta_rangeNoPerturbation magnitude as fraction of each param's slider span.
target_pathNoRecorded into provenance.target_path so morph_pack can unpack standalone.
include_seedNoIf true, slot v00 is the seed look itself.
interpolationNoRecorded into provenance.linear
variant_prefixNoSlot id prefix.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnly=false and destructive=false; description adds that it writes to the vault, requires TDMCP_VAULT_PATH, and details the clamping/rounding/perturbation algorithm. This goes beyond the annotation flags by disclosing input probing and file output behavior, though it doesn't discuss failure modes or overwrite semantics.

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?

Three sentences, each serving a purpose: purpose, algorithm, and integration with morph_pack. No redundant phrasing; front-loaded with the core action.

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 complex tool with 13 parameters and no output schema, the description covers the key aspects: what it generates, where it writes, the environment requirement, and downstream consumer. Minor omission is return value details, but the file-based output is adequately implied.

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 100%, so descriptions provide baseline. The description adds value by explaining how delta_range scales with slider span and how comp_path is used to read customPars, which clarifies parameter semantics beyond the schema. It doesn't enumerate each parameter but contextualizes the algorithm.

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?

Description clearly states the tool generates N perturbed variants around an anchor look and writes a morph_pack-compatible JSON to the Obsidian vault. It identifies the specific resources (anchor parameter look, COMP customPars, vault) and distinguishes itself from morph_pack by being the generation step.

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?

Description explains the workflow (probes customPars, perturbs, writes for morph_pack unpack), implying when to use it. However, it does not explicitly exclude alternatives like create_preset_morph or state when not to use it, so it gets a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vault_repo_syncVault git status and conflict-aware syncA

Read-mostly git wrapper for the configured Obsidian vault directory. Lets an artist see what's changed (status), fetch/fast-forward-only pull, push, or read recent history (log). Never auto-resolves conflicts. Never uses --force. Never invokes a shell. Conflicts are surfaced as structured data for manual resolution. Requires TDMCP_VAULT_PATH or the vault_path argument.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax commits returned by action:'log'.
actionNostatus: staged/unstaged/untracked + ahead/behind counts. pull: fetch + ff-only merge; reports conflicts but never auto-resolves. push: push current branch to its upstream; reports rejections. log: last N commits on the current branch.status
branchNoBranch for pull/push. Defaults to the currently checked-out branch.
remoteNoRemote name for pull/push.origin
timeout_msNoHard timeout for the git child process.
vault_pathNoAbsolute path to the vault git repo. Defaults to the configured TDMCP_VAULT_PATH.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description adds non-obvious behaviors: 'Never auto-resolves conflicts', 'Never uses --force', 'Never invokes a shell', and 'Conflicts are surfaced as structured data'. It also discloses the environment requirement via TDMCP_VAULT_PATH.

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 four sentences, front-loaded with the core purpose ('Read-mostly git wrapper'), and every phrase earns its place. No redundancy or filler.

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?

With no output schema, the description conveys essential outcomes: status shows changes, pull reports conflicts without auto-resolution, push reports rejections. It does not detail return structures, but the comprehensive schema action descriptions and the description's high-level guarantees suffice for a tool of this complexity.

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?

The schema already covers all parameters with descriptions (100% coverage), so the baseline is 3. The description adds meaningful context by emphasizing the vault_path argument and explaining that pull is fetch/fast-forward-only, which complements the schema's action details. This surpasses the baseline.

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 clearly states it is a 'Read-mostly git wrapper for the configured Obsidian vault directory' and enumerates specific actions: status, pull, push, log. This distinguishes it from sibling vault tools (e.g., merge_vaults, sync_presets_vault) which are not git wrappers.

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 defines when to use the tool (for git operations on the vault) and provides explicit constraints: never auto-resolves conflicts, never uses --force, never invokes a shell. It does not explicitly name alternatives or exclusions, but the unique scope is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

version_library_assetVersion-bump a vault library assetA

Apply a SemVer patch/minor/major bump to a vault recipe or component note, recording the change in a sidecar <asset>.versions.json (asset_path + current + history list with version/bump/note/timestamp) and writing the new version into the note's frontmatter version field. Pass read_only:true to inspect the sidecar without bumping. Pure vault I/O — no TouchDesigner bridge required. Requires TDMCP_VAULT_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
bumpNoSemVer bump kind. patch=0.0.X, minor=0.X.0 (resets patch), major=X.0.0 (resets minor+patch).patch
noteNoShort human note describing what changed in this version.
licenseNoSPDX-id (e.g. 'MIT', 'CC-BY-4.0', 'LicenseRef-Custom'). Written to note frontmatter AND mirrored into the sidecar. Omit to leave the existing value untouched.
read_onlyNoWhen true, do not bump — just read and return the current version + history (`bump`/`note` ignored).
asset_pathYesVault-relative path to the asset note (e.g. 'Recipes/feedback_tunnel.md' or 'Components/foo.md').
license_tierNoLicense bucket: public-domain | permissive | copyleft | proprietary | unknown. Mirrors into frontmatter + sidecar.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the exact side effects: writing to a sidecar `<asset>.versions.json`, updating frontmatter `version` field, and the read_only mode. It also mentions the environment requirement (TDMCP_VAULT_PATH). Annotations already indicate mutability, but the description adds specific file-level behavior that annotations do not provide.

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 long, front-loaded with the core action, and every sentence earns its place. It packs essential information (operation, file effects, read_only mode, environment requirement) without redundancy or fluff.

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 tool with six parameters and no output schema, the description covers purpose, side effects, read_only mode, and environment prerequisites. It does not describe error cases or return format, but the provided information is sufficient for an agent to invoke the tool correctly in most scenarios.

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?

The input schema already provides detailed descriptions for all six parameters (100% coverage), so the baseline is 3. The description does add context about the sidecar structure and read_only behavior, but it does not significantly expand on individual parameter semantics beyond what the schema already states.

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+resource: 'Apply a SemVer patch/minor/major bump to a vault recipe or component note.' It clearly distinguishes its scope from siblings by specifying the vault asset context and the sidecar/frontmatter side effects, leaving no ambiguity about what the tool does.

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 gives a concrete usage mode: 'Pass `read_only:true` to inspect the sidecar without bumping,' and states an important selection criterion: 'Pure vault I/O — no TouchDesigner bridge required.' It does not explicitly name alternative tools, but the context is clear enough for an agent to decide when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

watch_nodeWatch nodeA
Read-only

Read-only: sample one TouchDesigner operator over a short interval and return runtime state, readable parameter values, and CHOP channel values when available. Missing TD attributes/channels are reported as warnings instead of failing the watch. Returns {path, requested_samples, collected_samples, interval_ms, window_ms, warnings[], snapshots[]} where each snapshot has {sample_index, elapsed_ms, path, type, family, state, parameters, channels, warnings}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path of the operator to sample.
samplesNoHow many snapshots to collect.
interval_msNoDelay between snapshots in milliseconds.
channel_keysNoOptional channel-name allowlist for CHOP-like operators. Omit to sample all channels.
parameter_keysNoOptional parameter-name allowlist. Omit to sample all readable parameters.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
warningsYes
snapshotsYes
window_msYes
interval_msYes
collected_samplesYes
requested_samplesYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context beyond annotations: it explicitly states that missing TD attributes/channels are reported as warnings rather than failing, and that CHOP channels are only returned 'when available'. This goes beyond the readOnlyHint/destructiveHint annotations and helps the agent set expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, with the first sentence stating the core action. The third sentence details the return structure, which is slightly redundant given the output schema, but it is well-organized and every sentence contributes meaning.

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 read-only sampling tool with an output schema, the description is fairly complete. It covers the purpose, the warning behavior, and the return format, and the annotations handle safety. It does not mention any prerequisites or limitations beyond the warning behavior, but none are necessary for this simple operation.

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?

The input schema has 100% description coverage for all 5 parameters, so the description does not need to add parameter details. It mentions parameter values and channel values in the output but does not describe individual parameters, matching the baseline 3 for high schema coverage.

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 clearly states the tool samples one TouchDesigner operator over a short interval and returns runtime state, readable parameters, and CHOP channels. It uses a specific verb and resource, but does not explicitly differentiate from sibling tools like get_node_state_runtime, so it slightly misses the top score.

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?

The description implies usage for sampling operator state over time, and the read-only hint suggests safe monitoring. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or prerequisites, so guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

watch_parameter_changesWatch operator parameter changesA

Opt-in: subscribe to param.changed events for an operator's parameters. When a watched parameter's value changes in TouchDesigner (by a human or a script), the bridge broadcasts a {path, par, prev, value, frame} event on the TD event stream, forwarded to the MCP client as a logging notification. Use action='watch' to register (optionally scoped to named parameters), 'unwatch' to remove, and 'list' to see active watches. Events only arrive when the server's TD event stream is enabled (TDMCP_EVENTS); param.changed is treated as a high-frequency event (coalesced bridge-side so a slider drag can't flood). Survives TDMCP_BRIDGE_ALLOW_EXEC=0.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOperator path to watch for parameter changes, e.g. /project1/level1. Required for action='watch'/'unwatch'; omit for action='list'.
actionNo'watch' registers a subscription, 'unwatch' removes it (or just the named parameters), 'list' returns all active watches.watch
parametersNoOptional list of parameter names to watch (e.g. ['opacity','level']). Omit to watch every parameter on the operator.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathNoThe canonical operator path (for watch/unwatch).
countNoNumber of active watches (for the 'list' action).
actionYesThe action that was performed: watch, unwatch, or list.
watchesNoEvery active watch (for the 'list' action).
watchingNoWhether an active watch remains on this op after the action.
parametersNoParameters now watched on this op, or null for a watch-all subscription.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses several behavioral traits beyond the annotations: the opt-in nature, the event payload shape, the bridge-side coalescing to prevent flooding, and the fact that it works even when TDMCP_BRIDGE_ALLOW_EXEC=0. It also notes that events only arrive when the server's TD event stream is enabled, adding environmental context.

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 composed of four sentences, each contributing critical information: the core subscription behavior, the action syntax, the event stream prerequisite and coalescing behavior, and the bridge allow_exec note. It is dense but not redundant.

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?

Given the annotations, output schema, and the detailed description covering opt-in semantics, actions, event conditions, and subscription scope, the description is contextually complete for this tool's complexity.

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?

The schema already documents all three parameters with descriptions, covering 100% of the schema. The description adds value by explaining the interplay between `action` and `parameters` (e.g., 'parameters' is optional and scoped for watch/unwatch, omitted for list), and provides an example path in the schema.

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 clearly states the tool subscribes to `param.changed` events for an operator's parameters, with a specific event payload. It distinguishes from sibling tools like `watch_node` by focusing on parameter-level changes rather than node-level watching.

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 provides explicit context for when to use it: opt-in subscription, with three actions ('watch', 'unwatch', 'list') and prerequisites like the TD event stream being enabled. However, it does not explicitly name alternative tools or when not to use it, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_agent_guideWrite agent guideA

Emit a project-local CLAUDE.md / AGENTS.md seeded with tdmcp operator conventions and TouchDesigner render-coordinate rules, so a future agent working on this project starts with the right mental model. A small dynamic header (project name, node count, top families) is prepended to a curated static body. Pass output_dir to also write the file to disk on the machine running TouchDesigner. The guide is always returned in the structured result.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoTouchDesigner project/COMP path to summarise in the guide header, e.g. /project1. A one-line dynamic summary (node count + top families) is prepended to the static body./project1
filenameNoName of the guide file to emit, e.g. CLAUDE.md or AGENTS.md. Defaults to CLAUDE.md.CLAUDE.md
output_dirNoAbsolute path on the machine running TouchDesigner where the guide file should be written. If omitted the guide is returned in the result but not written to disk.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathNoAbsolute path the file was written to (if written).
guideYesThe full guide markdown text.
writtenYesWhether the file was written to disk.
filenameYesName of the guide file.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate write/open-world behavior, and the description adds valuable specifics: writing to disk only when output_dir is provided, the dynamic header prepended to a static body, and the guarantee that the guide is returned in the structured result. No contradictions with 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?

Three sentences, each earning its place: purpose, content structure, and side-effect/return behavior. Front-loaded, concise, and no wasted words.

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?

Description covers purpose, content, optional disk writing, and return behavior. It does not mention overwrite semantics or prerequisites, but annotations and schema cover safety and inputs. Sufficient for a well-scoped write tool.

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 coverage is 100% with descriptive parameter explanations. The description reinforces output_dir behavior but does not add meaning beyond the schema, so baseline 3 is appropriate.

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 clearly states the tool emits a project-local CLAUDE.md/AGENTS.md with specific conventions and coordinate rules. The verb 'emit' and resource are specific, but it does not explicitly distinguish from sibling documentation tools like generate_readme or document_network.

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 intended use case is clear: to seed a future agent with a project mental model. It explains the optional disk write via output_dir and that the guide is always returned. No explicit exclusions or alternatives, but the context is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.4/5.0
Disambiguation2/5

With 507 tools, many have overlapping purposes despite detailed descriptions. Examples include numerous particle-system creators (create_particle_system, create_gpu_particle_field, create_particle_flock, image_to_particles, create_pop_particle_system), several feedback-loop builders, and many connect_* integration scaffolds that differ only by target platform. The long descriptions help, but the sheer volume makes it difficult for an agent to reliably pick the intended tool, and many near-duplicate tool names (create_feedback_network vs create_feedback_tunnel) increase misselection risk.

Naming Consistency4/5

Most tools follow a clear verb_noun snake_case pattern (create_*, get_*, set_*, connect_*, manage_*, etc.), which is consistent and predictable. There are some outliers like 'learn_control', 'one_source_five_ways', and 'macro_recorder' that don't follow the dominant verb_prefix pattern, but they are still snake_case and readable, so the overall convention is only slightly marred.

Tool Count1/5

507 tools is an extreme mismatch for any server, even one covering a broad domain like TouchDesigner. This massively exceeds the 25+ threshold for 'too many' and likely overwhelms agents, making the toolset impractical to navigate. The breadth could be consolidated into fewer, more composable tools (e.g., a generic 'create_node_chain' vs dozens of specialized builders).

Completeness4/5

The tool surface is exceptionally comprehensive, covering node creation/editing, parameter inspection, network analysis, rendering, audio reactivity, integrations, packaging, vault workflows, and even meta-tools for scaffolding new tools. Minor gaps exist (e.g., no explicit network-wide delete or project lifecycle management beyond specific cases), but the domain coverage is remarkably complete and most workflows have no dead ends.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    tdmcp is an open-source (MIT) Model Context Protocol server for TouchDesigner. You describe a visual in plain language and your AI assistant builds the real node network inside TouchDesigner, checks it for errors, and shows a preview — it ships an embedded operator knowledge base so the model uses real operators instead of guessing. TypeScript codebase, runs locally.
    2
    100
    253
    35
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    An MCP server for TouchDesigner that lets AI agents inspect, build, wire, optimize, and stabilize live TD networks with 106 tools, plus a technique memory system for reusable patterns.
    100
    8
    MIT

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