Skip to main content
Glama

TouchDesigner MCP Server

npm version License: MIT

A powerful Model Context Protocol (MCP) server that brings comprehensive TouchDesigner operator documentation, Python API references, and tutorials directly to your AI coding assistant.

I personally use it with VS Code/Codium and the Roo Code Extension alongside my favorite LLMs like Claude Opus and GPT-5. While the server should theoretically work with other applications like Docker or Claude Desktop, I haven't thoroughly tested those integrations yet.

The Story So Far: The catalyst for this project was simple -- A few months ago I decided I wanted an AI tool that could develop visuals in TouchDesigner for me. I've been making some basic things in TD for awhile but it has one of the steepest learning curves of any creative software I've ever used. How nice would it be just to ask an LLM "Please make a 720p, animated in realtime, constantly evolving, reaction diffusion simulation in TouchDesigner." and then just have it spit one out? Super duper nice is the answer in my opinion.

Like every project I undertake where I know very little, I thought it would be pretty straight forward! LOL! When I started I had no idea just how much time and tokens I would end up sinking into this one. And I still have a ways to go before I consider it complete with full integration into TouchDesigner itself and very little margin of error.

However as far as querying information about operators and their parameters goes -- it works pretty darn well! The major challenge I face with getting any LLM to use this tool effectively for developing networks with real complexity is that the models tend to forget to use the MCP server and fall back on their outdated trained knowledge of much older TouchDesigner versions. If anyone has suggestions on how to overcome this particular wrinkle, I'd absolutely love to hear your feedback!

How to Use It (My Current Workflow)

Right now, I'm focused on ensuring the server returns useful and accurate Python API information. Here's my workflow: I describe the network I want to create -- for example, a reaction diffusion visualization -- and then ask the AI to write a Python script that generates the network inside TouchDesigner using the textport. Once that's complete, I get an 'exec' command that lets me copy and paste just one line into the textport, and voila -- a network is generated!

My ultimate dream, however, is full integration directly into TouchDesigner itself. I experimented with a web server and WebSocket approach, which sort of worked, but since the LLMs I was testing weren't generating correct Python code and kept hallucinating information while not utilizing the MCP server to its fullest potential, I've temporarily shelved this part of the project. Once it's working reliably and generating solid visualizations or networks, then full integration will be the final step!

Related MCP server: TouchDesigner MCP Server

Features

  • 661 TouchDesigner Operators - Comprehensive documentation including 102 POP (Point Operator) entries

  • 14 Interactive Tutorials - Comprehensive TouchDesigner learning guides

  • 214 Python API Classes - Full Python scripting documentation with 1,674+ methods

  • 21 MCP Tools - Across five functional groups: operator reference, tutorials, Python API, version system, and experimental content

  • 32 Workflow Patterns - Curated operator chain patterns with 72 common transitions

Current with TouchDesigner 2025 (latest official build 2025.32820, bundled Python 3.11.10) and the 2025.30000 experimental series (Python 3.11.10). POPs (Point Operators) are the flagship new operator family in the 2025 release — the first new operator family in over a decade.

Version System

  • Version History - All stable TD releases documented from 099 through 2025 (latest official build 2025.32820, Python 3.11.10)

  • Compatibility Tracking - Per-operator and per-method version compatibility data

  • Python Timeline - Full Python version history bundled with each TD release

  • Release Highlights - Key features and breaking changes per major release, rewritten from live Derivative sources with provenance

Experimental Techniques Knowledge Base

  • 7 Technique Categories - GLSL, GPU compute, machine learning, generative systems, audio-visual, networking, Python advanced

  • 2,000+ Lines of Code - Working, paste-ready code snippets for advanced techniques

  • 16 Named GLSL Patterns - Complete shader code for raymarching, reaction-diffusion, feedback, and more

  • Difficulty Ratings - Each technique rated with minimum TD version requirements

Core Enhancements

  • Operator Wiring Guides - Exact port-level connection instructions for 20+ common operators

  • Network Templates - Five ready-to-build network templates with Python generation scripts

  • Version-Aware Search - Filter operators and Python API by TD release compatibility

  • Smart Workflow Suggestions - Port wiring, complexity ratings, and node count estimates

Experimental Build Support

  • Experimental Build Series - The 2025.30000 series (POPs, Python 3.11.10) and the 2021 Vulkan experimental build, sourced from live Derivative release notes

  • Feature Flag Tables - Opt-in/opt-out flags for each experimental series

  • Graduation Tracking - Which experimental features graduated into stable releases

  • Breaking Change Logs - Per-series breaking changes versus the stable baseline

Core Server Features

  • Smart Search - Direct search with category filtering, parameter search, and version filtering

  • Zero Configuration - Works immediately after installation

  • Pure MCP Implementation - Clean stdio-based server, no web server overhead

  • Local Data Processing - All documentation served from local JSON files, no network requests

Installation

npm install -g @bottobot/td-mcp

Local Installation

npm install @bottobot/td-mcp

Quick Start

Using with VS Code/Codium and Claude

  1. Install the MCP server globally:

    npm install -g @bottobot/td-mcp
  2. Configure Claude/MCP in VS Code: Add the server to your MCP settings configuration file:

    {
      "td-mcp": {
        "command": "npx",
        "args": ["@bottobot/td-mcp"]
      }
    }
  3. Start using TouchDesigner tools in your conversations with Claude!

Running Standalone

# If installed globally
td-mcp

# If installed locally
npx @bottobot/td-mcp

Available MCP Tools (21 Total)

Core Operator Tools

get_operator

Get comprehensive details about a specific TouchDesigner operator including all parameters, tips, and code examples.

Parameter

Type

Required

Description

name

string

Yes

Operator name (e.g., 'Noise CHOP', 'Movie File In TOP')

show_examples

boolean

No

Show code examples and usage

show_tips

boolean

No

Show tips and performance notes

version

string

No

Include compatibility block showing when the operator was added or changed for this TD version

Example: "Get detailed information about the Noise CHOP operator"
Example: "Get the Engine COMP documentation for TD 2022"

search_operators

Search for operators using contextual analysis and relevance ranking.

Parameter

Type

Required

Description

query

string

Yes

Search query

category

string

No

Filter by category (CHOP, DAT, SOP, TOP, MAT, COMP, POP)

subcategory

string

No

Filter by subcategory (e.g., 'Audio', 'Filters')

type

string

No

Search mode: 'fuzzy' (default), 'exact', or 'tag'

version

string

No

Filter to operators compatible with a specific TD version (e.g., '2022')

parameter_search

boolean

No

Search within parameter names and descriptions

show_details

boolean

No

Show detailed results with keywords

limit

number

No

Maximum results (default: 10, max: 50)

Example: "Search for audio processing operators in the CHOP category"
Example: "Find operators added in TD 2022"

list_operators

List available TouchDesigner operators with optional category filtering.

Parameter

Type

Required

Description

category

string

No

Filter by operator category

Example: "List all TOP operators"

compare_operators

Compare two operators side by side -- parameters, categories, shared/unique features.

Parameter

Type

Required

Description

operator_a

string

Yes

First operator name

operator_b

string

Yes

Second operator name

compare_parameters

boolean

No

Include parameter comparison (default: true)

Example: "Compare Blur TOP with Luma Blur TOP"

get_operator_examples

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

Parameter

Type

Required

Description

operator

string

Yes

Operator name

example_type

string

No

Type: 'all', 'python', 'expressions', or 'usage'

Example: "Get Python examples for Movie File In TOP"

suggest_workflow

Get workflow suggestions for what operators commonly follow the current operator.

Parameter

Type

Required

Description

current_operator

string

Yes

Current operator name

Example: "What operators typically follow a Movie File In TOP?"

Tutorial Tools

get_tutorial

Access detailed TouchDesigner tutorial content with full sections, code, and links.

Parameter

Type

Required

Description

name

string

Yes

Tutorial name

include_content

boolean

No

Include full content sections

include_toc

boolean

No

Include table of contents

include_links

boolean

No

Include related links

Example: "Get the 'Write a GLSL TOP' tutorial"

list_tutorials

List all available TouchDesigner tutorials with optional filtering.

Parameter

Type

Required

Description

search

string

No

Search term to filter tutorials

limit

number

No

Maximum results

show_details

boolean

No

Show tutorial summaries and keywords

Example: "List all available tutorials"

search_tutorials

Search through tutorial content by keyword, topic, or content.

Parameter

Type

Required

Description

query

string

Yes

Search query

search_content

boolean

No

Search within section content (default: true)

limit

number

No

Maximum results (default: 10)

Example: "Search tutorials for GLSL shader examples"

Python API Tools

get_python_api

Get documentation for a TouchDesigner Python class including members and methods.

Parameter

Type

Required

Description

class_name

string

Yes

Python class name (e.g., 'CHOP', 'Channel', 'App')

show_members

boolean

No

Show class members/properties

show_methods

boolean

No

Show class methods

show_inherited

boolean

No

Show inherited members and methods

version

string

No

Annotate each method/member with its introduction version and exclude API added after this TD version

Example: "Get Python documentation for the CHOP class"
Example: "Get Python API for the App class as of TD 2021"

search_python_api

Search across TouchDesigner Python classes, methods, and members.

Parameter

Type

Required

Description

query

string

Yes

Search query

search_in

string

No

Where to search: 'all', 'classes', 'methods', 'members'

category

string

No

Filter by category

version

string

No

Filter classes, methods, and members to those available in the specified TD version

limit

number

No

Maximum results

Example: "Search Python API for audio methods"
Example: "Find Python API methods available in TD 2020"

list_python_classes

List all available Python API classes grouped by category.

Parameter

Type

Required

Description

category

string

No

Filter by category (e.g., 'Operator', 'General')

