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에서 잘 됩니다.

  • undomaya_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 를 로드해도 됩니다 (initializePluginstart() 를 호출합니다).

코드를 수정한 뒤에는 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 에만 바인딩합니다. HOST0.0.0.0 으로 바꾸면 같은 네트워크의 누구나 여러분 Maya에서 임의 코드를 실행할 수 있습니다. 바꾸지 마세요.

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

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

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

알려진 제약

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

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

  • Maya의 undo 가 꺼져 있으면(undoInfo -state off) 되돌리기가 불가능합니다. maya_pingundo_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"

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full transparency burden. It uses 'gets' and 'retrieves' implying a read-only operation, which is appropriate for a help tool. It does not mention side effects (none expected) or error handling, but for a simple lookup tool this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences for purpose/usage, followed by a clean Arg block. The main purpose is front-loaded in the first sentence, and every sentence adds value. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one required parameter and no output schema, the description covers all necessary context: what it does, when to use it, why it's needed, and parameter semantics with examples. It is fully self-contained for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, but the description explicitly defines 'name' as the command name and gives three concrete examples ('polyBevel', 'skinCluster', 'polyProjection'). This fully compensates for the missing schema description and provides clear meaning beyond the parameter name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'maya.cmds 명령 하나의 플래그 목록과 시그니처를 가져옵니다' (gets the flag list and signature of a single maya.cmds command). This specifies a clear verb and resource, and distinguishes from siblings by limiting to a single command (contrasting with search/execute tools).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to call it before writing code when flag names or argument formats are uncertain, and gives a reason (Maya versions differ, memory is unreliable). It provides clear when-to-use context, but does not mention alternatives or when-not-to-use, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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 한 번으로 되돌릴 수 있으므로 기본값을 유지하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
undo_chunkNo

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden and discloses key runtime behaviors: which API namespaces are available (cmds, mel, om), return value conventions, stdout/error capture, and undo chunk semantics. It does not explicitly warn about the potential destructive side effects of arbitrary code execution, but the '임의의 Python 코드' statement makes the power and risk inherently clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a lead sentence, usage guidance, a clear list of available names, and a concise return-contract section. Every sentence adds unique value—no filler or repetition of schema fields—and the content is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a powerful code-execution tool with no annotations and no output schema, the description is remarkably complete. It explains how to invoke, what parameters mean, how return values and errors are delivered, and when to prefer this tool over dedicated ones. This gives an agent everything needed to use and recover from failures.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate entirely. It thoroughly explains both parameters: 'code' is the Python code to execute, and 'undo_chunk' is described with its default behavior and user-facing undo impact (Ctrl+Z). It also adds valuable return-format semantics tied to the code input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes arbitrary Python code inside Maya ('Maya 안에서 임의의 Python 코드를 실행합니다') and positions it as the general-purpose gateway for operations lacking dedicated tools. This distinguishes it from specialized sibling tools like maya_scene_info or maya_unreal_export_fbx by explicitly naming unsupported task categories (rigging, UV, deformers, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this tool for tasks without dedicated tools ('전용 툴이 없는 작업...은 전부 이 툴로 하세요'), implying use dedicated tools when available. It also provides batching guidance, stating that combining multiple tasks in one call is faster and cheaper than separate calls, and instructs the agent to read errors and retry on failure.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maya_pingA

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the tool's behavior of checking liveness/version, and adds valuable context that if undo_enabled is false, there is no undo safety net. However, it doesn't explicitly confirm the tool is non-destructive or describe the full return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loaded with the main purpose, followed by usage guidance and a key behavioral note. Every sentence earns its place; there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description is complete. It covers purpose, usage context, and a critical safety behavior (undo_enabled), which is sufficient for an agent to decide when to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so parameter semantics are inherently satisfied. The description doesn't need to explain any input fields; the baseline for zero parameters applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks whether the Maya bridge is alive and its version, using a specific verb ('확인합니다') and resource (Maya bridge). This distinguishes it from sibling tools like maya_execute or maya_scene_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this tool when other tools give connection errors, to narrow down the cause. This provides clear usage context, but it doesn't mention exclusions or alternatives explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maya_scene_infoA

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses that the tool returns summary info including unit system, up axis, frame range, selection state, and node counts, and it warns about coordinate misplacement if units/up axis are unknown. This adds meaningful behavioral context beyond a simple 'get info' statement, though it does not explicitly confirm non-destructive behavior (which is strongly implied).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two compact sentences: the first states the tool's action, the second provides usage guidance and justification. Every sentence earns its place, with no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter info tool, the description is fully complete. It enumerates the returned information (units, up axis, frame range, selection, node counts) and explains the practical use case. Since there is no output schema, the description adequately covers return value semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema provides complete coverage (100%). The description doesn't need to explain parameters; the baseline score of 4 applies since there is nothing to clarify.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: '현재 씬의 요약 정보를 가져옵니다' (gets summary info of the current scene), specifying both the action and the resource. It also lists the specific information provided (units, up axis, frame range, selection state, node counts), making it distinct from sibling tools like maya_execute or maya_viewport_capture.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: '작업을 시작하기 전에 한 번 호출해서... 파악하세요' (call once before starting work to understand the scene). It also explains why this is important—knowing units and up axis prevents placing objects in wrong coordinates—which serves as a clear rationale for using this tool first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maya_search_commandsA

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

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
patternNo

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It discloses case-insensitive partial matching and that an empty pattern returns the full list. It does not mention the return format, explicitly confirm it is read-only, or discuss any side effects, leaving room for more transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with purpose, followed by a usage tip and useful examples. The Args section is clear and each sentence contributes value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool, it covers purpose, usage, and parameters adequately. It lacks an explicit statement about return value format, but given the tool's simplicity and the presence of examples, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, but the description fully explains both parameters: pattern is a partial match (case insensitive, empty = all) and limit is the maximum number to return. This completely compensates for the schema's lack of detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Finds maya.cmds commands that contain a specific string in the name,' which specifies the verb, resource, and scope. It also differentiates from siblings by advising to call this when unsure of the command name, implicitly contrasting with maya_command_help.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is given: 'When you are not sure of the command name, don't guess and call this first.' It also explains behavior with empty pattern (full list). However, it does not explicitly name alternatives or state when not to use, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maya_undoA

직전 작업을 되돌립니다.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsNo

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description reveals that maya_execute calls are grouped into a single undo step, so steps=1 reverts the last call entirely. It also constrains steps to 1-50, but doesn't mention side effects like redo history clearing or behavior for non-maya_execute edits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences plus an Args line cover everything with zero filler. The main action leads, followed by usage context and parameter meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter undo tool with no output schema, the description provides purpose, usage guidelines, grouping behavior, and parameter meaning—complete and self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides no description for steps, but the description defines it as '되돌릴 단계 수' (number of steps to revert) and lists the valid range 1-50, fully compensating for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with '직전 작업을 되돌립니다' (reverts the previous operation), a clear verb+resource statement. It explicitly ties to maya_execute, distinguishing it from the many sibling Maya tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states 'maya_execute 로 한 작업이 잘못됐을 때 호출하세요' (call when a maya_execute operation goes wrong), providing explicit when-to-use context. It also explains how steps map to undo groups, giving practical guidance beyond the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maya_unreal_checkA

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

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

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
prefixNoSM_
objectsNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It explicitly states '씬을 전혀 바꾸지 않습니다' (does not change the scene at all) and enumerates the checks performed, giving confidence it is non-destructive. It does not describe the output/report format, but the most important behavioral trait (safety) is clearly disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: purpose first, then usage timing, then the list of check items, then parameter details. Every sentence adds meaningful information; the list of check items is the tool's core value and not superfluous. It is concise despite being informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple 2-parameter tool with no annotations and no output schema, the description covers purpose, usage timing, parameter semantics, and non-destructive behavior. The only notable omission is the return value/result format, but for a preflight audit tool this is a minor gap; the description is still largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must fully compensate. It does: objects is explained with wildcard support and fallback behavior (selection → all meshes), and prefix is described with concrete examples ('SM_', 'SK_'). This is excellent parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states '언리얼 익스포트 전 지오메트리 문제를 감사합니다' (audits geometry issues before Unreal export) and explicitly says it does not change the scene. It lists specific check items, distinguishing it as a read-only audit tool among siblings like maya_unreal_check_skeleton and maya_unreal_check_materials.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit timing instruction: '정리나 익스포트를 하기 전에 항상 먼저 호출하세요' (always call first before cleanup or export). This clearly communicates when to use the tool, but it does not explicitly mention when not to use it or name alternatives, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maya_unreal_check_materialsA

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

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

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
prefixNoM_
objectsNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it does not change the scene, which is a key behavioral trait. It also enumerates what it checks. Since no annotations are provided, this is helpful, though it does not describe return values or side effects beyond being read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Structured with a lead statement, rationale, check list, and parameter descriptions. Efficient for the information conveyed, front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, parameters, and safety but omits what the tool returns or how results are presented. Without an output schema, the agent doesn't know what to expect from the invocation, leaving a gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains both parameters: 'objects' defaults to selection then all meshes if empty, and 'prefix' is the expected material prefix with Unreal convention 'M_'. This fully compensates for the 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it audits material slots and lists specific check items (slot count, default material, naming, face assignment, unused shading groups). The verb '감사합니다' (audit) plus '머티리얼 슬롯' (material slots) is specific and distinguishes from sibling tools like skeleton checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States it is worth checking before export due to draw call impact, providing clear when-to-use context. However, it does not explicitly mention alternatives or when not to use, so it lacks exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maya_unreal_check_skeletonA

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

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

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNo
primary_axisNox
tolerance_degNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses that the tool is non-destructive, explains why auto-fixing is dangerous (skin weight breakage), and directs the agent to avoid modifications until instructed. This goes well beyond basic annotations and gives clear behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections: main function, non-modification behavior, rationale, inspection list, and parameter explanations. Every sentence adds value—no fluff or redundancy. The use of bold and bullet-like list improves scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, parameters, behavioral constraints, and inspection items comprehensively. The main gap is the lack of detail on the output/report format; it mentions 'reported issues' but doesn't specify the exact structure or response type. This is minor given no output schema exists, but slightly reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description thoroughly explains each parameter: root (with behavior when empty), primary_axis (with convention guidance), and tolerance_deg (with threshold semantics). This fully compensates for the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: auditing joint orientation and Unreal skeleton compatibility. The verb 'audits' is specific and the resource is detailed, distinguishing it from sibling tools like maya_unreal_check_materials or maya_unreal_prepare.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides strong behavioral guidance: it does not change the scene, does not auto-fix, and instructs to pass issues to the user without taking action. However, it does not explicitly name alternative tools or say when to choose this over siblings, so it falls short of full explicit 'when-to-use' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maya_unreal_cleanup_materialsA

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

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
prefixNoM_
renameNo
dry_runNo
delete_unusedNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It details key behaviors: deleting only shading groups with no members, skipping referenced materials during rename, and supporting dry_run mode to report actions without making changes. It also warns about the need for human judgment in material selection, though it could further emphasize the destructive nature of delete_unused.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a concise summary, a prominent warning, and a clean Args section. Every sentence adds value: the warning clarifies non-merge behavior, and the parameter list is efficient and readable. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 parameters, no output schema, and no annotations, the description covers all essential aspects: purpose, usage boundaries, parameter semantics, and safety behavior. The dry_run explanation implies an output report, which is sufficient for general use. The caution about human decision-making provides important context for AI agents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must fully compensate. It provides clear explanations for all four parameters: prefix, rename, delete_unused, and dry_run, including the default behavior and special cases (e.g., referenced materials are skipped). This is comprehensive and adds meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: performing safe material cleanup by deleting unused shading groups and prefix renaming. It distinguishes itself from sibling tools by explicitly stating it does not merge materials and emphasizes safety, which separates it from more aggressive cleanup or audit tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when to use the tool: for safe cleanup only, and explicitly advises against using it when slot reduction requires merging materials, directing the user to show audit results instead. It does not name specific alternative sibling tools but gives clear usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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".

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
skinsNo
objectsNo
up_axisNoy
animationNo
blendshapesNo
triangulateNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden and does well: it discloses export settings (smoothing groups, tangents), exclusions (subdivision results, unnecessary upstream connections, cameras, lights), and fallback behavior for the objects parameter (selection → all meshes). It could mention overwrite behavior or return values, but overall it is informative.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: a one-sentence summary, a concise behavioral note, a prerequisite, and a clean Args list. Each parameter explanation earns its place, with no fluff despite the large number of parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no annotations, and no output schema, this description is remarkably complete. It covers all parameters, prerequisite steps, export behavior, and parameter-specific advice, making it fully actionable for an agent without needing additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description fully compensates by explaining all 7 parameters in detail: path with example, objects fallback logic, triangulate rationale, skins when needed, blendshapes, animation, and up_axis options with Unreal conversion context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool exports FBX with Unreal-specific settings, listing exactly what is enabled (smoothing groups, tangents) and excluded (subdivision results, cameras, lights). This distinguishes it from siblings like maya_unreal_import_fbx and maya_unreal_prepare.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to run maya_unreal_prepare before exporting, establishing a clear prerequisite. Parameter guidance (e.g., leave triangulate False for quads, enable skins for skeletal meshes) provides practical usage context, though it does not explicitly mention alternatives beyond the prerequisite.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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"(존재하는 것만 갱신).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
groupNo
up_axisNoy
namespaceNo
import_modeNoadd
scale_factorNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description warns about potential axis/scale issues that can produce rotated or scaled meshes and advises verifying via viewport capture. It also highlights reading `warnings` from the return value. Despite lacking annotations, it does not explicitly state that the import permanently modifies the scene or is undoable, but the parameter explanations for merge modes imply side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with an intro, scope note, and a parameter list. No redundant sentences; each part serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, no annotations, no output schema), the description covers purpose, limitations, usage steps, and all parameter semantics. It could also mention error conditions or prerequisites, but it is largely complete for an import tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no parameter descriptions, so the description fully compensates by explaining each parameter: path, namespace, group, up_axis, scale_factor, and import_mode with its options. It adds practical guidance such as retrying with 'z' if the result is rotated and using namespace when names conflict.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Imports FBX into current Maya scene' and identifies this as the path for receiving Unreal level assets. It also explicitly excludes exporting from Unreal, distinguishing it from the sibling maya_unreal_export_fbx.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides context that this tool is for importing manually exported FBX files and notes that Unreal-side export is out of scope. It instructs to verify results with maya_viewport_capture and read warnings, giving practical usage guidance. However, it does not explicitly name alternative tools for related tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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 면 만들 이름과 크기만 보고합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
shapeNobox
dry_runNo
objectsNo
paddingNo
reduce_toNo

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so description carries the burden. It discloses the dry_run behavior, the convex hull limitation in Maya 2022, and the export requirement. However, it does not explicitly say whether existing collision meshes are overwritten or if the operation is reversible, which would add more transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured: a one-sentence purpose statement, a critical export note, then a clear Args list. Each piece of information is useful and non-redundant, despite being longer than two sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters, no annotations, and no output schema, the description is remarkably complete. It covers purpose, usage, parameter semantics, and a critical workflow integration point (FBX export). The only minor omission is the return value for non-dry-run, but the dry_run description implies it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description explains every parameter in detail: objects (with fallback selection logic), shape (with each option explained), padding, reduce_to, and dry_run. This fully compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool creates collision meshes following Unreal rules, with specific prefix naming (UBX_/USP_/UCP_/UCX_). This clearly distinguishes it from sibling tools like maya_unreal_make_lods and maya_unreal_export_fbx.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells users to include the collision meshes in the same FBX export via maya_unreal_export_fbx, and for convex shapes recommends using Unreal's Auto Convex Collision instead. This is clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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 면 예상 삼각형 수만 계산하고 씬은 건드리지 않습니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
objectsNo
lod_groupNo
keep_bordersNo
keep_percentNo
keep_hard_edgesNo
keep_uv_bordersNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries the full transparency burden. It discloses the original mesh is not reduced, dry_run avoids scene changes, default percentages are [50,25,12], and it warns that silhouette breakage can occur even with normal metrics. It also explains consequences of disabling keep_borders, keep_hard_edges, and keep_uv_borders, which is thorough and beyond mere operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a concise intro, three high-value warning sentences about visual verification and reduction policy, and a bulleted Args list. Every sentence earns its place, and the length is justified for a tool with seven parameters and important workflow caveats. It is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers the tool's purpose, all parameters with defaults and implications, and the necessary post-action verification. It also explains how lod_group integrates with the Unreal FBX importer, and dry_run's non-destructive behavior. The description is complete enough for an agent to select and invoke correctly without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero schema description coverage, the description fully compensates by defining all seven parameters in the Args section. Each parameter gets a clear explanation: objects (targeting logic), keep_percent (ratio, default, example), lod_group (creation and Unreal import), and the three keep_* flags (what happens when off), plus dry_run. This adds substantial meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with '원본을 복제해 LOD 메시를 만듭니다' (duplicates the original to create LOD meshes) and clarifies '원본(LOD0)은 줄이지 않습니다' (the original LOD0 is not reduced), clearly stating the verb and resource. This distinctly differentiates it from sibling tools like maya_unreal_make_collision or maya_unreal_prepare.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit workflow guidance: visually check with maya_viewport_capture, do not report done based on numbers alone, and do not set reduction rates arbitrarily. It further advises using defaults then asking the user about adjustments, with asset-type-specific tips (characters 70-80, props more aggressive). It doesn't explicitly name alternatives beyond the verification tool, so it misses the 'when-not' dimension.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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 면 무엇을 할지만 보고하고 씬은 건드리지 않습니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
pivotNocenter
freezeNo
prefixNoSM_
renameNo
dry_runNo
objectsNo
delete_historyNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility. It discloses the single undo unit, the negative-scale caveat (only warns, doesn't fix), the dry_run behavior (no scene mutation), and the selection fallback logic. This is comprehensive behavioral disclosure for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense yet compact: a one-line summary, a usage note, a caveat, and a parameter list. It is front-loaded with the main purpose and contains no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no annotations and no output schema, the description covers purpose, workflow, behavioral edge cases, and all parameter semantics. An agent has sufficient information to decide when to call it and how to set each argument.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must fully document parameters. It defines all 7 parameters with clear meaning, enumerates pivot options with concrete definitions ('center', 'base', 'origin', 'keep'), and provides practical guidance on choosing between 'base' and 'origin'. This exceeds what the schema alone offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Performs pre-export cleanup in one go (freeze, history, pivot, naming).' This specific verb and resource list distinguish it from sibling tools like maya_unreal_check (diagnostic) and maya_unreal_cleanup_materials (material-specific).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to first check status with maya_unreal_check, establishing a workflow ordering. It also explains the undo-unit behavior, which informs safe usage. However, it does not explicitly exclude or compare against alternative sibling tools, so the when-not-to-use guidance is somewhat implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maya_viewport_captureA

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

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
ornamentsNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool captures and returns an image, and it adds context about the importance of visual verification and the risk of proceeding without checking. It does not mention output format or error scenarios, but for a capture tool this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized. It opens with the core purpose, includes a valuable usage paragraph, and lists parameter explanations. Every sentence adds value; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and good parameter explanations, the description is mostly complete. It lacks explicit details about the return format (e.g., file path vs. base64 image), but this is likely implied by the word 'image'. Overall, it provides enough context for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the parameters. It does so effectively: width and height are described as pixel dimensions, and ornaments is explained as including HUD/gizmos, adding meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool captures the current viewport as an image and returns it. It uses a specific verb ('captures') and resource ('viewport'), and it is distinct from sibling tools like 'maya_execute' or 'maya_scene_info'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: after visual tasks like modeling, layout, lighting, and LOD work, to verify results. It also explains the rationale (numeric metrics can be normal while shapes are broken). However, it does not mention when not to use it or any alternatives, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 16 tool updatesv0.2.0
    • First observedmaya_command_help
    • First observedmaya_execute
    • First observedmaya_ping
    • First observedmaya_scene_info
    • First observedmaya_search_commands
    • First observedmaya_undo
    • First observedmaya_unreal_check
    • First observedmaya_unreal_check_materials
    • First observedmaya_unreal_check_skeleton
    • First observedmaya_unreal_cleanup_materials
    • First observedmaya_unreal_export_fbx
    • First observedmaya_unreal_import_fbx
    • First observedmaya_unreal_make_collision
    • First observedmaya_unreal_make_lods
    • First observedmaya_unreal_prepare
    • First observedmaya_viewport_capture

TDQS

A4.4/5.0
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

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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
    C
    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
    B
    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.
    MIT

Appeared in Searches

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/YomenStyle/maya-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server