Skip to main content
Glama
MABAAM

VFX Parsers MCP Server

by MABAAM

mcp-vfx-parsers

VFXファイル形式解析用のMCPサーバー。Nuke .nk、MaterialX .mtlx、USD ASCII .usda ファイルを、すべてMCP stdioプロトコルを介して解析および生成します。ラウンドトリップ安定性を備えています。

ツール

ツール

説明

parse_nuke

.nk スクリプト → JSON AST (ノード、プロパティ、DAG配線) に解析

parse_mtlx

.mtlx XML → JSON AST (ノードグラフ、入力、マテリアル) に解析

parse_usda

.usda テキスト → JSON AST (プリム、属性、バリアント、接続) に解析

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 Universal Scene Description (ASCIIレイヤー形式)。完全な文法をサポート:

  • プリム階層 (def, over, class)

  • uniform/custom 修飾子を持つ型付き属性

  • .connect 接続 (UsdShadeノードグラフ)

  • .timeSamples アニメーションデータ

  • リレーションシップ (単一および配列ターゲット)

  • ネストされたバリアントボディを持つVariantSets

  • コンポジションアーク: references, payloads, inherits, specializes

  • レイヤーおよびプリムのメタデータ

  • トリプルクォート文字列およびアセットパス (@...@, @@@...@@@)

ラウンドトリップ保証

すべてのパーサーは厳密なラウンドトリップ不変条件を維持します:

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

NukeとMaterialXはバイト単位で同一の出力を生成します。USDAは正規化されたプリティプリント形式で意味的に同一の出力を生成します(コメントは削除されます — 文書化された制限事項)。

安全性と堅牢性

  • 入力サイズ制限: すべてのツールは10 MBを超える入力を拒否します

  • 不正なJSON: 生成ツールはクラッシュする代わりに明確なエラーメッセージを返します

  • ファイルシステムアクセスなし: 純粋なテキスト変換であり、サンドボックス環境で安全です

  • eval/execなし: 動的なコード実行は行いません

  • 外部依存関係なし: @modelcontextprotocol/sdk のみを使用

  • XXEセーフ: MaterialXパーサーはDOCTYPE/エンティティ宣言を評価しません

  • Unicode: 3つのパーサーすべてで完全な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