TouchDesigner文档服务器

一个为AI编码助手提供TouchDesigner操作符文档、Python API参考和教程的模型上下文协议(MCP)服务器。

  • by bottobot
  • HTML
  • 本地部署
  • 80 星标
  • 更新于
在 GitHub 查看 bottobot/touchdesigner-mcp-server

使用说明

TouchDesigner MCP服务器

一个功能强大的模型上下文协议(MCP)服务器,将全面的TouchDesigner操作员文档、Python API参考资料和教程直接提供给您的人工智能编码助手。

我个人将其与VS Code/Codium和Roo代码扩展以及我最喜欢的LLM(如Claude Opus和GPT-5)一起使用。虽然从理论上讲,服务器应该可以与Docker或Claude Desktop等其他应用程序配合使用,但我还没有彻底测试这些集成。

至今为止的故事: 这个项目的催化剂很简单——几个月前,我决定要一个可以在TouchDesigner中为我开发视觉效果的人工智能工具。我用TD做一些基本的东西已经有一段时间了,但它是我使用过的任何创意软件中学习曲线最陡的之一。如果问一个法学硕士“请在TouchDesigner中制作一个720p的、实时动画的、不断进化的反应扩散模拟”,然后让它吐出来,那该有多好?在我看来,超级漂亮是答案。

就像我所从事的每一个我知之甚少的项目一样,我认为这会非常直截了当!大声笑!当我开始的时候,我不知道我最终会投入多少时间和代币。在我认为它完全集成到TouchDesigner本身并且误差很小之前,我还有很长的路要走。

然而,就查询运算符及其参数的信息而言,它非常有效!让任何LLM有效地使用此工具开发具有真正复杂性的网络时,我面临的主要挑战是,模型往往忘记使用MCP服务器,并依赖于他们对旧TouchDesigner版本的过时训练知识。如果有人对如何克服这一特殊问题有任何建议,我非常想听听你的反馈!

如何使用它(我当前的工作流程)

现在,我的重点是确保服务器返回有用且准确的Python API信息。这是我的工作流程:我描述了我想创建的网络——例如,反应扩散可视化——然后让人工智能编写一个Python脚本,使用文本端口在TouchDesigner中生成网络。一旦完成,我得到一个“exec”命令,它允许我将一行复制并粘贴到文本端口中,瞧——一个网络就生成了!

我的终极梦想然而,它直接完全集成到TouchDesigner本身中。我尝试了一种web服务器和WebSocket方法,这种方法很有效,但由于我测试的LLM没有生成正确的Python代码,并且在没有充分利用MCP服务器的情况下不断产生幻觉信息,我暂时搁置了这部分项目。一旦它可靠地工作并生成可靠的可视化或网络,那么完全集成将是最后一步!

特征

  • 661 TouchDesigner操作员 -综合文档,包括102个POP(点操作员)条目
  • 14互动教程 -全面的TouchDesigner学习指南
  • 214 Python API类 -包含1674多种方法的完整Python脚本文档
  • 21 MCP工具 -跨五个功能组:操作员参考、教程、Python API、版本系统和实验内容
  • 32种工作流模式 -精心策划的操作员链模式,包含72个常见转换

TouchDesigner 2025 (最新官方版本2025.32820,捆绑Python 3.11.10)和 2025.30000个实验系列 (Python 3.11.10)。POP(点运营商)是2025版本中的旗舰新运营商系列,这是十多年来的第一个新运营商家族。

版本系统

  • 版本历史 -从099年到2025年记录的所有稳定TD版本(最新官方版本2025.32820,Python 3.11.10)
  • 兼容性跟踪 -每个操作员和每个方法版本兼容性数据
  • Python时间线 -每个TD版本都捆绑了完整的Python版本历史记录
  • 发布亮点 -每个主要版本的关键功能和突破性更改,由具有出处的实时衍生资源重写

实验技术知识库

  • 7技术类别 -GLSL、GPU计算、机器学习、生成系统、视听、网络、Python高级
  • 2000+行代码 -为高级技术工作、粘贴准备好的代码片段
  • 16种命名GLSL模式 -用于光线行进、反应扩散、反馈等的完整着色器代码
  • 难度评级 -每种技术都有最低TD版本要求

