mcp-unity(エムシーピーユニティ)は、Model Context Protocol(MCP)を使ってUnity EditorをClaude Code・Cursor・Windsurf・Codex CLIなど主要なAI IDEから直接操作できるオープンソースのMCPサーバー実装です。GitHubで1,866スター(2026-08-15時点)を集め、Unity 6以降のゲーム開発現場で「IDEとUnity Editorの往復」を減らす定番プラグインの一つになっています。
MCP(Model Context Protocol)全般の仕組みは MCPサーバーの作り方2026年完全ガイド:TypeScript・Python両対応チュートリアル をご覧ください。本記事はmcp-unityに絞って解説します。

- ・Unity ClaudeやCursor Unity MCPの連携を、C#プラグイン+Node.jsサーバーの2層構成で実現するOSSプラグイン。
- ・対応IDEはCursor・Windsurf・Claude Desktop・Claude Code・Codex CLI・GitHub Copilot・Google Antigravity・OpenCodeの8種。
- ・GameObject操作からテスト実行まで30種類超のMCPツールを公開し、`batch_execute`で複数操作をロールバック付きで一括実行できる。
- ・新機能のMCP Appで、VS Code内からUnityのプレイモード(再生・一時停止・1フレーム送り)まで制御可能に。
- ・`MCP_UNITY_ALLOW_BATCH_MODE`でCI・クラウドビルドのヘッドレス環境にも常駐できる。
mcp-unityとは何か:Unity Claude連携が生まれた背景
Model Context Protocol(MCP)は、AIアシスタントが外部ツールやデータソースと標準化された方法で通信するためのプロトコルです。このプロトコルをUnity Editorに接続したのがmcp-unityで、公式READMEは「AIアシスタントがUnityプロジェクトとやり取りできるようにするMCPの実装」と説明しています。
従来のゲーム開発ワークフローでは、コードをIDEで書いてUnity Editorに切り替えて確認し、エラーがあればまたIDEに戻るという往復が頻繁に発生していました。mcp-unityはこの往復を根本的に削減します。Claude CodeやCursorから「Playerオブジェクトにリジッドボディコンポーネントを追加して、質量を5に設定して」と指示すると、AIがUnity内のGameObjectを直接操作し、結果のコンソールログもIDEにリアルタイムで返ってきます。
このツールの仕組みは、Unity側のC#プラグインとNode.jsで実装されたMCPサーバーの2層構造です。C#プラグインがUnity Editorと通信し、Node.jsサーバーがMCPプロトコルを実装してAIアシスタントとのブリッジを担います。通信はデフォルトでWebSocket(ポート8090)を経由し、設定値は環境変数のほかにProjectSettings/McpUnitySettings.jsonにも永続化されるため、プロジェクトを再度開いてもポートやタイムアウトの設定が保持されます。
公式READMEは英語・簡体字中国語に加えて日本語版(README-ja.md)も公開しており、Issueは2026-08時点で3件のみと活発にメンテナンスされています。対応IDEはCursor・Windsurf・Claude Desktop・Claude Code・Codex CLI・GitHub Copilot・Google Antigravity・OpenCodeの8種類。Claude Desktopでのローカル連携の考え方はClaude Desktop 使い方入門|MCP接続で広がるデスクトップAIの可能性とローカル連携でも解説しています。
mcp-unityはMCPエコシステムの一員です。MCPサーバーの仕組みや作り方全般についてはMCPサーバーとは|仕組み・一覧・おすすめ・作り方・設定を2026年最新で解説も参照してください。
mcp-unityの主な機能
mcp-unityが提供する機能は、単純なGameObject操作を超えて、テスト・IDE統合・CI連携まで広がっています。
・30種類超のMCPツール:GameObject操作・トランスフォーム・シーン管理・アセット・マテリアル・開発支援(テスト実行、コンソールログ取得)を網羅
・batch_executeによるアトミック実行:複数のツール呼び出しを1リクエストにまとめ、失敗時はロールバックできる
・IDE統合(Package Cache Access):VSCode系IDE(VS Code、Cursor、Windsurf、Google Antigravity)のワークスペースにLibrary/PackedCacheを自動追加し、Unityパッケージのコード補完・型情報を強化する
・MCP App(新機能):show_unity_dashboardでVS Code 1.109以降にUnityダッシュボードを表示し、get_play_mode_status/set_play_mode_statusでプレイモードの再生・一時停止・1フレーム送りをIDEから制御できる
・MCP Prompts:gameobject_handling_strategyのような定型ワークフローをプロンプトとして提供し、AIがどのツール・リソースをどの順で使うべきかをガイドする
・ヘッドレスMCPホスト:MCP_UNITY_ALLOW_BATCH_MODE=trueでバッチモードでもブリッジを起動でき、CI・クラウドビルドの常駐ホストとして使える
・プロジェクトローカル設定:Claude Code・Cursor・Codex CLIには.mcp.json等のプロジェクト相対パス設定を書き出すボタンが用意され、チームでリポジトリにコミットして共有できる
MCPリソースとして公開されているのはunity://menu-items、unity://scenes-hierarchy、unity://gameobject/{id}、unity://logs、unity://packages、unity://assets、unity://tests/{testMode}、そしてMCP App用のui://unity-dashboardです。AIはこれらのリソースを読み取って、Unityプロジェクトの現在の状態を把握した上で操作を行います。
クイックスタート:Unity Claude Code連携の始め方
mcp-unityのセットアップは3ステップです。Node.jsのインストール、Unity Package Managerへの追加、AI IDEへの設定追加を順に行います。
1. Node.js 18以上をインストール
macOSでHomebrewを使う場合:
brew install node@18
node --version # v18.x.x 以上であることを確認
Windowsの場合はnodejs.orgからLTS版インストーラーをダウンロードして実行します。

