Content
Designer MCP
Control a running TouchDesigner using a standard MCP Server. The TD side uses a draggable `.tox` component to provide a local HTTP bridge, and the MCP Server exposes tools via `stdio`.
## Content
- `outputs/TD_MCP_Bridge.tox`: TouchDesigner component, drag into TD to use.
- `src/`: Standard MCP Server source code.
- `touchdesigner/install_td_mcp.py`: TD installation script for development/rebuilding `.tox`.
## Using the TouchDesigner Component
1. Open the target `.toe`.
2. Drag `outputs/TD_MCP_Bridge.tox` into the TouchDesigner network editor.
3. Select the `TD_MCP_Bridge` component.
4. On the `MCP` parameter page, set:
- `Port`: Default `9980`
- `Access Token`: Set yourself, do not make it public
- `Service Switch`: Turn on to start the Web Server DAT
5. The connection address is usually:
```text
http://127.0.0.1:9980/api
```
## Installing Node.js Dependencies
Requires Node.js or higher:
```powershell
npm install
npm run build
```
Client Configuration Example
Replace `<project directory>` with the directory you cloned to on your local machine, and replace `<access token>` with the access token from the TD MCP parameter page.
```json
{
"mcpServers": {
"touchdesigner": {
"command": "node",
"args": [
"<project directory>/dist/index.js"
],
"env": {
"TD_MCP_URL": "http://127.0.0.1:9980/api",
"TD_MCP_TOKEN": "<access token>",
"TD_MCP_TIMEOUT_MS": "10000"
}
}
}
```
## Available Capabilities_ping`
- `td_project_info`
- `td_list_operators`
- `td_operator_info`
- `td_get_parameters`
-_set_parameter`
- `td_pulse_parameter`
- `td_create_operator`
- `td_connect_operators `td_disconnect_input`
- `td_set_node_position`
- `_dat_text`
- `td_set_dat_text`
- `td_destroy- `td_save_project`
- `td_execute_python`
## Security Notes Do not commit `.env` or real access tokens.
- By default, `127.0.0.1` for use, do not port to the public internet.
- `td_execute_python` is disabled by default; if necessary, `Allow Arbitrary Python` on the TD component's MCP parameter page.
- `td_destroy_operator` requires explicit `confirm=true` and the bridge component and project root node are protected.
## Verification
```powershell
npm test
```