mcpField
M
MayaMCP

MayaMCP

ローカル
github.com/PatrickPalmerメディア・デザイン11676 週間前に更新

MayaMCP について

MayaMCP は Autodesk Maya 向けの MCP サーバーで、Claude Desktop などの AI アシスタントクライアントから自然言語でシーンを操作できます。Maya 側に追加のインストールは不要で、初期段階のプロジェクトです。

主な機能

  1. 01シーンオブジェクトの一覧取得、作成、選択
  2. 02オブジェクト属性の取得と設定
  3. 03シーンの新規作成、開く、保存
  4. 04モデル、マテリアル、NURBS カーブの作成
  5. 05Maya のコマンドポート経由の通信

活用シーン

  1. 01自然言語による Maya での基本オブジェクトの作成
  2. 02都市や森などのサンプルシーンの生成
  3. 03シーン内のオブジェクトへのマテリアル割り当て

MCP 対応

本プロジェクトは Maya の操作を MCP クライアント向けのツールとして公開する MCP サーバーで、Maya のコマンドポートを通じて処理を実行します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Maya MCP

Autodesk Maya 用の Model Context Protocol (MCP) サーバー実装

Maya 2023、2025 でテスト済みです。

v0.2.0

このプロジェクトでは、Model Context Protocol (MCP) を使用して、Claude Desktop などの AI アシスタントクライアントが自然言語で Autodesk Maya を操作できるようになります。

Maya MCP サーバーはまだ初期段階で、機能は最小限です。まずはアーキテクチャ設計とシンプルさに重点を置いています。

以下は、Maya MCP に登録されているツールの一部です。

基本ツール

ツール説明
list_objects_by_typeシーン内のオブジェクトの一覧を取得します。filter_by を使用すると、「cameras」、「lights」、「materials」、「shapes」などのオブジェクトで絞り込めます。
create_objectMaya シーンにオブジェクトを作成します。使用できるオブジェクトの種類は、cube、cone、sphere、cylinder、camera、spotLight、pointLight、directionalLight です。
get_object_attributesMaya オブジェクトの属性の一覧を取得します。
set_object_attributesオブジェクトの属性に特定の値を設定します。
scene_newMaya で新しいシーンを作成します。既存のシーンが読み込まれていて変更されている場合は、force 引数を使用して新しいシーンを強制的に作成します。
scene_openMaya にシーンを読み込みます。
scene_save現在のシーンを保存します。ファイル名を指定しない場合は、現在の名前で保存します。
select_objectシーン内のオブジェクトを選択します。

高度なモデリングツール

ツール説明
create_advanced_model詳細なパラメーターを指定して、車、木、建物、カップ、椅子などの複雑な 3D モデルを作成します。
mesh_operations押し出し、ベベル、細分化、ブーリアン、結合、ブリッジ、分割などのモデリング操作を実行します。
create_materialさまざまな種類(ランバート、フォン、木材、大理石、クローム、ガラスなど)のマテリアルを作成して割り当てます。
create_curveさまざまな形状(線、円、らせん、ヘリックス、星、歯車など)の NURBS カーブを生成します。
curve_modelingカーブベースのモデリング手法(押し出し、ロフト、回転、スイープなど)を使用してジオメトリを作成します。
organize_objectsグループ化、親子関係の設定、配置、整列、分布によってオブジェクトを整理します。
generate_scene複数のオブジェクトを含む完全な 3D シーン(都市、森、リビングルーム、オフィス、公園)を生成します。

インストール

Maya MCP サーバーは、Maya 内に何もインストールする必要がなく、MCP サーバーだけで動作するように設計されています。これにより、異なるバージョンの Maya を簡単に使用でき、バージョン変更の調整も不要になります。これは、Maya が MEL スクリプト用に開いているデフォルトの Command Port を活用して実現しています。

