Tdmcp

Created By
Pantani16 days ago
The TouchDesigner MCP server — describe a visual to Claude, Cursor or Codex and it builds a real, playable node network (audio-reactive, generative, particle, 3D, feedback) with live knobs + MIDI/OSC/DMX, then checks for errors and previews its own work.
Overview

MindDesigner (tdmcp) — TouchDesigner MCP server

CI Docs npm version Node.js MCP server License: MIT tdmcp MCP server

tdmcp is a Model Context Protocol (MCP) server for TouchDesigner — build TouchDesigner from plain language. You describe a visual to an AI assistant (Claude, Claude Code, Cursor, Codex); the AI builds the actual network of nodes inside your project, checks it for errors, and shows you a preview.

"Create a feedback tunnel from noise with blur and displace, then add bloom and output it to a window."

…and the nodes appear, wired up, in your /project1.

It works because it pairs two things every other tool was missing:

  • Real knowledge — an embedded reference of 629 operators, 68 Python classes, workflow patterns, GLSL techniques and tutorials, so the AI uses real TouchDesigner operators instead of guessing.
  • Real execution — a small bridge running inside TouchDesigner that actually creates, connects, inspects and previews nodes — with a create → verify → preview loop so the AI can see and fix its own work. Every generated network is auto-arranged into a readable left→right layout.

📖 Documentation

Full guides and reference live on the docs site → https://pantani.github.io/tdmcp/

For artists / musiciansFor developers
What is tdmcp?Architecture
Install (no terminal)Tools reference
Your first visualEnvironment variables
Shader ParkCLI & local copilot
Prompt cookbookBridge & REST API
Recipe galleryRoadmap
TroubleshootingDeployment

🇧🇷 Portuguese documentation: https://pantani.github.io/tdmcp/pt/

How it works

Three pieces talk to each other on your computer:

   You + your AI            tdmcp server               TouchDesigner
  (Claude / Cursor)   ─▶   (a small program)    ─▶   (the bridge inside TD)
   "make a feedback                                      builds real nodes
    tunnel from noise"                                   in /project1
  1. Your AI assistant — where you type what you want.
  2. The tdmcp server — a small Node program that gives the AI a set of TouchDesigner "tools" and the operator knowledge base. You install it once.
  3. The bridge — a tiny piece that runs inside TouchDesigner so the server can actually drive it. You switch it on once per machine.

What you'll need

  • TouchDesigner — the free non-commercial edition is fine.
  • An MCP-capable AI assistant: Claude Desktop (easiest), Claude Code, Codex, or Cursor.

Node.js is only needed for the build-from-source path (Node 20+). The one-click Claude Desktop extension needs nothing extra — the server is bundled inside the .mcpb (formerly .dxt; legacy .dxt files still install).

Get started

You set up two sides: your AI (so it gets the tdmcp tools) and TouchDesigner (so the AI can drive it).

🤖 Easiest — let your AI install it. Using Claude Code, Codex, or Cursor? Paste this one message in:

Install and connect tdmcp for me using the official install guide:
https://pantani.github.io/tdmcp/guide/install
Do every step yourself; only stop when you need me to paste one line into TouchDesigner.

It clones, builds and wires everything up; the only manual step is pasting one line into TouchDesigner (Step 2 below).

🟢 Claude Desktop — one-click .mcpb (no terminal, no Node). Download tdmcp.mcpb, then in Claude Desktop open Settings → Extensions and install it (drag it in or Install from file). Leave host/port at 127.0.0.1 / 9980. Full walkthrough: the install guide.

🛠️ Claude Code / Codex / Cursor — build from source.

git clone https://github.com/Pantani/tdmcp.git
cd tdmcp
npm run setup   # installs, builds, and prints the exact line to connect your client

Turn on the bridge inside TouchDesigner (everyone)

Open TouchDesigner, open the Textport (Dialogs → Textport and DATs), paste this one line and press Enter:

import urllib.request; exec(urllib.request.urlopen("https://github.com/Pantani/tdmcp/raw/main/td/bootstrap.py").read().decode())

You should see [tdmcp] bridge running on port 9980 (/project1/tdmcp_bridge). ✅ It's safe and reversible — it adds one tidy component; remove it later with from mcp import install; install.uninstall(). Other install methods (module path, terminal, reusable .tox) are in the bridge docs.

