タッチデザイナー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 -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
- -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 -2PythonMIT License