TouchDesigner MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TouchDesigner MCPlist all operators in the project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
# TouchDesigner MCP
通过标准 MCP Server 控制正在运行的 TouchDesigner。TD 端使用可拖入的 .tox 组件提供本地 HTTP 桥接,MCP Server 通过 stdio 对外暴露工具。
内容
outputs/TD_MCP_Bridge.tox:TouchDesigner 组件,拖入 TD 即可使用。src/:标准 MCP Server 源码。touchdesigner/install_td_mcp.py:开发/重建.tox用的 TD 安装脚本。
Related MCP server: td-mcp
使用 TouchDesigner 组件
打开目标
.toe。将
outputs/TD_MCP_Bridge.tox拖入 TouchDesigner 网络编辑区。选中
TD_MCP_Bridge组件。在
MCP参数页设置:端口:默认9980访问令牌:请自行设置,不要公开服务开关:打开后启动 Web Server DAT
连接地址通常是:
http://127.0.0.1:9980/api安装 Node.js 依赖
要求 Node.js 20 或更高版本:
npm install
npm run buildMCP Client 配置示例
把 <项目目录> 替换为你本机 clone 后的目录,把 <访问令牌> 替换为 TD 组件 MCP 参数页里的访问令牌。
{
"mcpServers": {
"touchdesigner": {
"command": "node",
"args": [
"<项目目录>/dist/index.js"
],
"env": {
"TD_MCP_URL": "http://127.0.0.1:9980/api",
"TD_MCP_TOKEN": "<访问令牌>",
"TD_MCP_TIMEOUT_MS": "10000"
}
}
}
}可用能力
td_pingtd_project_infotd_list_operatorstd_operator_infotd_get_parameterstd_set_parametertd_pulse_parametertd_create_operatortd_connect_operatorstd_disconnect_inputtd_set_node_positiontd_get_dat_texttd_set_dat_texttd_destroy_operatortd_save_projecttd_execute_python
安全说明
不要提交
.env或真实访问令牌。默认只建议绑定本机
127.0.0.1使用,不要把端口暴露到公网。td_execute_python默认关闭;确有需要时,在 TD 组件的 MCP 参数页手动开启允许任意 Python。td_destroy_operator需要显式传入confirm=true,并且桥接组件与工程根节点受保护。
验证
npm testAvailable Tools
16 toolstd_connect_operatorsC
连接两个 Operator 的输出和输入连接器。
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| target | Yes | ||
| target_input | No | ||
| source_output | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors. It only states the action but does not mention side effects, such as what happens if connectors are already connected, or if indices are invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using a single sentence. While not verbose, it lacks structure and does not provide enough information to be fully useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is incomplete. It fails to explain the indices or the behavior of the connection, which is necessary for proper use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, but the description only explains source and target as operators. It does not clarify the meaning of source_output and target_input integers, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool connects the output and input connectors of two operators, distinguishing it from sibling tools like td_disconnect_input. However, it lacks specificity about multiple outputs/inputs and the direction of connection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, what prerequisites are needed (e.g., operators must exist), or when not to use it. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_create_operatorC
在父 COMP 内创建新的 Operator。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| node_x | No | ||
| node_y | No | ||
| parent | Yes | 父 COMP 路径 | |
| op_type | Yes | TouchDesigner OP 类型,如 baseCOMP、constantCHOP、textDAT |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It implies a mutation (create), but doesn't mention side effects, permissions, or what happens if the parent doesn't exist. Lacks detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no waste. However, it's in Chinese, which may limit readability for some agents. Concise but could be structured with more detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters (3 required) and no output schema, the description is too minimal. It doesn't explain what an Operator is, the role of coordinates, or any constraints. Incomplete for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40% (only parent and op_type have descriptions). The tool description adds no extra meaning beyond the schema, so it fails to compensate for the missing parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action ('创建' meaning 'create'), the resource ('Operator'), and the location ('父 COMP 内' meaning 'inside parent COMP'). Distinguishes well from sibling tools like td_destroy_operator and td_connect_operators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, no exclusions or prerequisites. The description is purely functional without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_destroy_operatorA
删除 Operator。必须明确传入 confirm=true;不能删除根节点或桥接自身。
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| confirm | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description discloses critical behavioral traits: confirmation requirement (safety guard) and restrictions (cannot delete root/bridge). Adds value beyond schema by explaining these constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences in Chinese, no filler. Front-loaded with action and essential constraints. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately covers main action and constraints, but lacks details on side effects (e.g., disconnections), prerequisites, or return behavior. Could be more complete for a destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% so description must explain parameters. It clarifies confirm must be true, but provides no detail for 'path' parameter. Only partial compensation for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool deletes an Operator, with Chinese verb '删除' and resource 'Operator'. It distinguishes from sibling tools like td_create_operator and td_list_operators 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies must pass confirm=true and constraints (cannot delete root or bridge itself), but lacks explicit guidance on when to use vs. alternatives like td_disconnect_input or td_save_project. Usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_disconnect_inputC
断开目标 Operator 的指定输入连接。
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | ||
| target_input | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as error handling, side effects, or prerequisites for disconnecting an input.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words, but it lacks depth and detail, making it efficient but insufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is incomplete; it does not clarify the operation's effect, reversibility, or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the meaning or usage of the 'target' and 'target_input' parameters beyond what the schema already shows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('disconnect') and the resource ('target operator's specified input connection'), distinguishing it from siblings like td_connect_operators that perform the opposite action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 when to disconnect versus other operations on operators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_execute_pythonB
在 TouchDesigner 主环境执行 Python。TD 桥接的 Allow Python 默认关闭,只有显式开启后可用。
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
TDQS
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-off constraint but omits other important behavioral details such as return value, error handling, side effects, or security considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with purpose, no wasted words. Extremely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, no output schema, and no annotations, the description is incomplete. It lacks details about return values, error conditions, and parameter format or limits, leaving the agent with significant uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not reference the 'code' parameter at all. With 0% schema description coverage, the description adds no semantic value beyond the obvious implication that the parameter contains Python code.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it executes Python in the TouchDesigner main environment, which is a clear verb+resource. It distinguishes from sibling tools that deal with operators, connections, etc., but lacks explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions a key precondition: Allow Python must be explicitly enabled, which provides some usage guidance. However, it does not explicitly state when to use this tool versus alternatives (e.g., other TD tools).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_get_dat_textC
读取 Text DAT 等 DAT 的文本内容。
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| max_chars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a read operation (non-destructive), but does not disclose behavior for missing paths, permissions, or side effects. The description lacks essential behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but overly brief. It omits crucial details about parameters and usage, sacrificing informativeness for brevity. It is underspecified rather than efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only 2 parameters, the description should fully cover inputs and outputs, but it does not. The tool's return value is unspecified, and parameter semantics are missing. Given the presence of sibling tools like td_set_dat_text, the description fails to complete the context for proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters. It does not clarify whether 'path' refers to a file path or operator path, nor does it mention the 'max_chars' limit on output length. The description adds no meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb '读取' (read) and resource '文本内容' (text content) from 'Text DAT 等 DAT' (Text DAT and other DATs), making the purpose clear. However, it does not distinguish from sibling tools like td_get_parameters, which reads parameters rather than text content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs alternatives. The description only states what it does, with no mention of context, prerequisites, or exclusions. Sibling tools like td_set_dat_text and td_get_parameters hint at alternatives, but the description itself offers no help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_get_parametersC
读取一个 Operator 的参数值、表达式、模式和只读状态。
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| names | No | 省略则返回全部参数 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. While '读取' implies a read-only operation, it does not explicitly state that the tool is non-destructive, requires specific permissions, or has any rate limits or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that gets straight to the point. It is concise and front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 clarify the return format or structure. It mentions reading parameters but does not describe what the response looks like or how results are organized. This is insufficient for an agent to understand the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, but the tool's description adds no extra meaning to the parameters beyond what the schema provides. The 'names' parameter is described in the schema, but 'path' remains undocumented. The description does not clarify parameter usage or formatting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads operator parameters including values, expressions, modes, and read-only status. It is specific and action-oriented, but does not differentiate from sibling tools like td_operator_info or td_set_parameter, 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.
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. There is no mention of prerequisites, use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_list_operatorsB
递归列出指定根节点下的 Operators,可按名称、路径、OP 类型或 family 过滤。
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | 搜索根路径 | /project1 |
| limit | No | ||
| family | No | 例如 COMP、TOP、CHOP、SOP、DAT、MAT | |
| op_type | No | 例如 null、text、constant | |
| pattern | No | 名称或路径的通配符 | * |
| max_depth | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full responsibility. It mentions recursion but does not state that the tool is read-only, safe, or what happens with large datasets. Key behavioral aspects like pagination, side effects, and permission needs are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence, front-loading the core action and key filters. It is not verbose, but could benefit from brief notes on return format or depth to be more self-contained.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 optional parameters and no output schema, the description lacks essential context about return values, pagination, error handling, and exact behavior of the recursion. It is too brief for an agent to fully understand invocation consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, so baseline is 3. The description adds a filter summary (name, path, op_type, family) that corresponds to parameters, but does not explain parameters like max_depth or limit. The value added beyond the schema is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('list') and resource ('Operators'), adds recursion and filtering details, and distinguishes from sibling tools like td_operator_info (single operator) and creation tools. It clearly communicates the scope and functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The purpose is implied by the name and sibling context, but the description lacks statements like 'use this for listing, use td_operator_info for details on a single operator', leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_operator_infoB
读取一个 Operator 的类型、连接、位置、子节点和可选参数。
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 绝对 OP 路径 | |
| parameter_limit | No | ||
| include_parameters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It clarifies that the tool performs a read operation ('读取'), which implies no side effects. However, it does not disclose additional behavioral traits such as whether it requires specific permissions, if there are rate limits, or what happens if the path is invalid. The behavior is understandable but minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the purpose. Every word contributes meaning, with no redundancy. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the attributes returned (type, connections, location, child nodes, optional parameters), which provides a basic understanding of output content. However, without an output schema, it is incomplete—it does not specify the structure or data types of the return value. Given the tool has three parameters including optional filters, more detail on how these affect the output would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only 'path' has a description). The tool description does not explain how 'parameter_limit' and 'include_parameters' affect the output or how they relate to the listed attributes (e.g., 'optional parameters'). Since coverage is low, the description should compensate, but it does not add meaningful parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states that the tool reads the type, connections, location, child nodes, and optional parameters of an operator. It uses a specific verb ('reads') and resource ('operator info'), and it distinguishes from siblings like td_get_parameters (which likely only reads parameters) and td_list_operators (which lists operators).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as td_get_parameters or td_execute_python. It does not state any prerequisites or contexts where this tool is preferred, leaving the agent without decision support for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_pingA
检查 TouchDesigner 桥接是否在线。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description implies a read-only check but does not explicitly state non-destructiveness, return format, or side effects. For a ping, this is acceptable but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, complete sentence with no wasted words. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for a tool with no parameters and a simple purpose; does not describe return values, but the context of sibling tools makes its function clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so schema coverage is 100%. The description adds no extra parameter info, which is acceptable given the baseline for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'check' and the resource 'bridge online', distinguishing it from sibling tools that perform operations like connect, create, or destroy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage is to verify connectivity before other operations; no explicit when-not or alternatives are needed for a simple ping, but direction is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_project_infoA
读取当前 TouchDesigner 工程、版本、时间轴和桥接信息。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states what is read, but does not mention whether the tool is read-only, non-destructive, or if it requires a running TouchDesigner session. The description adds minimal value beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler. Every word contributes meaning. Front-loaded with verb and resource list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 lists the categories of information returned (project, version, timeline, bridge). However, it does not specify the format (e.g., JSON keys) or whether the output is structured. Adequate but could add detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%. The description correctly implies no inputs are needed. Baseline is 4, and the description does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb '读取' (read) and clearly identifies the resource: current TouchDesigner project, version, timeline, and bridge information. It distinguishes itself from sibling tools like td_operator_info which focus on individual operators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description does not mention prerequisites, limitations, or comparison with other tools such as td_ping or td_list_operators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_pulse_parameterC
触发 Pulse 类型参数,例如 reset、reload、save。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description bears full responsibility. It indicates a one-shot action but lacks details on side effects, permissions, or destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no waste, but overly terse. Front-loads the purpose but omits necessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and minimal description, the tool's behavior, return value, and usage conditions are insufficiently specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the meaning or role of 'path' and 'name' parameters. It adds no value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it triggers 'Pulse type parameters' and provides examples like reset, reload, save. This distinguishes it from other tools, though the term 'pulse' may be domain-specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 td_set_parameter. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_save_projectA
保存当前 TouchDesigner 工程;可选另存为指定 .toe 路径。
| Name | Required | Description | Default |
|---|---|---|---|
| path | No |
TDQS
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 correctly states the tool saves the current project, but does not disclose if it overwrites the existing file when no path is specified or if there are any side effects. The description is minimally sufficient but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the verb 'Save', and contains no unnecessary words. It efficiently communicates the core functionality and optional parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple save tool with one optional parameter and no output schema, the description is largely complete. It covers the primary action and the purpose of the parameter. It does not explicitly state default behavior when path is omitted, but that is implied by the context of saving the 'current' project.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaning by specifying the path parameter is for a .toe file, which goes beyond the schema's bare 'string' type. This helps the agent understand the expected format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool saves the current TouchDesigner project and optionally to a specified .toe path. It effectively distinguishes from sibling tools which handle other operations like creating, destroying, or connecting operators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While no explicit when-to-use or when-not-to-use guidance is provided, the context is clear since sibling tools cover very different functionalities. The description implies usage for saving projects, and the exclusion of alternatives is inherent in the tool's name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_set_dat_textC
替换 Text DAT 等 DAT 的文本内容。
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'replace text content' but does not indicate whether it overwrites, if it has side effects, or any auth/permission needs. This is insufficient 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it omits necessary details. It earns a middle score for brevity without completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters, no output schema, and no annotations, the description should explain parameter meanings and behavior. It only gives a high-level action, leaving the agent to guess node path format, text encoding, and return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not explain the 'path' or 'text' parameters. While 'path' likely refers to the DAT node and 'text' to the new content, this is not explicit. The description adds no value beyond the schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the action '替换' (replace) and the resource 'Text DAT 等 DAT' (Text DAT and other DATs), making the purpose clear. However, it does not differentiate from sibling tools like td_get_dat_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 td_get_dat_text or td_set_parameter. There is no context on prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_set_node_positionC
设置 Operator 在 Network Editor 中的位置。
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| node_x | Yes | ||
| node_y | Yes |
TDQS
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 the basic action without mentioning prerequisites, side effects, or return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, but it may be too terse, missing context that could be added without significant length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0% schema coverage, the description fails to provide essential context such as coordinate system, unit, or behavior when the operator doesn't exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no explanation for parameters like 'path', 'node_x', or 'node_y'. The parameter names are somewhat self-explanatory but insufficiently clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action '设置' (set) and the resource 'Operator position in Network Editor', distinguishing it from sibling tools that create, destroy, or connect operators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 when to set position versus other operations like connecting or destroying operators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
td_set_parameterC
设置 Operator 参数的常量值或 Python 表达式。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | constant | |
| name | Yes | 参数脚本名,如 tx、resolutionw | |
| path | Yes | ||
| value | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavior. It indicates a write operation but lacks details on side effects, permissions, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single, concise sentence with no wasted words. However, it could be structured to highlight key aspects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain 'path' and 'name' adequately or what happens on success/failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (25%); description adds meaning by mentioning 'constant value or Python expression', which relates to the 'mode' and 'value' parameters, but does not fully explain all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool sets an Operator parameter's value, either as a constant or Python expression. It uses a specific verb and resource, but does not differentiate from siblings like td_set_dat_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. No mention of prerequisites or 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.
TDQS
Each tool has a distinct action and target (e.g., connect, create, destroy, get_dat, set_param). No two tools overlap in purpose, ensuring agents can clearly distinguish them.
All tools follow a consistent 'td_verb_noun' pattern using snake_case. Verbs are uniform and descriptive, such as create/destroy/list/get/set, making the set predictable.
With 16 tools covering connection management, operator CRUD, parameter access, execution, and project operations, the count is well-scoped for TouchDesigner's domain without unnecessary bloat.
The set covers all major workflows: create, delete, connect, disconnect, parameter read/write, data table manipulation, and project save. Minor gaps like cloning or timeline control exist but do not impede core tasks.
Maintenance
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
Create and edit images, videos, and audio through Magic Hour's hosted Streamable HTTP MCP server.
MCP server for Producer/Riffusion AI music generation
Remote MCP server for RunComfy Serverless API (ComfyUI): deployments and async inference.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceHigh-performance MCP server that enables AI assistants to control TouchDesigner live via WebSocket, providing 37 tools for nodes, parameters, scripting, and more.5MIT
- AlicenseAqualityDmaintenanceMCP server for controlling TouchDesigner from AI coding agents like Claude Code and Codex CLI, enabling operator manipulation, parameter control, and screenshot capture.12MIT
- AlicenseNot gradedqualityDmaintenanceMCP server + web dashboard for TouchDesigner. Inspect, optimize, and control TD patches from Claude Code or the browser.MIT
- AlicenseAqualityBmaintenanceEnables LLMs to directly control, introspect, and build TouchDesigner networks in real-time through a Model Context Protocol server.25MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/wangpolanshan/touchdesigner-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server