touchdesigner-agent-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TD_HOST | No | The hostname/IP of the machine running TouchDesigner. | 127.0.0.1 |
| TD_PORT | No | The port of the Web Server DAT. | 9981 |
| TD_TIMEOUT | No | Request timeout in seconds. | 30 |
| TD_AUTH_TOKEN | No | Security token matching the Authtoken parameter. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_td_infoA | Get TouchDesigner build, version, OS, and the touchdesigner-agent-mcp API version. Use this first to confirm connectivity to TouchDesigner. Returns
|
| 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 |
| get_td_nodesA | List child operators under a path, optionally filtered by a name pattern. Returns |
| get_td_node_parametersA | Get an operator's parameters and current values. Call this before updating parameters — TD names rarely match labels.
Returns |
| get_td_node_errorsA | Collect error messages for an operator and its descendants. Returns |
| 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 |
| update_td_node_parametersA | Set parameter values on an operator. Returns |
| delete_td_nodeA | Delete an operator by path. Destructive and not undoable through this tool. Returns
|
| exec_node_methodA | Call a method on an operator (e.g. Returns |
| execute_python_scriptA | Execute a Python script in TouchDesigner's interpreter and capture output. Runs with the TouchDesigner API in scope plus the bundled 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 Returns |
| get_td_class_detailsA | Get methods, properties, and docstrings for a TouchDesigner class. Returns |
| get_td_module_helpA | Capture Python Returns |
| 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 |
| td_selectionA | Return operators currently selected in the active pane. Returns |
| td_cookA | Force-cook an operator (and optionally its descendants). TouchDesigner does not always re-cook operators inside a nested
|
| 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.
|
| 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.
|
| td_glslA | Read or write a GLSL shader stage, resolving the correct docked DAT. A GLSL TOP keeps its source in |
| 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 |
| 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
| Name | Description |
|---|---|
| search_node | Find a TouchDesigner node by name (optionally family/type). |
| check_node_errors | Inspect a node and its children for errors and suggest fixes. |
| node_connection | How to connect two TouchDesigner operators. |
| fix_network_errors | Emergency prompt to diagnose and resolve TouchDesigner compilation and wiring errors. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_project_info_resource | Get current TouchDesigner project metadata (name, folder, version). |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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