|
1 | 1 | # Tools Reference |
2 | 2 |
|
3 | | -Envoy exposes 40+ MCP tools for interacting with TouchDesigner. All tools use the standard MCP protocol and can be called by any compatible client. |
| 3 | +Envoy exposes 46 MCP tools for interacting with TouchDesigner. All tools use the standard MCP protocol and can be called by any compatible client. |
4 | 4 |
|
5 | 5 | ## Operator Management |
6 | 6 |
|
@@ -42,6 +42,7 @@ Envoy exposes 40+ MCP tools for interacting with TouchDesigner. All tools use th |
42 | 42 | | Tool | Parameters | Description | |
43 | 43 | |------|-----------|-------------| |
44 | 44 | | `get_op_position` | `op_path` | Get operator position, size, color, and comment | |
| 45 | +| `get_network_layout` | `comp_path`, `include_annotations?` | Get positions of ALL operators (and annotations) in a COMP in one call. Returns bounding_box. Use instead of repeated `get_op_position` calls | |
45 | 46 | | `set_op_position` | `op_path`, `x?`, `y?`, `width?`, `height?`, `color?`, `comment?` | Set operator position, size, color (`[r,g,b]` floats 0-1), or comment | |
46 | 47 | | `layout_children` | `op_path` | Auto-layout all children in a COMP | |
47 | 48 |
|
@@ -133,6 +134,29 @@ These tools run locally on the STDIO bridge script, not inside TouchDesigner. Th |
133 | 134 | !!! info "Bridge architecture" |
134 | 135 | Claude Code connects to Envoy via a STDIO bridge script (`.claude/envoy-bridge.py`). The bridge translates between Claude Code's STDIO transport and Envoy's HTTP endpoint. It handles MCP protocol handshake locally when TD is down, so these meta-tools are always available. See [Architecture](architecture.md) for details. |
135 | 136 |
|
| 137 | +## Batch Operations |
| 138 | + |
| 139 | +| Tool | Parameters | Description | |
| 140 | +|------|-----------|-------------| |
| 141 | +| `batch_operations` | `operations` | Execute multiple operations in a single request. Reduces latency and token overhead | |
| 142 | + |
| 143 | +`operations` is a list of `{"tool": str, "params": dict}` objects. Each entry maps to an existing tool name and its parameters. Stops on first error. |
| 144 | + |
| 145 | +**When to use**: 3+ calls to the same tool type (positioning, connecting, parameter setting, flags). Use `execute_python` instead when you need conditionals, loops, or computed values between operations. |
| 146 | + |
| 147 | +**Example** — position 4 operators + connect them in one call: |
| 148 | +```json |
| 149 | +{"operations": [ |
| 150 | + {"tool": "set_op_position", "params": {"op_path": "/project1/noise1", "x": 400, "y": 0}}, |
| 151 | + {"tool": "set_op_position", "params": {"op_path": "/project1/comp1", "x": 800, "y": 0}}, |
| 152 | + {"tool": "set_op_position", "params": {"op_path": "/project1/level1", "x": 1200, "y": 0}}, |
| 153 | + {"tool": "set_op_position", "params": {"op_path": "/project1/null1", "x": 1600, "y": 0}}, |
| 154 | + {"tool": "connect_ops", "params": {"source_path": "/project1/noise1", "dest_path": "/project1/comp1"}}, |
| 155 | + {"tool": "connect_ops", "params": {"source_path": "/project1/comp1", "dest_path": "/project1/level1"}}, |
| 156 | + {"tool": "connect_ops", "params": {"source_path": "/project1/level1", "dest_path": "/project1/null1"}} |
| 157 | +]} |
| 158 | +``` |
| 159 | + |
136 | 160 | ## MCP Prompts |
137 | 161 |
|
138 | 162 | | Prompt | Parameters | Description | |
|
0 commit comments