search

string

No

Search term to filter classes

show_details

boolean

No

Show member/method counts

Example: "List all Python API classes in the Operator category"

Version System Tools

get_version_info

Get detailed information about a specific TouchDesigner stable release: which Python version it bundles, new operators introduced, key features, Python API additions, and breaking changes.

Parameter

Type

Required

Description

version

string

Yes

TD version string (e.g., '2025', '2022', '2019', '099')

Example: "What Python version does TouchDesigner 2025 use?"
Example: "What operators were added in TouchDesigner 2025?"

list_versions

List all supported TD versions (099, 2019, 2020, 2021, 2022, 2023, 2025) with a quick-reference table showing the bundled Python version and support status for each release, plus the full Python version timeline.

Parameter

Type

Required

Description

(none required)

Returns all versions with highlights

Example: "List all supported TouchDesigner versions"
Example: "Show the Python version timeline for TouchDesigner"

Experimental Techniques Tools

get_experimental_techniques

Browse a curated library of advanced TouchDesigner techniques by category. Returns descriptions, difficulty ratings, version requirements, operator chains, uniform tables, and full working code snippets.

Parameter

Type

Required

Description

category

string

Yes

Technique category. Aliases accepted: 'glsl', 'gpu-compute', 'machine-learning', 'generative-systems', 'audio-visual', 'networking', 'python-advanced'

technique_id

string

No

ID of a specific technique within the category

Example: "Show me GLSL raymarching techniques in TouchDesigner"
Example: "Get GPU compute techniques using numpy"

Available Categories:

Category

Alias(es)

Techniques

glsl

shader, raymarching, sdf

Raymarching, reaction-diffusion, feedback, procedural noise

gpu-compute

gpu, cuda

Script TOP numpy, CUDA, Shared Memory, GPU instancing

machine-learning

ml, ai

Engine COMP, ONNX, Stable Diffusion, MediaPipe, Body Track

generative-systems

generative, lsystem

L-systems, Game of Life, strange attractors, boids

audio-visual

audio, fft

FFT geometry, beat detection, granular synthesis, MIDI

networking

network, osc, ndi

OSC, WebSocket, NDI, TDAbleton, multi-machine

python-advanced

python, numpy, opencv

asyncio, tdu.Dependency, threading, numpy, OpenCV

search_experimental

Full-text search across all 7 experimental technique categories. Results ranked by weighted field scoring (name, tags, description, notes, code).

Parameter

Type

Required

Description

query

string

Yes

Search query

category_filter

string

No

Restrict search to one category

show_code

boolean

No

Include code snippets in results

limit

number

No

Maximum results (default: 10, max: 30)

Example: "Search experimental techniques for reaction diffusion"
Example: "Find GPU instancing examples in the experimental library"

get_glsl_pattern

Retrieve a specific named GLSL pattern with complete, paste-ready shader code. Covers 16 named patterns across raymarching, reaction-diffusion, feedback, procedural noise, cellular automata, and GPU particle simulation. Also provides three reusable GLSL utility libraries. Use pattern: "list" to enumerate all available patterns.

Parameter

Type

Required

Description

pattern

string

Yes

Pattern name or 'list' to see all available patterns

include_utilities

boolean

No

Include GLSL utility library code (default: false)

Example: "Get the raymarching GLSL pattern"
Example: "List all available GLSL patterns"
Example: "Get the reaction diffusion shader pattern"

Core Enhancement Tools

get_operator_connections

Get a wiring guide for a specific operator: what operators typically connect upstream as inputs and downstream as outputs, with exact port numbers, rationale, and workflow pattern names. Covers 20+ common operators across all families.

Parameter

Type

Required

Description

operator

string

Yes

Operator name (with or without family suffix; case-insensitive)

Example: "What connects to and from a Render TOP?"
Example: "Show me the typical connections for a Noise CHOP"

get_network_template

Return a complete, ready-to-use network template for a common TouchDesigner use case. Each template includes an operator list, a port-level connection table, parameter settings, and a ready-to-paste Python script that builds the network. Use template: "list" to see all available templates.

Parameter

Type

Required

Description

template

string

Yes

Template name or 'list' to enumerate all templates

Available Templates:

Template

Description

video-player

File-based video playback with level and output controls

generative-art

Noise-driven generative visual network

audio-reactive

Audio analysis feeding visual parameters

data-visualization

Table DAT driven chart and display network

live-performance

Multi-layer compositing setup for live use

Example: "Give me a network template for audio-reactive visuals"
Example: "List all available network templates"

Experimental Build Tools

TouchDesigner ships two parallel release tracks: stable releases (the official line went 099 → 2019 → 2020 → 2021 → 2022 → 2023 → 2025; there was never an official TD 2024) and experimental/beta build series with unreleased features. These tools give you full access to the experimental track.

get_experimental_build

Get detailed information about a specific experimental TD build series or the latest experimental series.

Parameter

Type

Required

Description

series_id

string

No

Experimental series ID (e.g. '2025.10000'). Omit for the latest experimental series.

show_features

boolean

No

Include new features list (default: true)

show_breaking_changes

boolean

No

Include breaking changes vs stable (default: true)

show_python_api

boolean

No

Include Python API additions (default: true)

show_operators

boolean

No

Include experimental operators (default: true)

Example: "What new features are in the latest experimental TouchDesigner build?"
Example: "Get breaking changes for experimental series 2025.30000"

list_experimental_builds

List recent experimental TD build series grouped by feature area (rendering, Python API, operators, UI, networking).

Parameter

Type

Required

Description

feature_area

string

No

Filter by area: 'rendering', 'Python API', 'operators', 'UI', 'networking'

stability_status

string

No

'experimental' (active) or 'graduated' (became stable)

show_feature_flags

boolean

No

Include feature flag tables (default: false)

show_operators

boolean

No

Include experimental operator lists (default: true)

show_breaking_changes

boolean

No

Include breaking change summaries (default: false)

Example: "List experimental TD builds with rendering changes"
Example: "Which experimental build series introduced POPs?"

Tracked Experimental Series:

Series ID

Year

Status

Headline Feature

2025.30000

2025

Graduated (TD 2025)

POPs (Point Operators) flagship family, Python 3.11.10

2021.30000

2021

Graduated (TD 2022)

Vulkan becomes sole graphics API (OpenGL retired), Python 3.9.5

Both series are sourced from the live Derivative release notes (provenance recorded in wiki/data/versions/experimental-builds.json). The 2025.30000 series led into the official 2025 release; the 2021 experimental build first moved TouchDesigner to Vulkan, which became the default in the 2022 release.

Operator Categories

Category

Count

Description

CHOP

170

Channel Operators - Audio, control signals, and data streams

TOP

147

Texture Operators - 2D image and video processing

SOP

113

Surface Operators - 3D geometry creation and manipulation

POP

102

Point Operators - Point/particle geometry (new in TD 2025)

DAT

75

Data Operators - Text, tables, and data handling

COMP

41

Component Operators - UI elements and containers

MAT

13

Material Operators - 3D rendering materials and shaders

Total

661

All seven operator families

Available Tutorials

Core Tutorials

  • Anatomy of a CHOP - Understanding channel operator internals

  • Build a List COMP - Create dynamic UI lists

  • Introduction to Python Tutorial - Essential guide for TouchDesigner Python scripting

Advanced Development

  • Write a GLSL TOP - Create custom GPU-accelerated image effects

  • Write a GLSL Material - Custom GLSL materials for rendering

  • Write a C++ CHOP - Develop native audio/data processing operators

  • Write a C++ TOP - Build custom texture operators in C++

  • Write a C++ Plugin - Advanced C++ integration for TouchDesigner plugins

  • Write a CUDA DLL - GPU programming with CUDA for TouchDesigner

Inter-Process Communication

  • Write a Shared Memory CHOP - Inter-process data communication

  • Write a Shared Memory TOP - Share textures between processes

Video & Integration

  • Video Streaming User Guide - Complete guide for video streaming workflows

  • TouchDesigner Video Server Specification Guide - Professional video server setup

  • TDBitwig User Guide - Integration with Bitwig Studio DAW

Python API Documentation

The server includes documentation for 214 Python API classes with 1,674+ methods covering:

  • Core operator classes (CHOP, TOP, SOP, DAT, MAT, COMP)

  • Utility classes (Channel, Cell, Page, etc.)

  • System classes (App, Project, Monitor, etc.)

  • UI classes (Panel, Widget, etc.)

  • Advanced features (WebRTC, NDI, MIDI, OSC, etc.)

Architecture

The TD-MCP server is built with:

  • Pure MCP Implementation - Clean stdio-based server following MCP standards

  • Direct Search Algorithm - Fast, reliable search without external index dependencies

  • OperatorDataManager - Centralized data management with 661 operators loaded into memory

  • Local Data Processing - All operator data is processed and served locally

  • Modular Tool System - Each of the 21 MCP tools is independently maintained

  • Dual Release Track Support - Stable releases (099–2025) and experimental build series both fully documented

Project Structure

td-mcp/
├── index.js                         # Main MCP server entry point (21 tools)
├── tools/                           # MCP tool implementations (21 tools)
│   ├── get_operator.js              # Full operator documentation
│   ├── search_operators.js          # Operator search with ranking
│   ├── suggest_workflow.js          # Workflow chain suggestions
│   ├── list_operators.js            # List/filter operators
│   ├── get_tutorial.js              # Tutorial content access
│   ├── list_tutorials.js            # Tutorial listing
│   ├── search_tutorials.js          # Tutorial content search
│   ├── get_python_api.js            # Python class documentation
│   ├── search_python_api.js         # Python API search
│   ├── list_python_classes.js       # Python class browsing
│   ├── get_operator_examples.js     # Code examples per operator
│   ├── compare_operators.js         # Side-by-side comparison
│   ├── get_version_info.js          # Stable version details
│   ├── list_versions.js             # All stable versions
│   ├── get_experimental_techniques.js # Advanced technique library
│   ├── search_experimental.js       # Search techniques
│   ├── get_glsl_pattern.js          # Named GLSL shader patterns
│   ├── get_operator_connections.js  # Operator wiring guide
│   ├── get_network_template.js      # Full network templates
│   ├── get_experimental_build.js    # Experimental build series details
│   └── list_experimental_builds.js  # List experimental series by area
├── wiki/                            # Documentation system
│   ├── data/
│   │   ├── processed/               # 661 operator JSON files
│   │   ├── tutorials/               # 14 tutorial JSON files
│   │   ├── python-api/              # 214 Python class JSON files
│   │   ├── experimental/            # 7 advanced technique JSON files
│   │   └── versions/               # Version compatibility data
│   │       ├── version-manifest.json
│   │       ├── operator-compatibility.json
│   │       ├── python-api-compatibility.json
│   │       ├── release-highlights.json
│   │       └── experimental-builds.json  # Experimental track data
│   ├── utils/
│   │   └── version-filter.js        # Version utilities + experimental support
│   ├── operator-data-manager.js     # Core documentation engine
│   └── operator-data-python-api.js  # Python API data manager
├── data/
│   └── patterns.json                # 32 workflow patterns + transitions
├── scripts/                         # Data maintenance scripts
│   ├── clean-operator-data.js       # Clean parameter descriptions
│   └── enrich-top-operators.js      # Add tips/examples to operators
└── package.json

Troubleshooting

Server won't start

  • Ensure Node.js 20.0+ is installed: node --version

  • Try reinstalling: npm install -g @bottobot/td-mcp

  • Check for port conflicts if running other MCP servers

Search returns no results

  • Try broader search terms

  • Remove category filters

  • Enable parameter_search to search within parameter names

  • Check spelling of operator names

Operator not found

  • Use the full operator name including family: Noise CHOP not just Noise

  • Use search_operators first to find the exact name

  • Use list_operators with a category filter to browse available operators

LLM not using the MCP tools

  • Explicitly mention TouchDesigner in your prompt

  • Ask the LLM to "use the td-mcp tools" to look up operator information

  • Remind the LLM to check parameters with get_operator before generating code

Requirements

  • Node.js 20.0 or higher

  • npm package manager

  • VS Code/Codium with MCP-compatible extension (e.g., Claude Dev, Roo Code)

Development

To contribute or modify the server:

# Clone the repository
git clone https://github.com/bottobot/touchdesigner-mcp-server.git

# Install dependencies
cd touchdesigner-mcp-server
npm install

# Run the server locally
node index.js

# Validate syntax
node --check index.js

# Clean operator data (removes HTML dumps from parameter descriptions)
node scripts/clean-operator-data.js

# Enrich top operators with tips and examples
node scripts/enrich-top-operators.js

Adding a New Tool

  1. Create a new file in tools/ following the existing pattern (export schema and handler)

  2. Import and register the tool in index.js

  3. Update this README with the tool documentation

Adding Operator Data

Operator data lives in wiki/data/processed/ as JSON files. Each file follows the schema with fields: id, name, displayName, category, subcategory, description, parameters, tips, warnings, pythonExamples, codeExamples, and version.

Support

License

MIT License - See LICENSE file for details.

Acknowledgments

  • TouchDesigner by Derivative

  • Model Context Protocol by Anthropic

  • Built for the TouchDesigner community


Current Version: 3.0.0 Operators: 661 (CHOP 170, TOP 147, SOP 113, POP 102, DAT 75, COMP 41, MAT 13) Tutorials: 14 Python API Classes: 214 MCP Tools: 21 Workflow Patterns: 32 TouchDesigner Currency: 2025 official (build 2025.32820, Python 3.11.10) + 2025.30000 experimental Last Updated: June 2026

Available Tools

37 tools
compare_operatorsCompare TouchDesigner OperatorsB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
operator_aYesFirst operator name (e.g., 'Blur TOP')
operator_bYesSecond operator name (e.g., 'Luma Blur TOP')
compare_parametersNoInclude parameter comparison (default: true)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, placing full burden on the description. While it implies a read operation, it does not explicitly state side effects, authentication needs, or rate limits. The description only lists output categories without behavioral guarantees.

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

Conciseness5/5

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

The description is a single 12-word sentence that captures the core functionality without any fluff. It is appropriately front-loaded and efficiently communicates the action and scope.

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

Completeness2/5

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

With no output schema and limited description, the tool lacks completeness. It does not specify the format or structure of the comparison result, leaving the agent to guess how the comparison is presented.

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 baseline is 3. The description reinforces the tool's purpose but adds no extra meaning beyond the schema's own parameter descriptions (e.g., 'First operator name').

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 compares two TouchDesigner operators, specifying it covers parameters, categories, and use cases. This distinguishes it from sibling tools like get_operator (single operator details) and search_operators (search).

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like get_operator or search_operators. The description does not provide explicit context for selection or mention exclusions.

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

get_experimental_buildGet TouchDesigner Experimental Build InfoA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
series_idNoExperimental build series ID to look up (e.g. '2025.30000'). Omit to get the latest (current) experimental series. Use list_experimental_builds to see all available series IDs.
show_featuresNoInclude the list of new features for this build series (default: true)
show_operatorsNoInclude experimental or newly promoted operators (default: true)
show_python_apiNoInclude Python API additions introduced in this experimental series (default: true)
show_breaking_changesNoInclude breaking changes versus the stable baseline (default: true)

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It explains that the tool returns pre-release build information and lists the types of included details (new features, operators, breaking changes, Python API additions). It does not mention any side effects, which is acceptable for a read operation.

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

Conciseness5/5

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

The description is concise with three sentences, no fluff, and front-loaded with the main purpose. Every sentence adds value.

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?

Given 5 parameters, no output schema, and no annotations, the description covers the purpose, usage, and return content adequately. It could explicitly state the tool is read-only, but that is implied by the nature of 'returns information'.

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 baseline is 3. The description adds value for the series_id parameter by explaining omission behavior and referencing a sibling tool. The boolean parameters are well-described in the schema, and the description does not add further semantics.

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 returns information about a TouchDesigner experimental/beta build series, specifying the resource and action. It distinguishes from sibling tools like list_experimental_builds by focusing on getting details of a specific series.

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 explicitly says when to omit the series_id to get the latest series and references list_experimental_builds for obtaining available series IDs. This provides clear guidance on parameter usage and directs to the correct sibling tool for listing.

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

get_experimental_techniquesGet 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYesTechnique category to browse. Options: glsl, gpu-compute, machine-learning, generative-systems, audio-visual, networking, python-advanced. Aliases: shader/raymarching/sdf=glsl, gpu/cuda=gpu-compute, ml/ai=machine-learning, generative/lsystem=generative-systems, audio/fft=audio-visual, network/osc/ndi=networking, python/numpy/opencv=python-advanced
show_codeNoInclude GLSL/Python code snippets in output (default: true)
show_setupNoInclude operator setup details (default: true)
technique_idNoOptional specific technique ID to fetch (e.g. 'raymarching_basic', 'reaction_diffusion_gs'). If omitted, returns all techniques in the category.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It implies a read-only operation ('browse') and describes the output, but does not explicitly state whether it is side-effect-free, idempotent, or what permissions are needed. This is adequate but not thorough.

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 concise at two sentences, front-loading the purpose. However, it could be slightly more structured (e.g., listing parameters or expected behavior), but it remains efficient and clear.

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 browsing tool with no output schema, the description adequately explains what is returned (descriptions, code snippets, operator chains, setup notes) and lists all categories. It covers the essential information needed for an agent to use the tool effectively.

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 baseline is 3. The description does not add significant meaning beyond the schema; the schema already lists categories and aliases in the parameter description. The tool description merely repeats a subset, so no extra value.

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 verb 'browse' and the resource 'experimental techniques', with a defined scope of 'by category'. It lists the specific categories and the types of data returned (descriptions, code snippets, operator chains, setup notes). This distinguishes it from sibling tools like get_glsl_pattern or get_experimental_build, which target different resources.

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

Usage Guidelines3/5

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

The description implies usage context by naming categories and return types, but lacks explicit guidance on when to use this tool versus alternatives (e.g., get_experimental_build for builds, get_glsl_pattern for patterns). No when-not-to-use or exclusion criteria are provided.

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

get_glsl_patternGet 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYesPattern name to retrieve. Use 'list' to see all available patterns. Examples: 'raymarching', 'reaction_diffusion', 'fbm', 'voronoi', 'feedback_zoom', 'game_of_life', 'boids', 'particle_compute', 'sdf_primitives', 'color_utils', 'math_utils'
include_utilitiesNoInclude GLSL utility functions (SDF primitives, color utils, math utils) alongside the pattern code (default: false)

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It states that the code is 'full code ready to paste' and mentions utility libraries, but does not disclose any potential side effects, rate limits, or expected output format. For a read-only retrieval tool, this is adequate but minimal.

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

Conciseness5/5

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

Two sentences plus a usage hint. Every part is informative and there is no redundancy. The main action and key tip are front-loaded.

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

Completeness5/5

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

For a simple retrieval tool with two parameters and no output schema, the description covers the essential behavior: what is retrieved, how to discover patterns, and what the code is for. No significant gaps remain.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for both parameters. The description adds value by clarifying that 'pattern' can be set to 'list' to see options and by providing example patterns. This extra context goes beyond the schema's static list.

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?