核心增强

  • 操作员接线指南 -为20多名普通操作员提供精确的端口级连接说明
  • 网络模板 -使用Python生成脚本构建五个现成的网络模板
  • 版本感知搜索 -通过TD版本兼容性筛选运算符和Python API
  • 智能工作流建议 -端口布线、复杂性等级和节点数量估计

实验构建支持

  • 实验构建系列 -2025.30000系列(POP,Python 3.11.10)和2021 Vulkan实验版本,来源于实时衍生品发行说明
  • 特征标志表 -每个实验系列的选择加入/选择退出标志
  • 毕业跟踪 -哪些实验功能逐渐升级为稳定版本
  • 打破更改日志 -与稳定基线相比,每个系列的突破性变化

核心服务器功能

  • 智能搜索 -通过类别过滤、参数搜索和版本过滤进行直接搜索
  • 零配置 -安装后立即工作
  • 纯MCP实现 -干净的基于stdio的服务器,没有web服务器开销
  • 当地数据处理 -所有文档均来自本地JSON文件,无网络请求

安装

全局安装(推荐)

npm install -g @bottobot/td-mcp

本地安装

npm install @bottobot/td-mcp

快速开始

与VS Code/Codium和Claude一起使用

  1. 全局安装MCP服务器:

    npm install -g @bottobot/td-mcp
    
  2. 在VS代码中配置Claude/MCP: 将服务器添加到MCP设置配置文件中:

    {
      "td-mcp": {
        "command": "npx",
        "args": ["@bottobot/td-mcp"]
      }
    }
    
  3. 开始使用TouchDesigner工具 在你和克劳德的谈话中!

独立运行

# If installed globally
td-mcp

# If installed locally
npx @bottobot/td-mcp

可用MCP工具(共21个)

核心操作员工具

get_operator

获取有关特定TouchDesigner运算符的全面详细信息,包括所有参数、提示和代码示例。

参数 类型 必填 说明
name string Yes 运算符名称(例如,“Noise CHOP”、“TOP中的电影文件”)
show_examples boolean 否 显示代码示例和用法
show_tips boolean 否 显示提示和绩效说明
version string 否 包括兼容性块,显示此TD版本何时添加或更改运算符
Example: "Get detailed information about the Noise CHOP operator"
Example: "Get the Engine COMP documentation for TD 2022"

搜索操作员

使用上下文分析和相关性排名搜索运算符。

参数 类型 必填 说明
query string 是 搜索查询
category string 否 按类别筛选(CHOP、DAT、SOP、TOP、MAT、COMP、POP)
subcategory string 否 按子类别筛选(例如,“音频”、“过滤器”)
type string 否 搜索模式:“模糊”(默认)、“精确”或“标记”
version string 否 筛选与特定TD版本兼容的运算符(例如“2022”)
parameter_search boolean 否 在参数名称和描述中搜索
show_details boolean 否 显示包含关键字的详细结果
limit number 否 最大结果数(默认值:10,最大值:50)
Example: "Search for audio processing operators in the CHOP category"
Example: "Find operators added in TD 2022"

操作员列表

列出可用的TouchDesigner操作员,并可选择类别过滤。

参数 类型 必填 说明
category string 否 按运算符类别筛选
Example: "List all TOP operators"

比较运算符

并排比较两个运算符——参数、类别、共享/唯一特征。

参数 类型 必填 说明
operator_a string 是 第一个运算符名称
operator_b string 是 第二个运算符名称
compare_parameters boolean 否 包括参数比较(默认值:true)
Example: "Compare Blur TOP with Luma Blur TOP"

get_operator_示例

获取特定运算符的Python代码示例、表达式和使用模式。

参数 类型 必填 说明
operator string 是 运算符名称
example_type string 否 类型:“全部”、“python”、“表达式”或“用法”
Example: "Get Python examples for Movie File In TOP"

建议工作流程

获取操作员通常遵循当前操作员的工作流程建议。

