Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_operatorB

Get comprehensive details about a specific TouchDesigner operator. Optionally pass a TouchDesigner version to see compatibility notes for that release.

search_operatorsA

Search for operators using advanced contextual analysis and ranking. Supports multi-term queries, category/subcategory filtering, parameter search, typo tolerance, search type selection (exact/fuzzy/tag), and optional TouchDesigner version compatibility filtering.

suggest_workflowA

Get workflow suggestions for what operators commonly follow the current operator. Returns connection port instructions (e.g., 'output 0 -> input 0'), complexity rating (simple/medium/complex), estimated node count for the full workflow, and minimum TD version required.

list_operatorsC

List available TouchDesigner operators with contextual grouping

get_tutorialB

Get detailed content from a TouchDesigner tutorial

list_tutorialsB

List available TouchDesigner tutorials with summaries

get_python_apiA

Get documentation for a TouchDesigner Python class. Optionally filter to show only API available in a specific TD version.

search_python_apiA

Search across TouchDesigner Python classes, methods, and members. Optionally filter by TouchDesigner version to see only API available in that release.

search_tutorialsC

Search through TouchDesigner tutorials by keyword, topic, or content

get_operator_examplesB

Get Python code examples, expressions, and usage patterns for a specific TouchDesigner operator

list_python_classesA

List all available TouchDesigner Python API classes, optionally filtered by category

compare_operatorsB

Compare two TouchDesigner operators side by side - parameters, categories, and use cases

get_version_infoA

Get detailed information about a specific TouchDesigner version including Python version, new operators, key features, and API changes.

list_versionsB

List all supported TouchDesigner versions with Python versions, support status, and key feature highlights for each release.

get_experimental_techniquesA

Browse TouchDesigner experimental techniques by category. Categories: glsl, gpu-compute, machine-learning, generative-systems, audio-visual, networking, python-advanced. Returns technique descriptions, code snippets, operator chains, and setup notes.

search_experimentalB

Search across all TouchDesigner experimental technique categories. Finds techniques by keyword, operator name, tag, or code pattern across GLSL, GPU compute, machine learning, generative systems, audio-visual, networking, and advanced Python.

get_glsl_patternA

Retrieve specific GLSL shader patterns or GPU technique code snippets with full code ready to paste into a TouchDesigner GLSL TOP. Also provides common GLSL utility libraries. Use 'list' to see all available patterns.

get_operator_connectionsA

Returns the typical upstream inputs, downstream outputs, and common operator chains for a named TouchDesigner operator. Includes connection port instructions (e.g., 'A output 0 -> B input 0') so you know exactly how to wire nodes together.

get_network_templateA

Returns a full TouchDesigner network template for a common use case. Each template includes the operator list, wire connections with port numbers, parameter settings, ready-to-paste Python scripts, and setup tips. Available templates: video-player, generative-art, audio-reactive, data-visualization, live-performance.

get_experimental_buildA

Returns information about a TouchDesigner experimental/beta build series. Experimental builds are pre-release tracks that contain new features not yet available in stable releases. You can request a specific series ID (e.g. '2025.30000') or omit the parameter to get the latest experimental series. Response includes: new features, experimental operators, breaking changes versus the stable baseline, and Python API additions.

list_experimental_buildsA

Lists recent TouchDesigner experimental/beta build series grouped by feature area. Feature areas: rendering, Python API, operators, UI, networking. Each entry shows the series ID, build range, stability status, and headline features. Use get_experimental_build with a series_id for full details on any individual series.

td_statusA

Check whether the live-control TouchDesigner bridge is reachable and the configured token is accepted. Returns a short status report, or an install/setup hint when the bridge cannot be reached. Reads connection settings from TD_MCP_HOST, TD_MCP_PORT and TD_MCP_TOKEN.

td_create_operatorA

Create a new operator inside a parent COMP in a running TouchDesigner instance (live control via the td_mcp bridge). Wraps the documented COMP.create(opType, name) call. op_type may be a create token like 'noiseTOP' or a display name like 'Noise TOP' (resolved via the operator map). Defaults to creating inside the '/td_mcp/sandbox' COMP.

td_set_parameterA

Set a parameter on an operator in a running TouchDesigner instance (live control via the td_mcp bridge). Drives the documented op.par.NAME.val (value), op.par.NAME.expr (expr) and op.par.NAME.pulse() members. parameter may be a documented label (e.g. 'Period') or an exact parameter name (e.g. 'period'); labels are resolved via the operator map. Provide exactly one of value, expr, or pulse.

td_connectA

Connect one operator's output to another operator's input in a running TouchDesigner instance (live control via the td_mcp bridge). Wraps the documented Connector.connect() call (op(to).inputConnectors[toIn].connect(op(from).outputConnectors[fromOut])).

