Unity MCP Integration

by quazaai
Verified

local-only server

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

Integrations

  • Used as the runtime environment for the MCP server component, facilitating communication between the AI assistant and the Unity Editor through WebSocket connections.

  • Used for implementing the MCP server that communicates with the Unity plugin, handling the JSON message protocol for commands and data transfer.

  • Provides real-time access to Unity projects, allowing browsing and manipulation of project files, scene hierarchies, and game objects. Enables direct C# code execution in the Unity Editor, monitoring of logs and errors, and control of the Editor's play mode.

🚀 高度な Unity MCP 統合

このパッケージは、Model Context Protocol(MCP)とUnityエディターのシームレスな統合を提供し、AIアシスタントがUnityプロジェクトをリアルタイムで理解し、操作できるようにします。この統合により、AIアシスタントはシーン階層やプロジェクト設定に関する情報にアクセスし、Unityエディターのコンテキスト内で直接コードを実行できるようになります。

📚 機能

  • プロジェクトファイルを直接参照して操作する
  • Unity プロジェクトに関するリアルタイム情報にアクセスする
  • シーン階層とゲームオブジェクトを理解する
  • Unity エディターで C# コードを直接実行する
  • ログとエラーを監視する
  • エディターの再生モードを制御する
  • コード実行を待つ

🚀 はじめに

前提条件

  • Unity 2021.3以降
  • Node.js 18+ (MCP サーバーの実行用)

インストール

1. Unityパッケージをインストールする

Unity パッケージをインストールするには、いくつかのオプションがあります。

オプション A: パッケージ マネージャー (Git URL)

  1. Unity パッケージ マネージャーを開きます ( Window > Package Manager )
  2. +ボタンをクリックし、 Add package from git URL...を選択します。
  3. リポジトリの URL を入力します: https://github.com/quazaai/UnityMCPIntegration.git
  4. Addクリック

オプションB: カスタムパッケージのインポート

  1. このリポジトリをクローンするか、 unityPackageとしてダウンロードしてください
  2. Unityで、 Assets > Import Package > Custom Packageに移動します。
  3. UnityMCPIntegration.unitypackageファイルを選択します

2. MCPサーバーをセットアップする

MCP サーバーを実行するには、次の 2 つのオプションがあります。

オプションA: サーバーを直接実行する

  1. mcpServer (likely <path-to-project>\Library\PackageCache\com.quaza.unitymcp@d2b8f1260bca\mcpServer\)ディレクトリに移動します。
  2. 依存関係をインストールします:
    npm install
  3. サーバーを実行します。
    node build/index.js

オプションB: MCPホスト構成に追加

Claude デスクトップ、カスタム実装などの 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 統合を自動的にインストールするには:

npx -y @smithery/cli install @quazaai/unitymcpintegration --client claude

🔧 使用方法

デバッグと監視

Unity で MCP デバッグ ウィンドウを開いて、接続を監視し、機能をテストできます。

  1. Window > MCP Debugに移動します
  2. デバッグ ウィンドウを使用して次の操作を行います。
    • 接続状態を確認する
    • テストコード実行
    • ログを表示
    • イベントを監視する

利用可能なツール

Unity MCP 統合により、AI アシスタントにいくつかのツールが提供されます。

Unityエディターツール
  • get_editor_state : Unityプロジェクトとエディターの状態に関する包括的な情報を取得します
  • get_current_scene_info : 現在のシーンの詳細情報を取得する
  • get_game_objects_info : シーン内の特定のゲームオブジェクトに関する情報を取得します
  • 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 : 特定のタイプのアセットをすべて検索します (例: マテリアル、プレハブ)
  • list_scripts : プロジェクト内のすべての C# スクリプトのリストを取得します。

ファイルパスは、UnityプロジェクトのAssetsフォルダへの絶対パスまたは相対パスで指定できます。例えば、 "Scenes/MyScene.unity"<project>/Assets/Scenes/MyScene.unityを指します。

🛠️ 建築

統合は、次の 2 つの主要コンポーネントで構成されます。

  1. Unity プラグイン (C#) : Unity エディター内に常駐し、エディター API へのアクセスを提供します。
  2. 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")

👥 貢献する

貢献を歓迎します!貢献方法は次のとおりです。

  1. リポジトリをフォークする
  2. 機能ブランチを作成する ( git checkout -b feature/amazing-feature )
  3. 変更を加える
  4. 変更をコミットします ( git commit -m 'Add some amazing feature' )
  5. ブランチにプッシュする ( git push origin feature/amazing-feature )
  6. プルリクエストを開く

開発セットアップ

ユニティサイド

  • Unityでプロジェクトを開く
  • UnityMCPConnection/Editorディレクトリ内のC#スクリプトを変更する

サーバー側:

  • mcpServerディレクトリに移動する
  • 依存関係をインストール: npm install
  • srcディレクトリ内のTypeScriptファイルに変更を加える
  • サーバーをビルドする: npm run build
  • サーバーを実行します: node build/index.js

📄 ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

📞 サポート

問題が発生した場合や質問がある場合は、GitHub リポジトリに問題を報告してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

AI アシスタントが Unity プロジェクトをリアルタイムで理解して操作できるようにするサーバー。シーン階層やプロジェクト設定へのアクセスを提供し、Unity エディターで直接コードを実行する機能も提供します。

  1. 📚 Features
    1. 🚀 Getting Started
      1. Prerequisites
      2. Installation
      3. Demo Video
      4. Installing via Smithery
      5. 🔧 Usage
    2. 🛠️ Architecture
      1. File System Access
        1. 👥 Contributing
          1. Development Setup
        2. 📄 License
          1. 📞 Support
            ID: hrucfjv4zf