/ 目录 / 演练场 / TouchDesigner MCP
● 社区 8beeeaaat 🔑 需要你的密钥

TouchDesigner MCP

作者 8beeeaaat · 8beeeaaat/touchdesigner-mcp

AI原生TouchDesigner控件—代理通过本地WebServer DAT桥创建节点、调整参数、运行Python和读取错误。

touchdesigner-mcp允许代理在MCP上操作正在运行的TouchDesigner项目。12个工具涵盖了要点:列出/创建/删除节点、设置参数、在TouchDesigner中运行任意Python以及自省环境(类目录、节点错误、模块帮助)。TouchDesigner内部的WebServer DAT (来自mcp_webserver_base.tox , API ≥ 1.3.0 )侦听端口9981 ; MCP服务器通过HTTP与其通话。 针对想要在TouchDesigner中使用人工智能配对编程的运动设计师、现场视觉艺术家和装置工程师。

为什么要用

核心特性

实时演示

实际使用效果

touchdesigner-mcp.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "touchdesigner-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "touchdesigner-mcp-server"
      ],
      "env": {
        "TD_WEBSERVER_HOST": "127.0.0.1",
        "TD_WEBSERVER_PORT": "9981"
      }
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "touchdesigner-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "touchdesigner-mcp-server"
      ],
      "env": {
        "TD_WEBSERVER_HOST": "127.0.0.1",
        "TD_WEBSERVER_PORT": "9981"
      }
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "touchdesigner-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "touchdesigner-mcp-server"
      ],
      "env": {
        "TD_WEBSERVER_HOST": "127.0.0.1",
        "TD_WEBSERVER_PORT": "9981"
      }
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "touchdesigner-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "touchdesigner-mcp-server"
      ],
      "env": {
        "TD_WEBSERVER_HOST": "127.0.0.1",
        "TD_WEBSERVER_PORT": "9981"
      }
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "touchdesigner-mcp",
      "command": "npx",
      "args": [
        "-y",
        "touchdesigner-mcp-server"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "touchdesigner-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "touchdesigner-mcp-server"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add touchdesigner-mcp -- npx -y touchdesigner-mcp-server

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: TouchDesigner MCP

从简短的脚手架启动TouchDesigner贴片

👤 动作设计师和视觉工程师原型设计 ⏱ ~30 min intermediate

何时使用: 您正在开始一个新的补丁,并希望在手动调整之前将骨架就位。

前置条件
  • TouchDesigner在mcp_webserver_base.tox加载的情况下运行 — 下载TOX ,放入您的项目,设置端口9981
  • API版本≥ 1.3.0 — 检查TouchDesigner版本
步骤
  1. 描述补丁
    搭建生成式视觉贴片的脚手架:音频反应粒子(噪声→实例化)、后处理绽放、1080p输出。✓ 已复制
    → Agent使用命名运算符创建相干节点图
  2. 修复404错误
    报告TD错误并进行修复。✓ 已复制
    → 使用get_td_node_errors ,更正参数,迭代

结果: 您可以调整工作的启动补丁,而不是从头开始拖动。

注意事项
  • 代理发明不存在的操作符 — 让它首先调用get_td_classes并坚持使用真实类名
搭配使用: filesystem

扫描参数并比较视觉输出

👤 艺术家调整外观 ⏱ ~20 min intermediate

何时使用: 您想在不点击TD UI的情况下探索参数范围。

步骤
  1. 描述扫描
    在噪声1上,扫描周期= 0.2,0.5,1.0,2.0 ,谐波= 1,2,4。每个通过renderpick1拍摄快照。✓ 已复制
    → 使用update_td_node_parameters和execute_python_script进行快照保存
  2. 胜出者:
    我喜欢周期= 1.0谐波= 2。应用并保存项目。✓ 已复制
    → 参数设置,项目通过python exec保存

结果: 更快的迭代;无聊的组合点击工作消失了。

注意事项
  • 长Python脚本阻塞TD的主线程 — 拆分为短期调用,或在Execute DAT中运行

通过询问代理来了解TouchDesigner的Python API

👤 TouchDesigner的Python新手设计师 ⏱ ~10 min beginner

何时使用: 您正在编写脚本CHOP/DAT ,需要知道调用哪种方法。

步骤
  1. 询问学员
    步行儿童的“Op”课程有哪些方法?✓ 已复制
    → Agent调用get_td_class_details并返回真实方法
  2. 查看可运行示例
    显示一个简短的Python代码段,记录每个后代的路径。✓ 已复制
    → 代码段使用真实的API ,而不是编造的方法

结果: 基于实时TouchDesigner实例的准确Python示例。

组合

与其他 MCP 搭配,撬动十倍杠杆

touchdesigner-mcp + filesystem

将快照/渲染保存到磁盘,并在下一回合引用它们

在每个参数集之后,通过renderpick1将PNG保存到~/td-snapshots/并读回清单。✓ 已复制
touchdesigner-mcp + xcodebuild

MacOS kiosk的渲染和打包

通过xcodebuild将输出和打包呈现为macOS应用捆绑包。✓ 已复制
touchdesigner-mcp + filesystem

将项目状态存档为git可跟踪的.toe导出

将当前项目导出为.toe并提交。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
create_td_node parent_path, type, name? 添加新运算符 0
delete_td_node path 移除操作员 0
update_td_node_parameters path, params map 在节点上设置一个或多个参数 0
get_td_nodes filter? 枚举与筛选器匹配的节点 0
get_td_node_parameters path 读取当前参数值 0
get_td_node_errors (none) 查找并修复当前项目中的问题 0
execute_python_script script: str 逃脱其他工具无法覆盖的任何东西的舱口 0
exec_node_method path, method, args 调用节点上的特定方法(例如.cook () ) 0
get_td_classes (none) 列出可供选择的课程 0
get_td_class_details class_name 真实API表面中的Ground Python建议 0
get_module_help module_name 检索模块文档字符串 0
get_td_info (none) 检查TD版本和服务器状态 0

成本与限制

运行它的成本

API 配额
每次调用 Token 数
小:节点路径+小参数映射
费用
免费;适用TouchDesigner许可证
提示
首选带有地图的update_td_node_parameters ,而不是许多单参数调用。

安全

权限、密钥、影响范围

凭据存储: 证书
数据出站: HTTP到127.0.0.1 :<port>。不要将WebServer DAT公开给公共网络。

故障排查

常见错误与修复

ECONNREFUSED 127.0.0.1: 9981

TouchDesigner未运行或WebServer DAT未处于活动状态。打开毒性物质并确认其处于活动状态。

验证: In TD console: op('mcpwebserver').par.active.eval()
API版本太低

将TouchDesigner升级到API ≥ 1.3.0的版本。

验证: Help → About TouchDesigner
Python执行静默失败

检查TD文本端口的溯源;有些操作仅在连接到查看器时才会进行。

验证: Alt-T opens the textport

替代方案

TouchDesigner MCP 对比其他方案

替代方案何时用它替代权衡
unreal您正在驱动虚幻引擎场景,而不是TouchDesigner补丁不同的运行时;不同的DCC
unityUnity是您的目标引擎完全不同的DCC
godot-mcp-pro-2Godot是你的引擎不同的DCC

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills