{"id":"dylanroscover-embody","name":"Embody","homepage":"https://dylanroscover.github.io/Embody/","repo_url":"https://github.com/dylanroscover/Embody","category":"devtools","subcategories":[],"tags":["touchdesigner","mcp","mcp-server","ai-automation","version-control","devtools","automation"],"what_it_does":"Embody is a TouchDesigner companion that externalizes operator networks into diffable/readable files and includes an embedded MCP server (“Envoy”) so AI assistants can control a live TouchDesigner session (create operators, set parameters, connect/wire ops, execute Python, export/import networks, inspect errors, etc.).","use_cases":["AI-assisted authoring and debugging of TouchDesigner operator networks","Version-control friendly TouchDesigner workflows via externalized .tox/.tdn and DAT files","Automated migration/reconstruction of TD networks from JSON snapshots","Integrating TouchDesigner with MCP-capable IDE assistants for natural-language control"],"not_for":["Security-sensitive remote automation without local network controls","Teams that require review/merge of binary .toe diffs without externalization workflows","Use cases that cannot run TouchDesigner or require a headless server-only API"],"best_when":"You want LLM/agent control over a local TouchDesigner session with artifacts stored as human/diffable files.","avoid_when":"You cannot trust local tooling/agents to operate on a running TD project, or you need strong network security guarantees beyond localhost defaults.","alternatives":["Manual TouchDesigner component export/versioning workflows","Other TouchDesigner versioning tools (e.g., external tox savers or custom snapshot scripts)","Custom MCP bridges that wrap TouchDesigner APIs (if available)","Using TD node graph exports/imports without MCP agent control"],"af_score":57.2,"security_score":26.2,"reliability_score":47.5,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T15:20:50.566432+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":"http://localhost:9870/mcp","has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["Localhost MCP (no explicit auth described)","Project-generated .mcp.json for client auto-discovery"],"oauth":false,"scopes":false,"notes":"Documentation describes starting Envoy on localhost and an .mcp.json configuration. No authentication mechanism, API keys, or scopes are mentioned in the provided README content."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"No pricing information provided in the supplied content."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":57.2,"security_score":26.2,"reliability_score":47.5,"mcp_server_quality":90.0,"documentation_accuracy":85.0,"error_message_quality":80.0,"error_message_notes":"The README mentions an MCP tool (`get_op_errors`) and troubleshooting guidance (e.g., timeline paused; unsupported operator types). Specific error codes/structures for MCP responses are not shown in the provided content.","auth_complexity":20.0,"rate_limit_clarity":0.0,"tls_enforcement":10.0,"auth_strength":20.0,"scope_granularity":10.0,"dependency_hygiene":35.0,"secret_handling":60.0,"security_notes":"Envoy is documented as running on localhost (reduces exposure, but still allows local network/process access if reachable). No authentication/authorization, scopes, or secret-handling details are described. The toolset includes highly privileged actions (e.g., executing arbitrary Python and mutating the live TD session), so misuse/over-trust risks are significant. Dependency hygiene and CVE status are not assessable from the provided content.","uptime_documented":0.0,"version_stability":75.0,"breaking_changes_history":60.0,"error_recovery":55.0,"idempotency_support":"false","idempotency_notes":"The README describes tools that mutate TD state (create ops, connect, set parameters, execute Python). It does not describe idempotency guarantees or safe retry semantics.","pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["Envoy requires an enabled parameter and a running TouchDesigner session; a paused timeline can produce errors","Certain operator types (clone/replicants and some Engine COMPs) cannot be externalized/handled as expected","Large projects may be slow if tagging is not used selectively for externalization","Local MCP at a fixed port may conflict with other services if not managed (single-machine assumption implied)"]}}