Maibaamvfx について
Maibaamvfxは、Nuke、MaterialX、USD ASCIIのテキストを扱うツールやワークフロー向けに、VFX形式を解析・生成するMCPサーバーです。ファイルシステムにアクセスせず、テキストとJSON ASTを変換し、往復変換の安定性を備えます。
主な機能
- 01Nuke .nkをJSON ASTに解析
- 02MaterialX .mtlxをJSON ASTに解析
- 03USD ASCII .usdaをJSON ASTに解析
- 043形式すべての生成
- 05読み取り専用のテキスト変換
- 06解析・生成の往復安定性
活用シーン
- 01Nukeのノードグラフとプロパティの確認
- 02MaterialXシェーディングネットワークの処理
- 03USD ASCIIシーンレイヤーの読み取りと生成
MCP 対応
Nuke `.nk`、MaterialX `.mtlx`、USD ASCII `.usda`の解析・生成を行う6つのMCPツールを提供します。ツールはテキストを変換し、ファイルシステムにはアクセスしません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | はい | 解析する .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_nuke | JSON AST → .nk スクリプト(ラウンドトリップが安定) |
generate_mtlx | JSON AST → .mtlx XML(ラウンドトリップが安定) |
generate_usda | JSON 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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。