← TouchDesigner MCP

TouchDesigner MCP 2.0.0

npm · touchdesigner-mcp-server · current release

14
Tools
0
Resources
0
Templates
3
Prompts

Observation

Observed 2026-08-15T23:19:01.105Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "prompts": {
    "listChanged": true
  },
  "tools": {
    "listChanged": true
  }
}

Tools 14

ToolCategoryAnnotationsRisk
create_td_nodeCreate a new node in TouchDesigner
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "parentPath": {
      "type": "string",
      "description": "Path to the parent node (e.g., /project1)"
    },
    "nodeType": {
      "type": "string",
      "description": "Type of the node to create (e.g., textTop)"
    },
    "nodeName": {
      "description": "Name of the new node (optional)",
      "type": "string"
    },
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    }
  },
  "required": [
    "parentPath",
    "nodeType"
  ],
  "additionalProperties": false
}
— · —
delete_td_nodeDelete an existing node in TouchDesigner
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "nodePath": {
      "type": "string",
      "description": "Path to the node to delete. e.g., \"/project1/geo1\""
    },
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    }
  },
  "required": [
    "nodePath"
  ],
  "additionalProperties": false
}
— · —
describe_td_toolsGenerate a filesystem-oriented manifest of available TouchDesigner tools
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    },
    "filter": {
      "type": "string",
      "minLength": 1,
      "description": "Optional keyword to filter by tool name, module path, or parameter description"
    }
  },
  "additionalProperties": false
}
— · —
exec_node_methodExecute a method on a specific node in TouchDesigner
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "nodePath": {
      "type": "string",
      "description": "Path to the node (e.g., /project1/null1)"
    },
    "method": {
      "type": "string",
      "description": "Name of the method to call"
    },
    "args": {
      "description": "List of arguments for the method call",
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      }
    },
    "kwargs": {
      "description": "Keyword arguments for the method call",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    }
  },
  "required": [
    "nodePath",
    "method"
  ],
  "additionalProperties": false
}
— · —
execute_python_scriptExecute a Python script in TouchDesigner (detailLevel=minimal|summary|detailed, responseFormat=json|yaml|markdown)
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "script": {
      "type": "string",
      "description": "e.g., \"op('/project1/text_over_image').outputConnectors[0].connect(op('/project1/out1'))\""
    },
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    }
  },
  "required": [
    "script"
  ],
  "additionalProperties": false
}
— · —
get_td_class_detailsGet information about a TouchDesigner class/module (detailLevel+limit supported)
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "className": {
      "type": "string",
      "description": "Name of the class or module. e.g., \"textTOP\""
    },
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "Maximum number of items to include in formatted output"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    }
  },
  "required": [
    "className"
  ],
  "additionalProperties": false
}
— · —
get_td_classesList TouchDesigner Python classes/modules (detailLevel+limit supported)
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "Maximum number of items to include in formatted output"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    }
  },
  "additionalProperties": false
}
— · —
get_td_infoGet server information from TouchDesigner
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    }
  },
  "additionalProperties": false
}
— · —
get_td_module_helpRetrieve Python help() text for a TouchDesigner module or class
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "moduleName": {
      "type": "string",
      "description": "Module or class name (e.g., \"noiseCHOP\", \"td.noiseCHOP\", \"tdu\")."
    },
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    }
  },
  "required": [
    "moduleName"
  ],
  "additionalProperties": false
}
— · —
get_td_node_errorsCheck node and descendant errors reported by TouchDesigner
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "nodePath": {
      "type": "string",
      "description": "Absolute path to the node to inspect. e.g., \"/project1/text1\""
    },
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "Maximum number of items to include in formatted output"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    }
  },
  "required": [
    "nodePath"
  ],
  "additionalProperties": false
}
— · —
get_td_node_parametersGet node parameters with concise/detailed formatting (detailLevel+limit supported)
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "nodePath": {
      "type": "string",
      "description": "Node path. e.g., \"/project1/textTOP\""
    },
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "Maximum number of items to include in formatted output"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    }
  },
  "required": [
    "nodePath"
  ],
  "additionalProperties": false
}
— · —
get_td_nodesList nodes under a path with token-optimized output (detailLevel+limit supported)
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "parentPath": {
      "type": "string",
      "description": "Parent path  e.g., \"/project1\""
    },
    "pattern": {
      "default": "*",
      "description": "Pattern to match against node names e.g., \"null*\"",
      "type": "string"
    },
    "includeProperties": {
      "default": false,
      "description": "Whether to include full node properties in the response (default false for better performance)",
      "type": "boolean"
    },
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "Maximum number of items to include in formatted output"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    }
  },
  "required": [
    "parentPath"
  ],
  "additionalProperties": false
}
— · —
get_top_imageCapture the current output of a TOP node as an image so it can be viewed directly (maxSize optionally downscales the longer side)
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "maxSize": {
      "description": "Maximum length of the image's longer side in pixels. The TOP is downscaled (aspect ratio preserved) only if it exceeds this value; omit to capture at native resolution.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 4096
    },
    "nodePath": {
      "type": "string",
      "minLength": 1,
      "description": "Path to the TOP node to capture, e.g. '/project1/moviefilein1'"
    }
  },
  "required": [
    "nodePath"
  ],
  "additionalProperties": false
}
— · —
update_td_node_parametersUpdate parameters of a specific node in TouchDesigner
Input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "nodePath": {
      "type": "string",
      "description": "Path to the node (e.g., /project1/null1)"
    },
    "properties": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "detailLevel": {
      "type": "string",
      "enum": [
        "minimal",
        "summary",
        "detailed"
      ],
      "description": "Response detail level for tool output (minimal, summary, or detailed)"
    },
    "responseFormat": {
      "type": "string",
      "enum": [
        "json",
        "yaml",
        "markdown"
      ],
      "description": "Structured output format for formatted responses"
    }
  },
  "required": [
    "nodePath",
    "properties"
  ],
  "additionalProperties": false
}
— · —

Resources 0

Resource templates 0

Prompts 3

Let’s talk about MCP security.

Share your details and our security team will contact you.