Envoy
Servidor MCP para TouchDesigner — 45 herramientas permiten a los asistentes de IA crear operadores, establecer parámetros, conectar cables y gestionar proyectos mediante conversación natural.
Documentación
Embody
crea a la velocidad del pensamiento.
embody.tools · Documentación · Manifiesto · Registro de cambios
Embot — salta a través de tu red mientras Envoy construye
Embody pone tus ideas en pantalla tan rápido como puedas describirlas. Operadores, conexiones, parámetros, todo. ¿Quieres probar otra dirección? Crea un nuevo enfoque en segundos. Compara intentos lado a lado. Ramifica desde el que funciona. La herramienta te sigue el ritmo, en lugar de al revés.
Cuatro herramientas, una idea
Envoy — velocidad hacia adelante. Un servidor MCP integrado permite que Claude Code, Codex, OpenCode, Gemini, Cursor, Windsurf y GitHub Copilot (a través de VS Code) hablen directamente con tu sesión de TouchDesigner en vivo. Crea operadores, conéctalos, configura parámetros, escribe extensiones, depura errores — simplemente diciendo lo que quieres. Sin copiar y pegar código. Sin describir tu red en el chat. Idea → operadores en segundos.
Embody — velocidad lateral. Etiqueta cualquier operador y Embody lo externaliza a archivos en disco que reflejan la jerarquía de tu red. Prueba una nueva dirección, ramifica desde una buena, restaura el estado de ayer — todo en segundos. Tus archivos externalizados son la fuente de verdad, así que cada proyecto se abre ya en flujo.
Convoy — velocidad hacia afuera. Los nodos Embody habilitados para Convoy en una LAN de confianza se descubren, inspeccionan y controlan entre sí — una sola sesión de IA retransmite builds, ejecuciones de pruebas, guardados, capturas de pantalla y reinicios a cada máquina en la sala. Una pequeña aplicación de fondo por usuario mantiene cada nodo accesible incluso cuando TouchDesigner está cerrado. Guía de Convoy
TDXN — el sustrato que lo hace todo posible. Redes de TouchDesigner exportadas como YAML legible por humanos. El formato es lo que permite que tu agente de IA entienda lo que hay en pantalla, lo que te permite comparar un intento con otro, y lo que permite que una red se reconstruya desde texto en la próxima apertura del proyecto. TDXN es lo que hace posible todo lo demás.

