Skip to main content
Glama
MABAAM

VFX Parsers MCP Server

by MABAAM

mcp-vfx-parsers

用于 VFX 文件格式解析的 MCP 服务器。通过 MCP stdio 协议解析并生成 Nuke .nk、MaterialX .mtlx 和 USD ASCII .usda 文件。支持往返稳定性。

工具

工具

描述

parse_nuke

解析 .nk 脚本 → JSON AST(节点、属性、DAG 连接)

parse_mtlx

解析 .mtlx XML → JSON AST(节点图、输入、材质)

parse_usda

解析 .usda 文本 → JSON AST(Prim、属性、变体、连接)

generate_nuke

JSON AST → .nk 脚本(往返稳定)

generate_mtlx

JSON AST → .mtlx XML(往返稳定)

generate_usda

JSON AST → .usda 文本(语义往返)

所有工具均为只读 — 它们仅转换文本,绝不触碰文件系统。

Related MCP server: YAML to JSON Converter MCP Server

安装

npx -y mcp-vfx-parsers

与 Claude Code 一起使用

添加到您的 Claude Code MCP 设置 (~/.claude/settings.json) 中:

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

与 Claude Desktop 一起使用

添加到 claude_desktop_config.json 中:

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

支持的格式

Nuke .nk

Foundry Nuke 合成脚本。解析基于 TCL 的堆栈式节点图格式:

  • 节点类型、属性、位置

  • 通过 set/push 堆栈指令进行的输入连接

  • 根设置(合并重复的 Root 块)

  • TCL 表达式和 UserKnob 块(作为不透明文本保留)

  • 引号值中的转义序列 (\", \\, \n, \t, \r, \0)

MaterialX .mtlx

MaterialX 着色网络定义。解析基于 XML 的格式:

  • 带有类型化输入/输出的节点图

  • 材质分配

  • nodename 连接引用(DAG 边提取)

  • 属性保留(引号样式、顺序)

  • 注释和 XML 序言

  • XML 实体编码/解码 (&, {, )

USD ASCII .usda

Pixar 通用场景描述(ASCII 层格式)。完全支持语法:

  • Prim 层级 (def, over, class)

  • 带有 uniform/custom 修饰符的类型化属性

  • .connect 连接 (UsdShade 节点图)

  • .timeSamples 动画数据

  • 关系(单个 + 数组目标)

  • 带有嵌套变体体的 VariantSets

  • 组合弧:引用、载荷、继承、特化

  • 层和 Prim 元数据

  • 三引号字符串和资产路径 (@...@, @@@...@@@)

往返保证

所有解析器都保持严格的往返不变性:

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

Nuke 和 MaterialX 生成字节完全相同的输出。USDA 以规范的格式化打印形式生成语义相同的输出(注释会被剥离 — 这是已知的局限性)。

安全性与稳健性

  • 输入大小限制:所有工具拒绝超过 10 MB 的输入

  • 格式错误的 JSON:生成工具返回清晰的错误消息,而不是崩溃

  • 无文件系统访问:纯文本转换,对沙盒环境安全

  • 无 eval/exec:无动态代码执行

  • 无外部依赖:仅依赖 @modelcontextprotocol/sdk

  • XXE 安全:MaterialX 解析器不评估 DOCTYPE/实体声明

  • Unicode:所有三个解析器均全面支持 UTF-8

开发

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

更新日志

v0.2.0

  • 服务器加固JSON.parse() 被包裹在安全处理程序中 — 格式错误的输入会返回错误,而不是导致 MCP 服务器崩溃

  • 输入大小限制:所有 6 个工具拒绝 > 10 MB 的输入,以防止内存耗尽

  • Nuke 重复 Root:多个 Root 块会被合并(后面的值胜出),而不是静默丢弃第一个

  • Nuke 转义序列unquote() 现在除了 \"\\ 外,还处理 \n, \t, \r, \0

  • USDA 数据保留.connect 数组和关系目标中的非路径值被保留为 <INVALID:kind:value>,而不是被静默丢弃

v0.1.0

  • 初始版本:3 个解析器(Nuke, MaterialX, USDA),6 个 MCP 工具,13 个测试

许可证

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