Skip to main content
Glama
axysar

touchdesigner-agent-mcp

by axysar

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TD_HOSTNoThe hostname/IP of the machine running TouchDesigner.127.0.0.1
TD_PORTNoThe port of the Web Server DAT.9981
TD_TIMEOUTNoRequest timeout in seconds.30
TD_AUTH_TOKENNoSecurity token matching the Authtoken parameter.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_td_infoA

Get TouchDesigner build, version, OS, and the touchdesigner-agent-mcp API version.

Use this first to confirm connectivity to TouchDesigner. Returns {server, version, osName, osVersion, mcpApiVersion}.

describe_td_toolsA

List the tools this server exposes, with names, descriptions, and schemas.

A manifest for code-execution agents that want to discover the available TouchDesigner tool surface. Introspected locally; does not contact TouchDesigner. Returns {count, tools: [{name, description, [inputSchema, annotations]}]}.

get_td_nodesA

List child operators under a path, optionally filtered by a name pattern.

Returns {nodes: [{id, name, path, opType, properties}]}. Set include_properties=true only when you need values — the light default is faster for large networks.

get_td_node_parametersA

Get an operator's parameters and current values.

Call this before updating parameters — TD names rarely match labels. Returns {id, name, path, opType, properties}.

get_td_node_errorsA

Collect error messages for an operator and its descendants.

Returns {nodePath, nodeName, opType, errorCount, hasErrors, errors}. TD updates its error cache on frame boundaries — prefer checking errors in a request separate from the mutation that may have caused them.

create_td_nodeA

Create a new operator under a parent.

Returns the created node summary. TD auto-increments the name on collision, so check the returned name/path.

update_td_node_parametersA

Set parameter values on an operator.

Returns {path, updated, failed: [{name, reason}], message}. Unknown names go to failed rather than raising — everything in failed means the names were wrong.

delete_td_nodeA

Delete an operator by path.

Destructive and not undoable through this tool. Returns {deleted: true, node: {...}} on success.

exec_node_methodA

Call a method on an operator (e.g. cook, pulse, reset).

Returns {result: <serialized return value>}. Use for operator actions that are not parameter writes.

execute_python_scriptA

Execute a Python script in TouchDesigner's interpreter and capture output.

Runs with the TouchDesigner API in scope plus the bundled tdapi helpers. Returns {result, stdout, stderr}.

This runs arbitrary, un-sandboxed code in the user's TouchDesigner process — prefer the dedicated node tools for routine edits; use this for logic the other tools do not cover.

get_td_classesA

List the Python classes and modules available in the td module.

Returns {classes: [{name, description}]}. Pair with get_td_class_details to drill in.

get_td_class_detailsA

Get methods, properties, and docstrings for a TouchDesigner class.

Returns {name, type, description, methods, properties}.

get_td_module_helpA

Capture Python help() output for a TouchDesigner module or class.

Returns {moduleName, helpText} with terminal control codes stripped.

td_paneA

Return the current network-editor pane: path, pan, zoom, viewport size.

Use this to learn where the user is looking before editing there. Returns {path, tx, ty, zoom, viewportSize} (or {pane: null}).

td_selectionA

Return operators currently selected in the active pane.

Returns {count, ops: [{path, name, type, opType, family, x, y}]}.

td_cookA

Force-cook an operator (and optionally its descendants).

TouchDesigner does not always re-cook operators inside a nested baseCOMP referenced indirectly, so a stale buffer can make a correct edit look broken. Call this on the parent COMP whenever results look stale before debugging anything else. Returns {cooked, totalCookTimeMs, errors}.

td_viewportA

Capture a TOP/COMP viewer or the network editor pane as an image.

Use this to actually see the result of edits instead of guessing. target is a TOP/COMP path, or 'pane' for the current network editor. Small inline captures are returned as a viewable image; large captures (or return_as='path') return a temp-file path string.

td_connectA

Wire one operator's outlet to another's inlet, validating compatibility.

TouchDesigner only connects same-family operators via connectors; a cross-family attempt (e.g. TOP -> SOP) returns a descriptive error rather than failing silently.

td_layoutA

Layout intelligence: find an empty area, test overlap, or chain operators.

  • find_empty_area (needs base): returns {x, y} for a non-overlapping widthxheight block.

  • check_overlap (needs path): returns {overlaps: bool}.

  • chain (needs ops): connects operators in order, laid out left-to-right with spacing.

td_glslA

Read or write a GLSL shader stage, resolving the correct docked DAT.

A GLSL TOP keeps its source in _pixel_shader / _vertex_shader DATs docked to the parent — never guess that DAT's name or set .text on it directly. Omit code to read; pass code to write (set return_compiled=true to re-cook and surface compile errors). Returns {stage, docked_dat_path, code, errors}.

td_scaffoldA

Create a complete, pre-wired network from a template.

Prefer this over hand-wiring common setups: each template handles creation, connector compatibility, naming, layout, and the first force-cook. Returns {template, createdOps, wiring, entryPoint, description}.

td_save_toxB

Save a Component (COMP) operator to an external .tox file.

td_load_toxA

Load an external .tox file into a target Component (COMP).

td_save_projectA

Save the TouchDesigner project (.toe). Use this to checkpoint your work.

td_list_media_assetsA

Scan a directory for usable TouchDesigner media files (video, audio, images, geometry).

Returns a list of relative file paths that can be loaded into moviefileinTOP, fileinSOP, audiofileinCHOP, etc.

Prompts

Interactive templates invoked by user choice

NameDescription
search_nodeFind a TouchDesigner node by name (optionally family/type).
check_node_errorsInspect a node and its children for errors and suggest fixes.
node_connectionHow to connect two TouchDesigner operators.
fix_network_errorsEmergency prompt to diagnose and resolve TouchDesigner compilation and wiring errors.

Resources

Contextual data attached and managed by the client

NameDescription
get_project_info_resourceGet current TouchDesigner project metadata (name, folder, version).

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/axysar/touchdesigner-agent-mcp'

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