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.

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

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