参数 类型 必填 说明
current_operator string 是 当前运算符名称
Example: "What operators typically follow a Movie File In TOP?"

教程工具

get_tutorial

访问包含完整章节、代码和链接的详细TouchDesigner教程内容。

参数 类型 必填 说明
name string 是 教程名称
include_content boolean 否 包含完整内容部分
include_toc boolean 否 包括目录
include_links boolean 否 包含相关链接
Example: "Get the 'Write a GLSL TOP' tutorial"

list_tutorials

列出所有可用的TouchDesigner教程,并提供可选的过滤功能。

参数 类型 必填 说明
search string 否 用于筛选教程的搜索词
limit number 否 最大结果
show_details boolean 否 显示教程摘要和关键字
Example: "List all available tutorials"

搜索教程

按关键字、主题或内容搜索教程内容。

参数 类型 必填 说明
query string 是 搜索查询
search_content boolean 否 在节内容内搜索(默认值:true)
limit number No 最大结果数(默认值:10)
Example: "Search tutorials for GLSL shader examples"

Python API工具

get_python_api

获取TouchDesigner Python类的文档,包括成员和方法。

参数 类型 必填 说明
class_name string Yes Python类名(例如“CHOP”、“Channel”、“App”)
show_members boolean 否 显示类成员/属性
show_methods boolean 否 显示类方法
show_inherited boolean 否 显示继承的成员和方法
version string 否 用每个方法/成员的介绍版本对其进行注释,并排除在此TD版本之后添加的API
Example: "Get Python documentation for the CHOP class"
Example: "Get Python API for the App class as of TD 2021"

search_python_api

在TouchDesigner Python类、方法和成员中搜索。

参数 类型 必填 说明
query string 是 搜索查询
search_in string 否 搜索位置:“all”、“classes”、“methods”、“members”
category string 否 按类别筛选
version string 否 将类、方法和成员筛选为指定TD版本中可用的
limit number 否 最大结果
Example: "Search Python API for audio methods"
Example: "Find Python API methods available in TD 2020"

list_python_classes

按类别列出所有可用的Python API类。

参数 类型 必填 说明
category string 否 按类别筛选(例如,“运算符”、“常规”)
search string 否 用于筛选类的搜索词
show_details boolean 否 显示成员/方法计数
Example: "List all Python API classes in the Operator category"

版本系统工具

获取版本信息

获取特定TouchDesigner稳定版本的详细信息:哪个Python版本 it捆绑包、引入的新运算符、关键特性、添加的Python API以及突破性的更改。

参数 类型 必填 说明
version string 是 TD版本字符串(例如,“2025”、“2022”、“2019”、“099”)
Example: "What Python version does TouchDesigner 2025 use?"
Example: "What operators were added in TouchDesigner 2025?"

list_versions

列出所有支持的TD版本(099、2019、2020、2021、2022、2023、2025),并提供快速参考 显示每个版本的捆绑Python版本和支持状态的表,以及完整的 Python版本时间线。

参数 类型 必填 说明
(无需) -- -- 返回所有高亮显示的版本
Example: "List all supported TouchDesigner versions"
Example: "Show the Python version timeline for TouchDesigner"

实验技术工具

get_实验技术

按类别浏览精心策划的TouchDesigner高级技术库。退货 描述、难度等级、版本要求、操作员链、统一表格、, 以及完整的工作代码片段。

参数 类型 必填 说明
category string 是 技术类别。接受的别名:“glsl”、“gpu计算”、“机器学习”、“生成系统”、“视听”、“网络”、“python高级”
technique_id string 否 类别中特定技术的ID
Example: "Show me GLSL raymarching techniques in TouchDesigner"
Example: "Get GPU compute techniques using numpy"

可用类别:

类别 别名 技术
glsl 着色器、光线行进、sdf 光线行进、反应扩散、反馈、程序噪声
gpu计算 gpu,cuda 脚本TOP numpy,cuda,共享内存,gpu实例化
机器学习 ml,ai 引擎COMP,ONNX,稳定扩散,MediaPipe,车身轨迹
生成系统 生成,L系统 L系统,生命游戏,奇异吸引子,boids
视听 音频、fft fft几何、节拍检测、粒度合成、MIDI
网络 网络、osc、ndi osc、WebSocket、ndi、TDAbleton、多机
python高级 python、numpy、opencv asyncio、tdu。依赖、线程、numpy、OpenCV

搜索实验

在所有7个实验技术类别中进行全文搜索。按权重排列的结果 字段评分(名称、标签、描述、注释、代码)。

参数 类型 必填 说明
query string 是 搜索查询
category_filter string 否 将搜索限制为一个类别
show_code boolean 否 在结果中包含代码片段
limit number 否 最大结果数(默认值:10,最大值:30)
Example: "Search experimental techniques for reaction diffusion"
Example: "Find GPU instancing examples in the experimental library"

get_glsl模式

使用完整的、可粘贴的着色器代码检索特定的命名GLSL模式。封面16 跨射线推进、反应扩散、反馈、程序噪声、细胞的命名模式 自动机和GPU粒子模拟。还提供了三个可重用的GLSL实用程序库。 使用 pattern: "list" 枚举所有可用模式。

参数 类型 必填 说明
pattern string 是 模式名称或“列表”以查看所有可用模式
include_utilities boolean 否 包含GLSL实用程序库代码(默认值:false)
Example: "Get the raymarching GLSL pattern"
Example: "List all available GLSL patterns"
Example: "Get the reaction diffusion shader pattern"

核心增强工具

get_operator_connections

获取特定操作员的接线指南:操作员通常将上游连接为什么 输入和下游作为输出,具有精确的端口号、基本原理和工作流模式 名字。涵盖所有家庭的20多个常见操作员。

参数 类型 必填 说明
operator string Yes 运算符名称(带或不带家族后缀;不区分大小写)
Example: "What connects to and from a Render TOP?"
Example: "Show me the typical connections for a Noise CHOP"

get_network_template

返回一个完整的、即用型的网络模板,用于常见的TouchDesigner用例。 每个模板包括操作员列表、端口级连接表、参数设置、, 以及一个用于构建网络的即贴式Python脚本 template: "list" 看 所有可用模板。

参数 类型 必填 说明
template string 是 模板名称或“列表”以枚举所有模板

可用模板:

模板 说明
video-player 基于文件的视频播放,带有级别和输出控制
generative-art 噪声驱动的生成视觉网络
audio-reactive 音频分析提供视觉参数
data-visualization 表DAT驱动图表和显示网络
live-performance 实时使用的多层合成设置
Example: "Give me a network template for audio-reactive visuals"
Example: "List all available network templates"

实验构建工具

TouchDesigner发布了两个并行的版本:稳定版本(官方说法是 099 → 2019 → 2020 → 2021 → 2022 → 2023 → 2025;从来没有官方的TD 2024)和 具有未发布功能的实验/测试版构建系列。这些工具使您可以完全访问 进入实验轨道。

get_experimental_build

获取有关特定实验性TD构建系列或最新实验系列的详细信息。

参数 类型 必填 说明
series_id string 否 实验系列ID(例如“2025.10000”)。省略最新的实验系列。
show_features boolean 否 包括新功能列表(默认值:true)
show_breaking_changes boolean 否 包括破坏性更改与稳定更改(默认值:true)
show_python_api boolean 否 包含Python API添加项(默认值:true)
show_operators boolean 否 包括实验运算符(默认值:true)
Example: "What new features are in the latest experimental TouchDesigner build?"
Example: "Get breaking changes for experimental series 2025.30000"

列表_实验_构建

列出最近的实验性TD构建系列,按功能区域分组(渲染、Python API、运算符、UI、网络)。

参数 类型 必填 说明
feature_area string No 按区域筛选:“rendering”、“Python API”、“operators”、“UI”、“networking”
stability_status string 否 “实验性”(活动)或“已毕业”(变得稳定)
show_feature_flags boolean 否 包括特征标志表(默认值:false)
show_operators boolean 否 包括实验运算符列表(默认值:true)
show_breaking_changes boolean 否 包括中断更改摘要(默认值:false)
Example: "List experimental TD builds with rendering changes"
Example: "Which experimental build series introduced POPs?"

