Ivan Murzak

by IvanMurzak
Verified

local-only server

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

Integrations

  • Utilizes .NET 9.0 as the foundation for the server component, enabling communication between the Unity plugin and external AI clients, with support for custom tool development in C#.

  • Acts as an AI-powered gateway between Unity Editor and LLM, allowing manipulation of GameObjects, Components, Assets, and Scenes. Supports creating and managing Unity objects, instantiating prefabs, searching assets, and viewing scene hierarchies with an extensible tool system.

Unity MCP(サーバー + プラグイン)

Unityバージョン編集モードプレイモードスタンドアロン
2022.3.61f1
2023.2.20f1
6000.0.46f1

Unity-MCPは、UnityエディターとLLM間のAI搭載ゲートウェイとして機能し、Unityプロジェクトのシームレスな自動化とインテリジェントな制御を実現します。MCPサーバーおよびクライアントと統合することで、AIエージェントや外部ツールがUnity環境と連携し、ゲームオブジェクト、コンポーネント、アセット、シーンなどの作成、変更、管理などが可能になります。

このシステムは拡張性に優れており、Unity プロジェクトのコードベースに直接カスタムtoolを定義して、AI や自動化クライアントに新しい機能を公開できます。これにより、Unity-MCP は、高度なワークフローの構築、ラピッドプロトタイピング、AI を活用した機能を開発プロセスに統合するための柔軟な基盤となります。

AIツール

ゲームオブジェクト

  • ✅ 作成する
  • ✅ 破壊する
  • ✅ 検索
  • 🔲 変更
ゲームオブジェクト.コンポーネント
  • ✅ コンポーネントを追加する
  • ✅ コンポーネントを破壊する
  • ✅ コンポーネントの変更
    • Field設定値
    • Propertyセット値
    • Referenceリンクセット

成分

  • ✅ すべてを取得

プレハブ

  • ✅ インスタンス化
  • 🔲 シーンから作成

エディタ

  • 🔲 テストを実行する
  • 🔲 エディターでプレイモードを開始/停止する

資産

  • ✅ 検索
  • ✅ リフレッシュ
  • 🔲 インポート
  • 🔲 読む

シーン

  • ✅ 階層を取得する
  • 🔲 シーンを作成する
  • 🔲 シーンを保存
  • 🔲 シーンを開く

材料

  • 🔲 作成する
  • 🔲 アップデート
  • ✅ ゲームオブジェクトのコンポーネントに割り当てる

スクリプト

  • 🔲 作成する

凡例: ✅ = 実装済み&利用可能 🔲 = 計画中 / まだ実装されていない

インストール

  1. .NET 9.0をインストールする
  2. OpenUPM-CLIをインストールする
  • Unityプロジェクトフォルダでコマンドラインを開く
  • コマンドを実行する
openupm add com.ivanmurzak.unity.mcp

使用法

  1. Go 👉 Window/AI Connector (Unity-MCP)
  2. MCP クライアントで [構成] をクリックします。
  3. MCP クライアントを再起動します。
  4. 再起動後、 AI Connectorが「接続済み」になっていることを確認します。

カスタムtoolを追加する

⚠️ まだサポートされていません。MCPサーバーのcsharp-sdkにブロッキングの問題が発生しています。解決を待っています。

Unity-MCPは、プロジェクトオーナーによるカスタムtool開発をサポートするために設計されています。MCPサーバーはUnityプラグインからデータを取得し、クライアントに公開します。そのため、MCP通信チェーン上の誰もが新しいtoolに関する情報を受け取ることができます。LLMは、ある時点でそのツールを呼び出す可能性があります。

カスタムtoolを追加するには、次のものが必要です。

  1. McpPluginToolType属性を持つクラスを作成します。
  2. クラスに属性McpPluginToolを持つメソッドを追加します。
  3. [オプション] LLM が理解できるように、各メソッド引数にDescription属性を追加します。
  4. [オプション] string? optional = nullプロパティを?およびデフォルト値とともに使用して、LLM に対してoptionalとしてマークします。

=> MainThread.Run(() =>の行を確認してください。これにより、Unity API と対話するために必要なコードをメイン スレッドで実行できるようになります。これが必要なく、ツールをバックグラウンド スレッドで実行しても問題ない場合は、効率化のためにメイン スレッドを使用しないでください。

[McpPluginToolType] public class Tool_GameObject { [McpPluginTool ( "GameObject_Create", Title = "Create a new GameObject", Description = "Create a new GameObject." )] public string Create ( [Description("Path to the GameObject (excluding the name of the GameObject).")] string path, [Description("Name of the GameObject.")] string name ) => MainThread.Run(() => { var targetParent = string.IsNullOrEmpty(path) ? null : GameObject.Find(path); if (targetParent == null && !string.IsNullOrEmpty(path)) return $"[Error] Parent GameObject '{path}' not found."; var go = new GameObject(name); go.transform.position = new Vector3(0, 0, 0); go.transform.rotation = Quaternion.identity; go.transform.localScale = new Vector3(1, 1, 1); if (targetParent != null) go.transform.SetParent(targetParent.transform, false); EditorUtility.SetDirty(go); EditorApplication.RepaintHierarchyWindow(); return $"[Success] Created GameObject '{name}' at path '{path}'."; }); }

貢献

新しいtoolプロジェクトに自由に追加してください。

  1. プロジェクトをフォークします。
  2. フォークしたリポジトリに新しいtoolを実装します。
  3. オリジナルのUnity-MCPリポジトリにプル リクエストを作成します。
-
security - not tested
A
license - permissive license
-
quality - not tested

Unityプロジェクトをシームレスに自動化し、インテリジェントに制御します。MCPサーバーおよびクライアントとの統合により、AIエージェントや外部ツールがUnity環境と連携し、ゲームオブジェクト、コンポーネント、アセット、シーンなどを作成、変更、管理できるようになります。

  1. AI Tools
    1. GameObject
    2. Component
    3. Prefabs
    4. Editor
    5. Assets
    6. Scene
    7. Materials
    8. Scripts
  2. Installation
    1. Usage
      1. Add custom tool
        1. Contribution
          ID: 9jn15xt5xm