MCP には Python 3.10 以降が必要です。パッケージ要件が最小限のため、現在は pip を使用しています。仮想環境をインストールする手順は次のとおりです。

  1. このプロジェクトをダウンロードします
  2. プロジェクトディレクトリ内で Python 3.10 以降を使って仮想環境を作成します。 python -m venv .venv
  3. 仮想環境を有効にします
    • Windows: .venv\Scripts\activate.bat
    • Mac/Linux: source .venv\bin\activate.sh
  4. pip install -r requirements.txt

前述のとおり、Maya にインストールするものはありません。

MCP クライアントの設定

使用する MCP クライアントによって、設定ファイルの場所は異なります。Anthopic Claude Desktop の場合は、「ファイル」→「設定」→「開発者」タブに移動し、「設定を編集」ボタンを押します。すると、JSON 設定ファイルがあるディレクトリでファイル選択画面が開きます。

次に、テキストエディターを使って設定 JSON ファイルを手動で編集します。ファイルのフルパスを使用してください。

{
  "mcpServers": {
    "MayaMCP": {
      "command": "[FULL PATH TO MayaMCP PROJECT]/.venv/Scripts/python.exe",
      "args": [
        "[FULL PATH TO MayaMCP PROJECT]/src/maya_mcp_server.py"
      ]
    }
  }
}

変更を加えたら、Claude Desktop を再起動します(ウィンドウを閉じるだけではなく、「終了」メニュー項目を使用してください)。「開発者」タブに Maya MCP サーバーが表示されます。

Claude Desktop で Maya MCP ツールが利用可能であることを確認できます。README の画像 ボタンを押すと、詳細なポップアップが表示されます。

README の画像

Maya との通信

Maya MCP サーバーが初めて Maya との通信を試みると、Maya 内にこのポップアップが表示されます。MCP サーバーと Maya の継続的な通信を許可するには、「Allow All」をクリックしてください。これは Maya のセッションごとに行う必要があります。

README の画像

開発者向けメモ

Maya MCP Server モジュールは、既存の動作を妨げずに簡単に変更できるよう設計されています。Maya の Python コードを MCP サーバー内に配置し、実行のために Maya のコマンドポートへ送信することで実現しています。結果はサーバーに返され、処理されます。

Maya のデフォルトのコマンドポートは MEL を実行するため、Python コードは Python インタープリターを呼び出す MEL 関数の中で実行されるよう変更されます。また、複数行の Python コードでは戻り値を取得できないなど、いくつかの制限があります。そのため、各コマンドでは Maya への接続を 2 回確立します。最初の接続で操作を実行して結果を保存し、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 内で実行しても、送信された関数によって Python のグローバル名前空間が過度に汚染されません。また、発生した例外は捕捉され、エラーとして MCP クライアントに返されます。
  • 通常は、リストまたは辞書を返すか、エラー時に例外を発生させます。
  • LLM が処理内容を理解できるよう、関数と引数には適切な名前を付けてください。関数の doc string も記述してください。
  • デフォルト引数を使うと便利です。
  • エラーチェックを行うと、失敗の理由をより適切に説明するエラーメッセージを返せます。

例として、このプロジェクトにある既存の Maya ツールを確認することをおすすめします。

テスト

現在、Maya MCP は Windows でのみテストされています。標準の Python のみを使用しているため、Linux と Mac でも動作するはずです。

今後のアイデア

MCP はまだ始まったばかりで、改善の余地がたくさんあります。アイデアをいくつか紹介します。

  • さらに多くの機能を公開する。
  • プロンプトエンジニアリングを活用して改善する。特に、Maya の使い方やデータの関連性を説明する。
  • 現在はすべてツールとして登録しているが、リソースとプロンプトにも対応する。
  • Maya 内に MCP ツールを持つプラグインがあるかどうかを探せる可能性があります。たとえば、Maya 内の PYTHONPATH を調べ、MCP という名前のディレクトリを探す方法が考えられます。それらをすべて検査してから、MCP クライアントに返すことができます。

ライセンス

MIT

リンク

重要な注意事項

このプロジェクトは、MCP について学ぶために個人の時間と機材を使って取り組んだものです。このプロジェクトは現在の勤務先とは無関係であり、勤務先の業務や意向を代表するものではありません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。