タッチデザイナーMCP
これはTouchDesigner用のMCP(Model Context Protocol)サーバーの実装です。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を起動し、制御したいTouchDesignerプロジェクトの直下にtd/mcp_webserver_base.tox
コンポーネントをインポートします。例: /project1/mcp_webserver_base
に配置します。
tox をインポートすると、API サーバー コントローラーなどのモジュールをロードするtd/import_modules.py
スクリプトがトリガーされます。
TouchDesigner メニューから Textport を開くと、ブート ログを確認できます。
4. MCPサーバーコンテナを起動する
5. Docker コンテナを使用するように AI エージェントを構成します。
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を起動してからエージェントを再起動してください。TouchDesignerでAPIサーバーが正常に動作していれば、エージェントは提供されているツールを使用して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/services/api_service.py``td/modules/mcp/controllers/generated_handlers.py
) を生成します。
- カスタム Node.js スクリプト (
- TypeScript クライアントの生成 (
npm run gen:mcp
):Orval
を使用して、openapi-generator-cli
によってバンドルされたスキーマ YAML から、ツール検証用の API クライアント コードと Zod スキーマを生成します。- Node.js サーバーが WebServer DAT にリクエストを行うために使用する、型指定された TypeScript クライアント (
src/tdClient/
) を生成します。
ビルド プロセス ( 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 -8448PythonMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that enables AI agents to generate, fetch, and manage UI components through natural language interactions.Last updated -36804TypeScript
- -securityAlicense-qualityA Model Context Protocol server that enables AI agents to control and automate Android devices through natural language, supporting actions like app management, UI interactions, and device monitoring.Last updated -16PythonMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server providing AI assistants with comprehensive project, task, and subtask management capabilities with project-specific storage.Last updated -2910850TypeScriptMIT License