Skip to main content
Glama

TouchDesigner MCP

by 8beeeaaat
MIT License
29
40
  • Linux
  • Apple

TouchDesigner MCP

这是 TouchDesigner 的 MCP(模型上下文协议)服务器的实现。目标是使 AI 代理能够控制和操作 TouchDesigner 项目。

英语/日本语

概述

TouchDesigner MCP 充当 AI 模型和 TouchDesigner WebServer DAT 之间的桥梁,使 AI 代理能够:

  • 创建、修改和删除节点
  • 查询节点属性和项目结构
  • 通过 Python 脚本以编程方式控制 TouchDesigner

用法

需要安装 Docker 或 Node.js

1.克隆存储库:
git clone https://github.com/8beeeaaat/touchdesigner-mcp.git cd touchdesigner-mcp
2.设置环境文件并构建:

在构建 Docker 镜像之前,复制模板文件并根据需要调整 TD_WEB_SERVER_HOST 和 TD_WEB_SERVER_PORT。

cp dotenv .env make build
3. 在您的 TouchDesigner 项目中安装 API 服务器:

启动 TouchDesigner,并将td/mcp_webserver_base.tox组件直接导入到您想要控制的 TouchDesigner 项目下。例如:将其放置为/project1/mcp_webserver_base

导入 tox 将触发td/import_modules.py脚本,该脚本加载 API 服务器控制器等模块。

进口

您可以通过从 TouchDesigner 菜单打开 Textport 来检查启动日志。

进口

4. 启动 MCP 服务器容器
docker-compose up -d
5. 配置您的 AI 代理以使用 Docker 容器:

Claude Desktop 示例

{ "mcpServers": { "touchdesigner": { "command": "docker", "args": [ "compose", "-f", "/path/to/your/touchdesigner-mcp/docker-compose.yml", "exec", "-i", "touchdesigner-mcp-server", "node", "dist/index.js", "--stdio" ] } } }

在 Windows 系统上,包括驱动器号,如 C:,例如C:\\path\\to\\your\\touchdesigner-mcp\\docker-compose.yml

要直接从 Node.js 使用预构建的 JS:

1. 安装软件包
mkdir some && cd ./some # If you need a new directory npm install touchdesigner-mcp-server
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 示例