2. Unity Package Managerでmcp-unityを追加
Unity EditorでWindow > Package Managerを開き、左上の+ボタンからAdd package from git URL...を選択して以下を入力します。
https://github.com/CoderGamester/mcp-unity.git
インストール後、Tools > MCP Unity > Server Windowを開きStart ServerをクリックするとWebSocketサーバーが起動します。
3. Claude Code・CursorなどAI IDE側の設定を追加
ABSOLUTE/PATH/TO部分は実際のインストールパスに置き換えます。Server WindowのConfigureボタンでも同じ設定を自動生成できます。
{
"mcpServers": {
"mcp-unity": {
"command": "node",
"args": [
"ABSOLUTE/PATH/TO/mcp-unity/Server~/build/index.js"
]
}
}
}
Codex CLI(~/.codex/config.toml)の場合は次の形式です。
[mcp_servers.mcp-unity]
command = "node"
args = ["ABSOLUTE/PATH/TO/mcp-unity/Server~/build/index.js"]
「Configure [Client]」は絶対パスでユーザーのグローバル設定ファイル(例:
~/.claude.json)に書き込み、全プロジェクトで有効になります。「Configure [Client] (Project)」はプロジェクト相対パスで.mcp.json等に書き込み、チームでリポジトリにコミットして共有できます。迷ったらプロジェクト版を選ぶと、プロジェクトフォルダを移動しても壊れません。Node.jsサーバーをWSL2、UnityをWindows 11上で動かすと、両者のネットワーク名前空間が分かれているため
localhost解決に失敗することがあります。Windows側で「WSL Mirrored networking」を有効化するか、WSL側で環境変数UNITY_HOSTをWindowsホストのIPに設定して回避します。実際に使ってみた結果
公式READMEの手順に沿ってセットアップした場合の挙動を整理します。検証環境はUnity 6系・Node.js 18系・2026-08-15時点のリポジトリ最新コミット(mainブランチ、直近プッシュ2026-08-10)を前提にしています。
Unity Package Managerでの追加後、Server Windowを開くと「Force Install Server」ボタンが表示されます。Node.jsサーバーが未ビルドの場合はこのボタンでnpm installとnpm run buildが自動実行され、Server~/build/index.jsが生成されます。

