MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals.
$ npx skills add Tommy-yw/RunbookHermes --skill touchdesigner-mcp -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Tommy-yw/RunbookHermes touchdesigner-mcp --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "touchdesigner-mcp" agent skill from https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/creative/touchdesigner-mcp into .claude/skills/touchdesigner-mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "touchdesigner-mcp", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/creative/touchdesigner-mcpType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Tommy-yw/RunbookHermes --skill touchdesigner-mcp -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Tommy-yw/RunbookHermes touchdesigner-mcp --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .agents/skills && cp -r skills-src/optional-skills/creative/touchdesigner-mcp .agents/skills/touchdesigner-mcp && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "touchdesigner-mcp" agent skill from https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/creative/touchdesigner-mcp into .agents/skills/touchdesigner-mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "touchdesigner-mcp", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Tommy-yw/RunbookHermes --skill touchdesigner-mcp -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Tommy-yw/RunbookHermes touchdesigner-mcp --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/optional-skills/creative/touchdesigner-mcp .cursor/skills/touchdesigner-mcp && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "touchdesigner-mcp" agent skill from https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/creative/touchdesigner-mcp into .cursor/skills/touchdesigner-mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "touchdesigner-mcp", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Tommy-yw/RunbookHermes.git --path optional-skills/creative/touchdesigner-mcp--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Tommy-yw/RunbookHermes --skill touchdesigner-mcp -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Tommy-yw/RunbookHermes touchdesigner-mcp --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/optional-skills/creative/touchdesigner-mcp .gemini/skills/touchdesigner-mcp && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "touchdesigner-mcp" agent skill from https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/creative/touchdesigner-mcp into .gemini/skills/touchdesigner-mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "touchdesigner-mcp", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Tommy-yw/RunbookHermes touchdesigner-mcpInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Tommy-yw/RunbookHermes --skill touchdesigner-mcp -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .github/skills && cp -r skills-src/optional-skills/creative/touchdesigner-mcp .github/skills/touchdesigner-mcp && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "touchdesigner-mcp" agent skill from https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/creative/touchdesigner-mcp into .github/skills/touchdesigner-mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "touchdesigner-mcp", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Tommy-yw/RunbookHermes --skill touchdesigner-mcp -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Tommy-yw/RunbookHermes touchdesigner-mcp --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Tommy-yw/RunbookHermes.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/optional-skills/creative/touchdesigner-mcp .opencode/skills/touchdesigner-mcp && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "touchdesigner-mcp" agent skill from https://github.com/Tommy-yw/RunbookHermes/tree/main/optional-skills/creative/touchdesigner-mcp into .opencode/skills/touchdesigner-mcp/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "touchdesigner-mcp", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
touchdesigner-mcpControl 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. 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.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7fd2b9a. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
bashffmpegFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from Tommy-yw/RunbookHermes at commit 7fd2b9a, republished under its MIT licence (© Tommy-yw). 1,178 words, ~3,423 tokens.
.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.td_get_par_info for the op type FIRST. Your training data is wrong for TD 2025.32.tdAttributeError fires, STOP. Call td_get_operator_info on the failing node before continuing.me.parent() / scriptOp.parent().td_create_operator, td_set_operator_pars, td_get_errors etc. Only fall back to td_execute_python for complex multi-step logic.td_get_hints before building. It returns patterns specific to the op type you're working with.Hermes Agent -> MCP (Streamable HTTP) -> twozero.tox (port 40404) -> TD Python36 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.
Run the setup script to handle everything:
bash "${HERMES_HOME:-$HOME/.hermes}/skills/creative/touchdesigner-mcp/scripts/setup.sh"The script will:
twozero_td MCP server to Hermes config (if missing)~/Downloads/twozero.tox into the TD network editor → click InstallAfter setup, verify:
nc -z 127.0.0.1 40404 && echo "twozero MCP: READY"outputresolution = 'custom' and set width/height explicitly.prores (preferred on macOS) or mjpa as fallback. H.264/H.265/AV1 require a Commercial license.td_get_par_info before setting params — names vary by TD version (see CRITICAL RULES #1).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.
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:
# 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}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:
op('/project1/time_driver').par.colorr.expr = "absTime.seconds % 1000.0"Use td_execute_python — no native wire tool exists:
op('/project1/bg').outputConnectors[0].connect(op('/project1/fx').inputConnectors[0])td_get_errors(path="/project1", recursive=true)
td_get_perf()
td_get_operator_info(path="/project1/out", detail="full")td_get_screenshot(path="/project1/out")Or open a window via script:
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()Core (use these most):
| Tool | What |
|---|---|
td_execute_python | Run arbitrary Python in TD. Full API access. |
td_create_operator | Create node with params + auto-positioning |
td_set_operator_pars | Set params safely (validates, won't crash) |
td_get_operator_info | Inspect one node: connections, params, errors |
td_get_operators_info | Inspect multiple nodes in one call |
td_get_network | See network structure at a path |
td_get_errors | Find errors/warnings recursively |
td_get_par_info | Get param names for an OP type (replaces discovery) |
td_get_hints | Get patterns/tips before building |
td_get_focus | What network is open, what's selected |
Read/Write:
| Tool | What |
|---|---|
td_read_dat | Read DAT text content |
td_write_dat | Write/patch DAT content |
td_read_chop | Read CHOP channel values |
td_read_textport | Read TD console output |
Visual:
| Tool | What |
|---|---|
td_get_screenshot | Capture one OP viewer to file |
td_get_screenshots | Capture multiple OPs at once |
td_get_screen_screenshot | Capture actual screen via TD |
td_navigate_to | Jump network editor to an OP |
Search:
| Tool | What |
|---|---|
td_find_op | Find ops by name/type across project |
td_search | Search code, expressions, string params |
System:
| Tool | What |
|---|---|
td_get_perf | Performance profiling (FPS, slow ops) |
td_list_instances | List all running TD instances |
td_get_docs | In-depth docs on a TD topic |
td_agents_md | Read/write per-COMP markdown docs |
td_reinit_extension | Reload extension after code edit |
td_clear_textport | Clear console before debug session |
Input Automation:
| Tool | What |
|---|---|
td_input_execute | Send mouse/keyboard to TD |
td_input_status | Poll input queue status |
td_input_clear | Stop input automation |
td_op_screen_rect | Get screen coords of a node |
td_click_screen_point | Click a point in a screenshot |
See references/mcp-tools.md for full parameter schemas.
GLSL time: No uTDCurrentTime in GLSL TOP. Use the Values page:
# 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.
# 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.
td_get_perf. If FPS=0 the recording will be empty. See pitfalls #38-39.td_get_screenshot. Black output = shader error or missing input. See pitfalls #8, #40.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 → MovieFileOutoutputmenu='setmanually' and outlength=256. Default outputs 22050 samples.mix(prevValue, newValue, 0.3). This gives frame-perfect sync with zero pipeline latency.outlength param directly.// 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.
| Family | Color | Python class / MCP type | Suffix |
|---|---|---|---|
| TOP | Purple | noiseTOP, glslTOP, compositeTOP, levelTop, blurTOP, textTOP, nullTOP | TOP |
| CHOP | Green | audiofileinCHOP, audiospectrumCHOP, mathCHOP, lfoCHOP, constantCHOP | CHOP |
| SOP | Blue | gridSOP, sphereSOP, transformSOP, noiseSOP | SOP |
| DAT | White | textDAT, tableDAT, scriptDAT, webserverDAT | DAT |
| MAT | Yellow | phongMAT, pbrMAT, glslMAT, constMAT | MAT |
| COMP | Gray | geometryCOMP, containerCOMP, cameraCOMP, lightCOMP, windowCOMP | COMP |
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.| File | What |
|---|---|
references/pitfalls.md | Hard-won lessons from real sessions |
references/operators.md | All operator families with params and use cases |
references/network-patterns.md | Recipes: audio-reactive, generative, GLSL, instancing |
references/mcp-tools.md | Full twozero MCP tool parameter schemas |
references/python-api.md | TD Python: op(), scripting, extensions |
references/troubleshooting.md | Connection diagnostics, debugging |
scripts/setup.sh | Automated 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
SKILL.md and 7 other files (scripts, references) in optional-skills/creative/touchdesigner-mcp of Tommy-yw/RunbookHermes.
Open the folder on GitHubat commit 7fd2b9a
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.
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Touchdesigner MCP this skillTommy-yw/RunbookHermes | 546 | 2 repos | ~3.4k | Automated safety check: Pass | MIT | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| MemPalace Setup and OperationMemPalace/mempalace | 60k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Fastmcp Client CLIPrefectHQ/fastmcp | 28k | — | ~823 | Automated safety check: Pass | Apache-2.0 | |
| Migrate To Archestraarchestra-ai/archestra | 4.4k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
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.
MemPalace/mempalace
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.
PrefectHQ/fastmcp
Query and invoke tools on MCP servers using fastmcp list and fastmcp call.
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.
ArcadeAI/arcade-mcp
Build new Arcade error adapters from scratch using public Arcade TDK patterns.
Tommy-yw/RunbookHermes
Build, test, inspect, install, and deploy MCP servers with FastMCP in Python.
Tommy-yw/RunbookHermes
Pharmaceutical research assistant for drug discovery workflows.
Tommy-yw/RunbookHermes
Fetch YouTube video transcripts and transform them into structured content (chapters, summaries, threads, blog posts).
Tommy-yw/RunbookHermes
Supply chain investigation, evidence recovery, and forensic analysis for GitHub repositories.
Tommy-yw/RunbookHermes
Production pipeline for interactive and generative visual art using p5.js.
Tommy-yw/RunbookHermes
Set up and use 1Password CLI (op). An agent skill from Tommy-yw/RunbookHermes.
Works with
Categories
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.
Touchdesigner MCP fits situations like: tasks that involve MCP servers.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.