TouchDesigner MCP桥
连接 克劳德代码 (或任何兼容MCP的LLM)连接到正在运行的TouchDesigner实例。构建TD网络、执行Python、查询参数和创建运算符——所有这些都是通过自然语言完成的。
这是什么?
这是一个 MCP(模型上下文协议) 连接Claude Code和TouchDesigner的服务器。它允许克劳德:
- 创建并连接操作员
- 在TD中执行Python代码
- 查询真实参数名称和值
- 以交互方式构建完整的网络
- 文本端口的调试错误
- 管理扩展和自定义参数
快速开始
1.克隆或下载
git clone https://github.com/OneALab/Touchdesigner_MCP_Bridge.git
cd Touchdesigner_MCP_Bridge2.安装Python依赖项
pip install -r requirements.txt3.设置TouchDesigner
选项A:自动更新加载器(推荐)
- Open TouchDesigner
- 拖拽
mcp_bridge_loader.tox进入你的项目 - 加载器自动获取最新
td_setup.py来自GitHub - 首次运行后使用本地缓存脱机工作
- 保存您的项目
选项B:静态组件
- Open TouchDesigner
- 拖拽
mcp_bridge.tox进入你的项目 - 保存您的项目
选项C:手动运行安装脚本
- Open TouchDesigner
- 创建文本DAT
- 粘贴内容
td_setup.py - 右击→ 运行脚本
4.配置克劳德代码
claude mcp add touchdesigner -- python /path/to/mcp_server.py替换 /path/to/ 带有克隆此仓库的实际路径。
5.重新启动克劳德代码
重新启动Claude Code以加载新的MCP服务器。
6.测试它
在克劳德代码中,说:“Ping TouchDesigner”
替代方案:交互式设置
运行引导安装向导:
python setup.py这将引导您完成TouchDesigner和Claude Code的配置。
可用工具
核心工具
| 工具 | 说明 |
|---|---|
td_ping | 检查TouchDesigner是否已连接 |
td_list_operators | 列出路径上的运算符 |
td_get_operator_info | 获取完整的操作员详细信息和参数 |
td_execute | 在TouchDesigner中运行Python代码 |
td_create_operator | 创建新操作员 |
td_set_parameter | 设置参数值 |
td_connect | 连接两个操作员 |
td_delete_operator | 删除操作员 |
td_disconnect | 断开操作员的输入 |
td_find_operators | 按模式搜索运算符 |
文本DAT工具
| 工具 | 说明 |
|---|---|
td_get_text | 从文本DAT读取内容 |
td_set_text | 将内容写入文本DAT |
td_run_script 将文本DAT作为Python执行。 |
扩展开发
| 工具 | 说明 |
|---|---|
td_get_extension | 从COMP获取扩展代码 |
td_set_extension | 在COMP上设置/更新扩展代码 |
td_create_extension | 使用样板创建扩展 |
td_promote_parameter | 向COMP添加自定义参数 |
包管理
| 工具 | 说明 |
|---|---|
td_pip_install | 在TD的Python中安装pip包 |
td_list_packages | 列出已安装的软件包 |
td_import_check | 检查模块是否可以导入 |
调试
| 工具 | 说明 |
|---|---|
td_get_errors | 从文本端口获取最近的错误 |
td_get_cook_time | 获取操作员绩效信息 |
Web用户界面
该桥包括一个基于浏览器的控制面板,可以根据自定义参数自动生成控件。
打开: http://127.0.0.1:9980/ui
- 发现所有具有自定义参数的COMP
- 自动生成滑块、切换、菜单、按钮
- 更改实时更新TouchDesigner
要测试:创建一个baseCOMP,添加自定义参数(自定义组件),然后刷新web UI。
示例用法
连接后,您可以问Claude以下问题:
- “在TOP中创建一个电影文件并将其连接到null”
- “噪声TOP有哪些参数?”
- “编写一个随机化constant1颜色的脚本”
- “调试为什么我的CHOP执行没有触发”
- “为我构建一个音频反应式视觉系统”
建筑
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude Code │ MCP │ mcp_server.py │ HTTP │ TouchDesigner │
│ (LLM Client) │◄───────►│ (MCP Server) │◄───────►│ (Web Server) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
port 9980- mcp_server.py:Claude Code连接到的MCP服务器
- mcp-bridge.tox:带有HTTP处理程序的TouchDesigner组件
- td_setup.py:手动创建网桥的替代脚本
故障排除
“无法连接到TouchDesigner”
- 确保TouchDesigner正在运行
- 检查一下
/project1/mcp_bridge/webserver存在并处于活动状态 - 验证端口9980未被防火墙阻止
- 测试:
http://127.0.0.1:9980/ping在浏览器中
在Claude代码中找不到MCP服务器
- 配置后重新启动Claude代码
- 检查MCP设置中的路径
- 确保Python在你的PATH中
- 测试:
python mcp_server.py直接查看错误
tdexecute返回null作为结果
- 重新运行
td_setup.py在TouchDesigner中更新处理程序 - 或者换一个新鲜的
mcp_bridge.tox
文件
| 文件 | 描述 |
|---|---|
mcp_server.py | Claude Code连接到的MCP服务器 |
mcp_bridge_loader.tox | 自动更新加载器(从GitHub获取最新版本) |
mcp_bridge.tox | 预构建TD组件(静态版本) |
td_setup.py | 在TD中创建桥的脚本 |
loader_script.py | 加载器的来源(仅供参考) |
setup.py | 交互式设置向导 |
requirements.txt | Python依赖关系 |
需求
- TouchDesigner 2023+(已在2024.x上测试)
- Python 3.10+
- Claude Code(或任何兼容MCP的客户端)
贡献
欢迎拉取请求!请使用.tox和td_setup.py方法测试更改。
许可证
MIT许可证-请参阅 许可证 了解详情。