Clearly states the verb 'retrieve', the resource 'GLSL shader patterns or GPU technique code snippets', and the target environment (TouchDesigner GLSL TOP). Distinguishes from sibling tools like get_operator or td_build_glsl by focusing on code snippets.

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

Usage Guidelines4/5

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

Explicitly mentions using 'list' to see available patterns, which guides the agent on how to discover valid inputs. However, it does not contrast with alternatives or state when not to use this tool.

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

get_network_templateGet TouchDesigner 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateYesTemplate name. One of: video-player, generative-art, audio-reactive, data-visualization, live-performance. Aliases like 'feedback loop', 'audio visual', 'vj', 'data viz' are also accepted.
show_pythonNoInclude Python script examples in the response (default: true)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It fails to disclose whether the tool is read-only, requires network access, or any side effects. It describes what is included but not behavioral traits like data sources or limitations.

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

Conciseness5/5

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

The description is a single paragraph with no wasted words. It front-loads the purpose and lists templates concisely. Every sentence adds information.

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

Completeness3/5

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

Given no output schema, the description should specify return format (e.g., JSON object). It mentions components but not structure. Parameter count is low, but the missing format detail lowers completeness.

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

Parameters4/5

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

Schema coverage is 100% with clear parameter descriptions. The description adds value by explaining what the template contains (operator list, wire connections, etc.) beyond the schema, helping agents understand the output.

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 that the tool 'Returns a full TouchDesigner network template for a common use case' and lists specific templates, making the verb and resource explicit. It distinguishes itself from sibling tools by focusing on templates for common use cases.

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

Usage Guidelines2/5

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

The description does not provide guidance on when to use this tool versus alternatives like td_build_template or suggest_workflow. It lists available templates but lacks explicit context on when this tool is preferred.

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

get_operatorGet TouchDesigner OperatorB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesOperator name (e.g., 'Noise CHOP', 'Kinect Azure TOP')
versionNoTouchDesigner version context (e.g. '2023', '2022', '2021'). When provided, a compatibility note is shown for that version.
show_tipsNoShow tips and performance notes
show_examplesNoShow code examples and usage

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so description bears full burden. It does not disclose behavioral traits like read-only nature, what exactly constitutes 'comprehensive details' (e.g., parameters, outputs), or potential rate limits. Vague phrasing leaves the agent uncertain about side effects.

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

Conciseness5/5

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

Two sentences with no redundant phrasing. Efficiently conveys the core purpose and the optional version parameter without extraneous details.

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

Completeness2/5

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

Despite no annotations and no output schema, the description fails to clarify what 'comprehensive details' includes, whether the operation is read-only, or how results are structured. This leaves significant gaps for an agent to use the tool effectively.

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 coverage is 100%, so parameters are well-documented in schema. Description adds value by noting that version shows compatibility notes, but provides no meaningful addition for name, show_tips, or show_examples beyond their schema descriptions. Baseline score of 3 is appropriate.

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

Purpose4/5

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

Description states 'Get comprehensive details about a specific TouchDesigner operator' which is a clear verb+resource. It distinguishes from siblings like list_operators (which lists) and get_operator_connections (which focuses on connections) by implying a more general detail retrieval, though not explicitly contrasting.

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

Usage Guidelines3/5

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

Mentions optional version parameter for compatibility notes, providing some contextual guidance. However, it lacks explicit instructions on when to use this tool versus siblings (e.g., get_operator_examples for just examples) and no when-not-to-use advice.

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

get_operator_connectionsGet 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionNoWhich connections to return: 'inputs' (what feeds into this op), 'outputs' (what this op feeds), or 'all' (default)
operator_nameYesName of the TouchDesigner operator (e.g., 'Feedback TOP', 'Noise CHOP', 'Geometry COMP')

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so the description must cover behavioral traits. It clearly states the tool returns data (read operation) and does not suggest side effects. However, it does not explicitly state it is read-only or safe, which would be ideal with no annotations.

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

Conciseness5/5

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

The description is two concise sentences. The first sentence states the primary purpose and the second provides a concrete example. No unnecessary words, and front-loaded with key information.

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?

Given no output schema, the description adequately describes the return types (inputs, outputs, chains, port instructions). The parameter count is low and complexity is modest, so the description is largely complete, though it could mention if the output is structured (e.g., JSON) for extra clarity.

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

Parameters4/5

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

Schema coverage is 100% with meaningful descriptions for both parameters. The description adds extra context by explaining the port instruction format (e.g., 'A output 0 -> B input 0'), which enhances understanding beyond the schema.

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 returns upstream inputs, downstream outputs, and common operator chains for a named operator, with connection port instructions. This distinguishes it from siblings like 'get_operator' (basic info) and 'get_operator_examples' (examples).

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

Usage Guidelines3/5

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

The description implies usage for wiring nodes but provides no explicit guidance on when to use this tool versus alternatives (e.g., 'compare_operators') or when not to use it. No exclusion criteria or prerequisites are mentioned.

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

get_operator_examplesGet TouchDesigner Operator ExamplesB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
operatorYesOperator name (e.g., 'Noise CHOP', 'Movie File In TOP', 'Text DAT')
example_typeNoType of examples to return: 'all' (default), 'python', 'expressions', or 'usage'

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for disclosing behavioral traits. It does not mention that the tool is read-only, whether authentication is required, or what side effects (if any) occur. The description is minimal and leaves the agent uninformed about safety or state changes.

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 a single sentence that efficiently states the tool's purpose. It contains no fluff, but could be slightly improved by front-loading the most critical information (the verb and resource) earlier, though it already does so. It earns its place.

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

Completeness3/5

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

Given the tool's modest complexity (2 parameters, no output schema), the description is adequate but not comprehensive. It does not explain what the returned examples look like (e.g., whether they include syntax highlighted code or code blocks). The absence of annotations and output schema leaves some uncertainty for the agent.

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

Parameters4/5

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

With 100% schema coverage, the baseline is 3. The description adds value by contextualizing the 'example_type' parameter as covering 'Python code examples, expressions, and usage patterns' and by providing illustrative operator name values (e.g., 'Noise CHOP'). This enhances the schema's minimal descriptions.

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 action ('Get'), the resource ('Python code examples, expressions, and usage patterns'), and the context ('for a specific TouchDesigner operator'). It distinguishes this tool from siblings like get_operator (which retrieves operator properties) and get_python_api (which provides API references) by focusing on usage examples.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it, prerequisites, or related tools such as get_operator or search_operators. The agent must infer usage from the tool name alone.

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

get_python_apiGet Python API DocumentationA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoFilter to show only methods/members available in a specific TD version (e.g. '2023', '2022', '2021', '2020', '2019', '099'). Methods added after this version are marked or excluded.
class_nameYesPython class name (e.g., 'CHOP', 'Channel', 'App')
show_membersNoShow class members/properties
show_methodsNoShow class methods
show_inheritedNoShow inherited members and methods

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the tool gets documentation and can filter by version, but does not mention whether it is read-only, has rate limits, or what exactly is returned (text, structure, etc.). The behavior is partially clear but missing important details.

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

Conciseness5/5

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

Two sentences front-load the purpose and key optional filter. No superfluous words or repetition. Efficient and focused.

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

Completeness3/5

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

For a tool with 5 parameters (1 required) and no output schema, the description covers the main purpose and version filter but omits details on boolean flag interactions and the format of returned documentation. More context would help an agent use it effectively.

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?

The input schema has 100% coverage with descriptions for all 5 parameters. The description adds minimal value beyond the schema: it mentions optional version filtering but doesn't explain the interplay between show_members, show_methods, and show_inherited. With full schema coverage, a baseline of 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 retrieves documentation for a TouchDesigner Python class with optional version filtering. It specifies the resource ('TouchDesigner Python class') and action ('Get documentation'), distinguishing it from sibling tools like search_python_api and list_python_classes.

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

Usage Guidelines3/5

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

The description implies usage when needing documentation for a specific class, but does not explicitly state when to use this tool over others, nor does it provide conditions or prerequisites. Usage is inferred but not guided.

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

get_tutorialGet TouchDesigner TutorialB

Get detailed content from a TouchDesigner tutorial

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTutorial name (e.g., 'Anatomy of a CHOP', 'Write a GLSL TOP')
include_tocNoInclude table of contents
include_linksNoInclude related links
include_contentNoInclude full tutorial content sections

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, and the description lacks behavioral context such as whether the operation is read-only, requires authentication, has rate limits, or what happens with missing tutorial names.

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

Conciseness3/5

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

The description is a single sentence, which is concise but too brief. It could include more useful information without becoming verbose.

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

Completeness2/5

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

The description does not clarify the meaning of 'detailed content', return format, or behavior when optional boolean flags are omitted. Incomplete for a tool with 4 parameters and no output schema.

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 coverage is 100% with clear descriptions for each parameter. The tool description adds no extra semantic value beyond the schema.

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 tool name and title clearly indicate it retrieves a TouchDesigner tutorial. The description specifies 'detailed content', distinguishing it from sibling tools like 'list_tutorials' and 'search_tutorials'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. No mention of prerequisites, when not to use it, or links to related tools.

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

get_version_infoGet TouchDesigner Version InfoA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYesTouchDesigner stable version to look up (e.g. '2025', '2023', '2022', '2021', '2020', '2019', '099'). For an experimental build series (e.g. '2025.30000') use get_experimental_build instead.
show_new_operatorsNoInclude list of operators added in this version (default: true)
show_breaking_changesNoInclude breaking changes and migration notes (default: true)
show_python_highlightsNoInclude Python API changes for this version (default: true)

TDQS

A4/5.0
Behavior3/5

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

No annotations exist, so description must disclose behavior. It implies a safe read operation but does not explicitly state it is non-destructive or that it does not modify state. Adequate but not fully transparent.

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

