Skip to main content
Glama

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

要件

インストール

この 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. 表示されたポップアップで設定のインストールを確認します

画像

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" ] } } }

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 GXP6

    • コマンドプロンプト/ターミナル GXP7

  8. Node.jsサーバーを再起動します

  9. 「Start Server」をもう一度クリックして、Unity エディターの Web ソケットを Node.js MCP サーバーに再接続します。

オプション: タイムアウトを設定する

デフォルトでは、MCPサーバーとWebSocket間のタイムアウトは10秒です。使用しているOSに応じて変更できます。

  1. Unityエディターを開く

  2. ツール > MCP Unity > サーバーウィンドウに移動します

  3. 「リクエストタイムアウト(秒)」の値を希望のタイムアウト秒数に変更します。

  4. Unityはシステム環境変数UNITY_REQUEST_TIMEOUTを新しいタイムアウト値に設定します。

  5. Node.jsサーバーを再起動します

  6. 「Start Server」をもう一度クリックして、Unity エディターの Web ソケットを Node.js MCP サーバーに再接続します。

Windows 以外の OS の場合は、次の 2 か所を設定する必要があります。

エディタープロセスのタイムアウト

  1. Unityエディターを開く

  2. ツール > MCP Unity > サーバーウィンドウに移動します

  3. 「リクエストタイムアウト(秒)」の値を希望のタイムアウト秒数に変更します。

WebSocketタイムアウト

  1. ターミナルでUNITY_REQUEST_TIMEOUT環境変数を設定する

    • Powershell GXP8

    • コマンドプロンプト/ターミナル GXP9

  2. Node.jsサーバーを再起動します

  3. 「Start Server」をもう一度クリックして、Unity エディターの Web ソケットを Node.js MCP サーバーに再接続します。

[!ヒント]
AI コーディング IDE (例: Claude Desktop、Cursor IDE、Windsurf IDE) と MCP サーバー間のタイムアウトは、IDE によって異なります。

サーバーのデバッグ

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を使用してサーバーをデバッグします。

  • パワーシェル

npx @modelcontextprotocol/inspector node Server~/build/index.js
  • コマンドプロンプト/ターミナル

npx @modelcontextprotocol/inspector node Server~/build/index.js

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

  1. ターミナルまたは log.txt ファイルへのログ記録を有効にします。

    • Powershell GXP16

    • コマンドプロンプト/ターミナル GXP17

トラブルシューティング

  • WebSocket サーバーが実行中であることを確認します (Unity のサーバー ウィンドウを確認します)

  • MCP クライアントからコンソール ログ メッセージを送信して、MCP クライアントと Unity サーバー間の再接続を強制します。

  • Unity エディターの MCP サーバー ウィンドウでポート番号を変更します。(ツール > MCP Unity > サーバー ウィンドウ)

  • Unityコンソールでエラーメッセージを確認してください

  • Node.jsが正しくインストールされ、PATHでアクセスできることを確認してください。

  • すべての依存関係がサーバーディレクトリにインストールされていることを確認します

run_testsツールは次の応答を返します。

Error: Connection failed: Unknown error

このエラーは、プレイ モードに切り替えてドメインを再読み込みするとブリッジ接続が失われるため発生します。
回避策としては、編集 > プロジェクト設定 > エディター > 「再生モード設定に入る」オフにします。

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

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

他に連絡できる方法:

貢献

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

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

ライセンス

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

謝辞

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CoderGamester/mcp-unity'

If you have feedback or need assistance with the MCP directory API, please join our Discord server