Skip to main content

dcc-mcp-touchdesigner

DCC-MCP · TouchDesigner

Typed, main-thread-safe TouchDesigner control for the DCC Model Context Protocol.

The adapter embeds the DCC-MCP HTTP runtime in TouchDesigner, registers the instance with the local gateway, and executes TouchDesigner API work through the documented td.run() scheduler. Agents can inspect and edit operator networks, set parameters, save projects, and export TOP images without sending TouchDesigner objects to background threads.

Typed request flows through a main-thread operator graph into a verified visual, project, and PNG artifact

Illustrative workflow visualization generated with OpenAI ImageGen from the retained source in docs/images/sources. It is not a TouchDesigner screenshot or host-validation artifact. The header uses an approved operator-network reference motif rather than an official host mark.

Install

TouchDesigner 2025 uses Python 3.11. Install this package into a matching external environment and expose that environment to TouchDesigner. The preferred TouchDesigner 2025 route is the built-in TDPyEnvManager; the Preferences dialog's external Python module path is also supported.

py -3.11 -m venv .venv
.\.venv\Scripts\python -m pip install --upgrade pip
.\.venv\Scripts\python -m pip install dcc-mcp-touchdesigner

See install.md for the complete Windows and macOS setup, dependency isolation guidance, and startup configuration. TouchDesigner documents both external Python packages and the TDPyEnvManager.

Start in TouchDesigner

Run this from the Textport or an Execute DAT onStart() callback:

import dcc_mcp_touchdesigner

server = dcc_mcp_touchdesigner.start_server()
print(server.mcp_url)

start_server() is idempotent inside one TouchDesigner process. It loads the bundled skill by default, selects an OS-assigned loopback port, starts the main-thread pump, and advertises the instance to a running DCC-MCP gateway. Stop it explicitly during project teardown when needed:

dcc_mcp_touchdesigner.stop_server()

Typed tools

Tool Contract Risk
get_project_info Read project name, folder, build, cook rate, and root count Read-only
list_operators List direct or recursive operators with an optional family/type filter Read-only
get_op_parameters Read selected or all parameters from one operator Read-only
create_operator Create a documented operator type under an explicit COMP Mutation
connect_operators Connect an explicit output connector to an explicit input Mutation
set_op_parameter Set one parameter and return its evaluated value Idempotent mutation
capture_top Save one TOP to an explicit PNG path with size and SHA-256 metadata File write
save_project Save the current project to an explicit .toe path File write
delete_operator Delete one explicitly addressed non-root operator Destructive
execute_python Advanced in-host Python escape hatch; disabled by policy when required Destructive

Every tool has a JSON input/output contract and is dispatched on TouchDesigner's main thread. File-writing tools require an explicit path and reject accidental overwrite unless overwrite=true is supplied. Root deletion is always rejected.

Security controls

Disable arbitrary Python execution in controlled environments before starting TouchDesigner:

$env:DCC_MCP_TOUCHDESIGNER_DISABLE_EXECUTE_PYTHON = "1"

The adapter binds to loopback by default. Do not expose the per-instance port directly to an untrusted network. Use the DCC-MCP gateway when multiple instances or attributable agent sessions are required.

Runtime configuration

Variable Purpose
DCC_MCP_TOUCHDESIGNER_SKILL_PATHS Additional skill directories
DCC_MCP_TOUCHDESIGNER_METRICS Enable Prometheus /metrics
DCC_MCP_TOUCHDESIGNER_ENABLE_GATEWAY_FAILOVER Enable gateway failover; on by default
DCC_MCP_TOUCHDESIGNER_DISABLE_EXECUTE_PYTHON Disable the advanced Python tool

Development

py -3.11 -m pip install -e ".[dev]"
pytest
ruff check .
ruff format --check .
dcc-mcp-cli lint src/dcc_mcp_touchdesigner/skills/touchdesigner-scripting --warnings-as-errors
python -m build
python -m twine check dist/*

Unit and contract tests use a deterministic TouchDesigner API double. A release additionally requires a real TouchDesigner process, six readiness checks, discovery of all ten typed tools, and a create/connect/set/capture/save/delete chain through dcc-mcp-cli; simulation alone is not release evidence.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dcc_mcp_touchdesigner-0.1.0.tar.gz (108.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dcc_mcp_touchdesigner-0.1.0-py3-none-any.whl (29.7 kB view details)

Uploaded Python 3

File details

Details for the file dcc_mcp_touchdesigner-0.1.0.tar.gz.

File metadata

  • Download URL: dcc_mcp_touchdesigner-0.1.0.tar.gz
  • Upload date:
  • Size: 108.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for dcc_mcp_touchdesigner-0.1.0.tar.gz
Algorithm Hash digest
SHA256 209a2acb3c1706046cffe80832c7b3b5de12873b9dedac30d7c22f670b3b6987
MD5 835779cd6e02c05cadc9bd8bdea79818
BLAKE2b-256 cba5ed91e2de9fe09c336771b4d8e8ddd5e7b5a2af6097e8a11fafb62cba0af5

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_touchdesigner-0.1.0.tar.gz:

Publisher: release.yml on dcc-mcp/dcc-mcp-touchdesigner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dcc_mcp_touchdesigner-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for dcc_mcp_touchdesigner-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6d908c9be9fe90f1ce525152ada01419b621797aae521b7bab25c5bedae9bf8b
MD5 2e0222fc16262d284eb7940f9c0f38b3
BLAKE2b-256 ca9e3f589aa488b55d331892c2589362ce3af1c75f54d43ea383b9de03095909

See more details on using hashes here.

Provenance

The following attestation bundles were made for dcc_mcp_touchdesigner-0.1.0-py3-none-any.whl:

Publisher: release.yml on dcc-mcp/dcc-mcp-touchdesigner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.2

2 files

0.1.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page