touchdesigner-mcp
Warn
Audited by Gen Agent Trust Hub on Sep 1, 2026
Risk Level: MEDIUMREMOTE_CODE_EXECUTIONCOMMAND_EXECUTIONPRIVILEGE_ESCALATIONINDIRECT_PROMPT_INJECTIONDYNAMIC_EXECUTIONEXTERNAL_DOWNLOADS
Full Analysis
- [REMOTE_CODE_EXECUTION]: The skill provides the
td_execute_pythontool, which allows the agent to execute arbitrary Python code within the TouchDesigner environment. This provides full access to the application's Python API and the host filesystem as the process user. - [DYNAMIC_EXECUTION]: The skill makes extensive use of dynamic code generation and execution, including runtime compilation of GLSL shaders and Python callbacks defined as strings within DAT operators.
- [COMMAND_EXECUTION]: The
SKILL.mdfile instructs the agent to run a bash setup script (setup.sh) located in the skill's scripts directory to automate installation and configuration. - [PRIVILEGE_ESCALATION]: Documentation in
references/external-data.mdprovides instructions for usingsudo chmod 666to modify file permissions on serial device ports on macOS. - [EXTERNAL_DOWNLOADS]: The
setup.shscript is documented to download thetwozero.toxbinary component from404zero.comto the local filesystem during the automated setup process. - [INDIRECT_PROMPT_INJECTION]: The skill possesses a broad attack surface for indirect prompt injection. It is designed to ingest data from external network sources including WebSockets, MQTT brokers, TCP/UDP streams, and MIDI/OSC controllers. This data is frequently interpolated directly into TouchDesigner expressions or Python logic without explicit sanitization or boundary markers between data and instructions.
- Ingestion points: Multiple network and device operators such as
webclientDAT,websocketDAT,mqttClientDAT,oscinDAT, andmidiinCHOPinreferences/external-data.mdandreferences/midi-osc.md. - Boundary markers: None identified; data is typically mapped directly to parameters via expressions or script callbacks.
- Capability inventory: Full Python execution via
td_execute_python, filesystem writes viaMovieFileOutandTOP.save(), and network transmission via various DAT operators. - Sanitization: Documentation provides minimal guidance for validating external input, primarily suggesting the use of generic
try/exceptblocks for JSON parsing.
Audit Metadata