Skip to main content
Glama

maya-mcp

Maya 2022 이상에서 쓰는 커스텀 MCP 서버. AI가 Maya를 직접 조작하게 해줍니다.

기존 오픈소스 서버들과 달리 툴을 수백 개 나열하지 않습니다. 코드 실행 + 자기탐색으로 전체 커버리지를 얻고, 구조화된 툴은 안전망에만 씁니다.

왜 이 구조인가

Maya 2022의 내장 Python은 3.7이고, 공식 mcp 파이썬 SDK는 3.10 이상을 요구합니다. 즉 MCP 서버 본체는 Maya 안에서 돌 수 없습니다. 그래서 두 조각으로 나뉩니다.

Claude ─(stdio)─> maya_mcp/           PC 파이썬 3.10+ / mcp SDK
                       │
                       │ TCP 127.0.0.1:20777
                       │ JSON-RPC 2.0 · 4바이트 길이 프리픽스
                       ▼
                  maya_mcp_bridge.py  Maya 2022 내부 / Python 3.7 / 표준 라이브러리만
                       │ executeInMainThreadWithResult
                       ▼
                    maya.cmds ← unreal_tools.py (L2 언리얼 파이프라인)

이 경계 덕분에 Maya를 2024/2026으로 올려도 브릿지 파일 하나만 확인하면 됩니다.

자매 프로젝트와의 정렬

unreal-mcp-bridge 와 규약을 맞췄습니다.

공통

메시지

JSON-RPC 2.0 (method / params / result / error)

에러 코드

표준 (-32700 ~ -32603)

메서드명

<도메인>.<동작> 점 네임스페이스

구조

