/ ディレクトリ / プレイグラウンド / TouchDesigner MCP
● コミュニティ 8beeeaaat 🔑 自分のキーが必要

TouchDesigner MCP

作者 8beeeaaat · 8beeeaaat/touchdesigner-mcp

AI ネイティブの TouchDesigner コントロール - エージェントはノードを作成し、パラメータを調整し、Python を実行し、ローカル WebServer DAT ブリッジを通じてエラーを読み取ります。

touchdesigner-mcp を使用すると、エージェントは MCP 経由で実行中の TouchDesigner プロジェクトを操作できます。 12 個のツールは、ノードのリスト/作成/削除、パラメーターの設定、TouchDesigner での任意の Python の実行、環境のイントロスペクト (クラス カタログ、ノード エラー、モジュール ヘルプ) などの基本事項をカバーしています。 TouchDesigner 内の WebServer DAT (mcp_webserver_base.tox から、API ≥1.3.0) はポート 9981 で待機します。 MCP サーバーは HTTP 経由で通信します。 TouchDesigner 内に AI ペア プログラマーを必要とするモーション デザイナー、ライブ ビジュアル アーティスト、インスタレーション エンジニアを対象としています。

なぜ使うのか

主な機能

ライブデモ

実際の動作

touchdesigner-mcp.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "touchdesigner-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "touchdesigner-mcp-server"
      ],
      "env": {
        "TD_WEBSERVER_HOST": "127.0.0.1",
        "TD_WEBSERVER_PORT": "9981"
      }
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "touchdesigner-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "touchdesigner-mcp-server"
      ],
      "env": {
        "TD_WEBSERVER_HOST": "127.0.0.1",
        "TD_WEBSERVER_PORT": "9981"
      }
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "touchdesigner-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "touchdesigner-mcp-server"
      ],
      "env": {
        "TD_WEBSERVER_HOST": "127.0.0.1",
        "TD_WEBSERVER_PORT": "9981"
      }
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "touchdesigner-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "touchdesigner-mcp-server"
      ],
      "env": {
        "TD_WEBSERVER_HOST": "127.0.0.1",
        "TD_WEBSERVER_PORT": "9981"
      }
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "touchdesigner-mcp",
      "command": "npx",
      "args": [
        "-y",
        "touchdesigner-mcp-server"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "touchdesigner-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "touchdesigner-mcp-server"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add touchdesigner-mcp -- npx -y touchdesigner-mcp-server

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: TouchDesigner MCP

ブリーフからスターター TouchDesigner パッチをスキャフォールディングする

👤 モーションデザイナーとビジュアルエンジニアによるプロトタイピング ⏱ ~30 min intermediate

使うタイミング: 新しいパッチを開始していて、手動で調整する前にスケルトンを所定の位置に配置したいと考えています。

前提条件
  • mcp_webserver_base.tox がロードされた状態で実行されている TouchDesigner — tox をダウンロードし、プロジェクトにドロップし、ポート 9981 を設定します。
  • API バージョン ≥ 1.3.0 — TouchDesignerのバージョンを確認する
フロー
  1. パッチの説明
    生成的なビジュアル パッチの足場を構築します: オーディオ反応性パーティクル (ノイズ → インスタンス化)、後処理ブルーム、1080p 出力。✓ コピーしました
    → エージェントは指定された演算子を使用してコヒーレントなノード グラフを作成します
  2. エラーを修正する
    TD エラーを報告し、修正します。✓ コピーしました
    → get_td_node_errors を使用し、パラメータを修正し、反復します

結果: 最初からドラッグするのではなく、調整して機能するスターター パッチ。

注意点
  • エージェントが存在しない演算子を発明する — 最初に get_td_classes を呼び出し、実際のクラス名を使用するようにします。
組み合わせ: filesystem

パラメーターをスイープし、視覚的な出力を比較する

👤 アーティストがルックスをチューニング ⏱ ~20 min intermediate

使うタイミング: TD UI をクリックせずにパラメータ範囲を探索したいと考えています。

フロー
  1. スイープについて説明する
    ノイズ 1 では、掃引周期 = 0.2、0.5、1.0、2.0、高調波 = 1、2、4。 renderpick1 を介してそれぞれのスナップショットを取得します。✓ コピーしました
    → スナップショットの保存には update_td_node_parameters とexecute_python_scriptを使用します
  2. 勝者に名前を付けてください
    私は周期=1.0倍音=2が好きでした。 プロジェクトを適用して保存します。✓ コピーしました
    → パラメータ設定、Python exec経由でプロジェクト保存

結果: 反復の高速化。 退屈な組み合わせのクリック作業はなくなりました。

注意点
  • 長い Python スクリプトが TD のメインスレッドをブロックする — 短い実行呼び出しに分割するか、実行 DAT 内で実行します。

エージェントに質問して TouchDesigner の Python API を学習する

👤 TouchDesigner の Python を初めて使用するデザイナー ⏱ ~10 min beginner

使うタイミング: スクリプト CHOP/DAT を作成していて、どのメソッドを呼び出すかを知る必要があります。

フロー
  1. クラスを尋ねる
    歩く子供たちのクラス「Op」にはどのようなメソッドがありますか?✓ コピーしました
    → エージェントは get_td_class_details を呼び出し、実際のメソッドを返します
  2. 実行可能な例を見る
    すべての子孫のパスを記録する短い Python スニペットを表示します。✓ コピーしました
    → スニペットは架空のメソッドではなく実際の API を使用します

結果: ライブ TouchDesigner インスタンスに基づいた正確な Python サンプル。

組み合わせ

他のMCPと組み合わせて10倍の力を

touchdesigner-mcp + filesystem

スナップショット/レンダリングをディスクに保存し、次のターンで参照します

各パラメータを設定した後、renderpick1 経由で PNG を ~/td-snapshots/ に保存し、マニフェストを読み込みます。✓ コピーしました
touchdesigner-mcp + xcodebuild

macOS キオスク用のレンダリングとパッケージ化

xcodebuild を介して出力とパッケージを macOS アプリ バンドルとしてレンダリングします。✓ コピーしました
touchdesigner-mcp + filesystem

プロジェクトの状態を git 追跡可能な .toe エクスポートとしてアーカイブする

現在のプロジェクトを .toe としてエクスポートし、コミットします。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
create_td_node parent_path, type, name? 新しい演算子を追加する 0
delete_td_node path オペレータを削除する 0
update_td_node_parameters path, params map ノードに 1 つまたは複数のパラメータを設定します 0
get_td_nodes filter? フィルターに一致するノードを列挙する 0
get_td_node_parameters path 現在のパラメータ値を読み取る 0
get_td_node_errors (none) 現在のプロジェクトの問題を見つけて修正する 0
execute_python_script script: str 他のツールでカバーできない部分のための避難ハッチ 0
exec_node_method path, method, args ノード上で特定のメソッドを呼び出します (例: .cook()) 0
get_td_classes (none) 選択可能なクラスをリストする 0
get_td_class_details class_name 実際の API サーフェスで Python の提案を実行する 0
get_module_help module_name モジュールのドキュメント文字列を取得する 0
get_td_info (none) TDのバージョンとサーバーの状態を確認する 0

コストと制限

運用コスト

APIクォータ
なし
呼び出しあたりのトークン
小: ノード パス + 小さなパラメータ マップ
金額
無料; TouchDesigner ライセンスが適用されます
ヒント
多くの単一パラメータ呼び出しではなく、マップを使用した update_td_node_parameters を優先します。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: 資格情報がありません
データ送信先: HTTP から 127.0.0.1:<ポート>。 WebServer DAT をパブリック ネットワークに公開しないでください。

トラブルシューティング

よくあるエラーと対処法

承認済み 127.0.0.1:9981

TouchDesigner が実行されていないか、WebServer DAT がアクティブではありません。 tox を開いてアクティブであることを確認します。

確認: In TD console: op('mcpwebserver').par.active.eval()
APIのバージョンが低すぎます

TouchDesigner を API が 1.3.0 以上のビルドにアップグレードします。

確認: Help → About TouchDesigner
Python の実行がサイレントに失敗する

トレースバックの TD テキストポートを確認します。 一部の操作は、ビューアに接続されている場合にのみクックされます。

確認: Alt-T opens the textport

代替案

TouchDesigner MCP 他との比較

代替案代わりに使う場面トレードオフ
unrealTouchDesigner パッチではなく、Unreal Engine シーンを操作していますランタイムが異なります。 異なる DCC
unityUnity はあなたのターゲットエンジンです全く異なるDCC
godot-mcp-pro-2ゴドーはあなたのエンジンです異なる DCC

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る