Conciseness5/5

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

Single sentence of 18 words, immediately states purpose and key outputs. No fluff.

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?

No output schema; description hints at return fields (Python version, operators, features, API changes). Sufficient for basic understanding but could mention response structure or example.

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 covers all 4 parameters with descriptions (100% coverage). The description adds no extra parameter context beyond the schema. 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?

Description clearly states the tool retrieves detailed version info including specific categories (Python version, new operators, features, API changes). It distinguishes from sibling get_experimental_build via parameter description.

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

Usage Guidelines4/5

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

The 'version' parameter description explicitly tells when to use get_experimental_build instead. No other when-to-use or when-not-to-use guidance is provided, but the key alternative is covered.

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

list_experimental_buildsList TouchDesigner 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
feature_areaNoFilter series by feature area. One of: 'rendering', 'Python API', 'operators', 'UI', 'networking'. Omit to list all series grouped by every feature area.
show_operatorsNoInclude the list of experimental operators for each series (default: true)
stability_statusNoFilter by stability status. One of: 'experimental' (active pre-release), 'graduated' (became a stable release). Omit to include all statuses.
show_feature_flagsNoInclude the feature flag table for each series (default: false)
show_breaking_changesNoInclude a brief summary of breaking changes per series (default: false)

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden. It describes the output structure but does not disclose whether the operation is read-only, authentication requirements, or any limitations like pagination or result size. For a list operation, the risk is low, but transparency could be improved.

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 concise (three sentences), front-loaded with the core purpose, and structured to list feature areas and entry contents. Every sentence adds value, with no extraneous details.

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?

Given 5 parameters, no output schema, and no annotations, the description adequately explains the tool's purpose, output contents, and provides a cross-reference to a related tool. It lacks details on pagination or exact response format, but is fairly complete for a list tool.

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 5 parameters well. The description adds minimal extra meaning, such as listing the default behavior for omitting feature_area. Baseline score of 3 is appropriate as the description does not significantly enhance parameter understanding beyond the schema.

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 specifies the tool lists experimental/beta build series grouped by feature area, with explicit feature areas and entry contents. It distinguishes from the sibling tool get_experimental_build which retrieves details for a specific series.

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

Usage Guidelines4/5

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

The description states when to use this tool (to list recent experimental builds grouped by feature area) and directs users to get_experimental_build for full details on a specific series. However, it does not explicitly exclude cases or compare to other list tools.

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

list_operatorsList TouchDesigner OperatorsC

List available TouchDesigner operators with contextual grouping

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by category (CHOP, DAT, SOP, TOP, MAT, COMP, POP)

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behavioral traits. It only states that the tool lists operators with 'contextual grouping', but does not reveal aspects like pagination, scope, or whether all operators are always returned. This is insufficient for a listing tool.

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

Conciseness3/5

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

The description is a single sentence, which is concise. However, the phrase 'contextual grouping' is ambiguous, reducing clarity. It earns its place but could be more precise.

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

Completeness2/5

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

Given the tool has only one optional parameter and no output schema, the description should clarify the output format and the meaning of 'contextual grouping'. It omits these details, making it incomplete for an agent to understand what the tool returns.

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 coverage is 100%, so the schema fully documents the single optional parameter. The description adds no additional meaning beyond what the schema provides; 'contextual grouping' does not relate to the parameter.

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

Purpose4/5

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

The description uses a specific verb 'list' and identifies the resource 'TouchDesigner operators'. It distinguishes from sibling tools like 'search_operators' or 'get_operator'. However, 'contextual grouping' is vague and could be clarified.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'search_operators' or 'compare_operators'. There is no explicit context for usage or exclusion.

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

list_python_classesList TouchDesigner Python ClassesA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch term to filter classes by name or description
categoryNoFilter by category (e.g., 'Operator', 'Component', 'General', 'UI')
show_detailsNoShow member/method counts for each class (default: false)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It does not disclose behavioral traits such as whether the operation is read-only, performance characteristics, or any side effects. Minimal transparency.

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

Conciseness5/5

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

Single sentence that is front-loaded and clear. Every word is necessary; no redundancy or wasted text.

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

Completeness3/5

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

For a simple listing tool with optional parameters and no output schema, the description is minimally complete. However, it lacks guidance on return format or when to use this versus searching, which would improve completeness.

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 coverage is 100% with descriptions for all three parameters. Description adds only general context of filtering. Baseline score of 3 applies as schema already explains parameters.

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?

Description specifies verb 'List' and resource 'TouchDesigner Python API classes' with optional filtering. Clearly distinguishes from sibling tools like 'search_python_api' which performs searching.

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

Usage Guidelines3/5

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

Description implies usage for listing classes but does not explicitly guide when to use this tool over alternatives like 'search_python_api' or 'get_python_api'. No when-not-to-use or exclusion criteria provided.

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

list_tutorialsList TouchDesigner TutorialsB

List available TouchDesigner tutorials with summaries

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of tutorials to return (default: all)
searchNoOptional search term to filter tutorials
show_detailsNoShow detailed information for each tutorial

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist; the description does not disclose any behavioral aspects such as idempotency, side effects, permissions, or rate limits. It fails to add behavioral transparency beyond the basic operation.

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

Conciseness5/5

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

The description is a single concise sentence that is front-loaded and contains no superfluous words.

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

Completeness3/5

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

With three optional parameters, no output schema, and no annotations, the description is minimal. It does not explain default behavior, sort order, or typical use cases, which leaves gaps for a complete understanding.

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 all parameters are already documented. The description does not add any extra meaning beyond the schema, resulting in a baseline score of 3.

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 name and title clearly indicate listing tutorials. The description specifies the verb 'list' and resource 'tutorials' with 'summaries', distinguishing it from siblings like 'get_tutorial' and 'search_tutorials'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'search_tutorials' or 'get_tutorial'. No prerequisites or context for selection are given.

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

list_versionsList TouchDesigner VersionsB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
filter_statusNoFilter by support status: 'current', 'active', 'maintenance', 'legacy'. Omit to show all.
show_highlightsNoInclude key feature highlights for each version (default: true)
show_python_infoNoInclude Python version details for each release (default: true)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It describes the output fields but does not explicitly state it is a read-only operation or disclose any limitations like pagination or rate limits. Adequate but leaves gaps.

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

Conciseness5/5

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

A single sentence that efficiently communicates purpose and content. No wasted words, front-loaded with the action and resource.

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 simple list tool with three optional parameters and no output schema, the description is sufficient. It covers the main output fields and scope. Could mention return format (e.g., array) but not necessary.

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 coverage is 100% with each parameter already having a clear description. The tool description adds no additional insight beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool lists all supported TouchDesigner versions with specific fields (Python versions, support status, feature highlights). However, it does not explicitly distinguish itself from sibling 'get_version_info' which likely targets a single version.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'get_version_info'. No context on prerequisites or filtering behavior beyond parameter descriptions.

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

search_experimentalSearch Experimental TechniquesB

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 10, max: 30)
queryYesSearch query. Examples: 'raymarching', 'reaction diffusion', 'OSC receive', 'numpy image', 'beat detection', 'ONNX', 'Replicator COMP', 'granular synthesis'
show_codeNoInclude code snippet previews in results (default: false for brevity)
category_filterNoOptional: restrict search to a single category. Options: glsl, gpu-compute, machine-learning, generative-systems, audio-visual, networking, python-advanced

TDQS

B3.4/5.0
Behavior3/5

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

Without annotations, the description carries the full transparency burden. It adds context by specifying searchable fields (keyword, operator name, tag, code pattern) and categories, but does not disclose safety traits like read-only behavior, rate limits, or pagination. It is neither contradictory nor detailed, warranting a middle score.

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 a single, concise sentence that front-loads the main action. It efficiently conveys scope and searchable attributes without unnecessary words, though a slight restructuring could improve readability.

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

Completeness3/5

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

The description covers the tool's domain and search capabilities but omits expected output format, result ordering, or pagination details. Given no output schema and moderate parameter count, the description is adequate but not fully comprehensive.

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 coverage is 100% with detailed parameter descriptions. The description reinforces param purposes (e.g., categories map to category_filter) but adds limited new meaning beyond the schema. 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 searches across TouchDesigner experimental technique categories, listing specific domains like GLSL, GPU compute, machine learning, etc. It distinguishes from sibling search tools like search_operators by explicitly targeting experimental categories.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention exclusions or comparisons to sibling tools such as search_operators or get_experimental_techniques, leaving the agent to infer usage from the description alone.

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

search_operatorsSearch TouchDesigner 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoSearch matching strategy: 'exact' = only full-word matches in name/displayName; 'fuzzy' = typo-tolerant contextual search (default); 'tag' = match against operator tags and keywords only
limitNoMaximum results to display (default: 20, max: 50)
queryYesSearch query
versionNoFilter results to operators compatible with a specific TouchDesigner version (e.g. '2023', '2022', '2021', '2020', '2019', '099'). Operators introduced after this version are excluded.
categoryNoFilter by category (CHOP, DAT, SOP, TOP, MAT, COMP, POP)
subcategoryNoFilter by subcategory (e.g., 'Audio', 'Filters', 'Generators')
show_detailsNoShow detailed information for each result
parameter_searchNoSearch within parameter names and descriptions

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses key behaviors: supports multi-term queries, typo tolerance, version filtering, and multiple search types. It does not mention rate limits or side effects, but as a search tool, it is expected to be read-only. The description adequately conveys its operational characteristics beyond the minimum.

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 a single well-structured sentence that front-loads the main purpose and lists supporting features efficiently. While it packs many features, it remains clear and easy to parse. Minor improvement could be splitting into two sentences for readability, but it is appropriately sized for the complexity.

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?

