Skip to main content
Glama

Create a RayTK operator (ROP)

create_raytk_op

Copy RayTK operator masters into a network, wire existing ops into typed inputs, and resolve paths live from the installed toolkit.

Instructions

Copy a RayTK ROP master (SDF / camera / light / combine / material / render) into a network and optionally wire an existing op into one of its typed inputs, using the same COMP.copy primitive RayTK's own palette uses. Resolves the install-dependent master path live (RayTK's pathsByOpType lookup, or a category-folder search) — never hardcoded — so it requires the RayTK toolkit staged + loaded first (see manage_packages / the tdmcp://raytk/operators catalog). Complementary to the GLSL create_raymarch_scene: this instances RayTK's own operators instead of authoring a shader.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoOptional node name for the new ROP. If omitted, TouchDesigner auto-uniques from the master name.
node_xNonodeCenterX placement of the new ROP. Omit to auto-place to the right of existing siblings (avoids stacking repeated ops at the origin).
node_yNonodeCenterY placement of the new ROP. Omit to auto-place (defaults to 0).
op_typeYesRayTK operator name = the .tox master, e.g. 'sphereSdf', 'raymarchRender3D', 'lookAtCamera', 'pointLight', 'simpleUnion'. See the tdmcp://raytk/operators catalog resource.
categoryNoOptional RayTK category folder hint to speed master resolution, e.g. 'sdf','output','camera','light','combine','material','filter'. Optional because resolution also works by op_type alone.
input_indexNo0-based input connector index of the NEW op that connect_from wires into (matches TouchDesigner inputConnectors[]). For raymarchRender3D: 0=scene, 1=camera, 2=light.
parent_pathNoPath of the parent COMP the new ROP is copied into./project1
connect_fromNoOptional path of an existing operator to wire INTO this new op's input (source → new op). Omit for no wire; must be a non-empty path when present.
library_pathNoOptional explicit path to the loaded RayTK library COMP (advanced). If omitted, the bridge probes for it — the runtime master path is install-dependent and must be read live, never hardcoded.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, so the agent knows this is a mutation. The description adds valuable behavioral context: it uses COMP.copy, resolves the install-dependent master path live (never hardcoded), and discloses that the toolkit must be loaded first. This goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences and dense with useful information. It front-loads the core action ('Copy a RayTK ROP master...') and then adds prerequisites and differentiation. It is slightly lengthier than the simplest examples but each clause serves a purpose—no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 9 parameters and no output schema, the description covers essential context: the copy mechanism, path resolution strategy, required setup, and relationship to a sibling tool. It does not explain return values, but with no output schema and a simple creation action, the main missing piece would be what the tool returns—yet this is likely inferable. Overall it is complete enough for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description reinforces op_type semantics with examples ('sphereSdf', 'raymarchRender3D') and explains input_index for raymarchRender3D, but these details are already present in the schema. The description adds marginal value beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: copying a RayTK ROP master into a network and optionally wiring an existing op into a typed input. It names the specific master categories (SDF / camera / light / combine / material / render) and explicitly contrasts itself with the sibling tool create_raymarch_scene, making its unique role unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: it requires the RayTK toolkit to be staged and loaded, points to manage_packages and the tdmcp://raytk/operators catalog for prerequisites, and clearly distinguishes when to use this tool versus create_raymarch_scene ('this instances RayTK's own operators instead of authoring a shader'). This gives the agent clear decision criteria for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/lucasmaher-hash/touch-designer-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server