Integrations
Enables control of Autodesk Maya through natural language, providing tools for creating and manipulating 3D objects, managing scenes, selecting objects, and working with object attributes in Maya.
마야 MCP
Autodesk Maya를 위한 MCP(Model Context Protocol) 서버 구현
Maya 2023, 2025로 테스트했습니다.
v0.1.0
이 프로젝트는 Claude Desktop과 같은 AI 어시스턴트 클라이언트가 Model Context Protocol(MCP)을 사용하여 자연어로 Autodesk Maya를 제어할 수 있도록 합니다.
Maya MCP 서버는 아직 초기 단계이며 최소한의 기능만 제공합니다. 초기에는 아키텍처 설계와 단순성에 중점을 두었습니다.
다음은 Maya MCP에 등록된 일부 도구 목록입니다.
도구 | 설명 |
---|---|
유형별 객체 목록 | 장면에 있는 객체 목록을 가져옵니다. filter_by를 사용하여 "카메라", "조명", "재질", "모양" 등 특정 객체를 필터링할 수 있습니다. |
객체 생성 | Maya 씬에서 객체를 생성합니다. 사용 가능한 객체 유형은 정육면체, 원뿔, 구, 원통, 카메라, 스포트라이트, 점광원, 방향광원입니다. |
get_object_attributes | Maya 객체의 속성 목록을 가져옵니다. |
객체 속성 설정 | 객체의 속성을 특정 값으로 설정합니다. |
scene_new | Maya에서 새 장면을 만듭니다. 기존 장면이 로드되어 수정된 경우, force 인수를 사용하여 새 장면을 강제로 생성합니다. |
씬_오픈 | Maya에 장면을 불러옵니다. |
장면 저장 | 현재 장면을 저장합니다. 파일 이름을 지정하지 않으면 현재 이름으로 저장됩니다. |
선택_객체 | 장면에서 객체를 선택합니다. |
설치
Maya MCP 서버는 MCP 서버 하나만 존재하도록 설계되었으며, Maya 내에 아무것도 설치할 필요가 없습니다. 이는 여러 버전의 Maya를 쉽게 사용할 수 있고 버전 변경 사항을 조정할 필요가 없다는 점에서 유용합니다. 이는 Maya가 MEL 스크립팅을 위해 열어 놓은 기본 명령 포트를 활용함으로써 가능합니다.
MCP에는 Python 3.10 이상이 필요합니다. 현재 pip 패키지를 사용하고 있으므로 최소 요구 사항을 충족합니다. 가상 환경을 설치하려면 다음을 수행하세요.
- 이 프로젝트를 다운로드하세요
- 프로젝트 디렉토리에 Python 3.10 이상을 사용하여 가상 환경을 만듭니다.
python -m venv .venv
- 가상 환경을 활성화하다
- Windows:
.venv\Scripts\activate.bat
- Mac/Linux:
source .venv\bin\activate.sh
- Windows:
pip install -r requirements.txt
앞서 언급했듯이 Maya에는 아무것도 설치할 필요가 없습니다.
MCP 클라이언트 구성
사용 중인 MCP 클라이언트에 따라 구성 파일 위치가 다릅니다. Anthopic Claude Desktop 의 경우, 파일 -> 설정 -> 개발자 탭으로 이동하여 구성 편집 버튼을 누르세요. 그러면 JSON 구성 파일이 있는 디렉터리에서 파일 찾기가 열립니다.
다음으로 텍스트 편집기를 사용하여 구성 JSON 파일을 직접 편집해야 합니다. 전체 파일 경로를 사용해야 합니다.
지엑스피1
변경 사항을 적용한 후 Claude Desktop을 다시 시작하세요(창을 닫는 대신 종료 메뉴 항목을 사용하세요). 이제 개발자 탭에 Maya MCP 서버가 나열된 것을 확인할 수 있습니다.
Claude Desktop에서 Maya MCP 도구를 사용할 수 있는지 확인할 수 있습니다. 버튼을 클릭하면 자세한 팝업이 나타납니다.
마야 커뮤니케이션즈
Maya MCP 서버가 Maya와 처음 통신을 시도하면 Maya에 다음과 같은 팝업이 나타납니다. MCP 서버와 Maya 간의 지속적인 통신을 허용하려면 "모두 허용"을 클릭하세요. 이 작업은 Maya 세션마다 수행해야 합니다.
개발자 노트
Maya MCP 서버 모듈은 비침입적인 방식으로 쉽게 수정할 수 있도록 설계되었습니다. 이는 Maya Python 코드를 MCP 서버에 저장하고 Maya의 명령 포트로 전송하여 실행함으로써 가능합니다. 결과는 서버로 다시 전송되어 처리됩니다.
기본 Maya 명령 포트는 MEL을 실행하므로 Python 코드는 Python 인터프리터에 대한 MEL 함수 호출 내에서 실행되도록 수정됩니다. 여러 줄로 구성된 Python 코드는 반환된 결과를 가질 수 없다는 제약도 있습니다. 따라서 각 명령은 Maya에 두 개의 연결을 생성합니다. 첫 번째 연결은 작업을 실행하고 결과를 저장하는 데 사용됩니다. 두 번째 연결은 결과를 다시 읽는 데 사용됩니다.
Maya 전역 Python 인터프리터의 네임스페이스를 채우는 작업을 최소화하기 위해 Maya로 전송되는 함수와 변수는 mcp_maya *로 시작하는 범위로 지정됩니다. 각 Maya 도구는 _mcp_maya_scope()라는 함수로 범위가 지정됩니다. 결과는 _mcp_maya_results 변수에 할당됩니다. 이렇게 하면 이름 충돌 가능성이 크게 줄어듭니다.
이 디자인에는 약간의 우아함이 있습니다. 기본적으로 Python 파일만 추가하고 MCP 클라이언트와 Maya MCP 서버를 재시작하면 됩니다. Maya MCP 서버와 Maya 자체에서 작업을 통합할 필요가 없습니다. 추가하는 코드는 Maya 전용 Python 코드만 있으며 MCP 데코레이터를 추가할 필요가 없습니다. 고정된 도구 세트를 사용하는 것보다 다양한 설치 환경에 맞춰 확장하고 적응하는 데 훨씬 더 적합한 디자인입니다.
Maya MCP 서버는 저수준 Python MCP 모듈을 사용하여 구축되었습니다. 이는 런타임에 모든 도구를 동적으로 정의하기 위해 필요했습니다. 도구 함수 시그니처는 서버 시작 시 동적으로 캡처됩니다.
새로운 도구 추가
Maya MCP에 새로운 도구를 추가하는 것은 쉽습니다. 기존 코드를 변경할 필요가 없습니다. mayatools/thirdparty 디렉터리에 도구 명령 Python 파일 하나만 추가하면 됩니다. 도구 자체는 Maya에서 실행되므로 모든 Maya Python 모듈에 접근할 수 있습니다. 도구 설계에는 몇 가지 프로그래머 참고 사항이 있습니다.
- Python 파일 이름과 함수 이름은 동일해야 합니다. 고유한지 확인하세요.
- Python 함수는 서버와 Maya 모두에서 로드됩니다. 함수 외부의 모든 코드는 독립형 Python으로 로드될 수 있어야 합니다. 즉, maya.cmds와 같은 모든 가져오기는 함수 범위 내에서 수행되어야 합니다. MCP 서버는 함수를 로드하여 함수 시그니처를 검사하고 JSON-RPC를 통해 MCP 클라이언트로 정보를 전송합니다.
- 함수 서명은 구문 분석되며 함수 인수 주석에 있는 모든 유형을 포함해야 합니다.
- 함수가 Maya로 전송되면 am _mcp_maya_scope 함수 내에서 범위가 지정됩니다. 이는 여러 가지 이점을 제공합니다. Maya로 전송된 함수는 Maya에서 실행될 때 Python 전역 공간을 과도하게 오염시키지 않습니다. 또한, 발생하는 모든 예외는 포착되어 MCP 클라이언트에 오류로 반환됩니다.
- 일반적으로 오류가 발생하면 목록이나 사전을 반환하거나 예외를 발생시키고자 합니다.
- LLM이 연산을 이해할 수 있도록 함수와 인수의 이름을 적절하게 지정하세요. 함수 문서화 문자열을 포함하세요.
- 기본 인수는 좋습니다.
- 오류 검사가 잘 되어 오류 메시지에서 실패에 대한 더 나은 설명을 제공할 수 있습니다.
이 프로젝트에 사용된 기존 Maya 도구를 예시로 살펴보는 것이 좋습니다.
테스트
현재 Maya MCP는 Windows에서만 테스트되었습니다. 모든 것이 표준 Python을 사용하므로 Linux와 Mac 모두에서 작동할 것입니다.
미래의 아이디어
MCP는 아직 초기 단계라 개선할 부분이 많습니다. 몇 가지 아이디어를 공유해 드리겠습니다.
- 더 많은 기능을 제공합니다.
- 신속한 엔지니어링을 활용하여 개선하고, 특히 Maya의 사용법과 데이터 관계를 설명합니다.
- 모든 것이 도구로 등록되어 리소스와 프롬프트가 허용됩니다.
- Maya에서 MCP 도구를 지원하는 플러그인을 찾을 수 있을 것입니다. 예를 들어 Maya의 PYTHONPATH에서 MCP라는 이름의 디렉터리를 확인하는 방법이 있습니다. 이러한 모든 플러그인을 검사한 후 MCP 클라이언트에 다시 제공할 수 있습니다.
특허
MIT
모래밭
중요 참고 사항
이 프로젝트는 MCP에 대해 알아보기 위해 제 개인 시간과 장비를 사용하여 진행되었습니다. 본 프로젝트는 현재 제 고용주와 아무런 관련이 없으며, 고용주의 업무나 관심사를 대변하지 않습니다.
Related MCP Servers
- JavaScript
- JavaScriptMIT License
- GoMIT License
- MIT License