Given the tool has 8 parameters, high schema coverage, and no output schema, the description provides a good overview of capabilities. It mentions advanced contextual analysis and ranking, hinting at output ordering, and covers major filtering options. It does not detail pagination (limit parameter) or result format, but these are captured in the input schema. Overall, it is sufficiently complete for an agent to understand its scope.

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 baseline is 3. The tool description provides a high-level summary of supported features (e.g., 'category/subcategory filtering, parameter search') but does not add new meaning beyond what the parameter descriptions in the schema already state. It reinforces but does not extend the schema explanations.

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 'Search for operators' using a specific verb and resource. It lists advanced features (multi-term, filtering, typo tolerance) that distinguish it from sibling tools like list_operators, which likely provides a simple list, or get_operator, which retrieves a single operator. The purpose is unambiguous and well-differentiated.

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

Usage Guidelines3/5

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

The description implies when to use this tool (for advanced search with filtering and ranking) but does not explicitly state when not to use it, nor does it mention alternative tools like list_operators for simpler needs. The listing of features gives context, but lacks explicit guidance on tool selection among siblings.

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

search_python_apiSearch Python APIA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return
queryYesSearch query for Python API
versionNoFilter results to Python API available in a specific TD version (e.g. '2023', '2022', '2021', '2020', '2019', '099'). Methods/members introduced after this version are excluded.
categoryNoFilter by category (e.g., 'Operator', 'Component', 'General')
search_inNoWhere to search: 'all', 'classes', 'methods', 'members'

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It adds context about version filtering meaning but does not disclose any potential limitations or side effects beyond what schema parameters already indicate.

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?

Extremely concise with two sentences, no fluff. However, could benefit from additional structure like listing key parameters or usage examples to enhance readability.

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

Completeness3/5

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

Given 5 parameters and no output schema, the description is minimal. It lacks information about return format or behavior when no results, making it moderately complete.

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 coverage is 100%, so baseline is 3. The description restates the version filter meaning already present in the schema, adding no new semantic value for parameters.

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 uses specific verb 'search' and specifies resources: 'Python classes, methods, and members'. It also mentions optional version filtering, which distinguishes it from sibling tools like list_python_classes or get_python_api.

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

Usage Guidelines3/5

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

The description implies usage for searching Python API but does not explicitly state when to use this tool over alternatives like search_operators or get_python_api. No when-not-to-use advice is provided.

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

search_tutorialsSearch TouchDesigner TutorialsC

Search through TouchDesigner tutorials by keyword, topic, or content

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 10)
queryYesSearch query (e.g., 'GLSL', 'Python scripting', 'CHOP channels')
search_contentNoSearch within tutorial section content, not just metadata (default: true)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. While the tool is a search and likely read-only, the description does not explicitly state safety, idempotency, or side effects. Adding 'Returns matching tutorials without modifying data' would improve transparency.

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 a single concise sentence with no redundant information. However, it could be slightly more informative without losing conciseness, such as including the default behavior of 'search_content'.

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

Completeness2/5

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

The tool has no output schema, and the description does not explain return format, pagination, or ordering. For a search tool with multiple parameters, this missing information reduces completeness.

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?

The input schema has 100% coverage with descriptions for all three parameters. The tool description mentions 'keyword, topic, or content', which loosely maps to the 'query' and 'search_content' parameters, but it does not add new semantic information beyond the schema.

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

Purpose4/5

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

The description clearly states the verb 'Search' and the resource 'TouchDesigner tutorials', and mentions filters by 'keyword, topic, or content'. However, it does not distinguish this tool from sibling search tools like 'search_operators' or 'search_python_api', which could cause confusion.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'list_tutorials' or other search tools. The description only states what it does, leaving the agent to infer usage context.

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

suggest_workflowSuggest Next TouchDesigner OperatorsA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
current_operatorYesCurrent operator name (e.g., 'Movie File In TOP', 'Constant CHOP')

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description fully bears the transparency burden. It discloses that the tool returns connection instructions, complexity, node count, and minimum version. However, it does not explain the basis of suggestions (e.g., common usage patterns) or potential side effects like network state dependency.

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 a single sentence that efficiently conveys purpose and output. It is well-structured but could be slightly improved by listing the output fields more clearly, though it remains concise and front-loaded.

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

Completeness5/5

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

For a tool with one parameter, no output schema, and no annotations, the description fully covers what the tool does and what it returns. It is complete and sufficient for the agent to understand and use the tool correctly.

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

Parameters4/5

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

The schema covers the single parameter 'current_operator' with a description. The tool description adds value by providing examples ('Movie File In TOP', 'Constant CHOP'), giving agents a better sense of valid inputs beyond the schema.

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 purpose: providing workflow suggestions for operators following a current one, and lists specific return fields (connection port instructions, complexity rating, node count, version). This distinguishes it from sibling tools like get_operator_connections or compare_operators.

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

Usage Guidelines3/5

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

The description implies usage when the user has an operator and wants to know common next steps, but it does not explicitly state when to use this tool versus alternatives, nor does it mention when not to use it.

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

td_build_glslTD Build GLSL (live)A

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNoParent COMP to build inside. Defaults to /td_mcp/sandbox.
techniqueYesTechnique id or name from the GLSL KB (e.g. 'raymarching_basic', 'Gray-Scott Reaction-Diffusion'). Use 'list' to enumerate techniques and whether each is auto-buildable.

TDQS

A4.1/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the full burden. It discloses key behavioral traits: for unsupported techniques, it does not fabricate connections and returns code with explanation; for supported techniques, it creates specific operators and lays them out. It also mentions the default parent COMP. However, it does not discuss permissions, overwriting behavior, or potential side effects.

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

Conciseness5/5

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

The description is a single well-structured paragraph that uses capitalization for emphasis (COMPILE, SUPPORTED, UNSUPPORTED) and logically separates the two cases. Every sentence contributes valuable information without redundancy. It is appropriately concise for the complexity of the task.

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

Completeness3/5

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

Given the tool has no output schema, the description should at least hint at return values. It describes the side effects (creating operators) but does not specify what the function returns (e.g., success message, operator references). It also omits error handling or prerequisites beyond the bridge. For a complex build tool, this is a notable gap.

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 coverage is 100%, so baseline is 3. The description adds some meaning beyond the schema: it provides examples for 'technique' (raymarching_basic, Gray-Scott Reaction-Diffusion) and clarifies the 'parent' default (/td_mcp/sandbox). However, this added value is modest relative to the schema descriptions.

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 uses a specific verb 'COMPILE' and clearly identifies the resource as 'GLSL shader technique' from the experimental GLSL knowledge base. It distinguishes between supported and unsupported techniques, and mentions the 'list' option for enumeration, which differentiates it from sibling tools like td_build_pattern or td_build_template.

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

Usage Guidelines4/5

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

The description provides explicit guidance on when to use this tool: it handles supported techniques by creating operators, and unsupported techniques by returning code without connections. It mentions building into the sandbox by default and the requirement for the bridge (td_status). However, it does not explicitly state when not to use this tool or compare it to alternatives like td_build_pattern.

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

td_build_patternTD Build Pattern (live)A

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNoParent COMP to build inside. Defaults to /td_mcp/sandbox.
patternYesPattern name exactly as it appears in data/patterns.json (e.g. 'Basic Video Input Chain', 'Image Filter Chain'). Use 'list' to see all available pattern names.

TDQS

A4.7/5.0
Behavior5/5

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

Discloses key behaviors: creates operators in workflow order, wires as straight chain, lays out network, limitation on multi-input, hard-errors if operator name missing createType, requires bridge. No annotations provided, so description carries full burden and does so thoroughly.

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?

Single paragraph but well-structured with key points in caps for emphasis. Each sentence adds meaningful information without redundancy. Slightly verbose but justified by the complexity.

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?

Given the complexity and absence of output schema, the description covers workflow, limitation, default parent, and error handling. Could mention behavior on existing operators in sandbox, but overall complete enough for agent to use correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining what 'pattern' means (name in data/patterns.json with examples) and the default for 'parent', going beyond schema descriptions.

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 verb 'COMPILE' and the resource 'linear workflow pattern from data/patterns.json', specifying that it builds into a running TouchDesigner instance. It explicitly differentiates from sibling tool td_build_template for branched networks.

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?

Explicitly states when to use (linear single-input chains) and when not to (multi-input nodes), with a direct alternative: 'use td_build_template for branched networks'. Also mentions default parent and error behavior, providing clear usage context.

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

td_build_templateTD Build Template (live)A

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNoPath to the parent COMP to build inside. Defaults to /td_mcp/sandbox.
templateYesTemplate name: video-player | generative-art | audio-reactive | data-visualization | live-performance (aliases accepted). Use 'list' to see the available templates.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the default sandbox path, strict failure on unresolved items, and alias handling. However, it does not mention whether existing operators in the target parent are overwritten or preserved, nor does it describe the return value or side effects on the sandbox. This leaves some behavioral gaps.

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

Conciseness5/5

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

The description is concise and well-structured. It starts with the core action, then lists template options, default behavior, and failure mode. Every sentence adds essential information without redundancy.

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?

Given the lack of annotations and output schema, the description covers key aspects: action, templates, default path, strict failure mode, and prerequisite. It omits the success return value and details about idempotency, but overall it provides sufficient context for an agent to use the tool correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value beyond the schema by explaining the default parent path, listing template names and aliases, and noting that 'list' can be used to see available templates. This enriches the parameter meaning for the agent.

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 uses a specific verb ('COMPILE') and clearly identifies the resource (TouchDesigner network template). It lists the actions (creates operators, sets parameters, wires connections, lays out network) and enumerates template names, distinguishing this from sibling tools like td_build_glsl or td_create_operator.

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

