VFX Parsers Server
FreeNot checkedParses and generates Nuke (.nk), MaterialX (.mtlx), and USD ASCII (.usda) files via JSON AST representations with round-trip stability. Enables bidirectional co
About
Parses and generates Nuke (.nk), MaterialX (.mtlx), and USD ASCII (.usda) files via JSON AST representations with round-trip stability. Enables bidirectional conversion of VFX script formats for pipeline automation without modifying files.
README
MCP server for VFX file format parsing. Parse and generate Nuke .nk, MaterialX .mtlx, and USD ASCII .usda files — all via the MCP stdio protocol. Round-trip stable.
Tools
| Tool | Description |
|---|---|
parse_nuke |
Parse .nk script → JSON AST (nodes, properties, DAG wiring) |
parse_mtlx |
Parse .mtlx XML → JSON AST (node graphs, inputs, materials) |
parse_usda |
Parse .usda text → JSON AST (prims, attributes, variants, connections) |
generate_nuke |
JSON AST → .nk script (round-trip stable) |
generate_mtlx |
JSON AST → .mtlx XML (round-trip stable) |
generate_usda |
JSON AST → .usda text (semantic round-trip) |
All tools are read-only — they transform text, never touch the filesystem.
Install
npx -y mcp-vfx-parsers
Usage with Claude Code
Add to your Claude Code MCP settings (~/.claude/settings.json):
{
"mcpServers": {
"vfx-parsers": {
"command": "npx",
"args": ["-y", "mcp-vfx-parsers"]
}
}
}
Usage with Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"vfx-parsers": {
"command": "npx",
"args": ["-y", "mcp-vfx-parsers"]
}
}
}
Supported Formats
Nuke .nk
Foundry Nuke compositing scripts. Parses the TCL-based stack-wired node graph format:
- Node types, properties, positions
- Input wiring via
set/pushstack directives - Root settings (merges duplicate Root blocks)
- TCL expressions and UserKnob blocks (preserved as opaque text)
- Escape sequences in quoted values (
\",\\,\n,\t,\r,\0)
MaterialX .mtlx
MaterialX shading network definitions. Parses the XML-based format:
- Node graphs with typed inputs/outputs
- Material assignments
nodenameconnection references (DAG edge extraction)- Attribute preservation (quote style, order)
- Comments and XML prolog
- XML entity encoding/decoding (
&,{,)
USD ASCII .usda
Pixar Universal Scene Description (ASCII layer format). Full grammar support:
- Prim hierarchy (
def,over,class) - Typed attributes with
uniform/custommodifiers .connectconnections (UsdShade node graphs).timeSamplesanimation data- Relationships (single + array targets)
- VariantSets with nested variant bodies
- Composition arcs: references, payloads, inherits, specializes
- Layer and prim metadata
- Triple-quoted strings and asset paths (
@...@,@@@...@@@)
Round-Trip Guarantee
All parsers maintain a strict round-trip invariant:
parse(generate(parse(input))) === parse(input)
Nuke and MaterialX produce byte-identical output. USDA produces semantically identical output in canonical pretty-print form (comments stripped — documented limitation).
Safety & Robustness
- Input size limit: All tools reject inputs larger than 10 MB
- Malformed JSON: Generate tools return clear error messages instead of crashing
- No filesystem access: Pure text transforms, safe for sandboxing
- No eval/exec: No dynamic code execution
- No external dependencies: Only
@modelcontextprotocol/sdk - XXE-safe: MaterialX parser does not evaluate DOCTYPE/entity declarations
- Unicode: Full UTF-8 support across all three parsers
Development
git clone https://github.com/MABAAM/mcp-vfx-parsers.git
cd mcp-vfx-parsers
npm install
npm test
node src/server.mjs
Changelog
v0.2.0
- Server hardening:
JSON.parse()wrapped in safe handler — malformed input returns error instead of crashing the MCP server - Input size limits: All 6 tools reject inputs > 10 MB to prevent memory exhaustion
- Nuke duplicate Root: Multiple Root blocks are merged (later values win) instead of silently discarding the first
- Nuke escape sequences:
unquote()now handles\n,\t,\r,\0in addition to\"and\\ - USDA data preservation: Non-path values in
.connectarrays and relationship targets are preserved as<INVALID:kind:value>instead of silently dropped
v0.1.0
- Initial release: 3 parsers (Nuke, MaterialX, USDA), 6 MCP tools, 13 tests
License
MIT
Install VFX Parsers Server in Claude Desktop, Claude Code & Cursor
unyly install vfx-parsers-mcp-serverInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add vfx-parsers-mcp-server -- npx -y mcp-vfx-parsersStep-by-step: how to install VFX Parsers Server
FAQ
Is VFX Parsers Server MCP free?
Yes, VFX Parsers Server MCP is free — one-click install via Unyly at no cost.
Does VFX Parsers Server need an API key?
No, VFX Parsers Server runs without API keys or environment variables.
Is VFX Parsers Server hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install VFX Parsers Server in Claude Desktop, Claude Code or Cursor?
Open VFX Parsers Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare VFX Parsers Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