패키지 + tools/*.py + register_*_tools(mcp, conn)

스레드

워커 스레드 수신 → 메인/게임 스레드 디스패치

의도적으로 다른 것 하나 — 프레이밍. 저쪽은 개행 구분 + 64KB 제한, 이쪽은 4바이트 길이 프리픽스에 제한 없음입니다. Maya 는 씬 덤프처럼 큰 응답이 흔해 (cmds.ls() 한 번에도 64KB를 넘길 수 있습니다) 64KB 제한을 쓸 수 없습니다. 자세한 내용은 docs/PROTOCOL.md.

파일 구조

maya_mcp/              PC 쪽 (Python 3.10+)
  config.py            MMCP_* 환경변수
  connection.py        JSON-RPC 클라이언트
  server.py            서버 조립 (build_server)
  tools/               script · scene · inspection · viewport · unreal
maya_mcp_bridge.py     Maya 내부 (Python 3.7, 표준 라이브러리만)
unreal_tools.py        Maya 내부, 언리얼 파이프라인 구현
install_maya.py        Maya 쪽 원버튼 설치
server.py              엔트리 포인트 (기존 MCP 등록 경로 유지용)

Related MCP server: Unreal Engine MCP

툴 목록 (16개)

계층

툴

역할

L0

maya_execute

임의 Python 실행. 여기서 모든 기능이 나옵니다

L1

maya_search_commands

이름으로 maya.cmds 명령 검색

L1

maya_command_help

명령의 플래그·시그니처 조회

L3

maya_undo

직전 작업 되돌리기

L3

maya_viewport_capture

뷰포트를 이미지로 받아 결과 검증

—

maya_scene_info

단위·업축·프레임 범위·노드 개수

—

maya_ping

연결·버전 확인

L2 — 언리얼 파이프라인 (unreal_tools.py)

툴

성격

역할

maya_unreal_check

읽기 전용

프리즈·음수 스케일·히스토리·네이밍·UV·ngon·논매니폴드 감사

maya_unreal_check_skeleton

읽기 전용

조인트 오리엔트 편차, rotate 잔여값, 루트·좌우 네이밍 감사

maya_unreal_check_materials

읽기 전용

슬롯 수(=드로우 콜), 기본 머티리얼, 페이스 단위 할당, 미사용 SG

maya_unreal_prepare

변경

히스토리 삭제·프리즈·피벗·접두사 리네임 일괄

maya_unreal_cleanup_materials

변경

미사용 셰이딩 그룹 삭제, M_ 리네임

maya_unreal_make_lods

생성

LOD 메시 생성 + Maya LOD 그룹

maya_unreal_make_collision

생성

UBX_/USP_/UCP_/UCX_ 콜리전

maya_unreal_import_fbx

입력

FBX 를 Maya 로 가져오기 (언리얼 레벨 에셋 수신)

maya_unreal_export_fbx

출력

언리얼 프리셋 FBX

감사(읽기 전용)를 먼저 두는 구조입니다. 보지 않고 고치면 되돌릴 수 없는 문제 (뒤집힌 노멀 등)를 덮어쓰게 됩니다.

자동화하지 않기로 한 것들 — 판단이 필요하기 때문입니다:

  • 음수 스케일 수정 — 프리즈해도 노멀이 뒤집힌 채 남습니다. 어느 면을 뒤집을지는 사람이 정합니다.

  • 조인트 재오리엔트 — 이미 붙은 스킨 웨이트가 깨집니다. 감사만 합니다.

  • 머티리얼 병합 — 어느 것을 남길지는 룩뎁 판단입니다.

  • LOD 감소율 자동 결정 — 실루엣이 무너지는 지점은 에셋마다 다릅니다.

⚠️ UCX_ 컨벡스 콜리전 제약 — Maya 2022 에는 컨벡스 헐 명령이 없습니다 (런타임 조사로 확인). convex 옵션은 원본을 줄인 사본일 뿐 볼록함이 보장되지 않습니다. 대부분의 프롭은 box(UBX_)로 충분하고, 복잡한 형태는 언리얼 스태틱 메시 에디터의 Auto Convex Collision 을 쓰는 편이 낫습니다.

기존 서버 비교표에서 "Maya 2022에서는 undo와 뷰포트 캡처가 불가능"이라고 나오는 건 Maya의 한계가 아니라 그 서버들이 구현을 안 한 것뿐입니다. 둘 다 2022에서 잘 됩니다.

  • undo — maya_execute 호출 하나를 undoInfo(openChunk/closeChunk) 로 묶습니다. AI가 무슨 짓을 하든 Ctrl+Z 한 번에 통째로 되돌아갑니다.

  • 뷰포트 캡처 — playblast 로 PNG를 떠서 MCP 이미지로 돌려줍니다. AI가 자기 결과물을 보고 스스로 고칠 수 있게 되는 것이 자동화 품질을 가장 크게 가릅니다.

설치

1. Maya 쪽 (한 번만)

스크립트 에디터(Python 탭)에서 아래를 한 번 실행하면 끝입니다.

import sys; sys.path.append(r"C:\path\to\maya-mcp")
import install_maya; install_maya.install()

두 가지가 설치됩니다.

  • 자동 시작 — ~/Documents/maya/scripts/userSetup.py 에 등록됩니다. 다음부터는 Maya 를 켜기만 하면 브릿지가 대기 상태가 됩니다.

  • 셸프 버튼 — MCP 셸프에 원버튼 시작/중지 토글이 생깁니다. 셸프 탭이 많으면 맨 끝에 추가되니 탭 바를 오른쪽으로 넘겨서 찾으세요.

성공하면 출력창에 이렇게 찍힙니다:

[maya-mcp] 대기 중: 127.0.0.1:20777 (Maya 2022 / Python 3.7.7)

제거: import install_maya; install_maya.uninstall()

import sys; sys.path.append(r"C:\path\to\maya-mcp")
import maya_mcp_bridge; maya_mcp_bridge.start()   # 중지는 stop()

플러그인 매니저에서 maya_mcp_bridge.py 를 로드해도 됩니다 (initializePlugin 이 start() 를 호출합니다).

코드를 수정한 뒤에는 Maya 를 재시작하세요. importlib.reload 는 모듈 전역 (_server)을 초기화해 실행 중인 서버를 stop() 할 수 없게 만들고, 포트가 물린 채 start() 가 실패합니다. 셸프 버튼이 리로드를 하지 않는 이유이기도 합니다.

2. PC 쪽 (MCP 서버)

python -m venv .venv
.venv\Scripts\activate        # macOS/Linux: source .venv/bin/activate
pip install -e .              # 또는: pip install -r requirements.txt

pip install -e . 로 설치하면 maya-mcp 명령으로도 실행할 수 있습니다.

mcp 2.x(MCPServer)와 1.x(FastMCP) 양쪽을 지원합니다 — server.py 가 임포트 시점에 알아서 고릅니다. 2.0.0 에서 검증했습니다.

3. 클라이언트 등록

Claude Desktop / Claude Code 설정에 추가:

{
  "mcpServers": {
    "maya": {
      "command": "C:\\path\\to\\maya-mcp\\.venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\maya-mcp\\server.py"]
    }
  }
}

Claude Code CLI 라면:

claude mcp add maya -- C:\path\to\maya-mcp\.venv\Scripts\python.exe C:\path\to\maya-mcp\server.py

언리얼 익스포트 워크플로

1. maya_unreal_check              지오메트리 문제 확인
2. maya_unreal_check_materials    슬롯 수 확인
3. maya_unreal_prepare            프리즈·히스토리·피벗·네이밍
4. maya_unreal_cleanup_materials  미사용 셰이딩 그룹 정리
5. maya_unreal_make_collision     UBX_ 콜리전 생성
6. maya_unreal_make_lods          LOD 생성
7. maya_viewport_capture          눈으로 검증          ← 건너뛰지 마세요
8. maya_unreal_export_fbx         콜리전·LOD 포함 익스포트

7번이 핵심입니다. LOD 검증 중에 실제로 겪은 사례: 삼각형 수 10.3% 유지, ngon 0, 논매니폴드 0 — 지표는 전부 정상이었는데 캡처해보니 실루엣이 눈에 띄게 깨져 있었습니다. 수치만으로 품질을 판단할 수 없습니다.

콜리전 메시는 원본과 같은 FBX 에 함께 익스포트해야 언리얼이 인식합니다.

언리얼과의 에셋 왕복

Maya 쪽 절반은 완성돼 검증까지 마쳤습니다.

방향

Maya 쪽

언리얼 쪽

Maya → 언리얼

maya_unreal_export_fbx ✅

asset.import_fbx ❌ 미구현

언리얼 → Maya

maya_unreal_import_fbx ✅

level.export_selected ❌ 미구현

FBX 왕복은 실기에서 좌표까지 보존되는 것을 확인했습니다(반지름 6.0 원형 배치를 내보냈다 되가져와 위치·삼각형 수 일치).

언리얼 쪽 커맨드 3개는 아직 없습니다. 자매 저장소 unreal-mcp-bridge 에 C++ 로 추가해야 하며, JSON-RPC 계약과 구현 메모를 docs/UNREAL_SIDE.md 에 정리해 뒀습니다. 그 문서의 코드는 빌드·검증되지 않았습니다.

그전까지는 사용자가 언리얼에서 직접 뽑아둔 FBX 를 maya_unreal_import_fbx 로 받는 방식으로 쓸 수 있습니다.

테스트

네 개의 스위트가 있고, 전부 통과 상태입니다 (Maya 2022.x + Python 3.12.10 + mcp 2.0.0 검증).

# 1. Maya 쪽 로직 (31개) — Maya 의 Python 3.7 에서 실제로 돌립니다
"C:\Program Files\Autodesk\Maya2022\bin\mayapy.exe" tests/test_bridge_mayapy.py

# 2. 서버 전송 계층 (25개) — 목 브릿지 상대. Maya 불필요
.venv\Scripts\python.exe tests/test_server_protocol.py

# 3. MCP 엔드투엔드 (6개) — 실제 MCP 클라이언트로 핸드셰이크·툴 호출. Maya 불필요
.venv\Scripts\python.exe tests/test_e2e_stdio.py

# 4. GUI 스모크 — Maya 를 띄우고 브릿지를 start() 한 상태에서 실행
.venv\Scripts\python.exe tests/smoke_gui.py

1번은 maya.standalone 배치 모드에서 _op_* 함수를 직접 호출합니다. 소켓 계층을 여기서 테스트하지 않는 이유는, 배치 모드에는 idle 이벤트 루프가 없어 executeInMainThreadWithResult 가 반환되지 않기 때문입니다. 프레이밍은 2번이 목 브릿지로 검증합니다. GUI 모드에서의 소켓 왕복과 뷰포트 캡처는 자동 테스트 범위 밖이므로, Maya 를 띄워서 직접 확인하세요.

환경 변수

변수

기본값

설명

MMCP_HOST

127.0.0.1

브릿지 호스트

MMCP_PORT

20777

브릿지 포트

MMCP_TIMEOUT

180

요청 타임아웃(초). 무거운 작업이 많으면 늘리세요

접두사는 unreal-mcp-bridge 의 UMCP_ 와 맞춘 것입니다. 예전 MAYA_MCP_* 도 계속 인식하지만 MMCP_* 가 우선합니다.

maya_execute 반환 규약

  • 단일 표현식이면 그 값이 결과입니다 — cmds.ls(selection=True)

  • 여러 줄이면 result 변수에 담긴 값이 결과입니다

objs = cmds.ls(type="mesh")
result = {"count": len(objs), "names": objs[:10]}

print 출력과 예외 트레이스백도 함께 돌아오므로, 실패하면 AI가 에러를 읽고 스스로 고칩니다.

보안 — 읽고 넘어가세요

이건 정의상 원격 코드 실행 통로입니다.

  • 127.0.0.1 에만 바인딩합니다. HOST 를 0.0.0.0 으로 바꾸면 같은 네트워크의 누구나 여러분 Maya에서 임의 코드를 실행할 수 있습니다. 바꾸지 마세요.

  • 렌더 노드, 공용 워크스테이션, 신뢰할 수 없는 네트워크에서는 켜지 마세요.

  • 프로덕션 씬으로 먼저 시험하지 마세요. 사본으로 며칠 돌려보고 판단하세요.

  • undo 청크가 있어도 여러 단계 작업을 완벽히 되돌린다는 보장은 없습니다. 작업 전에 저장하는 습관이 여전히 가장 확실한 안전망입니다.

알려진 제약

  • 무거운 작업 중에는 Maya UI가 멈춥니다. maya.cmds 가 메인 스레드에서만 동작하므로 구조적으로 피할 수 없습니다. 타임아웃을 넉넉히 잡으세요.

  • 배치 모드(maya -batch)에서는 뷰포트 캡처가 동작하지 않습니다.

  • Maya의 undo 가 꺼져 있으면(undoInfo -state off) 되돌리기가 불가능합니다. maya_ping 이 undo_enabled 로 알려줍니다.

확장 방향

maya_execute 로 같은 코드를 반복해서 짜고 있다면, 그때 구조화 툴(L2)로 승격시키세요. 처음부터 툴을 많이 만드는 것이 가장 흔한 실패 패턴입니다. 승격 기준은 셋뿐입니다.

  1. 파괴적이라 확인 게이트가 필요하다 (scene_new, delete_history)

  2. 너무 자주 써서 매번 코드 짜는 게 낭비다 (create_primitive, set_attribute)

  3. AI가 자주 틀린다 (스킨 바인드 옵션, UV 투영 파라미터)

라이선스

MIT

Available Tools

16 tools
maya_command_helpA

maya.cmds 명령 하나의 플래그 목록과 시그니처를 가져옵니다.

플래그 이름이나 인자 형식이 불확실할 때 코드를 짜기 전에 호출하세요. Maya 버전마다 플래그가 달라서 기억에 의존하면 자주 틀립니다.

Args: name: 명령 이름. 예) "polyBevel", "skinCluster", "polyProjection"

Inputs: name (required).

maya_executeA

Maya 안에서 임의의 Python 코드를 실행합니다. Maya 로 되는 모든 작업의 통로입니다.

전용 툴이 없는 작업(리깅, UV, 디포머, 커스텀 노드, Bifrost 등)은 전부 이 툴로 하세요. 여러 작업을 한 번에 묶어 보내는 편이 툴을 여러 번 호출하는 것보다 훨씬 빠르고 저렴합니다.

사용 가능한 이름: cmds (maya.cmds), mel (maya.mel), om (maya.api.OpenMaya).

반환 규약:

  • 코드가 단일 표현식이면 그 값이 value 가 됩니다. 예) cmds.ls(selection=True)

  • 여러 줄이면 result 변수에 담긴 값이 value 가 됩니다.

  • stdout 에 print 출력이, 실패하면 error 에 트레이스백이 담깁니다. 실패 시 에러를 읽고 고쳐서 다시 시도하세요.

Args: code: 실행할 Python 코드. undo_chunk: True 면 실행 전체를 하나의 undo 단위로 묶습니다. 사용자가 Ctrl+Z 한 번으로 되돌릴 수 있으므로 기본값을 유지하세요.

Inputs: code (required), undo_chunk.

maya_pingA

Maya 브릿지가 살아있는지, 어떤 버전인지 확인합니다.

다른 툴이 연결 오류를 낼 때 원인을 좁히는 용도로 쓰세요. undo_enabled 가 false 면 되돌리기 안전망이 없는 상태입니다.

Inputs: no named parameters.

maya_scene_infoA

현재 씬의 요약 정보를 가져옵니다.

작업을 시작하기 전에 한 번 호출해서 단위계, 업 축, 프레임 범위, 선택 상태, 노드 종류별 개수를 파악하세요. 특히 단위와 업 축을 모르고 좌표를 지정하면 엉뚱한 위치에 배치됩니다.

Inputs: no named parameters.

maya_search_commandsA

이름에 특정 문자열이 들어간 maya.cmds 명령을 찾습니다.

쓸 명령 이름이 확실하지 않을 때 추측하지 말고 먼저 이걸 호출하세요. 예) pattern="bevel", "skin", "uv", "constraint"

Args: pattern: 부분 일치 검색어(대소문자 무시). 비우면 전체 목록. limit: 반환할 최대 개수.

Inputs: limit, pattern.

maya_undoA

직전 작업을 되돌립니다.

maya_execute 로 한 작업이 잘못됐을 때 호출하세요. maya_execute 는 기본적으로 호출 하나를 undo 한 단계로 묶으므로, steps=1 이면 마지막 호출 전체가 취소됩니다.

Args: steps: 되돌릴 단계 수 (1~50).

Inputs: steps.

maya_unreal_checkA

언리얼 익스포트 전 지오메트리 문제를 감사합니다. 씬을 전혀 바꾸지 않습니다.

정리나 익스포트를 하기 전에 항상 먼저 호출하세요.

검사 항목: 프리즈 안 된 트랜스폼, 음수 스케일, 남은 컨스트럭션 히스토리, 네이밍 규칙 위반, UV 누락, ngon, 논매니폴드/라미나 지오메트리, 씬 단위와 업 축.

Args: objects: 대상 이름 목록(와일드카드 가능). 비우면 선택, 선택도 없으면 씬 전체 메시. prefix: 기대하는 네이밍 접두사. 스태틱 메시 "SM_", 스켈레탈 메시 "SK_".

Inputs: prefix, objects.

maya_unreal_check_materialsA

머티리얼 슬롯을 감사합니다. 씬을 바꾸지 않습니다.

언리얼에서 머티리얼 슬롯 하나는 드로우 콜 하나입니다. 메시당 슬롯 수가 성능에 직접 영향을 주므로 익스포트 전에 확인할 가치가 큽니다.

검사 항목: 메시당 슬롯 수, 기본 머티리얼(lambert1) 할당, 네이밍 규칙, 페이스 단위 할당, 사용되지 않는 셰이딩 그룹.

Args: objects: 대상. 비우면 선택, 선택도 없으면 씬 전체 메시. prefix: 기대하는 머티리얼 접두사. 언리얼 관행은 "M_".

Inputs: prefix, objects.

maya_unreal_check_skeletonA

조인트 오리엔트와 언리얼 스켈레톤 호환성을 감사합니다. 씬을 바꾸지 않습니다.

자동 수정을 하지 않습니다. 조인트를 다시 오리엔트하면 이미 붙은 스킨 웨이트가 깨지므로, 무엇을 어떻게 고칠지는 사람이 판단해야 합니다. 보고된 문제를 사용자에게 전달하고, 고치라는 지시를 받기 전까지는 손대지 마세요.

검사 항목: 자식 방향과 주축의 각도 편차, rotate/rotateAxis 잔여값, 조인트 스케일, 길이 0 본, 루트 개수와 위치, rotateOrder 불일치, segmentScaleCompensate, 좌우 네이밍(_l/_r) 규칙과 짝 존재 여부.

Args: root: 루트 조인트 이름. 비우면 씬의 모든 조인트 루트를 감사합니다. primary_axis: 자식을 향해야 하는 축. Maya/언리얼 관행은 "x". tolerance_deg: 이 각도를 넘는 편차만 문제로 봅니다.

Inputs: root, primary_axis, tolerance_deg.

maya_unreal_cleanup_materialsA

안전한 머티리얼 정리만 수행합니다 (미사용 셰이딩 그룹 삭제, 접두사 리네임).

서로 다른 머티리얼을 병합하지 않습니다. 어느 것을 남기고 어느 것을 버릴지는 룩뎁 판단이라 사람이 정해야 합니다. 슬롯을 줄여야 한다면 감사 결과를 사용자에게 보여주고 지시를 받으세요.

Args: prefix: 붙일 머티리얼 접두사. rename: 접두사 리네임 수행 여부. 레퍼런스된 머티리얼은 건너뜁니다. delete_unused: 멤버가 없는 셰이딩 그룹 삭제 여부. dry_run: True 면 무엇을 할지만 보고합니다.

Inputs: prefix, rename, dry_run, delete_unused.

maya_unreal_export_fbxA

언리얼용 설정으로 FBX 를 익스포트합니다.

스무딩 그룹과 탄젠트를 켜고, 서브디비전 결과·불필요한 업스트림 연결·카메라· 라이트는 제외합니다. 익스포트 전에 maya_unreal_prepare 를 먼저 돌리세요.

Args: path: 저장 경로. 예) "D:/export/SM_Prop.fbx" objects: 대상. 비우면 선택, 선택도 없으면 씬 전체 메시. triangulate: 보통 False 로 두세요. 언리얼이 임포트 시 삼각화하며, 쿼드를 유지해야 나중에 수정이 쉽습니다. skins: 스켈레탈 메시면 True. blendshapes: 블렌드셰이프(모프 타깃)를 포함하려면 True. animation: 애니메이션 클립을 함께 내보내려면 True. up_axis: "y"(Maya 기본, 언리얼이 변환) 또는 "z".

Inputs: path (required), skins, objects, up_axis, +3 more.

maya_unreal_import_fbxA

FBX 를 현재 Maya 씬으로 가져옵니다. 언리얼 레벨 에셋을 받는 경로입니다.

임포트 후 maya_viewport_capture 로 확인하세요. 축이나 스케일이 틀어지면 형태는 멀쩡한데 90도 누워 있거나 100배 크게 들어옵니다. 반환값의 warnings 도 반드시 읽고 사용자에게 전달하세요.

언리얼에서 FBX 를 뽑는 것은 이 툴의 범위 밖입니다. 언리얼 쪽 플러그인이 해야 하며, 아직 구현돼 있지 않습니다(docs/UNREAL_SIDE.md 참고). 지금은 사용자가 직접 뽑아둔 FBX 를 받는 용도로 쓰입니다.

Args: path: FBX 파일 경로. namespace: 지정하면 그 네임스페이스로 임포트합니다. 기존 씬 오브젝트와 이름이 겹칠 때 쓰세요. 비우면 Maya 가 뒤에 숫자를 붙입니다. group: 지정하면 새로 들어온 최상위 노드를 이 이름의 그룹으로 묶습니다. up_axis: 원본 FBX 의 업 축. 언리얼 FBX 익스포터는 보통 Y-up 으로 내보내므로 기본값 "y" 입니다. 결과가 90도 누워 있으면 "z" 로 재시도. scale_factor: 임포트 스케일. Maya·언리얼 모두 cm 면 1.0. import_mode: "add"(새로 추가) | "merge"(같은 이름에 병합) | "exmerge"(존재하는 것만 갱신).

Inputs: path (required), group, up_axis, namespace, +2 more.

maya_unreal_make_collisionA

언리얼 규칙에 맞는 콜리전 메시를 만듭니다 (UBX_/USP_/UCP_/UCX_).

콜리전 메시는 원본과 같은 FBX 에 함께 익스포트해야 언리얼이 인식합니다. maya_unreal_export_fbx 호출 시 대상에 포함하세요.

Args: objects: 대상. 비우면 선택, 선택도 없으면 씬 전체 메시. shape: 콜리전 형태. "box" UBX_ — 바운딩박스. 정확하고 가장 가볍습니다. 대부분의 프롭에 충분. "sphere" USP_ — 바운딩 스피어. "capsule" UCP_ — 캡슐. 캐릭터·기둥 형태에 적합. "convex" UCX_ — Maya 2022 에는 컨벡스 헐 명령이 없습니다. 원본을 줄인 사본을 만들 뿐이라 볼록함이 보장되지 않습니다. 복잡한 형태라면 언리얼 스태틱 메시 에디터의 Auto Convex Collision 을 쓰라고 사용자에게 안내하세요. padding: 콜리전을 원본보다 이만큼 키웁니다(씬 단위). 관통 방지용. reduce_to: convex 일 때 목표 삼각형 수. dry_run: True 면 만들 이름과 크기만 보고합니다.

Inputs: shape, dry_run, objects, padding, +1 more.

maya_unreal_make_lodsA

원본을 복제해 LOD 메시를 만듭니다. 원본(LOD0)은 줄이지 않습니다.

만든 뒤 반드시 maya_viewport_capture 로 눈으로 확인하세요. 삼각형 수와 토폴로지 지표가 전부 정상이어도 실루엣이 깨져 있을 수 있습니다. 수치만 보고 "완료" 라고 보고하지 마세요.

감소율을 임의로 정하지 마세요. 실루엣이 무너지는 지점은 에셋마다 다릅니다. 사용자가 값을 주지 않았다면 기본값으로 만든 뒤 결과를 보여주고 조정 여부를 물어보세요. 캐릭터나 실루엣이 중요한 에셋은 첫 단계를 70~80 으로 올리는 편이 안전하고, 배경 소품은 더 공격적으로 줄여도 됩니다.

Args: objects: 대상. 비우면 선택, 선택도 없으면 씬 전체 메시. keep_percent: LOD1 부터 각 단계에서 남길 삼각형 비율(%). 원본 기준. 생략하면 [50, 25, 12]. 예) [75, 50, 25] 는 더 보수적인 감소. lod_group: True 면 Maya LOD 그룹으로 묶습니다. 언리얼 FBX 임포터가 이걸 인식해 LOD 를 자동 구성합니다. keep_borders: 메시 경계 보존. 열린 메시에서 끄면 형태가 무너집니다. keep_hard_edges: 하드 엣지와 크리스 보존. 각진 에셋에 중요합니다. keep_uv_borders: UV 경계 보존. 끄면 텍스처가 늘어납니다. dry_run: True 면 예상 삼각형 수만 계산하고 씬은 건드리지 않습니다.

Inputs: dry_run, objects, lod_group, keep_borders, +3 more.

maya_unreal_prepareA

익스포트 전 정리를 한 번에 수행합니다 (프리즈·히스토리·피벗·네이밍).

먼저 maya_unreal_check 로 상태를 본 다음 호출하세요. 호출 전체가 하나의 undo 단위로 묶이므로 Ctrl+Z 한 번에 되돌릴 수 있습니다.

음수 스케일이 있으면 프리즈해도 노멀이 뒤집힌 채 남습니다. 이 툴은 경고만 하고 고치지 않습니다 — 어느 면을 뒤집을지는 사람이 판단해야 합니다.

Args: objects: 대상. 비우면 선택, 선택도 없으면 씬 전체 메시. prefix: 붙일 네이밍 접두사. freeze: 트랜스폼 프리즈 여부. delete_history: 컨스트럭션 히스토리 삭제 여부. pivot: "center"(바운딩박스 중심) | "base"(바닥) | "origin"(월드 원점) | "keep". 바닥에 놓이는 프롭은 "base", 월드 기준 배치물은 "origin" 이 편합니다. rename: 접두사 리네임 수행 여부. dry_run: True 면 무엇을 할지만 보고하고 씬은 건드리지 않습니다.

Inputs: pivot, freeze, prefix, rename, +3 more.

maya_viewport_captureA

현재 뷰포트를 이미지로 캡처해서 돌려줍니다.

모델링·배치·라이팅·LOD 처럼 결과가 눈에 보이는 작업을 한 뒤에는 이걸 호출해서 의도대로 됐는지 직접 확인하세요. 수치 지표가 전부 정상이어도 형태가 깨져 있을 수 있습니다. 확인 없이 다음 단계로 넘어가면 잘못된 상태 위에 작업이 쌓입니다.

Args: width: 캡처 가로 픽셀. height: 캡처 세로 픽셀. ornaments: True 면 HUD/기즈모 등 화면 장식을 포함합니다.

Inputs: width, height, ornaments.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 16 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: general execution/undo/info/ping, command discovery/help, viewport capture, and Unreal-specific checks/prep/cleanup/LOD/collision/import/export. The three 'check' tools are separated by domain (geometry, skeleton, materials), and cleanup tools are also distinct. maya_execute is explicitly a fallback for tasks without dedicated tools, avoiding overlap.

    Naming Consistency4/5

    All tools share the consistent 'maya_' prefix and use snake_case. The Unreal-specific tools follow a clean 'maya_unreal_<verb>_<noun>' pattern (check_skeleton, make_lods, import_fbx). However, general tools mix verb-first (execute, undo, ping, search_commands) with noun-first patterns (scene_info, command_help, viewport_capture), creating a minor inconsistency.

    Tool Count4/5

    At 16 tools, this is slightly over the typical 3-15 well-scoped range. However, each tool serves a distinct need in the Maya-Unreal pipeline, so the count feels justified rather than bloated.

    Completeness4/5

    The tool set covers the full Unreal export workflow: scene inspection, code execution, auditing (geometry, skeleton, materials), preparation, material cleanup, LOD creation, collision creation, and FBX import/export. The only notable gap is the absence of a dedicated skeleton fixer, but this is intentional (auto-fixing can damage skin weights) and can be performed via maya_execute.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      C
      maintenance
      An MCP server that gives AI agents broad control over Unreal Engine 5.7, enabling actor/asset/level management, Blueprint and material creation, screenshots, automation, and arbitrary editor Python execution.
      35
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      MCP server that connects Claude to Unreal Engine 5.8 via the official Remote Control API, enabling asset manipulation, actor control, level operations, and AI-powered 3D model generation (via Meshy) through natural language.
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server for AI-driven Blender↔Unreal Engine bridge, providing 62 tools for 3D modeling, scene validation, and asset transfer across both engines.
      1
      MIT

    Appeared in Searches