touchdesigner-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TOUCHDESIGNER_URL | No | Bridge base URL | http://127.0.0.1:9980 |
| TOUCHDESIGNER_TOKEN | No | Bearer token printed by installer | |
| TOUCHDESIGNER_TIMEOUT_MS | No | Per-call timeout | 15000 |
| TOUCHDESIGNER_ALLOW_SCRIPT | No | Advertise arbitrary Python tool | false |
| TOUCHDESIGNER_MAX_CAPTURE_BYTES | No | Maximum decoded TOP capture size | 8000000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| td_statusA | Check bridge health, TouchDesigner build, project, timeline, and capability flags. |
| td_list_operatorsA | List children under a COMP, optionally recursively and filtered by family or name pattern. |
| td_inspect_operatorA | Read an operator’s type, flags, inputs, outputs, parameters, dimensions/channels, and errors. |
| td_create_operatorA | Create one operator in a COMP using a TouchDesigner type name such as noiseTOP, audioSpectrumCHOP, or baseCOMP. |
| td_set_parametersA | Set constants, Python expressions ({expr}), or bind expressions ({bindExpr}) on an operator in one call. |
| td_pulse_parameterA | Pulse a momentary parameter such as Reset, Clear, or Open. |
| td_connectA | Wire an output connector to an input connector. Both operators must belong to compatible families. |
| td_disconnectC | Disconnect one input or output connector from an operator. |
| td_set_dat_textA | Replace a Text DAT, GLSL DAT, Script DAT, or callback DAT body. |
| td_sample_chopA | Read current CHOP channel values for audio levels, envelopes, beats, control signals, and diagnostics. |
| td_capture_topA | Capture a TOP as PNG or JPEG and return it as MCP image content for visual verification. |
| td_get_errorsA | Collect errors, warnings, and script errors under a network after edits. |
| td_build_audio_reactive_rigA | Create a reusable CHOP analysis network with device/file input, spectrum, smoothed low/mid/high bands, level envelope, beat gate, and a stable output Null. |
| td_batchA | Apply up to 100 ordered graph edits. With rollback enabled, the bridge undoes completed edits if one fails. |
| td_delete_operatorA | Delete exactly one operator. Root and project components are protected by the bridge. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Each tool maps to a distinct action or resource: status, parameter pulsing, connectivity, DAT text, CHOP sampling, TOP capture, error retrieval, operator querying, creation, parameter setting, rig building, batch editing, and deletion. No two tools appear to do the same thing, and even similar operations like list_operators vs inspect_operator are clearly differentiated by scope.
Most tools follow a consistent td_verb_noun pattern (e.g., td_create_operator, td_set_parameters, td_list_operators). A few deviations like td_status (noun) and td_batch (bare noun) break the pattern, and td_connect/td_disconnect omit an explicit object, but the overall scheme is predictable and understandable.
With 15 tools, this server sits at the upper boundary of the ideal range, but every tool earns its place by covering a distinct aspect of TouchDesigner workflows: status, graph editing, parameter control, data reading, visualization capture, and batch operations. The count is well-scoped for the complexity of the platform.
The tool set covers the core lifecycle (create, delete, connect, disconnect), parameter management (set, inspect), data acquisition (CHOP, TOP), error handling, and even a high-level rig builder. Minor gaps exist around operator rename, clone, or move operations, but these can be worked around with existing tools or are outside the primary scope.