Make something

With TouchDesigner open and your AI connected, ask in plain language:

"Create an audio-reactive particle galaxy and show me a preview."

The AI builds the network, checks it for errors, and returns a thumbnail. Iterate: "make it warmer," "add a feedback trail," "output it fullscreen." More ideas in the prompt cookbook.

Not connecting? The two most common fixes: make sure the bridge is on (curl http://127.0.0.1:9980/api/info returns JSON), and restart your AI client after adding the server. Full troubleshooting.

What you can do

286 tools across three layers, plus library/packaging, AI session memory and Obsidian vault integrations — from one-line artist generators (create_feedback_network, create_audio_reactive, create_particle_system, create_generative_art, …) to building blocks (create_control_panel, animate_parameter, create_external_io for OSC/MIDI/DMX/NDI, …) down to atomic node CRUD and inspection. Many systems arrive already playable, with a control panel you can tweak, preset, or map to a controller. See the full, always-current tools reference and the recipe gallery.

Security

The bridge runs arbitrary Python inside your TD process and listens on port 9980 on all interfaces — treat it like an open door to that machine. Run it only on a trusted network, and for untrusted networks turn on bridge auth (TDMCP_BRIDGE_TOKEN) and/or disable the exec endpoints (TDMCP_BRIDGE_ALLOW_EXEC=0). Details: Security.

Contributing & development

Build with npm install && npm run build; run npm test, npm run typecheck, npm run lint. Work on the docs with npm run docs:dev (the tools reference is generated by scripts/gen-tool-docs.ts). See CONTRIBUTING.md, CHANGELOG.md, and the roadmap.

License

MIT — see LICENSE.

Server Config

{
  "mcpServers": {
    "tdmcp": {
      "command": "npx",
      "args": [
        "-y",
        "@dpantani/tdmcp"
      ],
      "env": {
        "TDMCP_TD_HOST": "127.0.0.1",
        "TDMCP_TD_PORT": "9980"
      }
    }
  }
}
Project Info
Created At
16 days ago
Updated At
6 days ago
Author Name
Pantani
Star
-
Language
-
License
-
Category

Recommend Servers

View All
Mnemom

5 hours ago
//beforeyouship — LLM Cost Modeling From Your Editor
@Indiegoing

Query realistic LLM cost models without leaving your editor. beforeyouship models the **true monthly cost** of an LLM app architecture — retries, prompt caching, batch discounts, infra overhead, and 3×/10× growth — across GPT-5.x, Claude, Gemini, DeepSeek, and more. Not a token calculator: a planning tool for the design phase, before you commit to a stack. **No API key needed to try it** — demo mode covers the six free-tier models. A Pro key from [beforeyouship.dev](https://beforeyouship.dev) unlocks the full 18-model catalog. ## What you can ask - "How much will a RAG chatbot cost at 10,000 requests/day?" - "Compare Claude Haiku vs Gemini Flash pricing for my workload" - "What's the cheapest model for a multi-step agent at scale?" - "Show me current per-token prices for Anthropic models" ## Tools ### `estimate_cost` Full cost model for an architecture at a given usage level. Returns Naive / Realistic / Worst Case monthly cost per model, 3×/10× growth scenarios, and an opinionated recommendation with reasoning. ### `get_model_prices` Current per-1M-token pricing — input, output, cached input, batch — with context windows and staleness metadata. ### `list_archetypes` Seven preset architecture patterns (simple chatbot, chatbot with history, RAG pipeline, multi-model router, coding assistant, document processor, multi-step agent) used as starting points for estimates. ## Setup **Claude Code:** ​```bash claude mcp add --transport http beforeyouship https://beforeyouship.dev/api/mcp ​``` **Cursor / other clients** — add a remote server: ​```json { "mcpServers": { "beforeyouship": { "type": "streamable-http", "url": "https://beforeyouship.dev/api/mcp" } } } ​``` Add an `Authorization: Bearer bys_...` header with a Pro key for the full catalog. ## Try it > Estimate the monthly cost of a RAG pipeline at 10,000 requests/day

4 hours ago