クイックスタート
June 30, 2026 · View on GitHub
Unity MCP はエディター&ランタイム向けの AI 駆動ゲーム開発アシスタントです。Claude、Cursor、Windsurf を MCP 経由で Unity に接続できます。ワークフローの自動化、コード生成、そしてゲーム内での AI 活用を実現します。
他のツールとは異なり、このプラグインはコンパイル済みのゲーム内部でも動作するため、リアルタイムの AI デバッグやプレイヤーと AI のインタラクションが可能です。
💬 Discord サーバーに参加 — 質問したり、作品を披露したり、他の開発者とつながりましょう!
- ✔️ AI エージェント — Anthropic、OpenAI、Microsoft など、ベンダーロックインなしで最高のエージェントを利用可能
- ✔️ ツール — Unity Editor で操作するための豊富なデフォルト MCP ツール
- ✔️ スキル — OS、Unity バージョン、プロジェクト内のプラグインに基づいて AI 用スキルを生成
- ✔️ コードとテスト — AI エージェントでゲームメカニクスを開発しテストを実行
- ✔️ ランタイム(ゲーム内) — コンパイル済みゲーム内で直接 LLM を使用し、動的な NPC 挙動やデバッグに活用
- ✔️ デバッグサポート — AI にプロジェクトの問題をデバッグ・修正させる
- ✔️ 自然な会話 — 人間と話すように AI とチャット
- ✔️ 柔軟なデプロイ — 設定によりローカル(stdio)でもリモート(http)でも動作
- ✔️ 拡張可能 — プロジェクトコード内にカスタムツールを作成
https://github.com/user-attachments/assets/228baf4d-4f00-4dce-939d-fb985ebdd8dd
または CLI を使用
# 1. unity-mcp-cli をインストール
npm install -g unity-mcp-cli
# 2. Unity プロジェクトに「AI Game Developer」をインストール
unity-mcp-cli install-plugin ./MyUnityProject
# 3. クラウドサーバーにログイン
unity-mcp-cli login ./MyUnityProject
# 4. Unity プロジェクトを開く(自動接続・スキル生成)
unity-mcp-cli open ./MyUnityProject

