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 파일을 파싱하고 생성합니다. 왕복(round-trip) 안정성을 보장합니다.

도구

도구

설명

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 블록 (불투명 텍스트로 보존)

  • 따옴표로 묶인 값의 이스케이프 시퀀스 (", \, , , , 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

  • 구성 아크: 참조, 페이로드, 상속, 특수화

  • 레이어 및 프림 메타데이터

  • 삼중 따옴표 문자열 및 에셋 경로 (@...@, @@@...@@@)

왕복(Round-Trip) 보장

모든 파서는 엄격한 왕복 불변성을 유지합니다:

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

Nuke와 MaterialX는 바이트 단위로 동일한 출력을 생성합니다. USDA는 정식 프리티 프린트 형식으로 의미론적으로 동일한 출력을 생성합니다 (주석은 제거됨 — 문서화된 제한 사항).

안전성 및 견고성

  • 입력 크기 제한: 모든 도구는 10MB를 초과하는 입력을 거부합니다.

  • 잘못된 JSON: 생성 도구는 충돌하는 대신 명확한 오류 메시지를 반환합니다.

  • 파일 시스템 접근 불가: 순수 텍스트 변환으로 샌드박스 환경에서 안전합니다.

  • eval/exec 불가: 동적 코드 실행이 없습니다.

  • 외부 의존성 없음: @modelcontextprotocol/sdk만 사용합니다.

  • XXE 안전: MaterialX 파서는 DOCTYPE/엔티티 선언을 평가하지 않습니다.

  • 유니코드: 세 가지 파서 모두에서 전체 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개 도구 모두 10MB를 초과하는 입력을 거부하여 메모리 고갈을 방지합니다.

  • Nuke 중복 Root: 여러 Root 블록이 병합됩니다 (첫 번째 블록을 조용히 삭제하는 대신 나중 값이 우선함).

  • Nuke 이스케이프 시퀀스: unquote()"\ 외에도 , , , 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