{ "mcpServers": { "touchdesigner": { "args": [ "/path/to/your/node_modules/touchdesigner-mcp-server/dist/index.js", // <-- Replace with the absolute path to node_modules/touchdesigner-mcp-server/dist/index.js "--stdio" ], "command": "node" } } }

在 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 服务器代码

  1. cp dotenv .env
  2. 调整.env文件中的TD_WEB_SERVER_HOSTTD_WEB_SERVER_PORT以匹配您的开发环境
  3. 运行make buildnpm run build重新生成代码

当您需要反映构建的代码时,请重新启动 MCP 服务器和 TouchDesigner。

验证 API 服务器

  • npm run test运行 MCP 服务器代码的单元测试,并与 TouchDesigner 进行集成测试。您可以通过从 TouchDesigner 菜单打开 Textport 来查看通信日志。
  • npm run dev启动@modelcontextprotocol/inspector 来调试各种功能。

项目结构概述

├── src/ # MCP server source code │ ├── api/ # OpenAPI spec for TD WebServer │ ├── core/ # Core utilities (logger, error handling) │ ├── features/ # MCP feature implementations │ │ ├── prompts/ # Prompt handlers │ │ ├── resources/ # Resource handlers │ │ └── tools/ # Tool handlers (e.g., tdTools.ts) │ ├── gen/ # Code generated from OpenAPI schema for MCP server │ ├── server/ # MCP server logic (connections, main server class) │ ├── tdClient/ # TD connection API client │ ├── index.ts # Main entry point for Node.js server │ └── ... ├── td/ # TouchDesigner related files │ ├── modules/ # Python modules for TouchDesigner │ │ ├── mcp/ # Core logic for handling MCP requests in TD │ │ │ ├── controllers/ # API request controllers (api_controller.py, generated_handlers.py) │ │ │ └── services/ # Business logic (api_service.py) │ │ ├── td_server/ # Python model code generated from OpenAPI schema │ │ └── utils/ # Shared Python utilities │ ├── templates/ # Mustache templates for Python code generation │ ├── genHandlers.js # Node.js script for generating generated_handlers.py │ ├── import_modules.py # Helper script to import API server modules into TD │ └── mcp_webserver_base.tox # Main TouchDesigner component ├── tests/ # Test code │ ├── integration/ │ └── unit/ ├── .env # Local environment variables (git ignored) ├── dotenv # Template for .env └── orval.config.ts # Orval config (TS client generation)

API 代码生成工作流程

本项目使用基于OpenAPI的代码生成工具(Orval/openapi-generator-cli):

API 定义: Node.js MCP 服务器和 TouchDesigner 内部运行的 Python 服务器之间的 API 契约在src/api/index.yml中定义。

  1. Python 服务器生成( npm run gen:webserver ):
    • 通过 Docker 使用openapi-generator-cli
    • 读取src/api/index.yml
    • 根据 API 定义生成 Python 服务器框架 ( td/modules/td_server/ )。此代码通过 WebServer DAT 在 TouchDesigner 内部运行。
    • 需要安装并运行 Docker。
  2. 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 )。
  3. TypeScript 客户端生成( npm run gen:mcp ):
    • 使用Orvalopenapi-generator-cli捆绑的模式 YAML 生成 API 客户端代码和 Zod 模式以进行工具验证。
    • 生成 Node.js 服务器使用的类型化 TypeScript 客户端( src/tdClient/ )向 WebServer DAT 发出请求。

构建过程( npm run build )运行所有必要的生成步骤( npm run gen ),然后进行 TypeScript 编译( tsc )。

贡献

欢迎您投稿!

  1. 分叉存储库
  2. 创建功能分支( git checkout -b feature/amazing-feature
  3. 进行更改
  4. 添加测试并确保一切正常( npm test
  5. 提交您的更改( git commit -m 'Add some amazing feature'
  6. 推送到你的分支( git push origin feature/amazing-feature
  7. 打开拉取请求

在进行实施变更时,请始终包含适当的测试。

执照

麻省理工学院

-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

模型上下文协议服务器,使 AI 代理能够通过创建、修改和查询节点和项目结构来控制和操作 TouchDesigner 项目。

  1. 概述
    1. 用法
      1. 1.克隆存储库:
      2. 2.设置环境文件并构建:
      3. 在您的 TouchDesigner 项目中安装 API 服务器:
      4. 启动 MCP 服务器容器
      5. 配置您的 AI 代理以使用 Docker 容器:
      6. 安装软件包
      7. 在您的 TouchDesigner 项目中安装 API 服务器:
      8. 3.配置您的AI代理:
      9. 3.验证连接
    2. MCP 服务器功能
      1. 工具
      2. 提示
      3. 资源
    3. 对于开发人员
      1. 构建客户端和 API 服务器代码
      2. 验证 API 服务器
      3. 项目结构概述
      4. API 代码生成工作流程
    4. 贡献
      1. 执照

        Related MCP Servers

        • A
          security
          A
          license
          A
          quality
          A 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 -
          84
          40
          Python
          MIT License
          • Linux
          • Apple
        • -
          security
          -
          license
          -
          quality
          A 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 -
          20
          2
          TypeScript
        • A
          security
          F
          license
          A
          quality
          A Model Context Protocol server that enables AI agents to generate, fetch, and manage UI components through natural language interactions.
          Last updated -
          3
          19
          4
          TypeScript
        • A
          security
          A
          license
          A
          quality
          A 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 -
          46
          55
          24
          TypeScript
          MIT License

        View all related MCP servers

        MCP directory API

        We provide all the information about MCP servers via our MCP API.

        curl -X GET 'https://glama.ai/api/mcp/v1/servers/8beeeaaat/touchdesigner-mcp'

        If you have feedback or need assistance with the MCP directory API, please join our Discord server