Agent skill

Touchdesigner MCP

by Tommy-yw in Tommy-yw/RunbookHermes

Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals.

MITAuto-check passedAgent Workflows

Install Touchdesigner MCP

skills CLI
$ npx skills add Tommy-yw/RunbookHermes --skill touchdesigner-mcp -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Tommy-yw/RunbookHermes touchdesigner-mcp --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .claude/skills && cp -r skills-src/optional-skills/creative/touchdesigner-mcp .claude/skills/touchdesigner-mcp && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
touchdesigner-mcp
GitHub stars
546
Used in
2 other repos
Token cost
~3.4k tokens
SKILL.md length
1,178 words
Files
8 (incl. scripts, references)
Skills in repo
38
Repo updated
First seen
Licence
MIT

At a glance

Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals.

  • Works in 6 steps: Discover (before building anything) → Clean + Build → Set Parameters → …
  • Tasks that involve MCP servers
  • SKILL.md covers CRITICAL RULES, Architecture, Setup (Automated) and Environment Notes, plus 8 more sections
  • Runs Shell scripts from its folder; calls bash and ffmpeg

What it does

Touchdesigner MCP is an agent skill from Tommy-yw/RunbookHermes. Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. 36 native tools.

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts and reference files (for example `references/mcp-tools.md`, `references/network-patterns.md` and `references/operators.md`).

It sits in Agent Workflows, covering MCP servers. It works with Model Context Protocol and Python. The repository describes itself as: Hermes-native AIOps agent for evidence-driven incident response, approval-gated remediation, and runbook learning. The licence is MIT.

When your agent uses it

  • Tasks that involve MCP servers

Example prompts

  • “/touchdesigner-mcp”

Requirements

  • Python 3
  • A Bash shell

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Discover (before building anything)
  2. Clean + Build
  3. Set Parameters
  4. Wire
  5. Verify
  6. Display / Capture

What it can do on your machine

Read from SKILL.md and the folder at commit 7fd2b9a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • bash
    • ffmpeg

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Touchdesigner MCP loads about 3.4k tokens when it runs, and up to ~34k if it reads all its reference files. Until then it costs about 47 tokens; SKILL.md has 1,178 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~47
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~34k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from Tommy-yw/RunbookHermes at commit 7fd2b9a, republished under its MIT licence (© Tommy-yw). 1,178 words, ~3,423 tokens.

Download SKILL.mdSave it as .claude/skills/touchdesigner-mcp/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
touchdesigner-mcp
description
Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. 36 native tools.
version
1.0.0
author
kshitijk4poor
license
MIT

TouchDesigner Integration (twozero MCP)

CRITICAL RULES

  1. NEVER guess parameter names. Call td_get_par_info for the op type FIRST. Your training data is wrong for TD 2025.32.
  2. If tdAttributeError fires, STOP. Call td_get_operator_info on the failing node before continuing.
  3. NEVER hardcode absolute paths in script callbacks. Use me.parent() / scriptOp.parent().
  4. Prefer native MCP tools over td_execute_python. Use td_create_operator, td_set_operator_pars, td_get_errors etc. Only fall back to td_execute_python for complex multi-step logic.
  5. Call td_get_hints before building. It returns patterns specific to the op type you're working with.

Architecture

Hermes Agent -> MCP (Streamable HTTP) -> twozero.tox (port 40404) -> TD Python

36 native tools. Free plugin (no payment/license — confirmed April 2026). Context-aware (knows selected OP, current network). Hub health check: GET http://localhost:40404/mcp returns JSON with instance PID, project name, TD version.

Setup (Automated)

Run the setup script to handle everything:

bash
bash "${HERMES_HOME:-$HOME/.hermes}/skills/creative/touchdesigner-mcp/scripts/setup.sh"

The script will:

  1. Check if TD is running
  2. Download twozero.tox if not already cached
  3. Add twozero_td MCP server to Hermes config (if missing)
  4. Test the MCP connection on port 40404
  5. Report what manual steps remain (drag .tox into TD, enable MCP toggle)
Manual steps (one-time, cannot be automated)
  1. Drag ~/Downloads/twozero.tox into the TD network editor → click Install
  2. Enable MCP: click twozero icon → Settings → mcp → "auto start MCP" → Yes
  3. Restart Hermes session to pick up the new MCP server

After setup, verify:

bash
nc -z 127.0.0.1 40404 && echo "twozero MCP: READY"

Environment Notes

  • Non-Commercial TD caps resolution at 1280×1280. Use outputresolution = 'custom' and set width/height explicitly.
  • Codecs: prores (preferred on macOS) or mjpa as fallback. H.264/H.265/AV1 require a Commercial license.
  • Always call td_get_par_info before setting params — names vary by TD version (see CRITICAL RULES #1).

Workflow

Step 0: Discover (before building anything)
Call td_get_par_info with op_type for each type you plan to use.
Call td_get_hints with the topic you're building (e.g. "glsl", "audio reactive", "feedback").
Call td_get_focus to see where the user is and what's selected.
Call td_get_network to see what already exists.

No temp nodes, no cleanup. This replaces the old discovery dance entirely.

Step 1: Clean + Build

IMPORTANT: Split cleanup and creation into SEPARATE MCP calls. Destroying and recreating same-named nodes in one td_execute_python script causes "Invalid OP object" errors. See pitfalls #11b.

Use td_create_operator for each node (handles viewport positioning automatically):

td_create_operator(type="noiseTOP", parent="/project1", name="bg", parameters={"resolutionw": 1280, "resolutionh": 720})
td_create_operator(type="levelTOP", parent="/project1", name="brightness")
td_create_operator(type="nullTOP", parent="/project1", name="out")

For bulk creation or wiring, use td_execute_python:

python
# td_execute_python script:
root = op('/project1')
nodes = []
for name, optype in [('bg', noiseTOP), ('fx', levelTOP), ('out', nullTOP)]:
    n = root.create(optype, name)
    nodes.append(n.path)
# Wire chain
for i in range(len(nodes)-1):
    op(nodes[i]).outputConnectors[0].connect(op(nodes[i+1]).inputConnectors[0])
result = {'created': nodes}
Step 2: Set Parameters

Prefer the native tool (validates params, won't crash):

td_set_operator_pars(path="/project1/bg", parameters={"roughness": 0.6, "monochrome": true})

For expressions or modes, use td_execute_python:

python
op('/project1/time_driver').par.colorr.expr = "absTime.seconds % 1000.0"
Step 3: Wire

Use td_execute_python — no native wire tool exists:

python
op('/project1/bg').outputConnectors[0].connect(op('/project1/fx').inputConnectors[0])
Step 4: Verify
td_get_errors(path="/project1", recursive=true)
td_get_perf()
td_get_operator_info(path="/project1/out", detail="full")
Step 5: Display / Capture
td_get_screenshot(path="/project1/out")

Or open a window via script:

python
win = op('/project1').create(windowCOMP, 'display')
win.par.winop = op('/project1/out').path
win.par.winw = 1280; win.par.winh = 720
win.par.winopen.pulse()

MCP Tool Quick Reference

Core (use these most):

ToolWhat
td_execute_pythonRun arbitrary Python in TD. Full API access.
td_create_operatorCreate node with params + auto-positioning
td_set_operator_parsSet params safely (validates, won't crash)
td_get_operator_infoInspect one node: connections, params, errors
td_get_operators_infoInspect multiple nodes in one call
td_get_networkSee network structure at a path
td_get_errorsFind errors/warnings recursively
td_get_par_infoGet param names for an OP type (replaces discovery)
td_get_hintsGet patterns/tips before building
td_get_focusWhat network is open, what's selected

Read/Write:

ToolWhat
td_read_datRead DAT text content
td_write_datWrite/patch DAT content
td_read_chopRead CHOP channel values
td_read_textportRead TD console output

Visual:

ToolWhat
td_get_screenshotCapture one OP viewer to file
td_get_screenshotsCapture multiple OPs at once
td_get_screen_screenshotCapture actual screen via TD
td_navigate_toJump network editor to an OP

Search:

ToolWhat
td_find_opFind ops by name/type across project
td_searchSearch code, expressions, string params

System:

ToolWhat
td_get_perfPerformance profiling (FPS, slow ops)
td_list_instancesList all running TD instances
td_get_docsIn-depth docs on a TD topic
td_agents_mdRead/write per-COMP markdown docs
td_reinit_extensionReload extension after code edit
td_clear_textportClear console before debug session

Input Automation:

ToolWhat
td_input_executeSend mouse/keyboard to TD
td_input_statusPoll input queue status
td_input_clearStop input automation
td_op_screen_rectGet screen coords of a node
td_click_screen_pointClick a point in a screenshot

See references/mcp-tools.md for full parameter schemas.

Key Implementation Rules

GLSL time: No uTDCurrentTime in GLSL TOP. Use the Values page:

python
# Call td_get_par_info(op_type="glslTOP") first to confirm param names
td_set_operator_pars(path="/project1/shader", parameters={"value0name": "uTime"})
# Then set expression via script:
# op('/project1/shader').par.value0.expr = "absTime.seconds"
# In GLSL: uniform float uTime;

Fallback: Constant TOP in rgba32float format (8-bit clamps to 0-1, freezing the shader).

Feedback TOP: Use top parameter reference, not direct input wire. "Not enough sources" resolves after first cook. "Cook dependency loop" warning is expected.

Resolution: Non-Commercial caps at 1280×1280. Use outputresolution = 'custom'.

Large shaders: Write GLSL to /tmp/file.glsl, then use td_write_dat or td_execute_python to load.

Vertex/Point access (TD 2025.32): point.P[0], point.P[1], point.P[2] — NOT .x, .y, .z.

Extensions: ext0object format is "op('./datName').module.ClassName(me)" in CONSTANT mode. After editing extension code with td_write_dat, call td_reinit_extension.

Script callbacks: ALWAYS use relative paths via me.parent() / scriptOp.parent().

Cleaning nodes: Always list(root.children) before iterating + child.valid check.

Show full SKILL.md (474 more words)Show less

Recording / Exporting Video

python
# via td_execute_python:
root = op('/project1')
rec = root.create(moviefileoutTOP, 'recorder')
op('/project1/out').outputConnectors[0].connect(rec.inputConnectors[0])
rec.par.type = 'movie'
rec.par.file = '/tmp/output.mov'
rec.par.videocodec = 'prores'  # Apple ProRes — NOT license-restricted on macOS
rec.par.record = True   # start
# rec.par.record = False  # stop (call separately later)

H.264/H.265/AV1 need Commercial license. Use prores on macOS or mjpa as fallback. Extract frames: ffmpeg -i /tmp/output.mov -vframes 120 /tmp/frames/frame_%06d.png

TOP.save() is useless for animation — captures same GPU texture every time. Always use MovieFileOut.

Before Recording: Checklist
  1. Verify FPS > 0 via td_get_perf. If FPS=0 the recording will be empty. See pitfalls #38-39.
  2. Verify shader output is not black via td_get_screenshot. Black output = shader error or missing input. See pitfalls #8, #40.
  3. If recording with audio: cue audio to start first, then delay recording by 3 frames. See pitfalls #19.
  4. Set output path before starting record — setting both in the same script can race.

Audio-Reactive GLSL (Proven Recipe)

Correct signal chain (tested April 2026)
AudioFileIn CHOP (playmode=sequential)
  → AudioSpectrum CHOP (FFT=512, outputmenu=setmanually, outlength=256, timeslice=ON)
  → Math CHOP (gain=10)
  → CHOP to TOP (dataformat=r, layout=rowscropped)
  → GLSL TOP input 1 (spectrum texture, 256x2)

Constant TOP (rgba32float, time) → GLSL TOP input 0
GLSL TOP → Null TOP → MovieFileOut
Critical audio-reactive rules (empirically verified)
  1. TimeSlice must stay ON for AudioSpectrum. OFF = processes entire audio file → 24000+ samples → CHOP to TOP overflow.
  2. Set Output Length manually to 256 via outputmenu='setmanually' and outlength=256. Default outputs 22050 samples.
  3. DO NOT use Lag CHOP for spectrum smoothing. Lag CHOP operates in timeslice mode and expands 256 samples to 2400+, averaging all values to near-zero (~1e-06). The shader receives no usable data. This was the #1 audio sync failure in testing.
  4. DO NOT use Filter CHOP either — same timeslice expansion problem with spectrum data.
  5. Smoothing belongs in the GLSL shader if needed, via temporal lerp with a feedback texture: mix(prevValue, newValue, 0.3). This gives frame-perfect sync with zero pipeline latency.
  6. CHOP to TOP dataformat = 'r', layout = 'rowscropped'. Spectrum output is 256x2 (stereo). Sample at y=0.25 for first channel.
  7. Math gain = 10 (not 5). Raw spectrum values are ~0.19 in bass range. Gain of 10 gives usable ~5.0 for the shader.
  8. No Resample CHOP needed. Control output size via AudioSpectrum's outlength param directly.
GLSL spectrum sampling
glsl
// Input 0 = time (1x1 rgba32float), Input 1 = spectrum (256x2)
float iTime = texture(sTD2DInputs[0], vec2(0.5)).r;

// Sample multiple points per band and average for stability:
// NOTE: y=0.25 for first channel (stereo texture is 256x2, first row center is 0.25)
float bass = (texture(sTD2DInputs[1], vec2(0.02, 0.25)).r +
              texture(sTD2DInputs[1], vec2(0.05, 0.25)).r) / 2.0;
float mid  = (texture(sTD2DInputs[1], vec2(0.2, 0.25)).r +
              texture(sTD2DInputs[1], vec2(0.35, 0.25)).r) / 2.0;
float hi   = (texture(sTD2DInputs[1], vec2(0.6, 0.25)).r +
              texture(sTD2DInputs[1], vec2(0.8, 0.25)).r) / 2.0;

See references/network-patterns.md for complete build scripts + shader code.

Operator Quick Reference

FamilyColorPython class / MCP typeSuffix
TOPPurplenoiseTOP, glslTOP, compositeTOP, levelTop, blurTOP, textTOP, nullTOPTOP
CHOPGreenaudiofileinCHOP, audiospectrumCHOP, mathCHOP, lfoCHOP, constantCHOPCHOP
SOPBluegridSOP, sphereSOP, transformSOP, noiseSOPSOP
DATWhitetextDAT, tableDAT, scriptDAT, webserverDATDAT
MATYellowphongMAT, pbrMAT, glslMAT, constMATMAT
COMPGraygeometryCOMP, containerCOMP, cameraCOMP, lightCOMP, windowCOMPCOMP

Security Notes

  • MCP runs on localhost only (port 40404). No authentication — any local process can send commands.
  • td_execute_python has unrestricted access to the TD Python environment and filesystem as the TD process user.
  • setup.sh downloads twozero.tox from the official 404zero.com URL. Verify the download if concerned.
  • The skill never sends data outside localhost. All MCP communication is local.

References

FileWhat
references/pitfalls.mdHard-won lessons from real sessions
references/operators.mdAll operator families with params and use cases
references/network-patterns.mdRecipes: audio-reactive, generative, GLSL, instancing
references/mcp-tools.mdFull twozero MCP tool parameter schemas
references/python-api.mdTD Python: op(), scripting, extensions
references/troubleshooting.mdConnection diagnostics, debugging
scripts/setup.shAutomated setup script

You're not writing code. You're conducting light.

© Tommy-yw, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files (scripts, references) in optional-skills/creative/touchdesigner-mcp of Tommy-yw/RunbookHermes.

  • SKILL.md
  • references/mcp-tools.md
  • references/network-patterns.md
  • references/operators.md
  • references/pitfalls.md
  • references/python-api.md
  • references/troubleshooting.md
  • scripts/setup.sh

Open the folder on GitHubat commit 7fd2b9a

Used in 2 other repositories

We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in Tommy-yw/RunbookHermes, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Touchdesigner MCP next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Touchdesigner MCP compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Touchdesigner MCP this skillTommy-yw/RunbookHermes5462 repos~3.4kAutomated safety check: PassMIT
MCP Server Builderanthropics/skills180k63 repos~2.3kAutomated safety check: PassApache-2.0
MCP Server BuildershareAI-lab/learn-claude-code78k4 repos~1.2kAutomated safety check: PassMIT
MemPalace Setup and OperationMemPalace/mempalace60k—~2.2kAutomated safety check: PassMIT
Fastmcp Client CLIPrefectHQ/fastmcp28k—~823Automated safety check: PassApache-2.0
Migrate To Archestraarchestra-ai/archestra4.4k—~2.5kAutomated safety check: PassApache-2.0

Similar skills

  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 63 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • MCP Server Builder

    shareAI-lab/learn-claude-code

    Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.

    78k GitHub starsUsed in 4 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • Installs and configures MemPalace as a private local palace, a shared-brain hub or a client of an existing hub, including MCP registration and version-correct initialization.

    60k GitHub stars~2.2k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Fastmcp Client CLI

    PrefectHQ/fastmcp

    Query and invoke tools on MCP servers using fastmcp list and fastmcp call.

    28k GitHub stars~823 tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Migrate To Archestra

    archestra-ai/archestra

    Migrate an existing agentic PoC/pilot (Claude Code project files, MCP configs, hooks, local tools, openclaw config, or similar hand-rolled setup artifacts) into an Archestra instance.

    4.4k GitHub stars~2.5k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Build Error Adapter

    ArcadeAI/arcade-mcp

    Build new Arcade error adapters from scratch using public Arcade TDK patterns.

    1k GitHub stars~2k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed

More from Tommy-yw/RunbookHermes

All 38 skills in this repo
  • Fastmcp

    Tommy-yw/RunbookHermes

    Build, test, inspect, install, and deploy MCP servers with FastMCP in Python.

    546 GitHub starsUsed in 3 repos~2.1k tokens
    Auto-check passed
  • Drug Discovery

    Tommy-yw/RunbookHermes

    Pharmaceutical research assistant for drug discovery workflows.

    546 GitHub starsUsed in 1 repo~2.3k tokens
    Auto-check passed
  • Youtube Content

    Tommy-yw/RunbookHermes

    Fetch YouTube video transcripts and transform them into structured content (chapters, summaries, threads, blog posts).

    546 GitHub starsUsed in 1 repo~785 tokens
    Auto-check passed
  • Oss Forensics

    Tommy-yw/RunbookHermes

    Supply chain investigation, evidence recovery, and forensic analysis for GitHub repositories.

    546 GitHub starsUsed in 3 repos~5k tokens
    Auto-check passed
  • P5js

    Tommy-yw/RunbookHermes

    Production pipeline for interactive and generative visual art using p5.js.

    546 GitHub starsUsed in 1 repo~6.8k tokens
    Auto-check passed
  • 1password

    Tommy-yw/RunbookHermes

    Set up and use 1Password CLI (op). An agent skill from Tommy-yw/RunbookHermes.

    546 GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check: notes

Categories

Questions about Touchdesigner MCP

What does Touchdesigner MCP do?

Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. Touchdesigner MCP is an agent skill from Tommy-yw/RunbookHermes. Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals.

When should I use Touchdesigner MCP?

Touchdesigner MCP fits situations like: tasks that involve MCP servers.

How do I install Touchdesigner MCP in Claude Code?

Run `npx skills add Tommy-yw/RunbookHermes --skill touchdesigner-mcp -a claude-code`. Or copy the skill folder (optional-skills/creative/touchdesigner-mcp in Tommy-yw/RunbookHermes) into .claude/skills/touchdesigner-mcp in your project. Claude Code loads it when a task matches its description.

How do I install Touchdesigner MCP in Codex?

Run `npx skills add Tommy-yw/RunbookHermes --skill touchdesigner-mcp -a codex`. Or copy the skill folder (optional-skills/creative/touchdesigner-mcp in Tommy-yw/RunbookHermes) into .agents/skills/touchdesigner-mcp in your project. Codex loads it when a task matches its description.

Can I use Touchdesigner MCP in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Tommy-yw/RunbookHermes --skill touchdesigner-mcp -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/touchdesigner-mcp, .gemini/skills/touchdesigner-mcp, .github/skills/touchdesigner-mcp and .opencode/skills/touchdesigner-mcp in your project.

What does Touchdesigner MCP need to run?

Going by SKILL.md and its folder, Touchdesigner MCP needs a shell for the scripts in its folder and the command-line tools its instructions call (bash and ffmpeg). Our summary lists: Python 3; A Bash shell.

Does Touchdesigner MCP access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Touchdesigner MCP safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Touchdesigner MCP use?

Touchdesigner MCP is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Touchdesigner MCP use?

About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 31k tokens, read only when the agent opens those files.

What are the alternatives to Touchdesigner MCP?

Skills that share tags, products or a category with Touchdesigner MCP: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MemPalace Setup and Operation (MemPalace/mempalace, 60k stars) and Fastmcp Client CLI (PrefectHQ/fastmcp, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Touchdesigner MCP?

Tommy-yw (a GitHub user) maintains it in Tommy-yw/RunbookHermes, which has 546 GitHub stars. The repository holds 38 skills in this directory. The repository was last updated on May 18, 2026.

Source: Tommy-yw/RunbookHermes on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.