跟踪实验系列:

系列ID 年份 状态 标题特征
2025.30000 2025 毕业(TD 2025) POP(点运算符)旗舰系列,Python 3.11.10
2021.30000 2021 毕业(TD 2022) Vulkan成为唯一的图形API(OpenGL退役),Python 3.9.5

这两个系列都来源于实时衍生品发行说明(出处记录在 wiki/data/versions/experimental-builds.json).2025.30000系列正式发布 2025年发布;2021年的实验版本首次将TouchDesigner转移到Vulkan,后者成为 2022版本中的默认设置。

操作员类别

类别 计数 描述
切 170 信道运营商-音频、控制信号和数据流
顶尖 147 纹理运算符-2D图像和视频处理
标准操作程序 113 曲面运算符-3D几何体创建和操纵
流行音乐 102 点运算符-点/粒子几何(TD 2025中新增)
数据 75 数据运算符-文本、表格和数据处理
比较 41 组件运算符-UI元素和容器
垫子 13 材质操作符-3D渲染材质和着色器
总计 661 所有七个运营商家族

可用教程

核心教程

  • CHOP的解剖 -了解通道操作员内部
  • 建立列表COMP -创建动态UI列表
  • Python教程简介 -TouchDesigner Python脚本编写基本指南

高级开发

  • 写一个GLSL TOP -创建自定义GPU加速图像效果
  • 编写GLSL材料 -用于渲染的自定义GLSL材质
  • 编写一个C++CHOP -培养本地音频/数据处理操作员
  • 写一个C++TOP -在C中构建自定义纹理操作符++
  • 编写一个C++插件 -TouchDesigner插件的高级C++集成
  • 编写CUDA动态链接库 -使用CUDA为TouchDesigner进行GPU编程

进程间通信

  • 编写共享内存CHOP -进程间数据通信
  • 写入共享内存顶部 -在进程之间共享纹理

视频与集成

  • 视频流用户指南 -完整的视频流工作流程指南
  • TouchDesigner视频服务器规格指南 -专业视频服务器设置
  • TDBitwig用户指南 -与Bitwig Studio DAW集成

Python API文档

服务器包括以下文档 214个Python API类 随着 1674+种方法 涵盖:

  • 核心操作员类别(CHOP、TOP、SOP、DAT、MAT、COMP)
  • 实用程序类别(通道、单元、页面等)
  • 系统类(应用程序、项目、监视器等)
  • UI类(面板、小部件等)
  • 高级功能(WebRTC、NDI、MIDI、OSC等)

建筑

TD-MCP服务器由以下组件构建:

  • 纯MCP实现 -按照MCP标准清洁基于stdio的服务器
  • 直接搜索算法 -快速、可靠的搜索,无需外部索引依赖
  • 操作员数据管理器 -集中数据管理,661名操作员加载到内存中
  • 当地数据处理 -所有操作员数据都在本地处理和提供
  • 模块化工具系统 -21个MCP工具中的每一个都是独立维护的
  • 双释放轨道支持 -稳定版本(099-2025)和实验构建系列都有完整的文档记录

项目结构

