Unity Editor MCP Server

by CoderGamester
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Allows AI assistants to interact with Unity projects, providing tools to execute menu items and perform operations within the Unity Editor.

MCP Unity エディター (ゲームエンジン)

英語🇨🇳簡体字中国語🇯🇵日本語
,/(/. *(/, */(((((/. *((((((*. .*((((((((((/. *((((((((((/. ./((((((((((((((/ *((((((((((((((/, ,/(((((((((((((/*. */(((((((((((((/*. ,%%#((/((((((* ,/(((((/(#&@@( ,%%##%%##((((((/*. ,/((((/(#&@@@@@@( ,%%######%%##((/(((/*. .*/(((//(%@@@@@@@@@@@( ,%%####%#(%%#%%##((/((((((((//#&@@@@@@&@@@@@@@@( ,%%####%( /#%#%%%##(//(#@@@@@@@%, #@@@@@@@( ,%%####%( *#%###%@@@@@@( #@@@@@@@( ,%%####%( #%#%@@@@, #@@@@@@@( ,%%##%%%( #%#%@@@@, #@@@@@@@( ,%%%#* #%#%@@@@, *%@@@( ., ,/##*. #%#%@@@@, ./&@#* *` ,/#%#####%%#/, #%#%@@@@, ,/&@@@@@@@@@&\. `*#########%%%%###%@@@@@@@@@@@@@@@@@@&*´ `*%%###########%@@@@@@@@@@@@@@&*´ `*%%%######%@@@@@@@@@@&*´ `*#%%##%@@@@@&*´ `*%#%@&*´ ███╗ ███╗ ██████╗██████╗ ██╗ ██╗███╗ ██╗██╗████████╗██╗ ██╗ ████╗ ████║██╔════╝██╔══██╗ ██║ ██║████╗ ██║██║╚══██╔══╝╚██╗ ██╔╝ ██╔████╔██║██║ ██████╔╝ ██║ ██║██╔██╗ ██║██║ ██║ ╚████╔╝ ██║╚██╔╝██║██║ ██╔═══╝ ██║ ██║██║╚██╗██║██║ ██║ ╚██╔╝ ██║ ╚═╝ ██║╚██████╗██║ ╚██████╔╝██║ ╚████║██║ ██║ ██║ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═╝

MCP Unityは、Unityエディター向けのモデルコンテキストプロトコル(MCP)の実装であり、AIアシスタントがUnityプロジェクトと連携できるようにします。このパッケージは、UnityとMCPプロトコルを実装したNode.jsサーバー間のブリッジを提供し、Claude、Windsurf、CursorなどのAIエージェントがUnityエディター内で操作を実行できるようにします。

特徴

IDE統合 - パッケージキャッシュアクセス

MCP Unityは、Unity Library/PackedCacheフォルダをワークスペースに追加することで、VSCode系IDE(Visual Studio Code、Cursor、Windsurf)との自動統合を実現します。この機能は以下のとおりです。

  • Unity パッケージのコードインテリジェンスを向上
  • Unity パッケージの自動補完と型情報の改善
  • AIコーディングアシスタントがプロジェクトの依存関係を理解するのに役立ちます

MCP サーバーツール

  • execute_menu_item : Unity メニュー項目 (MenuItem 属性でタグ付けされた関数) を実行します。

    プロンプトの例: 「新しい空のゲームオブジェクトを作成するには、メニュー項目「GameObject/Create Empty」を実行します。」

  • select_gameobject : パスまたはインスタンスIDでUnity階層内のゲームオブジェクトを選択します。

    プロンプトの例: 「シーン内のメインカメラオブジェクトを選択してください」

  • update_component : GameObjectのコンポーネントフィールドを更新するか、コンポーネントが含まれていない場合はGameObjectに追加します。

    例のプロンプト: 「Player オブジェクトに Rigidbody コンポーネントを追加し、その質量を 5 に設定します」

  • add_package : Unity パッケージマネージャーに新しいパッケージをインストールします

    プロンプトの例: 「TextMeshPro パッケージをプロジェクトに追加する」

  • run_tests : Unity Test Runnerを使用してテストを実行します

    プロンプトの例: 「プロジェクト内のすべての EditMode テストを実行します」

  • notify_message : Unity エディターにメッセージを表示します

    プロンプトの例: 「タスクが完了したことを Unity に通知する」

  • add_asset_to_scene : AssetDatabase から Unity シーンにアセットを追加します

    プロンプトの例: 「プロジェクトから現在のシーンに Player プレハブを追加します」

MCP サーバー リソース

  • unity://menu-items : Unity エディターで利用可能なすべてのメニュー項目のリストを取得し、 execute_menu_itemツールを実行します。

    プロンプトの例: 「ゲームオブジェクトの作成に関連する利用可能なすべてのメニュー項目を表示します」

  • unity://hierarchy : Unity階層内のすべてのゲームオブジェクトのリストを取得します

    プロンプトの例: 「現在のシーンの階層構造を表示してください」

  • unity://gameobject/{id} : インスタンスIDまたはシーン階層内のオブジェクトパスによって特定のゲームオブジェクトの詳細情報を取得します。これには、シリアル化されたプロパティとフィールドを持つすべてのゲームオブジェクトのコンポーネントが含まれます。

    プロンプトの例: 「Player GameObject の詳細情報を取得してください」

  • unity://logs : Unityコンソールからすべてのログのリストを取得します

    プロンプトの例: 「Unity コンソールからの最近のエラー メッセージを表示してください」

  • unity://packages : Unity パッケージマネージャーからインストール済みおよび利用可能なパッケージに関する情報を取得します。

    プロンプトの例: 「Unity プロジェクトに現在インストールされているすべてのパッケージを一覧表示する」

  • unity://assets : Unity Asset Database内のアセットに関する情報を取得します

    プロンプトの例: 「プロジェクト内のすべてのテクスチャアセットを検索する」

  • unity://tests/{testMode} : Unity Test Runner 内のテストに関する情報を取得します。

    プロンプトの例: 「Unity プロジェクトで利用可能なすべてのテストを一覧表示する」

要件

インストール

この MCP Unity サーバーのインストールは、複数のステップから成るプロセスです。

ステップ1: Unityパッケージマネージャー経由でUnity MCPサーバーパッケージをインストールする

  1. Unity パッケージ マネージャーを開きます (ウィンドウ > パッケージ マネージャー)
  2. 左上隅の「+」ボタンをクリックします
  3. 「git URL からパッケージを追加...」を選択します
  4. 入力してください: https://github.com/CoderGamester/mcp-unity.git
  5. 「追加」をクリック

ステップ2: Node.jsをインストールする

MCP Unity サーバーを実行するには、コンピューターに Node.js 18 以降がインストールされている必要があります。

  1. Node.jsのダウンロードページにアクセスしてください
  2. LTS バージョンの Windows インストーラー (.msi) をダウンロードします (推奨)
  3. インストーラーを実行し、インストールウィザードに従います。
  4. PowerShell を開いて次のコマンドを実行し、インストールを確認します。
    node --version
  5. Node.jsのダウンロードページにアクセスしてください
  6. LTS バージョンの macOS インストーラー (.pkg) をダウンロードします (推奨)
  7. インストーラーを実行し、インストールウィザードに従います。
  8. あるいは、Homebrew がインストールされている場合は、次のコマンドを実行できます。
    brew install node@18
  9. ターミナルを開いて次のコマンドを実行し、インストールを確認します。
    node --version

ステップ3: AI LLMクライアントを構成する

  1. Unityエディターを開く
  2. ツール > MCP Unity > サーバーウィンドウに移動します
  3. 下の画像に示すように、AI LLMクライアントの「構成」ボタンをクリックします。

  1. 表示されたポップアップで設定のインストールを確認します

Smithery経由で MCP Unity をインストールするには:

Currently not available

AI クライアントの MCP 構成ファイル (例: Claude Desktop の claude_desktop_config.json) を開き、次のテキストをコピーします。

ABSOLUTE/PATH/TO MCP Unity インストールへの絶対パスに置き換えるか、Unity エディターの MCP サーバー ウィンドウ ([ツール] > [MCP Unity] > [サーバー ウィンドウ]) からテキストをコピーします。

{ "mcpServers": { "mcp-unity": { "command": "node", "args": [ "ABSOLUTE/PATH/TO/mcp-unity/Server/build/index.js" ], "env": { "UNITY_PORT": "8090" } } } }

UnityエディターMCPサーバーを起動する

  1. Unityエディターを開く
  2. ツール > MCP Unity > サーバーウィンドウに移動します
  3. 「サーバーを起動」をクリックしてWebSocketサーバーを起動します
  4. Claude Desktop または AI コーディング IDE (例: Cursor IDE、Windsurf IDE など) を開き、Unity ツールの実行を開始します。

AIクライアントがWebSocketサーバーに接続すると、ウィンドウの緑色のボックスに自動的に表示されます。

オプション: WebSocketポートの設定

デフォルトでは、WebSocket サーバーはポート 8090 で実行されます。このポートは 2 つの方法で変更できます。

  1. Unityエディターを開く
  2. ツール > MCP Unity > サーバーウィンドウに移動します
  3. 「WebSocketポート」の値を希望のポート番号に変更します。
  4. Unityはシステム環境変数UNITY_PORTを新しいポート番号に設定します。
  5. Node.jsサーバーを再起動します
  6. 「Start Server」をもう一度クリックして、Unity エディターの Web ソケットを Node.js MCP サーバーに再接続します。
  7. ターミナルでUNITY_PORT環境変数を設定する
    • Powershell GXP7
    • コマンドプロンプト/ターミナル GXP8
  8. Node.jsサーバーを再起動します
  9. 「Start Server」をもう一度クリックして、Unity エディターの Web ソケットを Node.js MCP サーバーに再接続します。

サーバーのデバッグ

MCP UnityサーバーはNode.jsを使用して構築されています。 buildディレクトリでTypeScriptコードをJavaScriptにコンパイルする必要があります。サーバーをビルドするには、ターミナルを開き、以下のコマンドを実行してください。

  1. サーバー ディレクトリに移動します。
    cd ABSOLUTE/PATH/TO/mcp-unity/Server
  2. 依存関係をインストールします:
    npm install
  3. サーバーを構築します。
    npm run build
  4. サーバーを実行します。
    node build/index.js

@modelcontextprotocol/inspectorを使用してサーバーをデバッグします。

  • パワーシェル
$env:UNITY_PORT=8090; npx @modelcontextprotocol/inspector node Server/build/index.js
  • コマンドプロンプト/ターミナル
set UNITY_PORT=8090 && npx @modelcontextprotocol/inspector node Server/build/index.js

ターミナルを閉じる前、またはMCP Inspectorでデバッグする前に、必ずCtrl + Cでサーバーをシャットダウンしてください。

  1. ターミナルまたは log.txt ファイルへのログ記録を有効にします。
    • Powershell GXP15
    • コマンドプロンプト/ターミナル GXP16

トラブルシューティング

  • WebSocket サーバーが実行中であることを確認します (Unity のサーバー ウィンドウを確認します)
  • 接続をブロックするファイアウォール制限がないか確認してください
  • ポート番号が正しいことを確認してください(デフォルトは8080です)
  • Unity エディターの MCP サーバー ウィンドウでポート番号を変更します。(ツール > MCP Unity > サーバー ウィンドウ)
  • Unityコンソールでエラーメッセージを確認してください
  • Node.jsが正しくインストールされ、PATHでアクセスできることを確認してください。
  • すべての依存関係がサーバーディレクトリにインストールされていることを確認します
  • メニュー項目のパスが正しいことを確認します(大文字と小文字が区別されます)
  • メニュー項目に確認が必要かどうかを確認する
  • メニュー項目が現在のコンテキストで使用可能であることを確認します

サポートとフィードバック

ご質問がある場合やサポートが必要な場合は、このリポジトリで問題を報告してください。

他に連絡できる方法:

貢献

貢献を歓迎します!お気軽にプルリクエストを送信したり、リクエストを添えて Issue を開いてください。

Conventional Commits形式に従って変更をコミットします

ライセンス

このプロジェクトはMITライセンスの下にあります

謝辞

ID: wajaojujfa