Configureボタンで生成されたJSON設定をClaude Code側が読み込むと、Server Window内の接続表示が緑色に変わり、以後はチャットから「Playerタグをenemyに変更して」のような自然言語指示がそのままUnity操作に変換されます。公式README「Frequently Asked Questions」内のKeyError: 'position'エラー項目(一部MCPクライアントがローカルJSONポインタ参照#/properties/positionを解釈できずツール初期化に失敗する不具合)は、set_transform/move_gameobject/rotate_gameobject/scale_gameobjectのスキーマをネストしたベクター型に変更する形で解消済みと明記されています。遭遇した場合はMCPクライアントとNode側ビルド(cd Server~ && npm run build)を最新化すれば解決するとREADMEは案内しています。
Play Modeテストで接続が切れるConnection failed: Unknown errorは、ドメインリロードでWebSocket接続が切断されることが原因で、Edit > Project Settings > Editor > Enter Play Mode Settingsの「Reload Domain」をオフにする対処がREADMEに明記されています。
Node.jsサーバーとUnity Editorの設定値が食い違う場合、ブリッジは「環境変数(UNITY_PORT/UNITY_HOST/UNITY_REQUEST_TIMEOUT)→ MCP_UNITY_SETTINGS_PATH → インストール済みパッケージの上位にあるProjectSettings/McpUnitySettings.json → 作業ディレクトリの上位にある同名ファイル → デフォルト値」の順で値を解決し、どの値をどこから読んだかをログに出力します(README「Bridge Configuration Resolution」節)。WSL2環境でNode側を動かす場合はこのログでUNITY_HOSTが正しく渡っているかを確認すると、接続トラブルの切り分けが早くなります。困ったときはGitHub Issue(README「Support & Feedback」節記載、2026-08時点でオープン3件)のほか、README記載のDiscordハンドル(gamester7178)やLinkedInでも開発者に直接質問できる導線が用意されています。
アーキテクチャ:2層構造とMCP Appの位置付け
mcp-unityのアーキテクチャは、MCPクライアント(AI IDE)、Node.jsサーバー、Unity Editorの3コンポーネントに、新設のMCP App層が加わる構成です。
Cursor / Claude Code
Codex CLI / Windsurf"] -->|"MCPプロトコル
stdio"| B["Node.js
MCPサーバー
TypeScript実装"] B -->|"WebSocket
Port 8090"| C["Unity Editor
C#プラグイン
McpUnityServer"] C -->|"Unity API
Editor操作"| D["Unity Project
Scene / Assets
Scripts / Tests"] D -->|"コンソールログ
コンパイル結果"| C C -->|"レスポンス"| B B -->|"ツール実行結果"| A A -.MCP App.-> E["VS Code 1.109+
Unity Dashboard
ui://unity-dashboard"] E -.プレイモード制御.-> C
Node.jsサーバー層
Server/src/index.tsに実装されたMCPサーバーは、AIアシスタントからのツール呼び出しリクエストを受け取り、Unity Editorとの通信に変換します。TypeScriptで記述されており、Zodスキーマによる入出力バリデーションが組み込まれています。
Unity C#プラグイン層
McpUnityServer.csがUnity EditorとNode.jsサーバーの橋渡しをします。デフォルトのWebSocketポートは8090で、Tools > MCP Unity > Server WindowのConnection Port欄から変更可能です。設定値はProjectSettings/McpUnitySettings.jsonに永続化され、Node側は環境変数→MCP_UNITY_SETTINGS_PATH→プロジェクト設定ファイル→デフォルト値の優先順で解決します。
MCP App層(新機能)
MCP AppはVS Code 1.109以降で使えるUI拡張で、show_unity_dashboardツールからUnityの状態を可視化するダッシュボードをIDE内に開けます。get_play_mode_status/set_play_mode_statusと組み合わせると、Unity Editorを前面に出さずに再生・一時停止・1フレーム送りまでチャットから制御できます。
mcp-unityと類似ツールの比較
mcp-unityの最大の差別化ポイントは、標準化されたMCPプロトコルを採用することで、複数のAI IDEから統一した方法でUnity Editorを操作できる点です。
| ツール | MCP標準対応 | 双方向リアルタイム通信 | 対応IDE数 | オープンソース | ヘッドレス/CI対応 |
|---|---|---|---|---|---|
| mcp-unity | ✅ MCPネイティブ | ✅ WebSocket | 8 | ✅ MIT | ✅ MCP_UNITY_ALLOW_BATCH_MODE |
| Unity 6.2 AI機能(公式・導入予定) | ❌ 独自API | △ 一方向 | Unity内のみ | ❌ 商用 | ❌ |
| GitHub Copilot汎用 | △ 一部対応 | ❌ | VS Code系 | ❌ 商用 | ❌ |
| Cursor汎用補完 | △ 一部対応 | ❌ Unityコンテキストなし | Cursorのみ | ❌ 商用 | ❌ |
| 手動スクリプト生成 | なし | なし | - | - | - |
Unity 6.2では公式のAI機能(従来のUnity Museを含む)が組み込まれる予定ですが、公式READMEも明記する通りこちらはUnity Editor内のコンテンツ生成(テクスチャ・アニメーション・スプライト生成)とAPIドキュメント参照に特化しています。mcp-unityはEditor操作の自動化と外部AI IDEとの連携に強みがあり、補完的な関係として共存します。
「特定の制作ツールをMCPで標準化してAI IDEから叩けるようにする」という設計思想自体は、mcp-unity固有のものではありません。デザインツールを対象にした同種の実装としてFigma MCP使い方|Dev ModeのデザインをClaude/Cursorにコード化させるがあり、公開するリソース・ツールの粒度を比較すると、対象ツールの操作モデル(シーングラフか、デザインレイヤーか)によってMCPサーバー設計がどう変わるかが見えてきます。
iOSビルドのエラー修正"| M["mcp-unity
Editor操作の自動化"] Q -->|"キャラクターの歩行アニメーションや
SFテクスチャの生成"| U["Unity 6.2 AI機能
コンテンツ生成"] M -.併用可.-> U
実践的な使い方:Unity Claude・Cursor連携の具体例
ユースケース1:GameObjectの一括セットアップ
敵キャラクター10体を一度に配置する操作をbatch_executeツールで実現できます。
Enemy_1からEnemy_10という名前のGameObjectを10個作成して、
それぞれにRigidbodyコンポーネントを追加し、massを1.5に設定して。
すべてEnemiesという親オブジェクトの下に配置して。
batch_executeツールが複数のupdate_gameobjectとupdate_component操作を一括実行し、失敗した場合のロールバックも行います。
ユースケース2:CIでのヘッドレステスト実行
run_testsツールとヘッドレスMCPホストを組み合わせると、Unity EditorをGUIなしで起動したままAIにテスト結果を確認させられます。
MCP_UNITY_ALLOW_BATCH_MODE=true Unity -batchmode -nographics \
-projectPath /path/to/project -logFile /path/to/unity.log
バッチモードではnpm install/npm run buildが自動実行されないため、Node側のビルド済みbuild/index.jsを事前にリポジトリへ含めておく必要があります。
ユースケース3:プロジェクト構造の把握とMCP Appでのプレイモード確認
unity://assets リソースを確認して、重複しているテクスチャアセットがないか調べて。
その後 get_play_mode_status でプレイモードの状態を確認して。
MCPリソースでプロジェクトの現状を把握し、MCP Appのget_play_mode_status/set_play_mode_statusでVS Code内から再生・一時停止まで制御できます。
mcp-unityはUnity Editorへの広範なアクセス権限をAIに付与します。特に
execute_menu_itemツールはUnityのすべてのメニュー項目を実行できるため、本番プロジェクトではどのツールをAIに公開するか慎重に検討し、重要なアセットやシーンのバックアップを定期的に取ることを推奨します。WebSocketサーバーはデフォルトでlocalhostバインドですが、「Allow Remote Connections」を有効化するとリモートからの接続も許可されるため、ネットワーク境界の管理が必要です。まとめ:どんな人にmcp-unityが向くか
mcp-unityは、MCPプロトコルを通じてUnity EditorとAI IDEを統合する実用的なオープンソースプラグインです。30種類超のMCPツールとMCP Appにより、GameObject操作からシーン管理、テスト実行、プレイモード制御まで幅広いUnity操作をAIから直接制御できます。
向いているのは、Claude CodeやCursorでゲームロジックのコードを書きながらUnity Editor側の反映確認を減らしたい個人開発者・小規模チームです。逆に、複数人が同時にUnity Editorを操作するようなワークフローには不向きで、デフォルトでは1つのMCPクライアントしか同時接続を想定していない点は事前に把握しておく必要があります。
MIT ライセンスのオープンソースプロジェクトとして、コミュニティによる継続的な機能追加も期待できます。Unity 6.2の公式AI機能とは競合するものではなく、Editor操作の自動化と外部AI IDEの統合という観点で補完的な役割を果たします。
mcp-unityは、C#プラグインとNode.js MCPサーバーの2層構造でUnity ClaudeやCursor Unity MCPの連携を実現するOSSです。8種のAI IDEに対応し、`batch_execute`によるアトミック操作とMCP Appのプレイモード制御が新しい強みです。まずは小規模なGameObject操作から試し、CI連携が必要になったらヘッドレスMCPホストを検討するのが現実的な導入ルートです。
本記事は2026-08-15時点のGitHub実測(★1,866、最新リリースv1.4.0)と公式README(mainブランチ、直近プッシュ2026-08-10)に基づき、MCP App・ヘッドレスホスト・対応IDE一覧などを更新しています。
参照ソース
・CoderGamester/mcp-unity(GitHubリポジトリ) — ソースコード・README・最新リリース情報
・Model Context Protocol 公式ドキュメント — MCPプロトコルの一次仕様
・Unity Package Manager ドキュメント — Unity側パッケージ管理の公式ガイド
・Node.js 公式サイト — Node.js LTSダウンロード
・mcp-unity Releases(GitHub) — バージョン別の変更履歴