Usage Guidelines4/5

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

The description explains the strict failure behavior and the prerequisite (bridge running, referencing td_status). It does not explicitly state when to use this tool versus building operators individually or using other network tools, but the context of building a full template is implied. Slightly better guidance on alternatives would raise the score.

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

td_clearTouchDesigner Clear NetworkA

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNoPath to the sandbox COMP to clear. Defaults to /td_mcp/sandbox.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the destructive action (delete), the confined scope (only sandbox), and the operational dependency (bridge running). It does not cover reversibility or error states, but for a simple clearing tool, this is adequate.

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

Conciseness5/5

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

Two sentences with no waste. The first sentence delivers the core action, and the second adds constraints and prerequisites. Front-loaded and efficient.

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

Completeness5/5

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

Given the tool's simplicity (one optional parameter, no output schema), the description covers all necessary context: what it does, where it operates, what it excludes, and a prerequisite. Complete for its complexity level.

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?

The schema coverage is 100%, so the baseline is 3. The description does not add significant extra meaning beyond the schema's parameter description, but it confirms the default path and intent. No additional value added.

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 verb 'delete', the resource 'every operator inside the live-control sandbox COMP', and the scope 'only clears operators within the sandbox'. It effectively distinguishes from sibling tools like td_delete by specifying the batch-clearing nature.

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

Usage Guidelines4/5

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

The description explicitly states when to use (clearing the sandbox) and what it will not affect (rest of project). It mentions a prerequisite (bridge running) and references td_status for checking. While it does not name an alternative sibling directly, the context implies td_delete for individual removals.

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

td_connectTD Connect (live)A

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])).

ParametersJSON Schema
NameRequiredDescriptionDefault
to_pathYesFull path of the destination operator receiving the input, e.g. '/td_mcp/sandbox/blur1'.
to_inputNoInput connector index on the destination operator (0-based). Defaults to 0.
from_pathYesFull path of the source operator providing the output, e.g. '/td_mcp/sandbox/noise1'.
from_outputNoOutput connector index on the source operator (0-based). Defaults to 0.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It reveals that the tool wraps a documented API call and includes the exact syntax, which aids transparency. However, it does not mention potential side effects (e.g., modifying the network graph), error handling, or permissions needed.

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

Conciseness5/5

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

The description is two sentences with no unnecessary words. The first sentence states the core purpose, and the second provides technical detail. It is front-loaded and concise.

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?

Given the tool's simplicity (4 parameters, no output schema), the description is fairly complete. It explains what it does, how it works via the API call, and gives an example. However, it lacks mention of common failure cases or prerequisites like both operators must exist.

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?

The input schema already provides 100% coverage with descriptions for all parameters. The description adds context by explaining the overall operation and giving an example of full paths, but it does not significantly deepen understanding beyond the schema's own descriptions.

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 connects one operator's output to another's input in a live TouchDesigner instance, with a specific verb ('Connect') and resource ('operator's output to another operator's input'). It also references the underlying API call, distinguishing it from sibling tools like td_create_operator or td_delete.

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

Usage Guidelines3/5

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

The description implies usage for connecting operators but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites. The context of sibling tools makes it somewhat clear, but explicit guidance is missing.

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

td_create_operatorTD Create Operator (live)A

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the new operator. If omitted, TouchDesigner picks a default unique name based on the operator type.
parentNoFull path of the parent COMP to create the operator inside. Defaults to '/td_mcp/sandbox'.
op_typeYesOperator type to create. Either a create token (e.g. 'noiseTOP', 'rectangleSOP', 'constantCHOP') or a display name (e.g. 'Noise TOP') that is resolved to a create token via the operator map.

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions live control and wrapping a documented call, but does not cover error states, permissions, or side effects like overwriting existing operators.

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

Conciseness5/5

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

Three concise sentences that front-load the purpose, then explain the wrapper and key parameter details. No unnecessary words.

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

Completeness3/5

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

The description covers main behavior and default values, but lacks information about return value, error handling, or prerequisites like parent COMP existence. Given no output schema, more complete context would help.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds value by explaining op_type resolution from token to display name and mentioning the default parent and default name behavior, which goes beyond the schema.

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 creates an operator inside a parent COMP in a live TouchDesigner instance, using a specific verb and resource. It distinguishes from sibling tools like td_delete or td_connect by focusing on creation.

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

Usage Guidelines3/5

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

The description provides context like default parent path and op_type resolution, but lacks explicit when-to-use or when-not-to-use guidance relative to alternatives. Usage is implied but not fully clarified.

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

td_deleteTD Delete (live)A

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path of the operator to delete, e.g. '/td_mcp/sandbox/noise1'.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description fully discloses that the action is permanent and removes the operator and its children ('This permanently removes the operator and any of its children.'). It also mentions live control context.

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

Conciseness5/5

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

The description is extremely concise: two sentences that front-load the action and context without any 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 simple destructive tool with one parameter, the description covers purpose, behavior (permanent + recursive), and safe usage. Missing details about return value or error handling, but overall sufficient.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds value by explaining the path parameter with an example ('e.g. '/td_mcp/sandbox/noise1'') and recommending staying within the sandbox, which is beyond the schema's description.

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 action (delete/destroy), the resource (operator in a running TouchDesigner instance), and the context (live control via td_mcp bridge, wrapping op.destroy()). It distinguishes from siblings by focusing on destruction.

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

Usage Guidelines4/5

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

Provides clear guidance on safe usage: 'Target a path inside '/td_mcp/sandbox' to stay within the safe work area.' However, it does not explicitly state when not to use the tool or mention alternatives among siblings.

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

td_get_errorsTD Get Errors (live)A

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path of the operator to inspect, e.g. '/td_mcp/sandbox/noise1'.
recurseNoWhen true (default), include errors from the operator's children as well.

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It correctly indicates a read operation but does not elaborate on side effects, permissions, or constraints. The description is adequate but minimal.

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

Conciseness5/5

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

Two concise sentences that front-load the action and resource, followed by a practical use case. Every sentence earns its place with no redundancy.

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?

Given the tool's simplicity (2 parameters, no output schema), the description adequately covers what it does, when to use it, and references the documented output format. Minor lack of detail on return structure is acceptable for a list-like output.

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 coverage is 100% with both parameters described in the schema. The description adds no extra meaning beyond what the schema already provides, so baseline score 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 verb 'read' and the resource 'cook errors, warnings, and script errors from an operator'. It specifies the context ('live control via the td_mcp bridge') and distinguishes from sibling tools, none of which duplicate this functionality.

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

Usage Guidelines4/5

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

The description provides a clear use case: 'Use this to diagnose why a node is not cooking after a build/edit.' It does not explicitly state when not to use or list alternatives, but the context is sufficient and no sibling tool serves the same purpose.

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

td_layoutTouchDesigner Layout NetworkA

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNoPath to the parent COMP whose children are laid out. Defaults to /td_mcp/sandbox.

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It states the tool auto-arranges operators but does not clarify whether it is destructive (permanently changes node positions), reversible, or how it handles existing layouts. It also does not mention any side effects or constraints, leaving significant behavioral gaps.

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

Conciseness5/5

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

Two concise sentences: the first directly states the purpose, the second covers default operation and prerequisite. Every word is necessary, and the structure is front-loaded with the core action. No redundancy or fluff.

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

Completeness3/5

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

For a simple one-parameter layout tool, the description covers the basic function, default target, and a key requirement. However, it does not explain what 'auto-arrange' entails algorithmically or mention that it modifies nodes (destructive nature). Given no annotations and no output schema, it leaves gaps that could confuse an agent about side effects or reversibility.

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 coverage is 100% for the single parameter 'parent', which already includes a description of its default value. The description repeats this default (/td_mcp/sandbox) and adds a requirement about the bridge, but adds no new semantics beyond what the schema provides. Thus, baseline score of 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?

Description explicitly states the tool auto-arranges operators in a TouchDesigner network for tidiness and readability. The resource (operators inside a network) and verb (auto-arrange) are specific, and the tool is clearly differentiated from sibling tools that focus on getting information, building, or other actions.

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

Usage Guidelines4/5

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

The description gives clear context: it operates on the sandbox COMP by default and requires the TouchDesigner bridge. It references td_status for checking the bridge. However, it does not provide explicit when-to-use or when-not-to-use guidance relative to other tools, though the purpose is self-evident.

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

td_list_networkTouchDesigner 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNoPath to the parent COMP whose network is listed. Defaults to /td_mcp/sandbox.
max_depthNoHow many levels deep to descend when listing children (default 1).

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description alone must convey behavior. It correctly indicates that the tool reads network contents with no destructive side effects. However, it does not disclose error behavior (e.g., if the parent path is invalid or the bridge is unavailable), which would strengthen transparency.

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

Conciseness5/5

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

Two concise sentences convey purpose, return values, default, and prerequisite. Every sentence adds value with no redundant information. The structure is front-loaded with the core action and result.

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

Completeness5/5

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

Despite lacking an output schema, the description explicitly states what is returned. It covers the default parent, prerequisite, and essential context for a list operation. No additional information is necessary for correct invocation.

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 coverage is 100%, meaning the input schema fully documents both parameters. The description only adds the default value for 'parent' ('/td_mcp/sandbox') which is already in the schema's description. Since the schema carries the burden, a score of 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 uses a specific verb ('List') and identifies the resource ('operators inside a TouchDesigner network'). It distinguishes from sibling tools like 'list_operators' by focusing on a parent COMP's children. The return fields are clearly enumerated, making the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

