github HTML analyzed c4d89e6 deep scan unknown

bottobot/touchdesigner-mcp-server

github

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.

maintainer
bottobot
licence
MIT
first seen
2026-06-01
last seen
2026-06-27
releases · 30d
0
short id

Drift inferred · capture-to-capture

tool count over time

06-01 18:36 now
43t
2t
capabilities 21 tools
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
skills & danger signals github-tarball
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

code evidence vv2.6.1 · github-tarball
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();