TouchDesigner MCP
A Model Context Protocol server that enables AI agents to control and operate TouchDesigner projects through creation, modification, and querying of nodes and project structures.
README
TouchDesigner MCP
This is an implementation of an MCP (Model Context Protocol) server for TouchDesigner. The goal is to enable AI agents to control and operate TouchDesigner projects.
Overview
TouchDesigner MCP acts as a bridge between AI models and the TouchDesigner WebServer DAT, enabling AI agents to:
- Create, modify, and delete nodes
- Query node properties and project structure
- Programmatically control TouchDesigner via Python scripts
Usage
Requires Node.js to be installed
1. Install the touchdesigner-mcp-server package
mkdir some && cd ./some (If you need)
npm install touchdesigner-mcp-server
2. Connect to TouchDesigner
Place mcp_webserver_base.tox in TouchDesigner
Start TouchDesigner and import the td/mcp_webserver_base.tox component directly under your TouchDesigner project.
Example: Place it as /project1/mcp_webserver_base
Importing the tox will trigger the td/import_modules.py script, which loads modules such as API server controllers.

You can check boot logs by opening the Textport from the TouchDesigner menu.

3. Configure the TouchDesigner MCP Server
With TouchDesigner running, configure your AI agent (Claude Desktop, Cursor, VSCode CopilotChat, etc.) to connect to the MCP server.
Example: 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",
"transportType": "stdio"
}
}
}
On Windows system, please include the drive letter such as C: e.g. C:\\path\\to\\your\\node_modules\\touchdesigner-mcp-server\\dist\\index.js
If the MCP server is recognized, setup is complete. Restart the agent, if not recognized. If you see an error at startup, try launching the agent again after starting TouchDesigner. If the API server is running in TouchDesigner, the agent can use TouchDesigner via the provided tools.

MCP Server Features
This server enables operations on TouchDesigner via the Model Context Protocol (MCP) and provides references to various implementation documents.
Tools
Tools allow AI agents to perform actions in TouchDesigner.
| Tool Name | Description |
|---|---|
create_td_node |
Create a new node. |
delete_td_node |
Delete an existing node. |
exec_node_method |
Call a Python method on a node. |
execute_python_script |
Execute an arbitrary Python script in TD. |
get_td_class_details |
Get details of a TD Python class/module. |
get_td_classes |
Get a list of TouchDesigner Python classes. |
get_td_info |
Get information about the TD server environment. |
get_td_node_parameters |
Get parameters of a specific node. |
get_td_nodes |
Get nodes under a parent path (optionally filtered). |
update_td_node_parameters |
Update parameters of a specific node. |
Prompts
Prompts provide instructions for AI agents to perform specific actions in TouchDesigner.
| Prompt Name | Description |
|---|---|
Search node |
Fuzzy search for nodes and retrieve information based on name, family, type. |
Node connection |
Provide instructions to connect nodes within TouchDesigner. |
Check node errors |
Check errors for a specified node, recursively for child nodes if any. |
Resources
Not implemented
For Developers
Building the MCP Server Code
- Clone the repository
git clone https://github.com/8beeeaaat/touchdesigner-mcp.git
- Install dependencies
cd touchdesigner-mcp
npm install
- Set up environment file and build
# Copy the template and adjust TD_WEB_SERVER_URL as needed
cp dotenv .env
# Build the project (generates API client/server schemas and compiles MCP resources)
# Make sure the Docker daemon is running before executing this command
npm run build
TouchDesigner Setup
1. Code Generation:
Run npm run build to generate the following code:
- MCP server code
- API server code for TouchDesigner WebServer DAT
2. Import the WebServer for MCP server into TouchDesigner:
Start TouchDesigner and import the td/mcp_webserver_base.tox component directly under your project.
Importing the tox will trigger the td/import_modules.py script, which loads modules such as API server controllers.
3. Verify API server operation:
Ensure that the Python modules in the td/modules directory are accessible from the mcp_webserver_base component.
Run npm run test to execute unit and integration tests for the MCP server code and TouchDesigner connection.
You can check communication logs by opening the Textport from the TouchDesigner menu.
You can debug with @modelcontextprotocol/inspector using npm run dev.
TIPS
mcp_webserver_base.tox includes a WebServer DAT configured to link the MCP server and TouchDesigner.
Ensure this DAT is active and running on the port specified by TD_WEB_SERVER_URL in your .env file (default: 9981).
To change the port:
- Change
TD_WEB_SERVER_PORTin.env - Re-run
npm run build - Change the port in mcp_webserver_base (WebServer DAT) and restart the DAT
Connecting with MCP-compatible AI Agents
With TouchDesigner running, configure your AI agent (Cursor, Claude Desktop, VSCode CopilotChat, etc.) to connect to the MCP server.
Example: Claude Desktop
{
"mcpServers": {
"dev_touchdesigner": {
"args": [
"/path/to/your/touchdesigner-mcp/dist/index.js", // <-- Replace with the absolute path to /dist/index.js after build
"--stdio"
],
"command": "node",
"transportType": "stdio"
}
}
}
On Windows system, please include the drive letter such as C: e.g. C:\\path\\to\\your\\touchdesigner-mcp\\dist\\index.js
Project Structure After Setup
├── 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 Code Generation Workflow
This project uses OpenAPI-based code generation tools (Orval / openapi-generator-cli):
API Definition: The API contract between the Node.js MCP server and the Python server running inside TouchDesigner is defined in src/api/index.yml.
- Python server generation (
npm run gen:webserver):- Uses
openapi-generator-clivia Docker. - Reads
src/api/index.yml. - Generates a Python server skeleton (
td/modules/td_server/) based on the API definition. This code runs inside TouchDesigner via WebServer DAT. - Requires Docker to be installed and running.
- Uses
- Python handler generation (
npm run gen:handlers):- Uses a custom Node.js script (
td/genHandlers.js) and Mustache templates (td/templates/). - Reads the generated Python server code or OpenAPI spec.
- Generates handler implementations (
td/modules/mcp/controllers/generated_handlers.py) that connect to business logic intd/modules/mcp/services/api_service.py.
- Uses a custom Node.js script (
- TypeScript client generation (
npm run gen:mcp):- Uses
Orvalto generate API client code and Zod schemas for tool validation from the schema YAML bundled byopenapi-generator-cli. - Generates a typed TypeScript client (
src/tdClient/) used by the Node.js server to make requests to the WebServer DAT.
- Uses
The build process (npm run build) runs all necessary generation steps (npm run gen), followed by TypeScript compilation (tsc).
Contributing
We welcome your contributions!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests and ensure everything works (
npm test) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to your branch (
git push origin feature/amazing-feature) - Open a pull request
Please always include appropriate tests when making implementation changes.
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