クイックスタート
3つのステップで始められます:
- プラグインをインストール —
.unitypackageインストーラーをダウンロードするかopenupm add com.ivanmurzak.unity.mcpを実行代替方法:
npx unity-mcp-cli install-plugin ./MyUnityProject— CLI ドキュメントを参照 - AI エージェントを選択 — Claude Code、Claude Desktop、GitHub Copilot、Cursor、その他
- AI エージェントを設定 — Unity で
Window/AI Game Developerを開き、スキルを自動生成(推奨)または MCP を設定 をクリック
代替方法:
npx unity-mcp-cli setup-skills claude-code ./MyUnityProject— CLI ドキュメントを参照
以上です。AI に「半径2の円上に3つのキューブを作成して」と頼んで、実行される様子を見てみましょう。✨
スキルとツールリファレンス
このプラグインには4つのカテゴリにまたがる70以上の組み込みツールが付属しています。各ツールが AI スキルを提供します。すべてのツールはインストール直後に利用可能で、追加の設定は不要です。詳細な説明付きの完全なリファレンスは docs/default-mcp-tools.md をご覧ください。
🧰 MCP ツールレジストリの全体をオンラインで閲覧: ai-game.dev/docs/tools
プロジェクト&アセット
assets-copy- 指定パスのアセットをコピーし、新しいパスに保存assets-create-folder- 指定された親フォルダに新しいフォルダを作成assets-delete- プロジェクトから指定パスのアセットを削除assets-find- 検索フィルター文字列を使用してアセットデータベースを検索assets-find-built-in- Unity Editor の組み込みアセットを検索assets-get-data- すべてのシリアライズ可能なフィールドとプロパティを含むアセットデータを取得assets-material-create- デフォルトパラメータで新しいマテリアルアセットを作成assets-modify- プロジェクト内のアセットファイルを変更assets-move- プロジェクト内のアセットを移動(名前変更にも使用)assets-prefab-close- 現在開いているプレハブを閉じるassets-prefab-create- 現在のアクティブシーン内のGameObjectからプレハブを作成assets-prefab-instantiate- 現在のアクティブシーンにプレハブをインスタンス化assets-prefab-open- 特定のGameObjectのプレハブ編集モードを開くassets-prefab-save- プレハブ編集モードでプレハブを保存assets-refresh- AssetDatabaseを更新assets-shader-get-data- シェーダーアセットの詳細データを取得(プロパティ、サブシェーダー、パス)assets-shader-list-all- プロジェクトアセットとパッケージ内のすべてのシェーダーを一覧表示package-add- Unity Package Managerレジストリ、Git URL、またはローカルパスからパッケージをインストールpackage-list- Unityプロジェクトにインストールされたすべてのパッケージを一覧表示(UPMパッケージ)package-remove- Unityプロジェクトからパッケージを削除(アンインストール)package-search- Unity Package Managerレジストリとインストール済みパッケージの両方でパッケージを検索
シーン&ヒエラルキー
gameobject-component-add- GameObjectにコンポーネントを追加gameobject-component-destroy- 対象GameObjectからコンポーネントを削除gameobject-component-get- GameObject上の特定コンポーネントの詳細情報を取得gameobject-component-list-all- UnityEngine.Componentを継承したC#クラス名を一覧表示gameobject-component-modify- GameObject上の特定コンポーネントを変更gameobject-create- 開いているプレハブまたはシーンに新しいGameObjectを作成gameobject-destroy- GameObjectと入れ子のすべてのGameObjectを再帰的に削除gameobject-duplicate- 開いているプレハブまたはシーンでGameObjectを複製gameobject-find- 提供された情報で特定のGameObjectを検索gameobject-modify- GameObjectやアタッチされたコンポーネントのフィールドとプロパティを変更gameobject-set-parent- GameObjectのリストに親GameObjectを設定object-get-data- 指定されたUnity Objectのデータを取得object-modify- 指定されたUnity Objectを変更scene-create- プロジェクトアセットに新しいシーンを作成scene-get-data- 指定されたシーンのルートGameObjectリストを取得scene-list-opened- Unity Editorで現在開かれているシーンのリストを返すscene-open- プロジェクトアセットファイルからシーンを開くscene-save- 開いているシーンをアセットファイルに保存scene-set-active- 指定された開いているシーンをアクティブシーンとして設定scene-unload- Unity Editorで開かれているシーンをアンロードscreenshot-camera- カメラからスクリーンショットをキャプチャし、画像として返すscreenshot-game-view- Unity Editor Game Viewからスクリーンショットをキャプチャscreenshot-isolated- GameObjectを選択した角度から分離してレンダリング(オプションで2x2の合成ビュー)screenshot-scene-view- Unity Editor Scene Viewからスクリーンショットをキャプチャ
スクリプティング&エディター
console-clear-logs- MCP ログキャッシュと Unity Editor のコンソールウィンドウをクリアconsole-get-logs- フィルタリングオプション付きでUnity Editorのログを取得editor-application-get-state- Unity Editorアプリケーションの状態情報を返す(再生モード、一時停止、コンパイル)editor-application-set-state- Unity Editorアプリケーションの状態を制御(再生モードの開始/停止/一時停止)editor-selection-get- Unity Editorでの現在の選択情報を取得editor-selection-set- Unity Editorでの現在の選択を設定reflection-method-call- 入力パラメータ付きで任意のC#メソッドを呼び出し、結果を返すreflection-method-find- C# Reflectionを使用してプロジェクト内のメソッドを検索(プライベートメソッドも含む)script-delete- スクリプトファイルを削除script-execute- Roslynを使用してC#コードを動的にコンパイル・実行script-read- スクリプトファイルの内容を読み取るscript-update-or-create- 提供されたC#コードでスクリプトファイルを更新または作成tests-run- フィルタリングと詳細な結果付きでUnityテスト(EditMode/PlayMode)を実行type-get-json-schema- リフレクションを使用してC#型のJSON Schemaを生成
プロファイリング&診断
profiler-capture-frame- 現在のフレームのタイミング情報をキャプチャ(デルタタイム、FPS、フレーム数)profiler-clear-data- Editor Profilerが現在保持しているすべてのフレームを破棄profiler-enable-module- 指定されたプロファイラーモジュールのローカルな有効化フラグを切り替えprofiler-get-memory-stats- メモリ統計のスナップショットを返す(予約済み、割り当て済み、monoヒープ、グラフィックス)profiler-get-rendering-stats- フレームタイミング、FPS、vsync、目標フレームレート、グラフィックスデバイスタイプを返すprofiler-get-script-stats- スクリプト実行タイミングとMono / GCメモリ使用量を返すprofiler-get-status- プロファイラーの有効状態、アクティブなモジュール、プラットフォームサポートを返すprofiler-list-modules- 既知のすべてのプロファイラーモジュール名とその有効化フラグを一覧表示profiler-load-data- 以前に保存したプロファイラーのJSONスナップショットを読み戻すprofiler-save-data- プロファイラー由来の統計のスナップショットをJSONファイルに保存profiler-start- Unityのランタイムプロファイラーを有効化しProfilerウィンドウを開くprofiler-stop- Unityのランタイムプロファイラーを無効化
追加のスキルとツールをインストール
さらに多くのツールが必要な場合は拡張機能をインストールするか、独自のツールを作成してください。
| 拡張機能 | 説明 |
|---|---|
| AI Animation | Unity アニメーション用の追加ツールセット |
| AI Cinemachine | Cinemachine 用の MCP ツール |
| AI InputSystem | Unity Input System 用の MCP ツール |
| AI Navigation | AI ナビゲーション用の MCP ツール(NavMesh サーフェス、ベイク、エージェント、リンク) |
| AI ParticleSystem | Unity パーティクルシステム用の追加ツールセット |
| AI ProBuilder | Unity ProBuilder 用の追加ツールセット |
| AI Splines | Unity Splines 用の MCP ツール |
| AI Terrain | Unity Terrain 用の追加ツールセット |
| AI Tilemap | Unity 2D タイルマップ用の MCP ツール |
| AI Timeline | Unity Timeline のカットシーンとシーケンス用の MCP ツール |
目次
- クイックスタート
- スキルとツールリファレンス
- 目次
- インストール
- AI ワークフロー例
- ツールのカスタマイズ
- ランタイム使用(ゲーム内)
- Unity
MCP Serverセットアップ - Unity MCP アーキテクチャの仕組み
- コントリビューション 💙💛
その他のドキュメント
| ドキュメント | 説明 |
|---|---|
| デフォルト MCP ツール | すべての組み込みツールの詳細な説明付き完全リファレンス |
| MCP Server セットアップ | サーバー設定、環境変数、リモートホスティング |
| Docker デプロイ | ステップバイステップの Docker デプロイガイド |
| 開発ガイド | アーキテクチャ、コードスタイル、CI/CD — コントリビューター向け |
| Wiki | 入門、チュートリアル、API リファレンス、FAQ |
| CLI ツール | コマンドラインでプラグインのインストール、設定、接続 |
インストール
ステップ1: Unity MCP Plugin をインストール
⚠️ 要件(クリックで展開)
Important
プロジェクトパスにスペースを含めることはできません
- ✅
C:/MyProjects/MyProject - ❌
C:/My Projects/MyProject - ❌
C:/My Projects/My Project - ❌
C:/MyProjects/My Project
オプション1 - インストーラー
- ⬇️ インストーラーをダウンロード
- 📂 インストーラーを Unity プロジェクトにインポート
- ファイルをダブルクリックすると Unity が自動的に開きます
- または:先に Unity Editor を開き、
Assets/Import Package/Custom Packageをクリックしてファイルを選択してください
オプション2 - CLI(推奨)
unity-mcp-cli でプラグインをインストール — Unity Editor は不要です:
# 1.1 unity-mcp-cli をインストール # ┌────────────────────┐
npm install -g unity-mcp-cli # │ Available AI agent │
# ├────────────────────┤
# 1.2 (オプション) Unity をインストール # │ antigravity │
unity-mcp-cli install-unity # │ claude-code │
# │ claude-desktop │
# 1.3 (オプション) Unity プロジェクトを作成 # │ cline │
unity-mcp-cli create-project ./MyUnityProject # │ codex │
# │ cursor │
# 2. Unity プロジェクトに「AI Game Developer」をインストール # │ gemini │
unity-mcp-cli install-plugin ./MyUnityProject # │ github-copilot-cli │
# │ kilo-code │
# 3. クラウドサーバーにログイン # │ open-code │
unity-mcp-cli login ./MyUnityProject # │ rider-junie │
# │ unity-ai │
# 4. Unity プロジェクトを開く(自動接続・スキル生成) # │ vs-copilot │
unity-mcp-cli open ./MyUnityProject # │ vscode-copilot │
# └────────────────────┘
# 5. Unity Editor の準備完了を待機
unity-mcp-cli wait-for-ready ./MyUnityProject
すべての利用可能なコマンドについては CLI の完全なドキュメントをご覧ください。
ステップ2: AI エージェント をインストール
好みの AI エージェント を1つ選んでください — すべてをインストールする必要はありません。これが LLM とコミュニケーションするメインのチャットウィンドウになります。
- Claude Code (推奨)
- Claude Desktop
- GitHub Copilot in VS Code
- Antigravity
- Cursor
- Windsurf
- その他のサポートされているエージェント
AI Game Developer は非常に汎用性が高いため、お好みの AI エージェントをご利用いただけます — どれでもスムーズに動作します。唯一の重要な要件は、AI エージェントがスキルまたは動的な MCP ツール更新をサポートしていることです。
ステップ3: AI エージェント を設定
自動設定
- Unity プロジェクトを開く
Window/AI Game Developerを開く- オプション1: スキルを自動生成 をクリック (推奨)
- オプション2: Model Context Protocol (MCP) の 設定 をクリック

