touchdesigner-mcp
MCP server that lets Claude control TouchDesigner via touchdesigner-cli (https://github.com/michaelslain/touchdesigner-cli)
Open source Open in the app JSON README (API)
About
MCP server that lets Claude control TouchDesigner via touchdesigner-cli (https://github.com/michaelslain/touchdesigner-cli)
Details
- Kind
- Plugins
- Topic
- Developer tools
- Publisher
- michaelslain
- Origin
- marketplace
- Category
- ferramentas
- Last push
- 2026-06-04T20:03:41Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-08-30 01:48:58
- Updated
- 2026-08-30 01:48:58
- Origin id
michaelslain/touchdesigner-mcp/touchdesigner-mcp
README
# touchdesigner-mcp MCP server that lets Claude control [TouchDesigner](https://derivative.ca/) via [touchdesigner-cli](https://github.com/michaelslain/touchdesigner-cli) ## Install ```bash git clone https://github.com/michaelslain/touchdesigner-mcp.git cd touchdesigner-mcp bun install claude mcp add touchdesigner-mcp bun /path/to/touchdesigner-mcp/src/index.ts ``` On first use, the server automatically installs [touchdesigner-cli](https://github.com/michaelslain/touchdesigner-cli) globally via `bun install -g`. ## Requirements - [Bun](https://bun.sh/) - [Claude Code](https://claude.ai/download) installed and authenticated - [TouchDesigner](https://derivative.ca/) installed ## Getting started 1. Ask Claude to create a new project — `td_project_create` handles everything automatically 2. The CLI server is injected into the project and starts on port 9005 3. Use any of the tools below from Claude If TD is already running, any tool will auto-setup on first connection failure. ## Tools | Tool | Description | |------|-------------| | `td_open` | Open TouchDesigner, optionally with a .toe project file | | `td_project_create` | Create a new .toe project with the server pre-configured | | `td_setup` | Install the TD server script and patch the default template | | `td_info` | Get TouchDesigner version, build, and OS info | | `td_node_list` | List child nodes under a path | | `td_node_create` | Create a node with auto-placement and auto-display | | `td_node_delete` | Delete a node | | `td_node_connect` | Connect source output to target input | | `td_node_disconnect` | Disconnect nodes | | `td_node_errors` | Get errors on a node | | `td_param_get` | Get node parameters (all or specific) | | `td_param_set` | Set a node parameter value | | `td_exec` | Execute Python code inside TouchDesigner | | `td_screenshot` | Take a screenshot of a TOP node's output | | `td_logs` | Get all errors and warnings from the project | | `td_doc_search` | Search operator documentation by keyword | | `td_doc_read` | Read full documentation for a specific operator | ## How it works Each MCP tool call shells out to `touchdesigner-cli` (the global `td` command), which communicates with TouchDesigner over TCP (NDJSON protocol on port 9005). The CLI is auto-installed globally on first run. Nodes are automatically positioned to avoid overlap, and output nodes (render TOPs, geometry COMPs, etc.) have their display activated automatically. ## Node families TouchDesigner organizes operators into families: - **TOP** — textures/images (e.g. `noiseTOP`, `textTOP`, `compositeTOP`) - **CHOP** — channels/motion (e.g. `noiseCHOP`, `mathCHOP`, `audioinCHOP`) - **SOP** — 3D geometry (e.g. `sphereSOP`, `gridSOP`, `transformSOP`) - **DAT** — data/text/tables (e.g. `textDAT`, `tableDAT`, `executeDAT`) - **COMP** — containers/UI (e.g. `baseCOMP`, `containerCOMP`, `geometryCOMP`) - **MAT** — materials (e.g. `phongMAT`, `pbrMAT`, `wireframeMAT`) ## Development ```bash git clone https://github.com/michaelslain/touchdesigner-mcp.git cd touchdesigner-mcp bun install ``` Test locally: ```bash claude mcp add touchdesigner-mcp bun ./src/index.ts ``` ## License MIT