TouchDesigner监控与优化工具

TD-MCP是一个用于TouchDesigner的监控、优化和控制工具,通过Claude Code或浏览器提供22种工具来检查、优化和控制TD项目。

  • by Gleinkaa
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Gleinkaa/td-mcp

使用说明

TD-MCP

MCP服务器+TouchDesigner的web仪表板。通过Claude Code或浏览器检查、优化和控制TD补丁。

Claude Code <--MCP(stdio)--> td-mcp server <--HTTP--> TD WebServer DAT (port 9981)
                                  |
                          Web Dashboard (:8080)

特性

22个MCP工具 分为4组:

组 工具
检查 列出操作、跟踪信号流、读取CHOP通道、读取/设置参数
优化 烹饪时间统计、查找热点、查找未使用的操作、建议修复
清理 查找绕过的操作,删除死操作(默认的模拟运行),验证网络
模板 5个CHOP食谱,DAW映射生成器(OSC+MIDI CC)

网络仪表盘 (FastAPI+htmx):

  • 实时连接状态
  • 网络健康概述
  • 烹饪时间热点可视化
  • 带有脚本预览的配方浏览器
  • 带干式运行的清理工具
  • 带有安全验证的脚本运行器

内置CHOP食谱:

  • audio_reactive_basic --音频输入>RMS>滞后>数学>空
  • audio_fft_bands --FFT>分割低/中/高频带
  • lfo_modulator --带距离映射的LFO
  • midi_cc_mapper --MIDI CC>平滑>范围>输出
  • osc_receiver --用于Bitwig/Ableton同步的OSC输入

安装

pip install -e ".[dev]"

需要Python 3.10+。

用法

MCP服务器(用于克劳德代码)

td-mcp

添加到您的Claude Code MCP配置中:

{
  "mcpServers": {
    "td-mcp": {
      "command": "td-mcp",
      "args": []
    }
  }
}

Web仪表板

td-mcp-web

开放时间:http://localhost:8080.黑暗主题,每5秒自动轮询TD状态。

或者直接运行:

uvicorn td_mcp.web:app --port 8080 --app-dir src

测试

pytest

26个测试,涵盖客户端、服务器、工具、安全、模型。

TouchDesigner设置

在TD机器上(Luci一侧):

  1. 创建一个 Web服务器DAT 在您的项目中
  2. 集 港口 到 9981
  3. 粘贴以下内容 td/webserver_callbacks.py 进入DAT的回调
  4. 切换 活跃的 开

就是这样。MCP服务器和web仪表板连接到此端点。

安全

在TD中执行的所有脚本都会通过 safety.py 其阻止:

  • 文件I/O、网络、子流程导入
  • eval/exec/compile/__import__/run
  • Dunder属性访问(__class__, __globals__等等)
  • 编码旁路尝试(十六进制/unicode/八进制转义, chr/ord)
  • 每个脚本最多10000个字符

项目结构

td-mcp/
  src/td_mcp/
    server.py          # FastMCP server -- 22 tools via stdio
    web.py             # FastAPI web dashboard
    td_client.py       # Async HTTP client to TD WebServer DAT
    safety.py          # Script validator
    models.py          # Pydantic models
    tools/
      inspect.py       # List ops, trace signal flow, read CHOPs
      optimize.py      # Cook time hotspots, find unused/dead-end ops
      cleanup.py       # Delete dead ops (dry-run default), validate network
      templates.py     # 5 built-in CHOP recipes + DAW mapping generator
  td/
    webserver_callbacks.py  # Drop-in for TD's WebServer DAT
  tests/
    test_models.py
    test_safety.py
    test_server.py
    test_td_client.py
    test_tools.py
  pyproject.toml

许可证

麻省理工学院