TouchDesigner Documentation MCP Server v2.6.1 - FIXED Python API tools! Features 629 operators + 14 tutorials + 69 Python API classes with working get_python_api & search_python_api tools. Zero-configuration setup for VS Code/Codium.
Drift inferred · capture-to-capture
tool count over time
06-01 18:36 now
43t
2t
transport stdio · streamable-http · http counts 21 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
compare_operators
-
get_experimental_build
-
get_experimental_techniques
-
get_glsl_pattern
-
get_network_template
-
get_operator
-
get_operator_connections
-
get_operator_examples
-
get_python_api
-
get_tutorial
-
get_version_info
-
list_experimental_builds
-
list_operators
-
list_python_classes
-
list_tutorials
-
list_versions
-
search_experimental
-
search_operators
-
search_python_api
-
search_tutorials
-
suggest_workflow
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit c4d89e6 · analyzer v33 · 2w ago
skills & prompt files 24
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/add-operators-agent.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/add-tools-agent.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/analyze-codebase.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/analyze-project.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/enhance-core-tools.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/final-validate.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/implement-core-tools.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/implement-experimental-builds.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/implement-experimental-kb.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/implement-experimental.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/implement-version-system.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/improve-search-agent.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/quality-check-agent.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/research-experimental.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/research-td-versions.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/update-docs-agent.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/update-docs.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/update-documentation.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/validate-changes.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/validate-experimental.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/agents/validate-version-system.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/commands/cc-workflow-ai-editor.md
- agent-rules bottobot-touchdesigner-mcp-server-c4d89e6/.claude/commands/td-mcp-improvement.md
- skill bottobot-touchdesigner-mcp-server-c4d89e6/.roo/skills/cc-workflow-ai-editor/SKILL.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 63
filesystem 25
- fs bottobot-touchdesigner-mcp-server-c4d89e6/index.js :11
import { promises as fs } from 'fs'; - fs (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/build-maps.js :12
import { promises as fs } from 'fs'; - fs (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/clean-operator-data.js :9
import { promises as fs } from 'fs'; - fs (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/enrich-top-operators.js :7
import { promises as fs } from 'fs'; - fs (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/fix-operators.js :13
import { promises as fs } from 'fs'; - fs (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/fix-python-api.js :9
import { promises as fs } from 'fs'; - fs (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/recount.js :10
import { promises as fs } from 'fs'; - fs (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/rescrape-pops.js :13
import { promises as fs } from 'fs'; - fs (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/scrape-missing.js :10
import { promises as fs } from 'fs'; - fs (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/scrape-python-class.js :12
import { promises as fs } from 'fs'; - fs (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/validate.js :8
import { promises as fs } from 'fs'; - fs bottobot-touchdesigner-mcp-server-c4d89e6/tools/get_experimental_build.js :13
import { promises as fs } from 'fs';
show 13 more
- fs bottobot-touchdesigner-mcp-server-c4d89e6/tools/get_experimental_techniques.js :10
import { promises as fs } from 'fs'; - fs bottobot-touchdesigner-mcp-server-c4d89e6/tools/get_glsl_pattern.js :10
import { promises as fs } from 'fs'; - fs bottobot-touchdesigner-mcp-server-c4d89e6/tools/list_experimental_builds.js :13
import { promises as fs } from 'fs'; - fs bottobot-touchdesigner-mcp-server-c4d89e6/tools/search_experimental.js :10
import { promises as fs } from 'fs'; - fs bottobot-touchdesigner-mcp-server-c4d89e6/tools/td-live/client.js :14
import { promises as fs } from 'fs'; - fs bottobot-touchdesigner-mcp-server-c4d89e6/tools/td_build_glsl.js :27
import { readFile } from "node:fs/promises"; - fs bottobot-touchdesigner-mcp-server-c4d89e6/tools/td_build_pattern.js :31
import { readFile } from "node:fs/promises"; - fs bottobot-touchdesigner-mcp-server-c4d89e6/wiki/operator-data-manager.js :6
import { promises as fs } from 'fs'; - fs bottobot-touchdesigner-mcp-server-c4d89e6/wiki/operator-data-python-api.js :6
import { promises as fs } from 'fs'; - fs bottobot-touchdesigner-mcp-server-c4d89e6/wiki/processor/htm-parser-perfect.js :7
import { promises as fs } from 'fs'; - fs bottobot-touchdesigner-mcp-server-c4d89e6/wiki/processor/python-api-parser.js :7
import { promises as fs } from 'fs'; - fs bottobot-touchdesigner-mcp-server-c4d89e6/wiki/processor/search-indexer.js :6
import { promises as fs } from 'fs'; - fs bottobot-touchdesigner-mcp-server-c4d89e6/wiki/utils/version-filter.js :20
import { promises as fs } from 'fs';
network 5
- net (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/scrape-missing.js :30
const res = await fetch(url, { headers: { 'User-Agent': 'td-mcp-docs-sync/3.0' } }); - net (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/scrape-operator.js :99
const res = await fetch(url, { headers: { 'User-Agent': 'td-mcp-docs-sync/3.0 (operator data refresh)' } }); - net (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/scrape-python-class.js :84
const j = await (await fetch(url, { headers: { 'User-Agent': 'td-mcp-docs-sync/3.0' } })).json(); - net bottobot-touchdesigner-mcp-server-c4d89e6/tools/get_experimental_techniques.js :191
"Optional specific technique ID to fetch (e.g. 'raymarching_basic', 'reaction_diffusion_gs'). If omitted, returns all techniques in the category." - net bottobot-touchdesigner-mcp-server-c4d89e6/tools/td-live/client.js :49
const res = await fetch(`http://${host}:${port}/`, {
secrets 1
- secrets bottobot-touchdesigner-mcp-server-c4d89e6/tools/td-live/client.js :26
token: process.env.TD_MCP_TOKEN || '',
tool registrations 21
- get_operator bottobot-touchdesigner-mcp-server-c4d89e6/index.js :117
- search_operators bottobot-touchdesigner-mcp-server-c4d89e6/index.js :123
- suggest_workflow bottobot-touchdesigner-mcp-server-c4d89e6/index.js :129
- list_operators bottobot-touchdesigner-mcp-server-c4d89e6/index.js :135
- get_tutorial bottobot-touchdesigner-mcp-server-c4d89e6/index.js :142
- list_tutorials bottobot-touchdesigner-mcp-server-c4d89e6/index.js :148
- get_python_api bottobot-touchdesigner-mcp-server-c4d89e6/index.js :155
- search_python_api bottobot-touchdesigner-mcp-server-c4d89e6/index.js :161
- search_tutorials bottobot-touchdesigner-mcp-server-c4d89e6/index.js :168
- get_operator_examples bottobot-touchdesigner-mcp-server-c4d89e6/index.js :174
- list_python_classes bottobot-touchdesigner-mcp-server-c4d89e6/index.js :180
- compare_operators bottobot-touchdesigner-mcp-server-c4d89e6/index.js :186
show 9 more
- get_version_info bottobot-touchdesigner-mcp-server-c4d89e6/index.js :193
- list_versions bottobot-touchdesigner-mcp-server-c4d89e6/index.js :199
- get_experimental_techniques bottobot-touchdesigner-mcp-server-c4d89e6/index.js :206
- search_experimental bottobot-touchdesigner-mcp-server-c4d89e6/index.js :212
- get_glsl_pattern bottobot-touchdesigner-mcp-server-c4d89e6/index.js :218
- get_operator_connections bottobot-touchdesigner-mcp-server-c4d89e6/index.js :225
- get_network_template bottobot-touchdesigner-mcp-server-c4d89e6/index.js :231
- get_experimental_build bottobot-touchdesigner-mcp-server-c4d89e6/index.js :238
- list_experimental_builds bottobot-touchdesigner-mcp-server-c4d89e6/index.js :244
declared dependencies 3
- @modelcontextprotocol/sdk@^1.29.0
- cheerio@^1.1.2
- zod@^3.25.0
obfuscation 1
- dynamic require()/import() bottobot-touchdesigner-mcp-server-c4d89e6/scripts/validate.js :35
T[t] = await import(`../tools/${t}.js`);
perm:untrusted 1
- untrusted (weak) bottobot-touchdesigner-mcp-server-c4d89e6/scripts/scrape-python-class.js :84
const j = await (await fetch(url, { headers: { 'User-Agent': 'td-mcp-docs-sync/3.0' } })).json();