td-mcp/
├── index.js                         # Main MCP server entry point (21 tools)
├── tools/                           # MCP tool implementations (21 tools)
│   ├── get_operator.js              # Full operator documentation
│   ├── search_operators.js          # Operator search with ranking
│   ├── suggest_workflow.js          # Workflow chain suggestions
│   ├── list_operators.js            # List/filter operators
│   ├── get_tutorial.js              # Tutorial content access
│   ├── list_tutorials.js            # Tutorial listing
│   ├── search_tutorials.js          # Tutorial content search
│   ├── get_python_api.js            # Python class documentation
│   ├── search_python_api.js         # Python API search
│   ├── list_python_classes.js       # Python class browsing
│   ├── get_operator_examples.js     # Code examples per operator
│   ├── compare_operators.js         # Side-by-side comparison
│   ├── get_version_info.js          # Stable version details
│   ├── list_versions.js             # All stable versions
│   ├── get_experimental_techniques.js # Advanced technique library
│   ├── search_experimental.js       # Search techniques
│   ├── get_glsl_pattern.js          # Named GLSL shader patterns
│   ├── get_operator_connections.js  # Operator wiring guide
│   ├── get_network_template.js      # Full network templates
│   ├── get_experimental_build.js    # Experimental build series details
│   └── list_experimental_builds.js  # List experimental series by area
├── wiki/                            # Documentation system
│   ├── data/
│   │   ├── processed/               # 661 operator JSON files
│   │   ├── tutorials/               # 14 tutorial JSON files
│   │   ├── python-api/              # 214 Python class JSON files
│   │   ├── experimental/            # 7 advanced technique JSON files
│   │   └── versions/               # Version compatibility data
│   │       ├── version-manifest.json
│   │       ├── operator-compatibility.json
│   │       ├── python-api-compatibility.json
│   │       ├── release-highlights.json
│   │       └── experimental-builds.json  # Experimental track data
│   ├── utils/
│   │   └── version-filter.js        # Version utilities + experimental support
│   ├── operator-data-manager.js     # Core documentation engine
│   └── operator-data-python-api.js  # Python API data manager
├── data/
│   └── patterns.json                # 32 workflow patterns + transitions
├── scripts/                         # Data maintenance scripts
│   ├── clean-operator-data.js       # Clean parameter descriptions
│   └── enrich-top-operators.js      # Add tips/examples to operators
└── package.json

故障排除

服务器无法启动

  • 确保已安装Node.js 20.0+: node --version
  • 尝试重新安装: npm install -g @bottobot/td-mcp
  • 如果运行其他MCP服务器,请检查端口冲突

搜索未返回任何结果

  • 尝试更广泛的搜索词
  • 删除类别筛选器
  • 启用 parameter_search 在参数名称内搜索
  • 检查操作员姓名的拼写

找不到操作员

  • 使用包括家族在内的完整操作员名称: Noise CHOP 不仅仅 Noise
  • 使用 search_operators 首先找到确切的名字
  • 使用 list_operators 使用类别筛选器浏览可用运算符

LLM不使用MCP工具

  • 在提示中明确提及TouchDesigner
  • 要求LLM“使用td-mcp工具”查找操作员信息
  • 提醒LLM检查参数 get_operator 在生成代码之前

需求

  • Node.js 20.0或更高版本
  • npm包管理器
  • 带有MCP兼容扩展的VS Code/Codium(例如,Claude Dev、Roo Code)

发展

要贡献或修改服务器,请执行以下操作:

# Clone the repository
git clone https://github.com/bottobot/touchdesigner-mcp-server.git

# Install dependencies
cd touchdesigner-mcp-server
npm install

# Run the server locally
node index.js

# Validate syntax
node --check index.js

# Clean operator data (removes HTML dumps from parameter descriptions)
node scripts/clean-operator-data.js

# Enrich top operators with tips and examples
node scripts/enrich-top-operators.js

添加新工具

  1. 在中创建新文件 tools/ 遵循现有模式(导出 schema 和 handler)
  2. 在中导入并注册该工具 index.js
  3. 使用工具文档更新此README

添加操作员数据

操作员数据存在 wiki/data/processed/ 作为JSON文件。每个文件都遵循带有字段的架构: id, name, displayName, category, subcategory, description, parameters, tips, warnings, pythonExamples, codeExamples,以及 version.

支持

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

致谢

  • TouchDesigner by 衍生物
  • 模型上下文协议 人类
  • 专为TouchDesigner社区打造

当前版本: 3.0.0 运算符:661(切块170,顶部147,SOP 113,POP 102,DAT 75,COMP 41,MAT 13) 教程: 14 Python API类: 214 MCP工具: 21 工作流模式: 32 TouchDesigner货币:2025正式版(build 2025.32820,Python 3.11.10)+2025.30000实验版 最后更新:2026年6月