Skip to main content
Glama

TouchDesigner MCP

by 8beeeaaat
MIT License
215
26
  • Linux
  • Apple

TouchDesigner МКП

Это реализация сервера MCP (Model Context Protocol) для TouchDesigner. Цель — позволить агентам ИИ контролировать и управлять проектами TouchDesigner.

Английский /日本語

Обзор

TouchDesigner MCP выступает в качестве моста между моделями ИИ и TouchDesigner WebServer DAT, позволяя агентам ИИ:

  • Создание, изменение и удаление узлов
  • Запрос свойств узла и структуры проекта
  • Программное управление TouchDesigner с помощью скриптов Python

Использование

Требуется установка Docker или Node.js

1. Клонируйте репозиторий:
git clone https://github.com/8beeeaaat/touchdesigner-mcp.git cd touchdesigner-mcp
2. Настройте файл среды и выполните сборку:

Скопируйте файл шаблона и при необходимости настройте TD_WEB_SERVER_HOST и TD_WEB_SERVER_PORT перед созданием образа Docker.

cp dotenv .env make build
3. Установите API-сервер в свой проект TouchDesigner:

Запустите TouchDesigner и импортируйте компонент td/mcp_webserver_base.tox непосредственно в проект TouchDesigner, которым вы хотите управлять. Пример: поместите его как /project1/mcp_webserver_base

Импорт tox запустит скрипт td/import_modules.py , который загружает модули, такие как контроллеры сервера API.

импорт

Вы можете проверить журналы загрузки, открыв Textport из меню TouchDesigner.

импорт

4. Запустите контейнер сервера MCP.
docker-compose up -d
5. Настройте свой ИИ-агент для использования контейнера 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

Чтобы использовать готовый JS-код непосредственно из Node.js:

1. Установить пакет
mkdir some && cd ./some # If you need a new directory npm install touchdesigner-mcp-server
2. Установите API-сервер в свой проект TouchDesigner:

Запустите 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.

импорт

Вы можете проверить журналы загрузки, открыв Textport из меню TouchDesigner.

импорт

3. Настройте своего ИИ-агента:

Пример для 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

Этот сервер позволяет выполнять операции на TouchDesigner через протокол контекста модели (MCP) и предоставляет ссылки на различные документы по реализации.

Инструменты

Инструменты позволяют агентам ИИ выполнять действия в TouchDesigner.

Название инструментаОписание
create_td_nodeСоздайте новый узел.
delete_td_nodeУдалить существующий узел.
exec_node_methodВызов метода Python на узле.
execute_python_scriptВыполнить произвольный скрипт Python в TD.
get_td_class_detailsПолучите подробную информацию о классе/модуле TD Python.
get_td_classesПолучите список классов Python TouchDesigner.
get_td_infoПолучите информацию о среде сервера TD.
get_td_node_parametersПолучить параметры определенного узла.
get_td_nodesПолучить узлы по родительскому пути (опционально с фильтрацией).
update_td_node_parametersОбновить параметры определенного узла.

Подсказки

Подсказки предоставляют инструкции агентам ИИ по выполнению определенных действий в TouchDesigner.

Имя подсказкиОписание
Search nodeНечеткий поиск узлов и извлечение информации по имени, семейству, типу.
Node connectionПредоставьте инструкции по подключению узлов в TouchDesigner.
Check node errorsПроверить ошибки для указанного узла, рекурсивно для дочерних узлов, если таковые имеются.

Ресурсы

Не реализовано

Для разработчиков

Создание клиентского и серверного кода API

  1. cp dotenv .env
  2. Настройте TD_WEB_SERVER_HOST и TD_WEB_SERVER_PORT в файле .env в соответствии с вашей средой разработки.
  3. Запустите make build или npm run build для повторной генерации кода.

Если вам необходимо отразить построенный код, перезапустите сервер MCP и TouchDesigner.

Проверка API-сервера

  • npm run test Запуск модульных тестов для кода сервера MCP и интеграционных тестов с TouchDesigner. Вы можете проверить журналы связи, открыв Textport из меню TouchDesigner.
  • 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: контракт API между сервером Node.js MCP и сервером Python, работающим внутри TouchDesigner, определен в src/api/index.yml .

  1. Генерация сервера Python ( npm run gen:webserver ):
    • Использует openapi-generator-cli через Docker.
    • Читает src/api/index.yml .
    • Генерирует скелет сервера Python ( td/modules/td_server/ ) на основе определения API. Этот код выполняется внутри TouchDesigner через WebServer DAT.
    • Требуется установленный и запущенный 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 ):
    • Использует Orval для генерации клиентского кода API и схем Zod для проверки инструментов из схемы YAML, объединенной с openapi-generator-cli .
    • Генерирует типизированный клиент TypeScript ( src/tdClient/ ), используемый сервером Node.js для выполнения запросов к 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.

Сервер протокола контекста модели, который позволяет агентам ИИ контролировать и управлять проектами TouchDesigner посредством создания, изменения и запроса узлов и структур проекта.

  1. Обзор
    1. Использование
      1. Клонируйте репозиторий:
      2. Настройте файл среды и выполните сборку:
      3. Установите API-сервер в свой проект TouchDesigner:
      4. Запустите контейнер сервера MCP.
      5. Настройте свой ИИ-агент для использования контейнера Docker:
      6. Установить пакет
      7. Установите API-сервер в свой проект TouchDesigner:
      8. Настройте своего ИИ-агента:
      9. Проверка соединения
    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
          39
          Python
          MIT License
          • Linux
          • Apple
        • -
          security
          A
          license
          -
          quality
          A Model Context Protocol server that enables AI agents to interact with ClickUp workspaces, allowing task creation, management, and workspace organization through natural language commands.
          Last updated -
          343
          MIT License
        • -
          security
          A
          license
          -
          quality
          A Model Context Protocol server that enables AI assistants to interact with Fingertip's site management capabilities, allowing them to list, view details of, and create websites.
          Last updated -
          1
          TypeScript
          MIT License
        • -
          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

        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