お使いの MCP クライアントがリストにない場合は、ウィンドウに表示される生の JSON を使用して MCP クライアントに設定を注入してください。具体的な方法については、お使いの MCP クライアントの説明書をお読みください。
手動設定
何らかの理由で自動設定がうまくいかない場合は、AI Game Developer (Unity-MCP) ウィンドウの JSON を使用して、任意の MCP Client を手動で設定してください。
コマンドライン設定
command を作成
1. お使いの環境に合わせて <command> を選択
| プラットフォーム | <command> |
|---|---|
| Windows x64 | "<unityProjectPath>/Library/mcp-server/win-x64/gamedev-mcp-server.exe" port=<port> client-transport=stdio |
| Windows x86 | "<unityProjectPath>/Library/mcp-server/win-x86/gamedev-mcp-server.exe" port=<port> client-transport=stdio |
| Windows arm64 | "<unityProjectPath>/Library/mcp-server/win-arm64/gamedev-mcp-server.exe" port=<port> client-transport=stdio |
| MacOS Apple-Silicon | "<unityProjectPath>/Library/mcp-server/osx-arm64/gamedev-mcp-server" port=<port> client-transport=stdio |
| MacOS Apple-Intel | "<unityProjectPath>/Library/mcp-server/osx-x64/gamedev-mcp-server" port=<port> client-transport=stdio |
| Linux x64 | "<unityProjectPath>/Library/mcp-server/linux-x64/gamedev-mcp-server" port=<port> client-transport=stdio |
| Linux arm64 | "<unityProjectPath>/Library/mcp-server/linux-arm64/gamedev-mcp-server" port=<port> client-transport=stdio |
2. <unityProjectPath> を Unity プロジェクトのフルパスに置き換えてください
3. <port> を AI Game Developer 設定のポートに置き換えてください
4. コマンドラインを使用して MCP Server を追加
Gemini CLI
gemini mcp add ai-game-developer <command>
上記の表から
<command>を置き換えてください
Claude Code CLI
claude mcp add ai-game-developer <command>
上記の表から
<command>を置き換えてください
GitHub Copilot CLI
copilot
/mcp add
サーバー名: ai-game-developer
サーバータイプ: local
コマンド: <command>
上記の表から
<command>を置き換えてください
AI ワークフロー例
AI エージェント で AI(LLM)とコミュニケーションしましょう。何でも依頼できます。タスクやアイデアを詳しく説明するほど、AI はより良い仕事をします。
一部の AI エージェント では異なる LLM モデルを選択できます。モデルによって性能が大きく異なるため、この機能に注目してください。
プロンプト例:
Explain my scene hierarchy
Create 3 spheres on top of each other
Create metallic golden material and attach it to a new sphere gameObject
VS Code で Copilot を使用している場合は、
Agentモードが有効になっていることを確認してください
チーム全体の更新通知を無効化する
このプラグインは、OpenUPM 上で新しいバージョンが利用可能になると Editor 起動時にアップデートのポップアップを表示します。デフォルトでは、各チームメンバーが自分で "Do not show again" をクリックするまでこのポップアップが表示され続けます(これは各ユーザーのマシン上に保存される個人設定です)。
プラグインのバージョン管理を 1 人のエンジニアが担当している複数人での Unity プロジェクトでは、Edit ▸ Project Settings ▸ AI Game Developer を開き "Disable update notifications for the entire team" を有効にすることで、チーム全体でこのポップアップを無効化できます。設定は ProjectSettings/AI-Game-Developer-UpdateSettings.asset に保存され、プロジェクトごとに一度だけ設定すれば十分です — このファイルをコミットすると、そのコミットを取り込んだすべてのチームメンバーでポップアップが抑制されます。
同じ切り替えはメニューバーの Tools ▸ AI Game Developer ▸ Updates ▸ Disable Update Notifications (Team) からも利用できます。
LLM 向け高度な機能
Unity MCP は、LLM がより速く効果的に作業できるよう高度なツールを提供し、ミスを回避し、エラー発生時には自己修正します。すべてがあなたの目標を効率的に達成するために設計されています。
コア機能
- ✔️ エージェント対応ツール — 1〜2ステップで必要なものを見つける
- ✔️ 即座のコンパイル —
Roslynを使用した C# コードのコンパイルと実行で高速なイテレーション - ✔️ 完全なアセットアクセス — アセットと C# スクリプトへの読み書きアクセス
- ✔️ インテリジェントなフィードバック — 問題を正確に理解するための詳細なフィードバック
リフレクション駆動の機能
- ✔️ オブジェクト参照 — 既存オブジェクトへの参照を提供し、即座に C# コードを生成
- ✔️ プロジェクトデータアクセス — プロジェクト全体のデータに読みやすい形式でフルアクセス
- ✔️ 細かい変更 — プロジェクト内のあらゆるデータを入力・変更
- ✔️ メソッド検出 — コンパイル済み DLL ファイルを含む、コードベース全体のあらゆるメソッドを検索
- ✔️ メソッド実行 — コードベース全体のあらゆるメソッドを呼び出し
- ✔️ 高度なパラメータ — メモリ内の既存オブジェクトへの参照を含む、あらゆるプロパティをメソッド呼び出しに提供
- ✔️ ライブ Unity API — Unity API が即座に利用可能 — Unity が更新されても常に最新の API にアクセス
- ✔️ 自己文書化 —
Description属性を通じて、あらゆるclass、method、propertyの人間が読める説明にアクセス
ツールのカスタマイズ
Unity MCP は、プロジェクトオーナーによるカスタム MCP Tool、MCP Resource、MCP Prompt の開発をサポートしています。MCP Server は Unity MCP Plugin からデータを取得し、クライアントに公開します。MCP 通信チェーン上のすべての参加者が新しい MCP 機能の情報を受け取り、LLM が適切なタイミングでそれらを使用する可能性があります。
カスタム Tool を追加
カスタム Tool を追加するには:
AiToolType属性を持つクラスAiTool属性を持つクラス内のメソッド- オプション: LLM の理解を助けるために、各メソッド引数に
Description属性を追加 - オプション: LLM に対して
optionalとしてマークするために、string? optional = nullのように?とデフォルト値を使用
MainThread.Instance.Run(() =>の行は、Unity の API とのインタラクションに必要なメインスレッドでコードを実行することを可能にします。これが不要で、バックグラウンドスレッドでの実行が許容される場合は、効率のためにメインスレッドの使用を避けてください。
[AiToolType]
public class Tool_GameObject
{
[AiTool
(
"MyCustomTask",
Title = "Create a new GameObject"
)]
[Description("Explain here to LLM what is this, when it should be called.")]
public string CustomTask
(
[Description("Explain to LLM what is this.")]
string inputData
)
{
// do anything in background thread
return MainThread.Instance.Run(() =>
{
// do something in main thread if needed
return $"[Success] Operation completed.";
});
}
}
カスタム MCP Prompt を追加
MCP Prompt を使用すると、LLM との会話にカスタムプロンプトを注入できます。User と Assistant の2つの送信者ロールをサポートしています。LLM に特定のタスクを実行させるための手軽な方法です。リストやその他の関連情報など、カスタムデータを使用してプロンプトを生成できます。
[AiPromptType]
public static class Prompt_ScriptingCode
{
[AiPrompt(Name = "add-event-system", Role = Role.User)]
[Description("Implement UnityEvent-based communication system between GameObjects.")]
public string AddEventSystem()
{
return "Create event system using UnityEvents, UnityActions, or custom event delegates for decoupled communication between game systems and components.";
}
}
ランタイム使用(ゲーム内)
ゲームやアプリで Unity MCP を使用しましょう。ツール、リソース、プロンプトを活用できます。デフォルトではツールは含まれていないため、独自のカスタムツールを実装する必要があります。
// Build MCP plugin
var mcpPlugin = UnityMcpPluginRuntime.Initialize(builder =>
{
builder.WithConfig(config =>
{
config.Host = "http://localhost:8080";
config.Token = "your-token";
});
// Automatically register all tools from the current assembly
builder.WithToolsFromAssembly(Assembly.GetExecutingAssembly());
})
.Build();
await mcpPlugin.Connect(); // Start active connection with retry to the MCP server
await mcpPlugin.Disconnect(); // Stop active connection and close existed connection
サンプル: AI チェスゲームボット
古典的なチェスゲームがあります。ボットのロジックを LLM に委託しましょう。ボットはゲームルールに従ってターンを実行する必要があります。
[AiToolType]
public static class ChessGameAI
{
[AiTool("chess-do-turn", Title = "Do the turn")]
[Description("Do the turn in the chess game. Returns true if the turn was accepted, false otherwise.")]
public static Task<bool> DoTurn(int figureId, Vector2Int position)
{
return MainThread.Instance.RunAsync(() => ChessGameController.Instance.DoTurn(figureId, position));
}
[AiTool("chess-get-board", Title = "Get the board")]
[Description("Get the current state of the chess board.")]
public static Task<BoardData> GetBoard()
{
return MainThread.Instance.RunAsync(() => ChessGameController.Instance.GetBoardData());
}
}
ランタイム使用が必要な理由
多くのユースケースが考えられます。例えば、ボット付きのチェスゲームを開発しているとしましょう。数行のコードを書くだけで、ボットの意思決定を LLM に委託できます。
Unity MCP Server セットアップ
Unity MCP Server は多様な起動オプションと Docker デプロイをサポートしています。streamableHttp と stdio の両方のトランスポートプロトコルに対応しています。Unity MCP Server をカスタマイズしたりクラウドにデプロイする場合は、このセクションをご覧ください。詳細はこちら...
変数
どの起動オプションを選んでも、環境変数とコマンドライン引数の両方によるカスタム設定がサポートされています。起動するだけであればデフォルト値で動作します。変数の設定に時間をかける必要はありません。ただし、Unity Plugin もデフォルト値になっていることを確認してください。特に --port は一致している必要があります。
| 環境変数 | コマンドライン引数 | 説明 |
|---|---|---|
MCP_PLUGIN_PORT | --port | Client -> Server <- Plugin 接続ポート(デフォルト: 8080) |
MCP_PLUGIN_CLIENT_TIMEOUT | --plugin-timeout | Plugin -> Server 接続タイムアウト(ミリ秒)(デフォルト: 10000) |
MCP_PLUGIN_CLIENT_TRANSPORT | --client-transport | Client -> Server トランスポートタイプ: stdio または streamableHttp(デフォルト: streamableHttp) |
MCP_AUTHORIZATION | --authorization | 受信する Client 接続の認証モード: none または required(デフォルト: none) |
MCP_PLUGIN_TOKEN | --token | --authorization=required の場合に Client から要求される Bearer トークン(デフォルト: 未設定) |
MCP_PLUGIN_IDLE_TIMEOUT_SECONDS | --idle-timeout-seconds | 接続がない状態がこの秒数続いた後にサーバーをシャットダウン(デフォルト: 600) |
コマンドライン引数は、
-プレフィックス1つ(-port)やプレフィックスなし(port)のオプションもサポートしています。
分析および認証の webhook 変数(
MCP_PLUGIN_WEBHOOK_*)については、docs/mcp-server.md を参照してください。
トランスポートの選択: MCP クライアントがサーバーバイナリを直接起動する場合は
stdioを使用します(ローカル使用 — 最も一般的な設定)。サーバーをスタンドアロンプロセスとして実行する場合や Docker/クラウドで HTTP 経由で接続する場合はstreamableHttpを使用します。
プラグイン変数
Unity MCP Plugin は起動時に以下の環境変数(およびコマンドライン引数)を読み込み、保存された設定ファイルの値を上書きします。上書きはランタイム時に適用されます。初回起動時または新しい認証トークンが生成された際、上書きされた値は設定ファイルに書き込まれます。以降の起動では、上書きはメモリ内で適用されますが自動的には保存されません。例外は UNITY_MCP_TOOLS で、[JsonIgnore] を使用しているため永続化されません — ランタイム専用です。
| 環境変数 | コマンドライン引数 | 値 | 説明 |
|---|---|---|---|
UNITY_MCP_CLOUD_URL | -url | URL string | MCP Server URL の上書き(UNITY_MCP_HOST はレガシーエイリアス) |
UNITY_MCP_CONNECTION_MODE | -UNITY_MCP_CONNECTION_MODE | Cloud / Custom | 接続モードを強制(ループバック URL は Custom を意味します) |
UNITY_MCP_KEEP_CONNECTED | -UNITY_MCP_KEEP_CONNECTED | true / false | アクティブ接続の強制有効化または無効化 |
UNITY_MCP_AUTH_OPTION | -auth | none / required | 認証モードの強制設定 |
UNITY_MCP_TOKEN | -token | string | 認証トークンの強制設定 |
UNITY_MCP_TRANSPORT | -UNITY_MCP_TRANSPORT | stdio / streamableHttp | プラグインが設定するクライアントトランスポートを強制 |
UNITY_MCP_START_SERVER | -UNITY_MCP_START_SERVER | true / false | プラグインがローカルサーバープロセスを起動し続けるかどうかを強制 |
UNITY_MCP_TOOLS | -UNITY_MCP_TOOLS | comma-separated tool IDs | リストされたツールのみを有効化し、その他はすべて無効化。不明な ID はエラーとしてログに記録されます。 |
コマンドライン引数は環境変数よりも優先されます。両方とも保存された設定ファイルの値を上書きします。短縮フラグ
-url、-token、-authはエイリアスです。完全な-UNITY_MCP_*引数名も受け付けられます。
例(CI/CD バッチモード):
Unity.exe -batchmode -nographics \
-UNITY_MCP_HOST=http://localhost:8080 \
-UNITY_MCP_KEEP_CONNECTED=true \
-UNITY_MCP_AUTH_OPTION=required \
-UNITY_MCP_TOKEN=my-secret-token
Docker 📦
Docker がインストールされていることを確認してください。Windows をお使いの場合は、Docker Desktop が起動していることも確認してください。
streamableHttp トランスポート
docker run -p 8080:8080 aigamedeveloper/mcp-server
MCP Client 設定:
{
"mcpServers": {
"ai-game-developer": {
"url": "http://localhost:8080"
}
}
}
クラウドでホストしている場合は、
urlを実際のエンドポイントに置き換えてください。
stdio トランスポート
このバリアントを使用するには、MCP Client が Docker 内で MCP Server を起動する必要があります。変更された MCP Client 設定で実現できます。
docker run -t -e MCP_PLUGIN_CLIENT_TRANSPORT=stdio -p 8080:8080 aigamedeveloper/mcp-server
MCP Client 設定:
{
"mcpServers": {
"ai-game-developer": {
"command": "docker",
"args": [
"run",
"-t",
"-e",
"MCP_PLUGIN_CLIENT_TRANSPORT=stdio",
"-p",
"8080:8080",
"aigamedeveloper/mcp-server"
]
}
}
}
カスタム port
docker run -e MCP_PLUGIN_PORT=123 -p 123:123 aigamedeveloper/mcp-server
MCP Client 設定:
{
"mcpServers": {
"ai-game-developer": {
"url": "http://localhost:123"
}
}
}
クラウドでホストしている場合は、
urlを実際のエンドポイントに置き換えてください
バイナリ実行ファイル
Unity MCP Server をバイナリファイルから直接起動できます。お使いの CPU アーキテクチャ用にコンパイルされたバイナリが必要です。GitHub リリースページには、すべての CPU アーキテクチャ用のコンパイル済みバイナリが含まれています。
./gamedev-mcp-server --port 8080 --plugin-timeout 10000 --client-transport stdio
MCP Client 設定:
<project>を Unity プロジェクトのパスに置き換えてください。
{
"mcpServers": {
"ai-game-developer": {
"command": "<project>/Library/mcp-server/win-x64/gamedev-mcp-server.exe",
"args": [
"--port=8080",
"--plugin-timeout=10000",
"--client-transport=stdio"
]
}
}
}
Unity MCP アーキテクチャの仕組み
Unity MCP は LLM と Unity の橋渡しをします。Unity のツールを LLM に公開・説明し、LLM がインターフェースを理解してユーザーのリクエストに応じてツールを活用します。
Unity MCP を、統合された AI Connector ウィンドウを使用して Claude や Cursor などの LLM クライアントに接続します。カスタムクライアントもサポートされています。
このシステムは高い拡張性を持っています。Unity プロジェクトのコードベースで直接カスタム MCP Tools、MCP Resource、MCP Prompt を定義し、AI や自動化クライアントに新しい機能を公開できます。これにより、Unity MCP は高度なワークフロー構築、迅速なプロトタイピング、AI 駆動の機能を開発プロセスに統合するための柔軟な基盤となります。
MCP とは
MCP — Model Context Protocol。一言で言えば、AI のための USB Type-C、特に LLM(大規模言語モデル)向けです。LLM に外部機能の使い方を教えます。この場合は Unity Engine、あるいはコード内のカスタム C# メソッドなどです。公式ドキュメント。
AI エージェント とは
チャットウィンドウを持つアプリケーションです。より効果的に動作するためのスマートエージェントや、高度な MCP ツールが組み込まれている場合があります。一般的に、優れた MCP Client はタスク実行における AI の成功の50%を占めます。そのため、最適なものを選ぶことが非常に重要です。
MCP Server とは
MCP Client と「その他のもの」(この場合は Unity Engine)との橋渡しです。本プロジェクトには MCP Server が含まれています。
MCP Tool とは
MCP Tool は、LLM が Unity とインタラクションするために呼び出せる関数やメソッドです。自然言語のリクエストと実際の Unity 操作の橋渡しとして機能します。AI に「キューブを作成して」や「マテリアルの色を変更して」と頼むと、MCP ツールを使用してこれらのアクションを実行します。
主な特徴:
- 実行可能な関数 — 特定の操作を実行
- 型付きパラメータ — LLM がどのデータを提供すべきか理解するための説明付き
- 戻り値 — 操作の成功や失敗に関するフィードバック
- スレッド対応 — Unity API 呼び出し用のメインスレッドまたは重い処理用のバックグラウンドスレッドで実行可能
Tool を使うタイミング
- 繰り返し作業の自動化 — 頻繁に行う一般的な操作のツールを作成
- 複雑な操作 — 複数の Unity API 呼び出しを1つの使いやすいツールにバンドル
- プロジェクト固有のワークフロー — プロジェクトの特定の構造や規約を理解するツールを構築
- エラーが起きやすいタスク — バリデーションとエラーハンドリングを含むツールを作成
- カスタムゲームロジック — ゲームのシステムを AI に公開して動的なコンテンツ作成を実現
例:
- 特定のコンポーネントを持つ GameObject の作成と設定
- アセット(テクスチャ、マテリアル、プレハブ)のバッチ処理
- ライティングやポストプロセッシングエフェクトの設定
- レベルジオメトリの生成やオブジェクトのプロシージャル配置
- 物理設定やコリジョンレイヤーの設定
MCP Resource とは
MCP Resource は Unity プロジェクト内のデータへの読み取り専用アクセスを提供します。アクションを実行する MCP ツールとは異なり、リソースは LLM がプロジェクトの現在の状態、アセット、設定を調査し理解することを可能にします。プロジェクトに関するコンテキストを AI に提供する「センサー」と考えてください。
主な特徴:
- 読み取り専用アクセス — プロジェクトデータや Unity オブジェクトへのアクセス
- 構造化された情報 — LLM が理解できる形式で提示
- リアルタイムデータ — プロジェクトの現在の状態を反映
- コンテキスト認識 — AI がより良い判断を行うための支援
MCP Resource を使うタイミング
- プロジェクト分析 — AI にプロジェクトの構造、アセット、構成を理解させる
- デバッグ支援 — トラブルシューティングのために現在の状態情報を提供
- インテリジェントな提案 — AI がより良い推奨を行うためのコンテキストを提供
- ドキュメント生成 — プロジェクトの状態に基づいてドキュメントを自動作成
- アセット管理 — AI が利用可能なアセットとそのプロパティを理解するのを支援
例:
- シーンヒエラルキーと GameObject のプロパティの公開
- 利用可能なマテリアル、テクスチャ、およびその設定の一覧表示
- スクリプトの依存関係とコンポーネントの関連性の表示
- 現在のライティング設定とレンダーパイプライン構成の表示
- オーディオソース、アニメーション、パーティクルシステムに関する情報の提供
MCP Prompt とは
MCP Prompt を使用すると、事前定義されたプロンプトを LLM との会話に注入できます。これらはコンテキスト、指示、または知識を提供して AI の挙動を導くスマートテンプレートです。プロンプトは静的テキストにも、プロジェクトの現在の状態に基づいて動的に生成することもできます。
主な特徴:
- 文脈に応じたガイダンス — AI の応答に影響を与える
- ロールベース — 異なるペルソナをシミュレート可能(ユーザーリクエストまたはアシスタントの知識)
- 動的コンテンツ — リアルタイムのプロジェクトデータを含められる
- 再利用可能なテンプレート — 一般的なシナリオやワークフロー向け
MCP Prompt を使うタイミング
- ドメイン知識の提供 — プロジェクト固有のベストプラクティスやコーディング規約を共有
- コーディング規約の設定 — 命名規則、アーキテクチャパターン、コードスタイルの確立
- プロジェクト構造のコンテキスト提供 — プロジェクトの構成とその理由を説明
- ワークフロー手順の共有 — 一般的なタスクのステップバイステップ手順を提供
- 専門知識の注入 — 特定の Unity 機能、サードパーティアセット、カスタムシステムに関する情報を追加
例:
- 「パブリックメソッドには PascalCase、プライベートフィールドには camelCase を常に使用する」
- 「このプロジェクトでは Scripts/Events/ にあるカスタムイベントシステムを使用する」
- 「UI 要素を作成する際は、常に Scene/UI/MainCanvas の Canvas に追加する」
- 「パフォーマンスが重要 — 頻繁にインスタンス化されるオブジェクトにはオブジェクトプーリングを優先する」
- 「このプロジェクトは SOLID 原則に従う — アーキテクチャの判断を説明する」
アンインストール 🧹
Unity プロジェクトからプラグインを完全に削除するには:
- Window ▸ Package Manager を開き、AI Game Developer — MCP パッケージを選択して Remove をクリックします。
- Unity を閉じてから、
Assets/Plugins/NuGetフォルダ(およびそのAssets/Plugins/NuGet.metaファイル)を削除します。
コントリビューション 💙💛
コントリビューションを大歓迎します。アイデアを持ち寄り、ゲーム開発をかつてないほどシンプルにしましょう!新しい Tool や機能のアイデアがありますか?バグを見つけて修正方法をご存知ですか?
このプロジェクトが役に立ったら、ぜひスターを付けてください 🌟
- 👉 開発ドキュメントを読む
- 👉 プロジェクトをフォーク
- フォークをクローンし、Unity で
./Unity-MCP-Pluginフォルダを開く - プロジェクトに新しい機能を実装し、コミット、GitHub にプッシュ
- オリジナルの Unity-MCP リポジトリの
mainブランチに向けてプルリクエストを作成