TD Universal Toolkit — unified MCP server for TouchDesigner. 29 tools, single bridge, closed visual feedback loop. Merges satoruhiga + bottobot + 8beeeaaat.
29 tools with significant definition gaps. Most tools have basic descriptions (50-150 chars) but lack parameter-level detail. Input schemas present but sparse: many parameters lack descriptions or type constraints. No output schemas documented. Error handling minimal, most tools return generic success/failure without recovery guidance. Tool naming is inconsistent (td_* prefix dominates but lacks verb clarity in some cases like td_state, td_checkpoint). No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Composition is reasonable, tools are single-purpose, but chaining is hampered by undocumented output fields. Security concerns: td_execute accepts arbitrary Python code with minimal validation; td_delete_nodes is destructive but lacks confirmation pattern.
Get detailed documentation for a TouchDesigner operator by name or type
Get connection information for TouchDesigner operators
Get Python API documentation for TouchDesigner classes and methods
Search for TouchDesigner operators by keyword, category, or pattern
Search TouchDesigner Python API documentation
Add annotations or comments to TouchDesigner operators
Get TouchDesigner build information and system details
No output schemas documented. LLMs cannot infer what fields to expect from tool responses, forcing them to guess at downstream chaining and risking context loss.
Destructive tool td_delete_nodes lacks confirmation/dry-run pattern. Agents can irreversibly delete operators without a safety gate.
td_execute accepts arbitrary Python code with no input validation or sandboxing. Agents can be tricked into executing malicious code.
Ambiguous tool names: td_state (get or set?), td_checkpoint (create or restore?). LLMs cannot infer intent from name alone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Build or modify a network of operators in TouchDesigner
Check for errors in a TouchDesigner project or operator
Create or restore a checkpoint in a TouchDesigner project
Create a GLSL TOP (Texture Operator) in TouchDesigner
Get or set custom parameters on TouchDesigner operators
Delete operators from a TouchDesigner network
Get a detailed description of a TouchDesigner operator or network
Execute Python code in a running TouchDesigner project
Get information about experimental TouchDesigner features
Generate GLSL shader code for TouchDesigner
Get expressions from TouchDesigner parameters
Get a preview image of a TouchDesigner operator output
List operators in a TouchDesigner network
Read data from a CHOP (Channel Operator) in TouchDesigner
Read data from a DAT (Data Operator) in TouchDesigner
Initialize a new TouchDesigner session or connect to an existing one
Get or set state information in a TouchDesigner project
Get the combined expert context (Quickstart, Style, and Patterns) for the TD Universal Toolkit. Use this at the start of a session or when planning complex builds.
Update properties of TouchDesigner operators
Get information about TouchDesigner versions and release notes
Get information about Vulkan-specific quirks and compatibility issues in TouchDesigner
Write synchronized data to a DAT (Data Operator) in TouchDesigner
Parameter descriptions missing or generic. E.g., td_build_network 'operations' param lacks format/structure details; td_custom_params lacks clarity on get vs set semantics.