VFX Parsers MCP Server
mcp-vfx-parsers
VFX 파일 형식 파싱을 위한 MCP 서버입니다. MCP stdio 프로토콜을 통해 Nuke .nk, MaterialX .mtlx, USD ASCII .usda 파일을 파싱하고 생성합니다. 왕복(round-trip) 안정성을 보장합니다.
도구
도구 | 설명 |
|
|
|
|
|
|
| JSON AST → |
| JSON AST → |
| JSON AST → |
모든 도구는 읽기 전용입니다. 텍스트를 변환할 뿐 파일 시스템을 건드리지 않습니다.
Related MCP server: YAML to JSON Converter MCP Server
설치
npx -y mcp-vfx-parsersClaude 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
This server cannot be deployed
Maintenance
Related MCP Connectors
Parse PDF/Word/PPT/HTML to Markdown; tables as JSON, image extraction, RAG chunking, page ranges.
Read and write typed fictional worlds (22 linked element types) via the OnlyWorlds open standard.
Geometry and CAD file metadata extraction for STL, OBJ, PLY, PCD, LAS/LAZ, glTF/GLB.
Deterministic JSON repair, validate, example-gen, schema-coerce for agents. Zero LLM, sub-10ms.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to read, inspect, and manipulate OpenUSD 3D scenes, including scene graph traversal, property querying, mesh export, and variant switching.10MIT
- FlicenseNot gradedqualityDmaintenanceProvides deterministic conversion between YAML and JSON formats, enabling autonomous agents to flawlessly translate complex configurations without LLM formatting errors.6 npm3-
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to Nuke for compositing tasks via natural language.9MIT
- AlicenseBqualityDmaintenanceA 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.45MIT