TouchDesigner build: 2025.33230 (compiled Wed Sep 2 02:40:12 2026)
OS: Windows 11 Pro, build 10.0.26200
Plugin: TwoZero (404.zero) — reproduced on versions 3.269, 3.332, 3.333, and 3.34
Summary:
TwoZero’s MCP server (used to connect AI coding agents like Claude Code to a live TD session over localhost:40404) never comes up on this machine, despite Settings → MCP → Auto start being enabled. A second, related bug also kills it automatically if started manually.
Bug 1 — auto-launcher never spawns the proxy:
The MCP server is meant to run as a separate Python subprocess (proxy_server.py) spawned by the plugin from %LOCALAPPDATA%\Temp\pisang_mcp. On this machine that spawn never happens:
-
The plugin’s own status window permanently shows “disconnected port 40404.”
-
No error appears anywhere — not in the Textport, not in proxy.err.log (which hasn’t been touched since a one-off successful run days earlier), not in any install log.
-
A separate per-session debug log (%LOCALAPPDATA%\Temp\pisang_mcp\mcp_debug_.log) shows the plugin cycling state=idle → state=connecting → state=dead roughly every 63 seconds, forever — it clearly detects the server is down, but never actually launches it.
-
Manually running the exact same command the launcher should use (python.exe proxy_server.py --port 40404 --installation-id … --plugin-version 3.34) works immediately and binds the port with no issue — so the proxy script itself is fine; only the trigger to launch it is broken.
-
Reproduced across a fresh reinstall on 5 separate attempts over 4 days, all with the identical result.
Bug 2 — a running proxy gets shut down automatically:
When manually launching the proxy as a workaround, it runs cleanly for roughly 5-15 minutes, then exits via a graceful internal shutdown ([proxy] exit pid=… in the log — this only happens on an explicit GET /shutdown call, not a crash). Timing lines up closely with an internal “ownership” handoff the proxy logs right beforehand (it briefly detects its own owner as dead/unrecognized because it wasn’t spawned by TD directly, then re-adopts the real TD process) — suggesting the plugin may be reacting to that and shutting down what it perceives as a foreign/orphaned proxy instance.What’s been ruled out: Windows Firewall (no rule blocks 40404, and it’s loopback traffic anyway), antivirus/Defender (no block events logged), port exclusion ranges, TD version requirement (2025.33230 exceeds the documented 2025.32280 minimum), and install corruption (installed files are byte-for-byte structurally identical to a second machine where TwoZero works correctly).
Current workaround: a small script that force-launches proxy_server.py directly and automatically relaunches it the instant it exits, keeping the MCP connection alive with only brief gaps.
Ask: interested in what actually gates the auto-launcher’s decision to spawn the proxy (is Auto start MCP alone sufficient, or is there an undocumented dependency, e.g. on onboarding-completion state?), and separately, what triggers the plugin to shut down a proxy it doesn’t recognize as its own.
would welcome any assistance with this - I can provide the bat file if needed