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) サーバー実装
Maya 2023、2025 でテスト済み。
バージョン0.1.0
このプロジェクトにより、Claude Desktop などの AI アシスタント クライアントは、Model Context Protocol (MCP)を使用して自然言語で Autodesk Maya を制御できるようになります。
Maya MCPサーバーはまだ初期段階であり、機能は最小限です。当初はアーキテクチャ設計とシンプルさに重点を置きました。
以下は、Maya MCP に登録されているツールの一部の一覧です。
道具 | 説明 |
---|---|
オブジェクトの種類別リスト | シーン内のオブジェクトのリストを取得します。filter_by を使用して、「カメラ」、「ライト」、「マテリアル」、「シェイプ」などの特定のオブジェクトをフィルタリングします。 |
オブジェクトの作成 | Mayaシーンでオブジェクトを作成します。使用可能なオブジェクトタイプは、立方体、円錐、球、円柱、カメラ、スポットライト、ポイントライト、ディレクショナルライトです。 |
オブジェクト属性を取得する | Maya オブジェクトの属性のリストを取得します。 |
オブジェクト属性の設定 | オブジェクトの属性を特定の値に設定します。 |
シーン_new | Mayaで新しいシーンを作成します。既存のシーンがロードされ、変更されている場合は、force引数を使用して新しいシーンを強制的に作成します。 |
シーンを開く | シーンをMayaに読み込みます。 |
シーン保存 | 現在のシーンを保存します。ファイル名が指定されていない場合は、現在の名前で保存されます。 |
オブジェクトを選択 | シーン内のオブジェクトを選択します。 |
インストール
Maya MCPサーバーは、MCPサーバーのみで動作し、Maya内に何もインストールする必要がないように設計されています。これにより、Mayaの異なるバージョンを簡単に使用でき、バージョン変更の調整を気にする必要がなくなります。これは、MayaがMELスクリプト用に開放するデフォルトのコマンドポートを利用することで実現されます。
MCPにはPython 3.10以降が必要です。パッケージ要件が最小限であるため、現在はpipを使用しています。仮想環境をインストールするには、以下の手順を実行してください。
- このプロジェクトをダウンロードする
- プロジェクトディレクトリにPython 3.10+を使用して仮想環境を作成します。python
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ファイルを手動で編集する必要があります。ファイルのフルパスを使用するようにしてください。
変更が完了したら、Claude Desktopを再起動してください(ウィンドウを閉じるのではなく、「終了」メニュー項目を使用してください)。「開発者」タブにMaya MCPサーバーが表示されます。
Claude Desktopでは、Maya MCPツールが利用可能かどうかを確認できます。ボタンをクリックすると、詳細なポップアップが表示されます。
マヤコミュニケーションズ
Maya MCPサーバーがMayaと初めて通信を試みると、Maya内でこのポップアップが表示されます。MCPサーバーとMaya間の継続的な通信を許可するには、「すべて許可」をクリックしてください。これはMayaセッションごとに行う必要があります。
開発者ノート
Maya MCP Serverモジュールは、非侵入的な方法で簡単に変更できるように設計されています。これは、Maya PythonコードをMCPサーバーに常駐させ、Mayaのコマンドポートに送信して実行させることで実現されます。結果はサーバーに送り返され、処理されます。
デフォルトのMayaコマンドポートはMELを実行するため、PythonコードはPythonインタープリタへのMEL関数呼び出し内で実行されるように変更されます。複数行のPythonコードでは結果を返せないなど、いくつかの制限があります。そのため、各コマンドはMayaへの接続を2つ作成します。1つ目は操作を実行し、結果を保存する接続です。2つ目は結果を読み戻す接続です。
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ファイルを1つ追加するだけです。ツール自体はMaya内で実行されるため、MayaのすべてのPythonモジュールにアクセスできます。ツールの設計には、いくつかのプログラマーノートが含まれています。
- Pythonファイル名と関数名は必ず同じでなければなりません。また、一意であることを確認してください。
- Python関数はサーバーとMayaの両方にロードされます。関数外のコードは、スタンドアロンのPythonにロードできる必要があります。つまり、maya.cmdsなどのインポートはすべて関数のスコープ内で行う必要があります。MCPサーバーは関数をロードし、関数シグネチャを検査して、JSON-RPC経由でMCPクライアントに情報を送信します。
- 関数シグネチャが解析され、関数引数アノテーションにすべての型を含める必要があります。
- 関数がMayaに送信される際、そのスコープは_mcp_maya_scope関数内に限定されます。これにより、多くのメリットが得られます。Mayaに送信される関数は、Maya内で実行されているPythonのグローバル空間を過度に汚染することはありません。さらに、スローされた例外はすべてキャッチされ、MCPクライアントにエラーとして返されます。
- 通常は、リストまたは辞書を返すか、エラーが発生した場合に例外をスローします。
- LLMが操作を理解できるように、関数と引数に適切な名前を付けてください。関数のドキュメント文字列を含めてください。
- デフォルトの引数は適切です。
- エラー チェックは適切なので、エラー メッセージで失敗のより適切な説明を提供できます。
このプロジェクトの既存の Maya ツールを例として見ることをお勧めします。
テスト
現在、Maya MCPはWindowsでのみテストされています。すべて標準のPythonを使用しているため、LinuxとMacの両方で動作するはずです。
将来のアイデア
MCPはまだ初期段階であり、改善すべき点はたくさんあります。いくつかアイデアをご紹介します。
- より多くの機能を公開します。
- プロンプト エンジニアリングの使用を改善し、特に Maya の使用方法とデータの関係を説明します。
- すべてがツールとして登録され、リソースとプロンプトが許可されます。
- MCPツールを備えたMaya内のプラグインを見つけることも可能かもしれません。例えば、Maya内のMCPという名前のディレクトリのPYTHONPATHを調べるといった方法があります。これらをすべて検査し、MCPクライアントに返すことも可能です。
ライセンス
マサチューセッツ工科大学
リンク
重要な注意事項
このプロジェクトは、MCPについて学ぶために、私自身の時間と機材を使って作成しました。このプロジェクトは、私の現在の雇用主とは一切関係がなく、その職務や利益を代表するものではありません。
Related MCP Servers
- JavaScript
- JavaScriptMIT License
- GoMIT License
- MIT License