{"id":"cmt8l06m90k4cad09u7bvoblx","slug":"touchdesigner-mcp","publicId":"cc39f080-64b9-458c-9cb3-e1fbc477846e","name":"touchdesigner-mcp","description":"Control TouchDesigner via twozero MCP.","version":"1.1.0","author":"kshitijk4poor","license":"MIT","compatibility":"","status":"completed","overallGrade":"F","scannerVersion":9,"fileCount":23,"hasSkillMd":true,"hasScripts":true,"hasReferences":true,"hasEvals":false,"hasAssets":false,"sourceType":"github","sourceUrl":"https://github.com/NousResearch/hermes-agent/tree/main/skills/creative/touchdesigner-mcp","createdAt":"2026-08-25T11:28:27.777Z","completedAt":"2026-08-25T11:28:27.774Z","visibility":"public","publishedAt":"2026-07-28T15:34:53.734Z","category":"","frameworks":[],"badgeStatus":"flagged","downloadCount":0,"verdictRationale":{"summary":"Skill failed: 1 hard fail in security or structure checks.","verdict":"fail","scanners":[{"source":"vettd","weight":1,"verdict":"fail"},{"source":"cisco","weight":0.8,"verdict":"fail"}],"consensus":"fail","warnTriggers":["References external URL — review for indirect prompt injection risk"],"policyVersion":"consensus-v1","hardFailTriggers":["Remote content fetched into variable for execution"]},"verdictPolicyVersion":"consensus-v1","skillId":"cms4th8um014bad06ewir794i","findings":[{"id":"cmt8l06ma0k4uad099onandld","source":"cisco","category":"security","label":"Remote fetch followed by execution","detail":"scripts/setup.sh:37 — Content is downloaded from the network and subsequently executed. This is a classic remote code execution attack pattern.","severity":"critical","ruleId":"VTD-0090","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"d2566297dd6940ffd5e9fa6514205a54","filepath":"scripts/setup.sh"},{"id":"cmt8l06ma0k4rad09puv2nv6s","source":"vettd","category":"security","label":"Remote content fetched into variable for execution","detail":"Detected in scripts/setup.sh:83 — `resp=$(curl -s --max-time 3 \"$MCP_ENDPOINT\" 2>/dev/null || true)`","severity":"high","ruleId":"VTD-0022","owaspLlmCategory":null,"intent":"negligent","chainId":null,"fingerprint":"7a2a70a60a0c42faf829c98f5e737652","filepath":"scripts/setup.sh"},{"id":"cmt8l06ma0k4tad09ckmu1t1i","source":"vettd","category":"security","label":"References external URL — review for indirect prompt injection risk","detail":"External URL(s) detected in SKILL.md — referenced content can change after audit","severity":"medium","ruleId":"VTD-0088","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"42638a8b7e9fc5df27449992eaebc724","filepath":"SKILL.md"},{"id":"cmt8l06ma0k4sad09dig0zdje","source":"vettd","category":"security","label":"No prompt injection or jailbreak signals detected","detail":"Scanned text content for instruction override, jailbreak framing, credential solicitation, and embedded injection markers","severity":"info","ruleId":"VTD-0092","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"ee5675c6452295fc92108d4c30cfebf6","filepath":""},{"id":"cmt8l06ma0k4iad099yeudq2b","source":"vettd","category":"security","label":"No repository link","detail":"No repository field found in SKILL.md frontmatter. Skills without a verifiable source repository cannot be externally audited.","severity":"info","ruleId":"VTD-0083","owaspLlmCategory":null,"intent":"negligent","chainId":null,"fingerprint":"e09767e7943872a2754f559ba01ef7db","filepath":""},{"id":"cmt8l06m90k4fad09lp7wa1zz","source":"vettd","category":"structure","label":"references/ directory present","detail":"Additional documentation files available for progressive disclosure","severity":"info","ruleId":"VTD-0097","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"a5f22b7185c58877c3d5a94338930d62","filepath":""},{"id":"cmt8l06m90k4ead09tszkwbfy","source":"vettd","category":"structure","label":"scripts/ directory present","detail":"Bundled executable scripts found","severity":"info","ruleId":"VTD-0096","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"21a167b473d29b0a653734953d43b2fc","filepath":""},{"id":"cmt8l06m90k4dad09r6fg7nqs","source":"vettd","category":"structure","label":"SKILL.md present","detail":"Required skill definition file found","severity":"info","ruleId":"VTD-0095","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"c4ab14319b89c3d0802fadf0dd105bac","filepath":""},{"id":"cmt8l06ma0k4had090vprppk2","source":"vettd","category":"structure","label":"Valid name field","detail":"Name \"touchdesigner-mcp\" follows spec (lowercase, hyphens, ≤64 chars)","severity":"info","ruleId":"VTD-0099","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"5ba54eca0b3e299a99112de98cbcd97f","filepath":""},{"id":"cmt8l06ma0k4kad094o3z85z9","source":"vettd","category":"description","label":"Description lacks usage context","detail":"Add context like \"Use this skill when...\" to help agents know when to activate it","severity":"info","ruleId":"VTD-0111","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"e325ab773f2c18f6f9d864add6464110","filepath":""},{"id":"cmt8l06ma0k4jad09bxf4ocmp","source":"vettd","category":"description","label":"Description within character limit","detail":"38/1024 characters used","severity":"info","ruleId":"VTD-0110","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"66553d595a652c45a6f0d4353184b37e","filepath":""},{"id":"cmt8l06ma0k4mad09yo8lr8h7","source":"vettd","category":"best-practices","label":"Examples included","detail":"Found code blocks, input/output samples, or an examples section — concrete samples help agents pattern-match effectively","severity":"info","ruleId":"VTD-0103","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"c2ceb48c4af3c87dafa32ec2596251b8","filepath":""},{"id":"cmt8l06ma0k4pad09euv0dtz8","source":"vettd","category":"best-practices","label":"Progressive disclosure used","detail":"SKILL.md body references files in references/, scripts/, or assets/ — agents can load additional context on demand instead of consuming everything upfront","severity":"info","ruleId":"VTD-0107","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"6fd5870d64ef20cb2bbaf421f8655a32","filepath":""},{"id":"cmt8l06ma0k4lad098198p516","source":"vettd","category":"best-practices","label":"SKILL.md body length is reasonable","detail":"343 lines (recommended: under 500)","severity":"info","ruleId":"VTD-0101","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"42debaa072535bf5650f90d3168f0b93","filepath":""},{"id":"cmt8l06ma0k4nad09iua6lt4x","source":"vettd","category":"best-practices","label":"Step-by-step workflow found","detail":"Structured procedures improve reliability for complex tasks","severity":"info","ruleId":"VTD-0106","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"2368c9a31ac52269c854f105795cf28c","filepath":""},{"id":"cmt8l06ma0k4oad09dllmbgxv","source":"vettd","category":"best-practices","label":"Validation loop referenced","detail":"Instructions for the agent to validate its own work before proceeding","severity":"info","ruleId":"VTD-0105","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"e5a31b775d1df438cbeb1e3fcb2ff503","filepath":""},{"id":"cmt8l06ma0k4qad097m3txtpa","source":"vettd","category":"scripts","label":"No --help support","detail":"scripts/setup.sh: Add argument parsing with --help output so agents know the script's interface","severity":"info","ruleId":"VTD-0114","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"88037bfd099eb67399c47adac081bf10","filepath":"scripts/setup.sh"},{"id":"cmt8l06m90k4gad0949nybkkc","source":"vettd","category":"evals","label":"No evaluation test cases","detail":"Add an evals/ directory with test prompts and expected outputs to measure skill quality","severity":"info","ruleId":"VTD-0118","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"41d019e0494a4a9763fc23c948d14e09","filepath":""}],"scannerRuns":[{"source":"cisco","status":"success","verdict":null,"grade":"F","findingCount":1,"criticalCount":1,"highCount":1},{"source":"vettd","status":"success","verdict":null,"grade":"C","findingCount":17,"criticalCount":0,"highCount":1}],"user":{"name":"Justin Pacella","image":"https://avatars.githubusercontent.com/u/97124458?v=4"},"repository":{"owner":"NousResearch","name":"hermes-agent"},"freshness":{"status":"unreachable","reason":"ref_not_found","retryable":false,"renamedTo":null,"lastCheckedAt":"2026-10-21T11:29:39.341Z","lastVerifiedAt":"2026-08-29T13:26:13.706Z","lastChangeDetectedAt":"2026-08-12T12:43:46.824Z","scannedHash":"915e2dd38196e67dc53b93249b85599c233385ab","latestUpstreamHash":"915e2dd38196e67dc53b93249b85599c233385ab","nextCheckDueAt":"2026-10-28T11:29:39.341Z"},"signalCategories":[{"category":"safety","label":"Safety","form":"graded","verdict":null,"rows":[]},{"category":"reliability","label":"Reliability & Quality","form":"graded","verdict":null,"rows":[]},{"category":"performance","label":"Performance","form":"measured","verdict":null,"rows":[]},{"category":"cost","label":"Cost","form":"measured","verdict":null,"rows":[]},{"category":"compatibility","label":"Compatibility","form":"unjudged","verdict":null,"rows":[]},{"category":"sentiment","label":"Popularity","form":"unjudged","verdict":null,"rows":[]},{"category":"characteristics","label":"Characteristics","form":"unjudged","verdict":null,"rows":[]}],"signalCount":24,"publisherSupplied":["name","description","author","version","license"]}