TouchDesigner MCP
这是 TouchDesigner 的 MCP(模型上下文协议)服务器的实现。目标是使 AI 代理能够控制和操作 TouchDesigner 项目。
概述
TouchDesigner MCP 充当 AI 模型和 TouchDesigner WebServer DAT 之间的桥梁,使 AI 代理能够:
- 创建、修改和删除节点
- 查询节点属性和项目结构
- 通过 Python 脚本以编程方式控制 TouchDesigner
用法
需要安装 Docker 或 Node.js
1.克隆存储库:
2.设置环境文件并构建:
在构建 Docker 镜像之前,复制模板文件并根据需要调整 TD_WEB_SERVER_HOST 和 TD_WEB_SERVER_PORT。
3. 在您的 TouchDesigner 项目中安装 API 服务器:
启动 TouchDesigner,并将td/mcp_webserver_base.tox
组件直接导入到您想要控制的 TouchDesigner 项目下。例如:将其放置为/project1/mcp_webserver_base
导入 tox 将触发td/import_modules.py
脚本,该脚本加载 API 服务器控制器等模块。
您可以通过从 TouchDesigner 菜单打开 Textport 来检查启动日志。
4. 启动 MCP 服务器容器
5. 配置您的 AI 代理以使用 Docker 容器:
Claude Desktop 示例
在 Windows 系统上,包括驱动器号,如 C:,例如C:\\path\\to\\your\\touchdesigner-mcp\\docker-compose.yml
要直接从 Node.js 使用预构建的 JS:
1. 安装软件包
2. 在您的 TouchDesigner 项目中安装 API 服务器:
启动 TouchDesigner,并将some/node_modules/touchdesigner-mcp-server/td/mcp_webserver_base.tox
组件直接导入到您想要控制的 TouchDesigner 项目下。例如:将其放置为/project1/mcp_webserver_base
导入 tox 将触发some/node_modules/touchdesigner-mcp-server/td/import_modules.py
脚本,该脚本加载 API 服务器控制器等模块。
您可以通过从 TouchDesigner 菜单打开 Textport 来检查启动日志。
3.配置您的AI代理:
Claude Desktop 示例
在 Windows 系统上,包括驱动器号,如 C: 例如C:\\path\\to\\your\\node_modules\\touchdesigner-mcp-server\\dist\\index.js
3.验证连接
如果 MCP 服务器被识别,则设置完成。如果无法识别,请尝试重新启动 AI 代理。如果启动时出现错误,请先启动 TouchDesigner,然后再尝试重新启动代理。当 API 服务器在 TouchDesigner 中正常运行时,代理可以使用提供的工具来操作 TouchDesigner。
MCP 服务器功能
该服务器通过模型上下文协议(MCP)实现对TouchDesigner的操作,并提供各种实现文档的参考。
工具
工具允许 AI 代理在 TouchDesigner 中执行操作。
工具名称 | 描述 |
---|---|
create_td_node | 创建一个新节点。 |
delete_td_node | 删除现有节点。 |
exec_node_method | 在节点上调用 Python 方法。 |
execute_python_script | 在 TD 中执行任意 Python 脚本。 |
get_td_class_details | 获取 TD Python 类/模块的详细信息。 |
get_td_classes | 获取 TouchDesigner Python 类的列表。 |
get_td_info | 获取有关 TD 服务器环境的信息。 |
get_td_node_parameters | 获取特定节点的参数。 |
get_td_nodes | 获取父路径下的节点(可选过滤)。 |
update_td_node_parameters | 更新特定节点的参数。 |
提示
提示为 AI 代理提供在 TouchDesigner 中执行特定操作的指令。
提示名称 | 描述 |
---|---|
Search node | 模糊搜索节点并根据名称、家族、类型检索信息。 |
Node connection | 提供在 TouchDesigner 内连接节点的说明。 |
Check node errors | 检查指定节点的错误,如果有子节点则递归检查。 |
资源
未实施
对于开发人员
构建客户端和 API 服务器代码
cp dotenv .env
- 调整
.env
文件中的TD_WEB_SERVER_HOST
和TD_WEB_SERVER_PORT
以匹配您的开发环境 - 运行
make build
或npm run build
重新生成代码
当您需要反映构建的代码时,请重新启动 MCP 服务器和 TouchDesigner。
验证 API 服务器
npm run test
运行 MCP 服务器代码的单元测试,并与 TouchDesigner 进行集成测试。您可以通过从 TouchDesigner 菜单打开 Textport 来查看通信日志。npm run dev
启动@modelcontextprotocol/inspector 来调试各种功能。
项目结构概述
API 代码生成工作流程
本项目使用基于OpenAPI的代码生成工具(Orval/openapi-generator-cli):
API 定义: Node.js MCP 服务器和 TouchDesigner 内部运行的 Python 服务器之间的 API 契约在src/api/index.yml
中定义。
- Python 服务器生成(
npm run gen:webserver
):- 通过 Docker 使用
openapi-generator-cli
。 - 读取
src/api/index.yml
。 - 根据 API 定义生成 Python 服务器框架 (
td/modules/td_server/
)。此代码通过 WebServer DAT 在 TouchDesigner 内部运行。 - 需要安装并运行 Docker。
- 通过 Docker 使用
- Python 处理程序生成(
npm run gen:handlers
):- 使用自定义 Node.js 脚本(
td/genHandlers.js
)和 Mustache 模板(td/templates/
)。 - 读取生成的 Python 服务器代码或 OpenAPI 规范。
- 生成连接到
td/modules/mcp/controllers/generated_handlers.py
中的业务逻辑的处理程序实现(td/modules/mcp/services/api_service.py
)。
- 使用自定义 Node.js 脚本(
- TypeScript 客户端生成(
npm run gen:mcp
):- 使用
Orval
从openapi-generator-cli
捆绑的模式 YAML 生成 API 客户端代码和 Zod 模式以进行工具验证。 - 生成 Node.js 服务器使用的类型化 TypeScript 客户端(
src/tdClient/
)向 WebServer DAT 发出请求。
- 使用
构建过程( npm run build
)运行所有必要的生成步骤( npm run gen
),然后进行 TypeScript 编译( tsc
)。
贡献
欢迎您投稿!
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature
) - 进行更改
- 添加测试并确保一切正常(
npm test
) - 提交您的更改(
git commit -m 'Add some amazing feature'
) - 推送到你的分支(
git push origin feature/amazing-feature
) - 打开拉取请求
在进行实施变更时,请始终包含适当的测试。
执照
麻省理工学院
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
模型上下文协议服务器,使 AI 代理能够通过创建、修改和查询节点和项目结构来控制和操作 TouchDesigner 项目。
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that allows AI assistants to interact with Appwrite's API, providing tools to manage databases, users, functions, teams, and other resources within Appwrite projects.Last updated -8440PythonMIT License
- -security-license-qualityA Model Context Protocol server implementation that enables AI assistants to interact with Linear project management systems, allowing them to create, retrieve, and modify data related to issues, projects, teams, and users.Last updated -202TypeScript
- AsecurityFlicenseAqualityA Model Context Protocol server that enables AI agents to generate, fetch, and manage UI components through natural language interactions.Last updated -3194TypeScript
Plane MCP Serverofficial
AsecurityAlicenseAqualityA Model Context Protocol server that enables AI interfaces to seamlessly interact with Plane's project management system, allowing management of projects, issues, states, and other work items through a standardized API.Last updated -465524TypeScriptMIT License