The description states the default parent and a prerequisite ('requires the TouchDesigner bridge to be running, see td_status'). It implies when to use this tool (e.g., to inspect a specific network's contents) without explicitly excluding alternatives. The guidance is clear but lacks explicit 'when not to use' or named sibling differentiators.

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

td_renderTD Render (live)A

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path of the TOP to render, e.g. '/td_mcp/sandbox/comp1'.
filetypeNoImage container filetype passed to saveByteArray (default '.png'). Common values: '.png', '.jpg', '.bmp', '.tiff', '.exr'.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the live control aspect and the underlying call (TOP.saveByteArray()). It does not contradict any annotations, but could detail side effects or performance implications.

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

Conciseness5/5

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

The description is extremely concise, using two sentences to convey purpose, use case, and implementation detail without superfluous content. The structure appropriately front-loads the primary action.

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?

Given no output schema, the description states it returns an image for the assistant to see. It lacks specifics on return format (e.g., base64 versus file path), but is sufficient for an agent to understand the tool's role in the workflow.

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 baseline is 3. The description adds marginal value by mentioning 'current frame' and the underlying call, but does not provide additional semantic detail beyond the schema's parameter descriptions.

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 explicitly states the action ('Render the current frame of a TOP') and the resource ('TOP'), with the outcome ('return the image so the assistant can see the result'). This clearly differentiates it from sibling tools like td_run_python or td_sample.

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

Usage Guidelines4/5

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

The description advises using the tool 'after building/editing a network to visually verify the output.' This provides clear context for when to use it, though it does not explicitly state when not to use it or mention alternative tools.

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

td_run_pythonTD Run Python (live, UNSAFE)A

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesPython source to execute in TouchDesigner. Runs in the project's Python context (td module available: op, ops, project, absTime, etc.). Only runs if the bridge's "Allow Python" flag is enabled.

TDQS

A4.9/5.0
Behavior5/5

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

No annotations exist, so description carries full burden. Warns about arbitrary code execution with full project and host environment access, explains disable-by-default behavior, and describes return content (stdout, value, errors). This fully discloses essential behavioral traits.

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

Conciseness5/5

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

Compact and well-structured: purpose, warning, usage guidance, return content all in a few sentences. No wasted words—every sentence earns its place.

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

Completeness5/5

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

Given no output schema, the description covers return values and error types. Explains execution environment and failure conditions. Complete for a simple one-parameter tool with no nested outputs.

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

Parameters4/5

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

Single parameter 'code' has schema description with Python context details. The description adds environment context (td module available) and repeats the Allow Python flag condition, adding value beyond the schema. With 100% schema coverage, baseline is 3; the extra context justifies a 4.

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?

Clearly states the tool runs arbitrary Python code in a TouchDesigner instance. The verb 'run', resource 'Python code', and scope 'arbitrary' and 'inside a running TouchDesigner instance' are explicit. Distinguishes from sibling live-control tools by naming them as preferred alternatives.

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?

Explicitly advises when to use (ad-hoc Python not expressible by other tools) and when not to use (prefer structured tools for normal operations). Also notes the tool is disabled by default and requires explicit 'Allow Python' flag, providing critical context for invocation.

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

td_sampleTD Sample (live)A

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uNoFor kind='top_pixel': horizontal sample coordinate (0..1 normalized, or a pixel index).
vNoFor kind='top_pixel': vertical sample coordinate (0..1 normalized, or a pixel index).
kindYesWhat to sample: 'chop_channel' (CHOP.chan) or 'top_pixel' (TOP.sample).
pathYesFull path of the operator to sample, e.g. '/td_mcp/sandbox/noise1'.
channelNoFor kind='chop_channel': the channel name to read (e.g. 'chan1'). Required for CHOPs.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It explains that the tool operates via the td_mcp bridge and samples values, but does not disclose potential errors, side effects, or whether it is strictly read-only (though sampling implies read-only). Additional behavioral context (e.g., what happens if the operator path is invalid) would improve transparency.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the primary purpose, and every sentence adds value. It is concise and well-structured, with 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?

Given 5 parameters and no output schema, the description covers the main functionality and each parameter's role. It mentions the return type is a 'single value' but does not specify whether it is a number, string, or other. This minor gap is offset by the clarity of the sampling methods.

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

Parameters4/5

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

Schema description coverage is 100%, so each parameter already has a description. The tool's description adds value by linking the kind parameter to the underlying TouchDesigner methods (CHOP.chan and TOP.sample) and clarifying the context for u, v, and channel. This goes beyond the schema's standalone descriptions.

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 that the tool samples a single value from a TouchDesigner operator, with two specific sampling kinds (chop_channel and top_pixel). This distinguishes it from siblings like get_operator or compare_operators, which do not offer live sampling.

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

Usage Guidelines4/5

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

The description explicitly says to use the tool 'to verify concrete output values without rendering a full frame' and explains the two kinds with examples. It does not explicitly state when not to use it, but the use case is clear and alternatives are not needed given the tool's specificity.

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

td_set_parameterTD Set Parameter (live)A

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
exprNoPython expression to bind (sets op.par.NAME.expr), e.g. 'absTime.seconds'. Use this OR value OR pulse.
pathYesFull path of the operator whose parameter is set, e.g. '/td_mcp/sandbox/noise1'.
pulseNoWhen true, pulses the parameter (calls op.par.NAME.pulse()), used for momentary/trigger parameters like 'Reset'. Use this OR value OR expr.
valueNoConstant value to assign (sets op.par.NAME.val). Use this OR expr OR pulse.
parameterYesParameter to set. Either a documented label (e.g. 'Period') or an exact parameter name (e.g. 'period'). Labels are resolved to the parameter name via the operator map; correct names pass through.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It explains the behavioral traits (drives specific members, live control) but does not disclose potential side effects, required permissions, or reversibility. Adequate but not comprehensive.

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 concise (two main sentences plus a continuation) and front-loaded with the core purpose. Every sentence adds value, though it could be slightly more streamlined without losing information.

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?

Given the tool's complexity (5 parameters, mutual exclusivity, label resolution) and no output schema, the description provides sufficient context to use the tool effectively. It covers parameter usage, required fields, and the effect on the operator.

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

Parameters4/5

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

Schema coverage is 100% with all parameters described. The description adds significant meaning beyond the schema: it clarifies the mutual exclusivity of value/expr/pulse, explains that parameter can be a label or exact name, and describes the underlying member access. This provides useful context for proper invocation.

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

Purpose4/5

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

The description clearly states it sets a parameter on an operator in a running TouchDesigner instance for live control. It specifies the internal members affected (val, expr, pulse) and distinguishes from sibling tools by focusing on parameter mutation rather than retrieval or other operations.

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

Usage Guidelines4/5

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

Provides explicit guidance on mutual exclusivity of value/expr/pulse and describes how parameter labels are resolved. While it does not mention when to use this tool over alternatives, the context of the tool (live parameter setting) is clear from the title and description.

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

td_set_resolutionTD Set Resolution (live)A

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path of the TOP to resize, e.g. '/td_mcp/sandbox/render1'.
widthYesNew output width in pixels (must be a positive integer).
heightYesNew output height in pixels (must be a positive integer).

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It notes 'live control' but does not disclose side effects (e.g., immediate re-render, parameter persistence), error handling, or requirements (e.g., TOP must exist). This is minimal for a mutation tool.

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

Conciseness5/5

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

Two sentences, no fluff. Front-loaded with verb and resource. Every word adds value.

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

Completeness3/5

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

Given no output schema, the description should clarify return behavior. It does not. Also lacks detail about valid TOP types or error cases. Adequate for simple mutation but could be more complete.

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 coverage is 100%, with clear parameter descriptions (path with example, dimensions with constraints). The description adds little beyond restating 'resolution parameters'—no additional usage context for the parameters.

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 action ('Set'), the resource ('output resolution of a TOP'), and context ('live control via td_mcp bridge'). It distinguishes itself from sibling tools like td_set_parameter by focusing specifically on resolution settings.

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

Usage Guidelines3/5

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

The description implies the tool is for live resolution changes but lacks explicit guidance on when to use it versus alternatives (e.g., td_set_parameter). No prerequisites or when-not-to-use are mentioned, leaving the agent to infer context.

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

td_statusTouchDesigner Live 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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description explains it reads env vars and returns a status or hint. Does not cover missing env vars but is adequate for a simple read-only check.

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

Conciseness5/5

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

Three sentences, each informative: purpose, output, configuration. No wasted words, front-loaded.

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

Completeness5/5

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

For a zero-parameter tool with no output schema, the description covers what it does, what it returns, and how it is configured. Fully sufficient.

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

Parameters4/5

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

No parameters in schema; description usefully explains configuration via environment variables, adding meaning beyond the empty schema.

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?

Clearly states the tool checks bridge reachability and token acceptance. Distinct from sibling td_connect which establishes a connection, and other tools.

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

Usage Guidelines4/5

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

Describes the tool's purpose (check status) but does not explicitly state when to use alternatives. However, context with siblings makes it clear it is for status verification.

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

TDQS

A3.5/5.0
Disambiguation4/5

Most tools have distinct purposes, especially between query tools (get/list/search) and live-control tools (td_*). Some overlap exists between get_operator, search_operators, and list_operators, but descriptions clarify scope.

Naming Consistency3/5

Naming conventions are mixed: query tools use verbs like get, list, search, suggest, while live-control tools consistently use td_ prefix. The inconsistency is noticeable but still readable.

Tool Count3/5

37 tools is on the high side for a single MCP server. The domain is complex and the count may be justified, but it could be split into reference and live-control subsets for better focus.

Completeness5/5

The tool set covers both informational needs (operators, tutorials, versions, experimental features) and live network building (create, connect, set parameters, render, sample, errors). There are no obvious gaps for the stated purpose.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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