Skip to main content
Glama
MABAAM

VFX Parsers MCP Server

by MABAAM

mcp-vfx-parsers

Servidor MCP para el análisis de formatos de archivo VFX. Analiza y genera archivos Nuke .nk, MaterialX .mtlx y USD ASCII .usda, todo a través del protocolo stdio de MCP. Estable en ida y vuelta.

Herramientas

Herramienta

Descripción

parse_nuke

Analiza script .nk → JSON AST (nodos, propiedades, cableado DAG)

parse_mtlx

Analiza XML .mtlx → JSON AST (grafos de nodos, entradas, materiales)

parse_usda

Analiza texto .usda → JSON AST (prims, atributos, variantes, conexiones)

generate_nuke

JSON AST → script .nk (estable en ida y vuelta)

generate_mtlx

JSON AST → XML .mtlx (estable en ida y vuelta)

generate_usda

JSON AST → texto .usda (ida y vuelta semántica)

Todas las herramientas son de solo lectura: transforman texto, nunca tocan el sistema de archivos.

Related MCP server: YAML to JSON Converter MCP Server

Instalación

npx -y mcp-vfx-parsers

Uso con Claude Code

Añadir a la configuración MCP de Claude Code (~/.claude/settings.json):

{
  "mcpServers": {
    "vfx-parsers": {
      "command": "npx",
      "args": ["-y", "mcp-vfx-parsers"]
    }
  }
}

Uso con Claude Desktop

Añadir a claude_desktop_config.json:

{
  "mcpServers": {
    "vfx-parsers": {
      "command": "npx",
      "args": ["-y", "mcp-vfx-parsers"]
    }
  }
}

Formatos soportados

Nuke .nk

Scripts de composición de Foundry Nuke. Analiza el formato de grafo de nodos basado en pila y TCL:

  • Tipos de nodo, propiedades, posiciones

  • Cableado de entrada mediante directivas de pila set/push

  • Configuración raíz (fusiona bloques Root duplicados)

  • Expresiones TCL y bloques UserKnob (preservados como texto opaco)

  • Secuencias de escape en valores entre comillas (\", \\, \n, \t, \r, \0)

MaterialX .mtlx

Definiciones de red de sombreado MaterialX. Analiza el formato basado en XML:

  • Grafos de nodos con entradas/salidas tipadas

  • Asignaciones de materiales

  • Referencias de conexión nodename (extracción de bordes DAG)

  • Preservación de atributos (estilo de comillas, orden)

  • Comentarios y prólogo XML

  • Codificación/decodificación de entidades XML (&, {, )

USD ASCII .usda

Pixar Universal Scene Description (formato de capa ASCII). Soporte completo de gramática:

  • Jerarquía de Prim (def, over, class)

  • Atributos tipados con modificadores uniform/custom

  • Conexiones .connect (grafos de nodos UsdShade)

  • Datos de animación .timeSamples

  • Relaciones (objetivos únicos + matriz)

  • VariantSets con cuerpos de variante anidados

  • Arcos de composición: referencias, payloads, herencias, especializaciones

  • Metadatos de capa y prim

  • Cadenas entre comillas triples y rutas de activos (@...@, @@@...@@@)

Garantía de ida y vuelta

Todos los analizadores mantienen un invariante estricto de ida y vuelta:

parse(generate(parse(input))) === parse(input)

Nuke y MaterialX producen una salida idéntica byte a byte. USDA produce una salida semánticamente idéntica en forma canónica de pretty-print (los comentarios se eliminan: limitación documentada).

Seguridad y robustez

  • Límite de tamaño de entrada: Todas las herramientas rechazan entradas superiores a 10 MB

  • JSON mal formado: Las herramientas de generación devuelven mensajes de error claros en lugar de bloquearse

  • Sin acceso al sistema de archivos: Transformaciones de texto puro, seguras para sandboxing

  • Sin eval/exec: Sin ejecución de código dinámico

  • Sin dependencias externas: Solo @modelcontextprotocol/sdk

  • Seguro contra XXE: El analizador MaterialX no evalúa declaraciones DOCTYPE/entidad

  • Unicode: Soporte completo de UTF-8 en los tres analizadores

Desarrollo

git clone https://github.com/MABAAM/mcp-vfx-parsers.git
cd mcp-vfx-parsers
npm install
npm test
node src/server.mjs

Registro de cambios

v0.2.0

  • Endurecimiento del servidor: JSON.parse() envuelto en un manejador seguro: la entrada mal formada devuelve un error en lugar de bloquear el servidor MCP

  • Límites de tamaño de entrada: Las 6 herramientas rechazan entradas > 10 MB para evitar el agotamiento de memoria

  • Root duplicado en Nuke: Se fusionan múltiples bloques Root (los valores posteriores prevalecen) en lugar de descartar silenciosamente el primero

  • Secuencias de escape en Nuke: unquote() ahora maneja \n, \t, \r, \0 además de \" y \\

  • Preservación de datos en USDA: Los valores que no son rutas en matrices .connect y objetivos de relación se preservan como <INVALID:kind:value> en lugar de descartarse silenciosamente

v0.1.0

  • Lanzamiento inicial: 3 analizadores (Nuke, MaterialX, USDA), 6 herramientas MCP, 13 pruebas

Licencia

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to read, inspect, and manipulate OpenUSD 3D scenes, including scene graph traversal, property querying, mesh export, and variant switching.
    10
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides deterministic conversion between YAML and JSON formats, enabling autonomous agents to flawlessly translate complex configurations without LLM formatting errors.
    6 npm
    3
    -
  • A
    license
    B
    quality
    D
    maintenance
    A production-grade MCP server for Foundry Nuke that enables AI assistants to understand and manipulate compositing environments, including AOVs, deep workflows, distortion, tracking, OCIO/ACEScct, and CopyCat ML.
    45
    MIT