MCP server · Audited from source
touchdesigner-mcp
by 8beeeaaat/touchdesigner-mcpMIT licenceAudited 31 Oct 2026 · source dc809cee5f95
Is it safe? No — BLOCK, grade F (31/100). No tools were found in its source. The audit recorded 30 findings (2 critical, 3 high, 8 medium, 16 low). Maintainer's description: MCP server for TouchDesigner
Cite
Cite this page
ModelsAtlas. “touchdesigner-mcp (8beeeaaat/touchdesigner-mcp)”. Retrieved 31 Oct 2026. https://modelsatlas.com/mcp/8beeeaaat/touchdesigner-mcp
Why this is BLOCK. The audit found 2 critical and 3 high findings; the most severe is Prompt injection at plugin/touchdesigner/skills/launch/SKILL.md:14. Each finding is listed below with its file and line.
Why this page is still public. People search for this server by name. Hiding it would leave them with the README's word alone; here they see what the code does. We list it so you can decide, and we do not show connect commands for BLOCK servers.
Trust audit
Audit 0.4.1 · full source read 31 Oct 2026
30 findings, listed below with the file and line each was found on. Grade A needs a sandboxed behavioural run too; this audit read the source only.
What the source does
- FilesystemDeclared5 observations
- NetworkDeclared3 observations
- ShellDeclared7 observations
- DependenciesNot pinnedSome ranges float
- SecretsNone foundNo keys in source
Findings (30)
Sorted by severity · the 25 most severe of 30 are listed
CRITICALPrompt injectionprompt.transfer_instruction · plugin/touchdesigner/skills/launch/SKILL.md:14
1. **Check whether launching is even needed.** Resolve the endpoint from the active MCP configuration or session context as in the setup skill; treat `http://127.0.0.1:9981` as an assumption when neit
- Why
- an instruction to move sensitive data to an outside destination
- Fix
- remove; a skill never needs the user's secrets off the machine
CRITICALPrompt injectionprompt.transfer_instruction · plugins/touchdesigner/skills/launch/SKILL.md:22
1. **Check whether launching is even needed.** Resolve the endpoint from the active MCP configuration or session context as in the setup skill; treat `http://127.0.0.1:9981` as an assumption when neit
- Why
- an instruction to move sensitive data to an outside destination
- Fix
- remove; a skill never needs the user's secrets off the machine
HIGHCode injectioncode.eval_exec · td/modules/mcp/services/api_service.py:515
result = eval(script, namespace, namespace)
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · td/modules/mcp/services/api_service.py:538
exec(script, namespace, namespace)
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · td/modules/mcp/services/api_service.py:557
namespace["result"] = eval(
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
MEDIUMInventory / provenanceinv.binary · td/mcp_webserver_base.tox
mcp_webserver_base.tox
- Why
- a compiled or binary member cannot be reviewed from source
- Fix
- ship source, or explain the binary in the README
MEDIUMInventory / provenanceinv.symlink · .agents/skills/integration-test-guard
.agents/skills/integration-test-guard
- Why
- link not followed
- Fix
- —
MEDIUMInventory / provenanceinv.symlink · .agents/skills/prepare-release
.agents/skills/prepare-release
- Why
- link not followed
- Fix
- —
MEDIUMInventory / provenanceinv.symlink · .agents/skills/release-test-audit
.agents/skills/release-test-audit
- Why
- link not followed
- Fix
- —
MEDIUMInventory / provenanceinv.symlink · .agents/skills/touchdesigner-self-debug
.agents/skills/touchdesigner-self-debug
- Why
- link not followed
- Fix
- —
MEDIUMCode injectioncode.dynamic_import · td/modules/mcp/services/api_service.py:762
return importlib.import_module(target)
- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMCode injectioncode.dynamic_import · td/modules/mcp_webserver_script.py:60
module = __import__(module_name, fromlist=["*"])
- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMNetwork egressnet.raw_ip · .claude/skills/integration-test-guard/SKILL.md:61
TD_WEB_SERVER_HOST=http://127.0.0.1 TD_WEB_SERVER_PORT=9981 \
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWCode injectioncode.eval_exec · tests/unit/openaiPluginBuild.test.ts:29
return exec(process.execPath, [
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
LOWCode injectioncode.eval_exec · tests/unit/openaiPluginBuild.test.ts:168
const before = await exec(npm, ["prefix"], options);
- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
LOWFilesystem / pathfs.traversal · plugin/touchdesigner/hooks/scripts/td-config-context.mjs:13
new URL("../../.claude-plugin/plugin.json", import.meta.url),- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · src/api/components/schemas/TdPythonClassDetails.yml:23
$ref: ../../index.yml#/components/schemas/TdPythonMethodInfo
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · src/api/components/schemas/TdPythonClassDetails.yml:28
$ref: ../../index.yml#/components/schemas/TdPythonPropertyInfo
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · src/api/paths/api/nodes/detail.yml:30
- $ref: ../../../index.yml#/components/schemas/TdNode
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · src/api/paths/api/nodes/errors.yml:28
$ref: ../../../index.yml#/components/schemas/TdNodeErrorReport
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · docs/architecture.md:676
--host=http://127.0.0.1 \
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · docs/architecture.md:763
"--host=http://127.0.0.1",
- Why
- No further detail recorded for this rule.
- Fix
- —
Tools it exposes
None declared in source
No tools were found in the source, so we cannot say what this server exposes.
Safer alternatives
We could not match this server to a job, so we cannot suggest a like-for-like alternative. Read-only servers are the least-privilege place to start.
Audit history
- ✕BLOCK F 31 / 100
First audit ·
dc809cee5f95
README badge
Badges show the current verdict, BLOCK included
A badge cannot be hidden by the maintainer while the verdict is BLOCK. Fix the findings, push, and the re-audit updates it.
Questions about touchdesigner-mcp
What is the touchdesigner-mcp MCP server?
Is touchdesigner-mcp safe to connect to an agent?
What credentials does touchdesigner-mcp need?
How does touchdesigner-mcp run?
How current is this page?
I already installed touchdesigner-mcp. What should I do?
Can the verdict change?
Sources
- 8beeeaaat/touchdesigner-mcp on GitHub — the source we read, its licence, stars and activityObserved · 31 Oct 2026
- ModelsAtlas trust audit — BLOCK verdict for commit dc809cee5f95Observed · 31 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What is the touchdesigner-mcp MCP server?
- Is touchdesigner-mcp safe to connect to an agent?
- What credentials does touchdesigner-mcp need?