Unity MCP Integration について
Unity MCP Integration は、Model Context Protocol と Unity エディターを接続する統合パッケージです。AI アシスタントがシーンのヒエラルキー、ゲームオブジェクト、プロジェクトファイルを参照できます。Unity で開発する利用者を対象とし、C# のエディタープラグインと Node.js 製 MCP サーバーが WebSocket で通信します。
主な機能
- 01シーンのヒエラルキーとゲームオブジェクト情報の取得
- 02Unity エディターでの C# コードの実行
- 03Unity コンソールログの取得とフィルタリング
- 04エディターのプレイモードの制御
- 05プロジェクトファイルの読み取り、編集、検索
活用シーン
- 01現在のシーン構成を AI アシスタントに把握させる
- 02AI アシスタントを使ったスクリプトやアセットの検索と修正
- 03MCP デバッグウィンドウでの接続状態とログの確認
MCP 対応
本プロジェクトは TypeScript と Node.js で実装された MCP サーバーを含み、エディター、シーン、ログ、ファイル操作のツールを MCP クライアントに提供します。サーバーは WebSocket 経由で Unity プラグインにコマンドを中継します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🚀 高度な Unity MCP 統合
このパッケージは、Model Context Protocol (MCP) と Unity Editor をシームレスに連携し、AI アシスタントが Unity プロジェクトをリアルタイムで理解し、操作できるようにします。この統合により、AI アシスタントはシーンの階層構造やプロジェクト設定に関する情報にアクセスし、Unity Editor のコンテキスト内でコードを直接実行できます。
📚 機能
- プロジェクトファイルを直接参照、操作できます
- Unity プロジェクトに関するリアルタイム情報にアクセスできます
- シーンの階層構造とゲームオブジェクトを把握できます
- Unity Editor で C# コードを直接実行できます
- ログとエラーを監視できます
- Editor のプレイモードを制御できます
- コードの実行完了を待機できます
🚀 はじめに
前提条件
- Unity 2021.3 以降
- Node.js 18+(MCP サーバーの実行に必要)
インストール
1. Unity パッケージをインストールする
Unity パッケージは、いくつかの方法でインストールできます。
オプション A:Package Manager(Git URL)
- Unity Package Manager(
Window > Package Manager)を開きます +ボタンをクリックし、Add package from git URL...を選択します- リポジトリ URL を入力します:
https://github.com/quazaai/UnityMCPIntegration.git Addをクリックします
オプション B:カスタムパッケージをインポートする
- このリポジトリをクローンするか、unityPackage としてダウンロードします
- Unity で
Assets > Import Package > Custom Packageに移動します UnityMCPIntegration.unitypackageファイルを選択します
2. MCP サーバーをセットアップする
MCP サーバーを実行する方法は 2 つあります。
オプション A:サーバーを直接実行する
mcpServer (likely <path-to-project>\Library\PackageCache\com.quaza.unitymcp@d2b8f1260bca\mcpServer\)ディレクトリに移動します- 依存関係をインストールします:
npm install - サーバーを実行します:
node build/index.js
オプション B:MCP ホストの設定に追加する
Claude Desktop、カスタム実装などの MCP ホスト設定にサーバーを追加します
{
"mcpServers": {
"unity-mcp-server": {
"command": "node",
"args": [
"path-to-project>\\Library\\PackageCache\\com.quaza.unitymcp@d2b8f1260bca\\mcpServer\\mcpServer\\build\\index.js"
],
"env": {
"MCP_WEBSOCKET_PORT": "5010"
}
}
}
}
デモ動画
Smithery 経由でインストールする
Smithery 経由で Claude Desktop 用の Unity MCP Integration を自動的にインストールするには:
npx -y @smithery/cli install @quazaai/unitymcpintegration --client claude
🔧 使用方法
デバッグと監視
Unity で MCP Debug ウィンドウを開くと、接続を監視し、機能をテストできます。
Window > MCP Debugに移動します- デバッグウィンドウを使って、次の操作を行います:
- 接続状態を確認する
- コードの実行をテストする
- ログを表示する
- イベントを監視する
利用可能なツール
Unity MCP 統合は、AI アシスタントに複数のツールを提供します。
Unity エディターツール
- get_editor_state: Unity プロジェクトとエディターの状態に関する包括的な情報を取得します
- get_current_scene_info: 現在のシーンに関する詳細情報を取得します
- get_game_objects_info: シーン内の特定の GameObject に関する情報を取得します
- execute_editor_command: Unity エディターで C# コードを直接実行します
- get_logs: Unity コンソールログを取得してフィルタリングします
- verify_connection: Unity エディターとのアクティブな接続があるかどうかを確認します
ファイルシステムツール
- read_file: Unity プロジェクト内のファイルの内容を読み込みます
- read_multiple_files: 複数のファイルを一度に読み込みます
- write_file: 新しい内容でファイルを作成または上書きします
- edit_file: 差分プレビュー付きで既存ファイルをターゲット指定して編集します
- list_directory: ディレクトリ内のファイルとフォルダのリストを取得します
- directory_tree: ディレクトリとファイルの階層ビューを取得します
- search_files: 検索パターンに一致するファイルを見つけます
- get_file_info: 特定のファイルまたはディレクトリのメタデータを取得します
- find_assets_by_type: 特定のタイプのすべてのアセット (Material、Prefab など) を見つけます
- list_scripts: プロジェクト内のすべての C# スクリプトのリストを取得します
ファイルパスは絶対パスまたは Unity プロジェクトの Assets フォルダを基準とした相対パスで指定できます。例えば、"Scenes/MyScene.unity" は <project>/Assets/Scenes/MyScene.unity" を指します。
アーキテクチャ
統合には 2 つの主要なコンポーネントがあります。
- Unity プラグイン (C#): Unity エディター内に存在し、エディター API へのアクセスを提供します
- MCP サーバー (TypeScript/Node.js): MCP プロトコルを実装し、Unity プラグインと通信します
これら間の通信は WebSocket を介して行われ、コマンドとデータの JSON メッセージを転送します。
ファイルシステムアクセス
Unity MCP 統合には、AI アシスタントが以下を行うことができる強力なファイルシステムツールが含まれています。
- Unity プロジェクト内のファイルの参照、読み込み、編集
- 新しいファイルとディレクトリの作成
- 特定のファイルまたはアセットタイプの検索
- プロジェクト構造の分析
- 差分プレビュー付きのターゲット指定されたコード変更
すべてのファイル操作はセキュリティのために Unity プロジェクトディレクトリに制限されます。このシステムは絶対パスと相対パスの両方をインテリジェントに処理し、利便性のために常にプロジェクトの Assets フォルダを基準として解決します。
使用例:
- ディレクトリリストを取得:
list_directory(path: "Scenes") - スクリプトファイルを読み込み:
read_file(path: "Scripts/Player.cs") - 設定ファイルを編集:
edit_file(path: "Resources/config.json", edits: [{oldText: "value: 10", newText: "value: 20"}], dryRun: true) - すべてのマテリアルを検索:
find_assets_by_type(assetType: "Material")
貢献
貢献を歓迎します。貢献方法は以下の通りです。
- リポジトリをフォークします
- フィーチャーブランチを作成します (
git checkout -b feature/amazing-feature) - 変更を加えます
- 変更をコミットします (
git commit -m 'Add some amazing feature') - ブランチにプッシュします (
git push origin feature/amazing-feature) - プルリクエストを開きます
開発セットアップ
Unity 側:
- Unity でプロジェクトを開きます
UnityMCPConnection/Editorディレクトリの C# スクリプトを変更します
サーバー側:
mcpServerディレクトリに移動します- 依存関係をインストールします:
npm install srcディレクトリ内の TypeScript ファイルを変更します- サーバーをビルドします:
npm run build - サーバーを実行します:
node build/index.js
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
サポート
問題が発生した場合、またはご質問がある場合は、GitHub リポジトリで Issue を報告してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
