mcpField
M
Maibaamvfx

Maibaamvfx

ローカル
github.com/MABAAMメディア・デザイン329 週間前に更新

Maibaamvfx について

Maibaamvfxは、Nuke、MaterialX、USD ASCIIのテキストを扱うツールやワークフロー向けに、VFX形式を解析・生成するMCPサーバーです。ファイルシステムにアクセスせず、テキストとJSON ASTを変換し、往復変換の安定性を備えます。

主な機能

  1. 01Nuke .nkをJSON ASTに解析
  2. 02MaterialX .mtlxをJSON ASTに解析
  3. 03USD ASCII .usdaをJSON ASTに解析
  4. 043形式すべての生成
  5. 05読み取り専用のテキスト変換
  6. 06解析・生成の往復安定性

活用シーン

  1. 01Nukeのノードグラフとプロパティの確認
  2. 02MaterialXシェーディングネットワークの処理
  3. 03USD ASCIIシーンレイヤーの読み取りと生成

MCP 対応

Nuke `.nk`、MaterialX `.mtlx`、USD ASCII `.usda`の解析・生成を行う6つのMCPツールを提供します。ツールはテキストを変換し、ファイルシステムにはアクセスしません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"vfx-parsers": {
"command": "npx",
"args": [
"-y",
"mcp-vfx-parsers"
]
}
}
}
起動コマンドnpx -y mcp-vfx-parsers

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-vfx-parsers

ツール

6

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
textstringはい解析する .nk スクリプトのテキスト

詳細

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(プリム、属性、バリアント、接続)
generate_nukeJSON AST → .nk スクリプト(ラウンドトリップが安定)
generate_mtlxJSON AST → .mtlx XML(ラウンドトリップが安定)
generate_usdaJSON AST → .usda テキスト(セマンティックなラウンドトリップ)

すべてのツールは読み取り専用です。テキストを変換するだけで、ファイルシステムにはアクセスしません。

インストール

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 設定(重複する 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。