td_deleteA

Delete (destroy) an operator in a running TouchDesigner instance (live control via the td_mcp bridge). Wraps the documented op.destroy() call. This permanently removes the operator and any of its children. Target a path inside '/td_mcp/sandbox' to stay within the safe work area.

td_list_networkA

List the operators inside a TouchDesigner network (a parent COMP). Returns each child's path, type, node position, input/output counts and error counts. Defaults to the live-control sandbox COMP (/td_mcp/sandbox). Requires the TouchDesigner bridge to be running (see td_status).

td_clearA

Delete every operator inside the live-control sandbox COMP. Only clears operators within the sandbox (default /td_mcp/sandbox) — it will not touch the rest of your TouchDesigner project. Requires the TouchDesigner bridge to be running (see td_status).

td_layoutA

Auto-arrange the operators inside a TouchDesigner network so the node graph is tidy and readable. Operates on the sandbox COMP by default (/td_mcp/sandbox). Requires the TouchDesigner bridge to be running (see td_status).

td_get_errorsA

Read cook errors, warnings, and script errors from an operator in a running TouchDesigner instance (live control via the td_mcp bridge). Returns the documented op.errors()/op.warnings()/op.scriptErrors() output. Use this to diagnose why a node is not cooking after a build/edit.

td_set_resolutionA

Set the output resolution (width x height in pixels) of a TOP in a running TouchDesigner instance (live control via the td_mcp bridge). Targets a TOP's documented resolution parameters.

td_renderA

Render the current frame of a TOP in a running TouchDesigner instance and return the image so the assistant can see the result (live control via the td_mcp bridge). Uses the documented TOP.saveByteArray() call. Use this after building/editing a network to visually verify the output.

td_sampleA

Sample a single value from an operator in a running TouchDesigner instance (live control via the td_mcp bridge). kind='chop_channel' reads a CHOP channel via CHOP.chan(name); kind='top_pixel' reads a pixel via TOP.sample(u, v). Use this to verify concrete output values without rendering a full frame.

td_build_templateA

COMPILE a named TouchDesigner network template into a running TouchDesigner instance via the td_mcp bridge: it creates every operator, sets the template parameters, wires the connections (port-level), and lays out the network. Templates: video-player, generative-art, audio-reactive, data-visualization, live-performance (aliases like 'feedback loop', 'vj', 'data viz' accepted). Builds into the sandbox COMP by default (/td_mcp/sandbox). STRICT: if any operator type or parameter name cannot be resolved against the operator map, it fails and lists what is missing instead of guessing. Requires the bridge to be running (see td_status).

td_build_patternA

COMPILE a linear workflow pattern from data/patterns.json into a running TouchDesigner instance via the td_mcp bridge. It creates each operator in the pattern's workflow order and wires them as a STRAIGHT CHAIN (each op's output 0 into the next op's input 0), then lays out the network. LIMITATION: this only builds LINEAR SINGLE-INPUT chains — patterns.json carries no port/branch data, so multi-input nodes (Composite, Switch, Merge, Render, etc.) are NOT branch-wired; use td_build_template for branched networks. Builds into the sandbox COMP by default (/td_mcp/sandbox). STRICT: hard-errors if any operator name has no createType in the operator map. Requires the bridge (see td_status).

td_build_glslA

COMPILE a GLSL shader technique from the experimental GLSL knowledge base into a running TouchDesigner instance via the td_mcp bridge. For a SUPPORTED technique (its setup block has machine-readable operators + uniforms) it creates a Text DAT with the shader, a GLSL TOP pointed at that DAT, declares the uniforms, creates supporting operators and lays out. For an UNSUPPORTED technique (multi-pass/feedback systems needing hand wiring) it returns the shader code plus an explanation and does NOT fabricate connections. Builds into the sandbox COMP by default (/td_mcp/sandbox). Use technique:'list' to enumerate. Requires the bridge (see td_status).

td_run_pythonA

Run ARBITRARY Python code inside a running TouchDesigner instance via the td_mcp bridge. WARNING: this is arbitrary code execution with full access to the TouchDesigner project and the host Python environment. It is DISABLED BY DEFAULT and only succeeds when the bridge's "Allow Python" flag is explicitly turned on; otherwise the bridge rejects the request. Prefer the structured live-control tools (td_build_template, td_set_parameter, td_connect, td_list_network, ...) for normal operations and only use this for ad-hoc Python that those cannot express. Returns stdout / the returned value plus any errors, warnings and scriptErrors from the bridge.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/bottobot/touchdesigner-mcp-server'

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