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 サーバーツール
MCP を介して Unity シーンと GameObject を操作およびクエリするには、次のツールを使用できます。
execute_menu_item: Unity メニュー項目 (MenuItem 属性でタグ付けされた関数) を実行します。プロンプトの例: 「新しい空のゲームオブジェクトを作成するには、メニュー項目「GameObject/Create Empty」を実行します。」
select_gameobject: パスまたはインスタンスIDでUnity階層内のゲームオブジェクトを選択します。プロンプトの例: 「シーン内のメインカメラオブジェクトを選択してください」
update_gameobject: ゲームオブジェクトのコアプロパティ (名前、タグ、レイヤー、アクティブ/静的状態) を更新するか、ゲームオブジェクトが存在しない場合は作成します。プロンプトの例: 「Player オブジェクトのタグを 'Enemy' に設定し、非アクティブにします」
update_component: GameObjectのコンポーネントフィールドを更新するか、コンポーネントが含まれていない場合はGameObjectに追加します。例のプロンプト: 「Player オブジェクトに Rigidbody コンポーネントを追加し、その質量を 5 に設定します」
add_package: Unity パッケージマネージャーに新しいパッケージをインストールしますプロンプトの例: 「TextMeshPro パッケージをプロジェクトに追加する」
run_tests: Unity Test Runnerを使用してテストを実行しますプロンプトの例: 「プロジェクト内のすべての EditMode テストを実行します」
send_console_log: コンソールログをUnityに送信するプロンプトの例: 「コンソールログを Unity エディターに送信する」
add_asset_to_scene: AssetDatabase から Unity シーンにアセットを追加しますプロンプトの例: 「プロジェクトから現在のシーンに Player プレハブを追加します」
MCP サーバーリソース
unity://menu-items: Unity エディターで利用可能なすべてのメニュー項目のリストを取得し、execute_menu_itemツールを実行します。プロンプトの例: 「GameObject の作成に関連する利用可能なすべてのメニュー項目を表示します」
unity://scenes-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 プロジェクトで利用可能なすべてのテストを一覧表示する」
Related MCP server: 1MCP Server
要件
Unity 2022.3以降 -サーバーをインストールする
Node.js 18以降 -サーバーを起動するため
npm 9以降 -サーバーのデバッグ
インストール
この MCP Unity サーバーのインストールは、複数のステップから成るプロセスです。
ステップ1: Unityパッケージマネージャー経由でUnity MCPサーバーパッケージをインストールする
Unity パッケージ マネージャーを開きます (ウィンドウ > パッケージ マネージャー)
左上隅の「+」ボタンをクリックします
「git URL からパッケージを追加...」を選択します
入力してください:
https://github.com/CoderGamester/mcp-unity.git「追加」をクリック
ステップ2: Node.jsをインストールする
MCP Unity サーバーを実行するには、コンピューターに Node.js 18 以降がインストールされている必要があります。
Node.jsのダウンロードページにアクセスしてください
LTS バージョンの Windows インストーラー (.msi) をダウンロードします (推奨)
インストーラーを実行し、インストールウィザードに従います。
PowerShell を開いて次のコマンドを実行し、インストールを確認します。
node --versionNode.jsのダウンロードページにアクセスしてください
LTS バージョンの macOS インストーラー (.pkg) をダウンロードします (推奨)
インストーラーを実行し、インストールウィザードに従います。
あるいは、Homebrew がインストールされている場合は、次のコマンドを実行できます。
brew install node@18ターミナルを開いて次のコマンドを実行し、インストールを確認します。
node --version
ステップ3: AI LLMクライアントを構成する
Unityエディターを開く
ツール > MCP Unity > サーバーウィンドウに移動します
下の画像に示すように、AI LLMクライアントの「構成」ボタンをクリックします。
表示されたポップアップで設定のインストールを確認します
AI クライアントの MCP 構成ファイル (例: Claude Desktop の claude_desktop_config.json) を開き、次のテキストをコピーします。
ABSOLUTE/PATH/TOMCP Unity インストールへの絶対パスに置き換えるか、Unity エディターの MCP サーバー ウィンドウ ([ツール] > [MCP Unity] > [サーバー ウィンドウ]) からテキストをコピーします。
UnityエディターMCPサーバーを起動する
Unityエディターを開く
ツール > MCP Unity > サーバーウィンドウに移動します
「サーバーを起動」をクリックしてWebSocketサーバーを起動します
Claude Desktop または AI コーディング IDE (例: Cursor IDE、Windsurf IDE など) を開き、Unity ツールの実行を開始します。
AIクライアントがWebSocketサーバーに接続すると、ウィンドウの緑色のボックスに自動的に表示されます。
オプション: WebSocketポートの設定
デフォルトでは、WebSocket サーバーはポート 8090 で実行されます。このポートは 2 つの方法で変更できます。
Unityエディターを開く
ツール > MCP Unity > サーバーウィンドウに移動します
「WebSocketポート」の値を希望のポート番号に変更します。
Unityはシステム環境変数UNITY_PORTを新しいポート番号に設定します。
Node.jsサーバーを再起動します
「Start Server」をもう一度クリックして、Unity エディターの Web ソケットを Node.js MCP サーバーに再接続します。
ターミナルでUNITY_PORT環境変数を設定する
Powershell GXP6
コマンドプロンプト/ターミナル GXP7
Node.jsサーバーを再起動します
「Start Server」をもう一度クリックして、Unity エディターの Web ソケットを Node.js MCP サーバーに再接続します。
オプション: タイムアウトを設定する
デフォルトでは、MCPサーバーとWebSocket間のタイムアウトは10秒です。使用しているOSに応じて変更できます。
Unityエディターを開く
ツール > MCP Unity > サーバーウィンドウに移動します
「リクエストタイムアウト(秒)」の値を希望のタイムアウト秒数に変更します。
Unityはシステム環境変数UNITY_REQUEST_TIMEOUTを新しいタイムアウト値に設定します。
Node.jsサーバーを再起動します
「Start Server」をもう一度クリックして、Unity エディターの Web ソケットを Node.js MCP サーバーに再接続します。
Windows 以外の OS の場合は、次の 2 か所を設定する必要があります。
エディタープロセスのタイムアウト
Unityエディターを開く
ツール > MCP Unity > サーバーウィンドウに移動します
「リクエストタイムアウト(秒)」の値を希望のタイムアウト秒数に変更します。
WebSocketタイムアウト
ターミナルでUNITY_REQUEST_TIMEOUT環境変数を設定する
Powershell GXP8
コマンドプロンプト/ターミナル GXP9
Node.jsサーバーを再起動します
「Start Server」をもう一度クリックして、Unity エディターの Web ソケットを Node.js MCP サーバーに再接続します。
[!ヒント]
AI コーディング IDE (例: Claude Desktop、Cursor IDE、Windsurf IDE) と MCP サーバー間のタイムアウトは、IDE によって異なります。
サーバーのデバッグ
MCP UnityサーバーはNode.jsを使用して構築されています。 buildディレクトリでTypeScriptコードをJavaScriptにコンパイルする必要があります。サーバーをビルドするには、ターミナルを開き、以下のコマンドを実行してください。
サーバー ディレクトリに移動します。
cd ABSOLUTE/PATH/TO/mcp-unity/Server~依存関係をインストールします:
npm installサーバーを構築します。
npm run buildサーバーを実行します。
node build/index.js
@modelcontextprotocol/inspectorを使用してサーバーをデバッグします。
パワーシェル
コマンドプロンプト/ターミナル
ターミナルを閉じる前、またはMCP Inspectorでデバッグする前に、必ずCtrl + Cでサーバーをシャットダウンしてください。
ターミナルまたは log.txt ファイルへのログ記録を有効にします。
Powershell GXP16
コマンドプロンプト/ターミナル GXP17
トラブルシューティング
WebSocket サーバーが実行中であることを確認します (Unity のサーバー ウィンドウを確認します)
MCP クライアントからコンソール ログ メッセージを送信して、MCP クライアントと Unity サーバー間の再接続を強制します。
Unity エディターの MCP サーバー ウィンドウでポート番号を変更します。(ツール > MCP Unity > サーバー ウィンドウ)
Unityコンソールでエラーメッセージを確認してください
Node.jsが正しくインストールされ、PATHでアクセスできることを確認してください。
すべての依存関係がサーバーディレクトリにインストールされていることを確認します
run_testsツールは次の応答を返します。
このエラーは、プレイ モードに切り替えてドメインを再読み込みするとブリッジ接続が失われるため発生します。
回避策としては、編集 > プロジェクト設定 > エディター > 「再生モード設定に入る」オフにします。
サポートとフィードバック
ご質問がある場合やサポートが必要な場合は、このリポジトリで問題を報告してください。
他に連絡できる方法:
リンクトイン:
不和: gamester7178
メールアドレス: game.gamester@gmail.com
貢献
貢献を歓迎します!お気軽にプルリクエストを送信したり、リクエストを添えて Issue を開いてください。
Conventional Commits形式に従って変更をコミットします。
ライセンス
このプロジェクトはMITライセンスの下にあります