| Qué | Por qué importa | |
|---|---|---|
| 🤖 | Servidor MCP Envoy | 70 herramientas permiten que tu asistente de IA construya, conecte, parametrice y depure redes en vivo. La primera vez que lo ves suceder, dejas de escribir nombres de operadores a mano para siempre. |
| 📄 | Formato de red TDXN | Las redes se convierten en texto. Compara dos versiones, revisita cualquier versión, entrega a un LLM una imagen completa de lo que hay en pantalla — todo desde un solo archivo .tdxn. |
| 📦 | Restauración automática | Los archivos externalizados se escriben al guardar, por lo que cualquier COMP puede recuperarse desde el disco. Por defecto (Exportar al guardar), el .toe sigue siendo la autoridad al abrir; cambia al modo Roundtrip para reconstruir COMPs de estrategia TDXN desde .tdxn en cada apertura. |
| 📤 | Exportación Tox portátil | Extrae cualquier COMP como un .tox autocontenido con referencias externas eliminadas. Envía una pieza de tu proyecto a cualquier lugar. |
| 🐍 | Entorno Python del proyecto | Un .venv por proyecto, construido contra el intérprete propio de TouchDesigner — Envoy se ejecuta desde él, tus paquetes se importan dentro de TD desde él, y los agentes de IA lo gestionan sin intervención. Entorno Python |
| 🛰️ | Retransmisión LAN Convoy | Los nodos Embody habilitados para Convoy en una LAN de confianza se descubren, inspeccionan y controlan entre sí a través de Envoy — retransmite ejecuciones de pruebas, guardados, capturas de pantalla y reinicios a otras máquinas desde una sola sesión de IA. Guía de Convoy |
Inicio rápido
Requisitos: TouchDesigner 2025.33230 o posterior (Windows / macOS). No se necesita configuración de Python — Embody construye un entorno Python por proyecto (.venv) acoplado al intérprete propio de TouchDesigner, y tus propios paquetes también pueden vivir en él. Tampoco se necesita una estructura de carpetas especial: Embody funciona en cualquier carpeta de proyecto, y si usas git, cada cambio es también un diff limpio de forma gratuita.
1. Instalación
Descarga el .tox de Embody desde /release y arrástralo a tu proyecto de TouchDesigner. El Asistente de configuración se abre y te guía por las decisiones que importan — cuánta autonomía recibe Embody, qué externalizar, si habilitar el asistente de IA (Envoy) y para qué herramienta, permisos, si unirse a un Convoy de LAN de confianza, y dónde viven los archivos de configuración. Nada cambia hasta el clic final, y puedes volver a ejecutarlo en cualquier momento mediante el pulso Asistente de configuración en el COMP de Embody.
Actualizar Embody: Embody se actualiza solo — pulsa Buscar actualización en la página Acerca de (o configura Auto-Update para que verifique al inicio), y se descarga una versión verificada, se respalda y se intercambia en su lugar. Tus ajustes y externalizaciones rastreadas viven en disco y sobreviven a la actualización intactos. Consulta la guía de auto-actualización. Alternativa manual: elimina el COMP de Embody antiguo y arrastra el nuevo
.toxen su lugar — la nueva versión recoge tu estado en disco automáticamente, sin re-escaneo, sin archivos reescritos.
¿Necesitas aprovisionar una máquina sin nadie presente (un nodo de render, un servidor de medios)? El bootstrap instala Embody en un .toe sin conexión con las propias herramientas de TouchDesigner, en una sola línea.
2. Etiqueta y trabaja
- Etiqueta operadores — pasa el cursor sobre cualquier COMP o DAT y presiona
lctrldos veces para abrir el etiquetador (elige una estrategia para un COMP, un formato de archivo para un DAT) - Trabaja con normalidad — presiona
ctrl + shift + upara actualizar todas las externalizaciones, octrl + alt + upara actualizar solo el COMP actual. Los archivos externalizados se escriben al guardar; al abrir, el.toesigue siendo la autoridad por defecto (Exportar al guardar), mientras que el modo Roundtrip también reconstruye COMPs de estrategia TDXN desde disco
Consejo: La externalización es opcional — no se escribe nada en disco hasta que lo etiquetas. Para capturar automáticamente el trabajo de tu asistente de IA, configura Auto-Externalize New Ops (página de parámetros de Envoy) y todo lo que cree a través de Envoy se etiqueta y externaliza mientras se construye.
Para formatos compatibles, configuración de carpetas, manejo de duplicados, interfaz del Administrador y más — consulta la documentación de Embody.
Servidor MCP Envoy
Embody incluye Envoy, un servidor MCP integrado que da a los asistentes de codificación de IA acceso directo a tu sesión de TouchDesigner en vivo.
Configuración
- Elige un asistente de IA en el Asistente de configuración — se abre en la primera instalación, o vuelve a ejecutarlo en cualquier momento (el pulso Asistente de configuración en el COMP de Embody). ¿Prefieres parámetros? Activar Envoy Enable (
Envoyenable) hace lo mismo con tus ajustes actuales - El servidor se inicia en
127.0.0.1:9870(configurable medianteEnvoyport; si el puerto está ocupado por otra instancia, Envoy escanea hacia adelante automáticamente) - Auto-configuración — Envoy escribe un
.mcp.json(puente STDIO, por lo que las herramientas están disponibles incluso antes de que TD se esté ejecutando) en la raíz de tu proyecto de IA. Por defecto es la raíz del repositorio git; el paso de ubicación de configuración del asistente — o el parámetroAiprojectroot— puede apuntarlo a la carpeta.toeo a una ruta personalizada. Los proyectos sin repositorio git aún reciben configuración generada en la carpeta.toe - Conecta — abre una sesión de Claude Code (o reinicia tu IDE) en esa raíz — detecta
.mcp.jsonautomáticamente
La configuración generada ejecuta el transporte STDIO puenteado de Envoy (recomendado — puede lanzar y reiniciar TD por ti). Si prefieres conectar un cliente manualmente, el transporte HTTP directo funciona siempre que TD esté ejecutándose:
{
"mcpServers": {
"envoy": {
"type": "http",
"url": "http://127.0.0.1:9870/mcp"
}
}
}
Herramientas de un vistazo
| Herramienta | Qué hace |
|---|---|
create_op | Crea cualquier tipo de operador en cualquier red |
set_parameter | Establece valores, expresiones o modos de enlace en cualquier parámetro |
connect_ops | Conecta operadores entre sí |
execute_python | Ejecuta Python arbitrario en el hilo principal de TD |
export_network | Exporta redes a YAML .tdxn comparable |
create_extension | Genera una extensión completa (COMP + DAT + cableado) |
get_op_errors | Inspecciona errores en cualquier operador y sus hijos |
...y 56 más. Consulta la referencia completa de herramientas.
Cuando Envoy se inicia, siempre genera un archivo AGENTS.md en la raíz de tu proyecto con patrones de desarrollo de TD y orientación específica del proyecto. También escribe una configuración específica del cliente para el asistente que elijas en el parámetro Aiclient (CLAUDE.md + .claude/ para Claude Code, opencode.json + .claude/ para OpenCode, reglas de Cursor/Windsurf, instrucciones de Copilot, GEMINI.md para Gemini; Codex y OpenCode leen AGENTS.md directamente). Para configuraciones de OpenCode y modelos locales, consulta la guía de Modelos locales y clientes abiertos.
Formato de red TDXN
TDXN (TouchDesigner eXternal Network) es el formato de archivo que hace posible el resto de Embody. Exporta una red de operadores completa — operadores, conexiones, parámetros, diseño, anotaciones, contenido de DAT — como un único archivo YAML legible por humanos. Tu agente de IA puede leerlo. Tú puedes leerlo. Cualquier herramienta de texto puede compararlo. La red puede reconstruirse a partir de él.
Este es el sustrato. Cada otra capacidad — construcción impulsada por IA, control de versiones, restauración automática — se construye sobre él.
- Proyecto completo:
ctrl + shift + e - COMP actual:
ctrl + alt + e - A través de Envoy: herramientas MCP
export_network/import_network
Consulta la especificación completa de TDXN para detalles del formato, proceso de importación y garantías de ida y vuelta.
Atajos de teclado
| Atajo | Acción |
|---|---|
lctrl + lctrl | Etiqueta o gestiona el operador bajo el cursor |
ctrl + shift + u | Actualiza todas las externalizaciones |
ctrl + alt + u | Actualiza solo el COMP actual |
ctrl + shift + r | Refresca el estado de seguimiento |
ctrl + shift + o | Abre la interfaz del Administrador |
ctrl + shift + c | Copia el COMP seleccionado al portapapeles como un sobre TDXN portátil |
ctrl + shift + e | Exporta el proyecto completo a archivo .tdxn |
ctrl + alt + e | Exporta el COMP actual a archivo .tdxn |
Estos son los valores predeterminados — cada atajo es editable en la página de parámetros Shortcuts del COMP de Embody (escribe una combinación, o pulsa Record y presiona las teclas; vacío lo desactiva). Consulta Atajos de teclado.
Dónde van los archivos externalizados
Embody escribe archivos externalizados relativos a tu ubicación .toe, reflejando la jerarquía de tu red — sin estructura de carpetas especial requerida:
my-project/ ← project folder (optionally a git repo)
├── my-project.toe ← your TouchDesigner project
├── base1/ ← externalized operators
│ ├── base2.tox ← COMP (TOX strategy)
│ ├── base3.tdxn ← COMP (TDXN strategy — diffable YAML)
│ └── text1.py ← DAT
└── ...
Registro
Embody proporciona un sistema de registro con múltiples destinos:
- Registro en archivo (predeterminado):
dev/logs/<project_name>_YYMMDD.log, rota automáticamente a 10 MB - DAT FIFO: Las entradas recientes son visibles en el editor de red de TD
- Textport: Habilita el parámetro
Printpara hacer eco de los registros - Búfer circular: Últimas 200 entradas a través de la herramienta MCP
get_logsde Envoy
op.Embody.Log('Something happened', 'INFO')
op.Embody.Warn('Check this out')
op.Embody.Error('Something broke')
Pruebas
Embody incluye **163 suites de pruebas** (5,542 pruebas) que cubren la externalización del núcleo, las herramientas MCP, el formato TDXN, el servidor/puente Envoy, la generación de lanzamiento/configuración, las rutas de instalación/desinstalación, la autoactualización, los hooks de lanzamiento, la lectura de estado y los catálogos de paletas. Las pruebas se ejecutan dentro de TouchDesigner usando un ejecutor de pruebas personalizado con aislamiento de sandbox. Las suites destructivas de proyectos completos están segregadas y solo se ejecutan mediante el `RunDestructiveTests` protegido por guardado.op.unit_tests.RunTests() # All tests (non-blocking)
op.unit_tests.RunTests(suite_name='test_path_utils') # Single suite
op.unit_tests.RunTestsSync() # All in one frame (blocks TD)
A través de Envoy MCP: usa la herramienta run_tests. Consulta la documentación completa de pruebas para ver los detalles de cobertura y cómo escribir nuevas pruebas.
Solución de problemas
- Línea de tiempo en pausa: Embody requiere que la línea de tiempo esté en ejecución. Aparece un error si está en pausa.
- Operadores Clone/Replicant: No se pueden externalizar. Embody advierte si intentas etiquetarlos.
- COMPs de motor: Los COMPs de motor, tiempo y anotación no son compatibles con la externalización.
Para más información, consulta Solución de problemas.
Historial de versiones
Cada lanzamiento está documentado en el registro de cambios completo. Destacados:
- 6.2.65 — cuatro nuevas habilidades (
glsl-shaders,operator-gotchas,testing,/collab) y archivos de referencia de habilidades, con agradecimientos a TDMCPSkills de Derivative;describe_op_typeyrun_soak_test; la guía siempre cargada de un proyecto de usuario se redujo en un 40% - 6.2.64 — Olvidar nodos sin conexión limpia filas en toda la flota, cada una por su propietario; los nodos silenciosos se retiran después de una semana en lugar de un mes; los trabajos de actualización ya no informan un fallo falso
- 6.2.63 — el supervisor de Windows permanece armado después de una instalación; las filas de nodos llevan la compilación de TD y la flota actualiza su id de tiempo de ejecución; un nodo vivo pero silencioso se lee como detenido; una lectura a mitad de escaneo se limpia al reabrir
- 6.2.62 — el registro fantasma de un host reacuñado pasa a inactivo en sus pares en lugar de ser marcado para siempre; el pin permanece, el contacto lo despierta y Estado nombra al fantasma en ambos lados
- 6.2.61 — Convoy nombra su dependencia de Envoy y las advertencias del host (certificados rechazados, identidades reacuñadas, divisiones de dominio, enlaces VPN), vuelve a fijar pares cambiados, evita VPNs y redes públicas en el autoenlace, y se reincorpora al dominio de los pares admitidos en lugar de fundar uno
- 6.2.59 — un clon nuevo conserva el Envoy que adopta; una reversión ya no reclama la versión que descartó; la verificación de identidad de la puerta de lanzamiento dejó de fallar en compilaciones saludables y de pasar en tablas de tiempo de ejecución
- 6.2.57 — TDXN exporta referencias de operadores tal como se crearon y reubica rutas absolutas dentro del proyecto (corrige #132); un clon nuevo adopta la declaración de Envoy confirmada; prueba de humo de instalación limpia con un solo comando, con la parte de macOS en CI
- 6.2.56 — un venv cuyo Python deja de ejecutarse se repara en su lugar en lugar de eliminarse, en un hilo en segundo plano, conservando los paquetes instalados; habilitar Envoy ya no congela TD; aumento de seguridad de devalue
- 6.2.55 — nuevos especímenes Serenity y Beauty con video de portada; clones habilitados de un COMP hermano se exportan como sus valores (el mandala
.tdxn9,599 → 2,834 líneas); el visor de fuentes de embody.tools se renderiza en el navegador; Embot permitido en COMPs TDXN; nueva regla incluidatdxn-economy - 6.2.52 — parámetros personalizados de tupla (RGB, XYZ, Float/Int de múltiples componentes) con un valor predeterminado distinto de cero se importan con ese valor en lugar de 0
- 6.2.51 — siete errores de reglas de agente del problema #94 verificados en vivo antes del lanzamiento; las portadas de embody.tools provienen de la fila del espécimen, nunca de una lista fija; nuevo espécimen Prismatic Strata
- 6.2.50 —
Export Release Toe: un pulso solicita, pregunta dónde y luego envía el proyecto como un.toebloqueado; Embody puede escribir el hookpre_release_toepor ti - 6.2.49 — los guardados dicen lo que un
.tdxnno puede contener, los encabezados permanecen visibles en VS Code, y Envoy ya no puede congelar TouchDesigner al eliminar su propio host (problemas #106, #108–#110) - 6.2.42 —
ExportReleaseToe: envía todo el proyecto como un.toebloqueado con Embody eliminado, vista previa primero - 6.2.41 — el SDK de MCP se mueve a 2.2.0; los venvs existentes se actualizan solos en el próximo inicio
- 6.2.40 — la etiqueta TDXN, la columna
strategy, los archivos en disco y el controlador de diff de git dicen todos TDXN; se corrigen nueve lecturas de estrategia que habían dejado de coincidir silenciosamente - 6.2.13 — los valores predeterminados de parámetros personalizados vectoriales sobreviven al viaje de ida y vuelta (problema #96); seis campos de definición, tres banderas de autoría y formato TDXN 2.1
- 6.2.8 — el cambio de nombre TDXN se completa en documentos, habilidades y embody.tools (
/tdn/→/tdxn/con redirecciones permanentes) - 6.2.5 — correcciones de revisión TDXN: las exportaciones de instantáneas nunca tocan archivos rastreados, y la detección de suciedad cubre todo lo que escribe una exportación
- 6.2.0 — tres niveles de espacios de nombres; la superficie promovida baja de 214 miembros a 43 (problema #94 — ruptura para nombres no documentados)
- 6.1.5 — cada cliente de IA recibe la configuración MCP que realmente lee, desde un solo registro; la protección de edición viaja dentro de los archivos generados
- 6.1.2 — el formato se convierte en TDXN (TouchDesigner eXternal Network); los archivos
.tdnexistentes funcionan sin cambios, con un pulso de migración opcional - 6.0.201–6.0.280 — el arco de endurecimiento de Convoy: habilitación en macOS, un daemon autoactualizable, actualizaciones de Embody en toda la flota y un autoactualizador que ya no puede ser bloqueado por una descarga atascada
- 6.0.171 — Convoy se envía de extremo a extremo: los nodos en una LAN confiable se descubren, se transmiten trabajo y se controlan entre sí
- 6.0.162 — puerto del SDK MCP 2.0 con venvs autoactualizables
- 6.0.145 — la autoactualización se envía: controlada por manifiesto, verificada, con copia de seguridad + reversión
Contribuyentes
Derivado originalmente de External Tox Saver por Tim Franklin. Refactorizado por completo por Dylan Roscover, con inspiración y orientación de Elburz Sorkhabi, Matthew Ragan y Wieland Hilker.
¿Quieres ayudar? Comienza con CONTRIBUTING.md — este repositorio funciona de manera diferente a un proyecto típico de Python (TouchDesigner escribe muchos de los archivos), y esa página explica qué es seguro cambiar y cómo ejecutar las pruebas.
Créditos
Embody se apoya en el trabajo de otras personas, y esta sección lo nombra. Las ideas se mueven entre los proyectos MCP de TouchDesigner en ambas direcciones; donde Embody tomó una, se acredita aquí y en el código donde aterrizó.
- External Tox Saver por Tim Franklin — Embody comenzó en 2020 como una refactorización de él.
- TDMCP por Derivative (su servidor MCP experimental, un repositorio privado al momento de escribir esto, usado con permiso) — mutaciones MCP deshacibles (un paso de deshacer por lote), el diseño
get_docs(ayuda sin conexión exacta por versión primero, la API de wiki en segundo lugar), crecimiento de bloques de secuencia en escrituras de parámetros, el aviso de endurecimiento de seguridad de transporte y tratar una regla de revisión de código como una consulta. Aterrizó desde v6.0.87 (2026-07-04) en adelante. - TDMCPSkills por Derivative (privado al momento de escribir esto, usado con permiso) — la habilidad
pop-networksestá adaptada detd-pop-family;glsl-shadersyoperator-gotchasse escribieron contra sus habilidadestd-glsl-shadersy familiares como lista de verificación de temas, con cada afirmación re-verificada en vivo en TD 2025.33230 (2026-09-25). - touchdesigner-mcp por 8beeeaaat — el primer servidor MCP de TouchDesigner ampliamente utilizado (2025). El vocabulario de herramientas más temprano de Envoy (
get_td_classes,get_td_class_details,get_td_info,get_module_help,exec_node_method,execute_python) sigue los nombres que ese proyecto estableció. - td-mcp-rs por asyade — una versión con daemon en Rust del mismo problema (2026). Su descarte de diálogos del sistema operativo, direccionamiento de instancias por llamada, códigos de error estables con sugerencias de corrección, captura de cualquier familia a través de un OP Viewer TOP, lint de shaders en escrituras de DAT e instalación sin conexión en un archivo de proyecto son ideas que Embody adoptó y construyó (consulta la hoja de ruta).
Si Embody lleva una idea tuya y esta lista la omite, abre un problema y se agregará.
Marcas comerciales y afiliación
Embody es un proyecto independiente de código abierto. No está afiliado, respaldado ni patrocinado por Derivative. TouchDesigner es una marca comercial de Derivative.