ダークモード
Claude Code × Unity MCP 連携手順
このページは、教材準備のために Claude Code から Unity エディタを操作できるようにする 手順です。シーン雛形作り、エラー調査、手順書の検証、スクリーンショット撮影などの準備作業を効率化する目的で使います。
生徒の授業では使いません
この連携は 先生・教材作成者の準備作業用 です。生徒の授業では使わない前提で書いています。生徒は教材の手順どおり、自分の手で Unity を操作してください。
これは何か
- MCP(Model Context Protocol) は、AI アシスタントが外部のツールやアプリを操作するための共通の仕組みです
- CoplayDev/unity-mcp(MCP for Unity)を Unity に入れると、Claude Code が MCP 経由で Unity エディタを操作できるようになります。GameObject の作成・編集、スクリプトの作成、Console の読み取り、シーンの保存などが可能です
- MIT ライセンスの無料 OSS です。Unity Technologies の公式製品ではありません
- 対応バージョンは Unity 2021.3 〜 6.x です
- ドキュメント: https://coplaydev.github.io/unity-mcp
- GitHub: https://github.com/CoplayDev/unity-mcp
ツールは変化が速い
MCP for Unity は活発に開発されており、メニュー名・ツール名・手順が変わることがあります。このページと食い違う場合は、最新の README とドキュメントを優先 してください。
必要なもの
| もの | 入れ方 | 確認コマンド |
|---|---|---|
| Unity 6 | Unity Hub からインストール | — |
| Claude Code | curl -fsSL https://claude.ai/install.sh | bash | claude --version |
| Python 3.10 以上 | macOS は brew install python など | python3 --version |
| uv(Python のパッケージ管理ツール) | macOS: brew install uv または curl -LsSf https://astral.sh/uv/install.sh | sh | uv --version |
| git | macOS は Xcode Command Line Tools(xcode-select --install)など | git --version |
bash
# まとめて確認
claude --version
python3 --version
uv --version
git --versionWindows の場合
Claude Code、uv にはそれぞれ Windows 用のインストール方法があります。各公式ドキュメントを参照してください。以下の手順は macOS を前提に書いています。
1. Unity 側: MCP for Unity パッケージを入れる
教材用の Unity プロジェクト(
SpaceShooter)を開くWindow > Package Manager を開く
左上の + ボタン → Add package from git URL... を選ぶ
次の URL を入力して Add を押す
texthttps://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#mainインポートが終わると セットアップウィザード が開く。Python と uv が検出されていることを確認して Done を押す
安定版に固定したい場合
#main は最新の開発版です。教材準備中に挙動が変わると困る場合は、リリースタグを指定して固定します(例: #v10.0.0。実在するタグ名は GitHub の Releases で確認してください)。
text
https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#v10.0.02. Claude Code 側: MCP サーバーを登録する
自動設定(おすすめ)
- Unity で Window > MCP for Unity を開く
- クライアント一覧から Claude Code を選ぶ
- Configure Selected(バージョンによっては Register)を押す
手動設定
自動設定がうまくいかない場合は、ターミナルで登録します。
HTTP トランスポートの場合(ポートは MCP for Unity ウィンドウに表示されている番号に合わせる)
bash
claude mcp add --transport http unityMCP http://localhost:8080/mcpstdio トランスポートの場合
bash
claude mcp add unityMCP -- uvx --from mcpforunityserver mcp-for-unity --transport stdioプロジェクト単位で共有する
--scope project を付けると、設定がプロジェクト直下の .mcp.json に保存されます。リポジトリにコミットすれば、ほかの先生とも同じ設定を共有できます。
bash
claude mcp add --scope project --transport http unityMCP http://localhost:8080/mcpWARNING
トランスポート(HTTP / stdio)を切り替えたら、Claude Code を 再起動 してください。
3. 接続を確認する
Unity の Window > MCP for Unity でステータスが Connected になっていることを確認する
ターミナルで登録を確認する
bashclaude mcp listプロジェクトのフォルダで Claude Code を起動し、
/mcpと入力して unityMCP が接続済みで、ツールが一覧に出ていることを確認する試しに次のように頼んでみる
textシーンに赤・青・黄色の Cube を横に並べて作ってtextUnity の Console のエラーを読んで、内容を教えて
Unity の Scene ビューに Cube が現れれば成功です。確認したら Cube は消しておきます(Ctrl+Z / Cmd+Z でも戻せます)。
4. 教材準備での使い方の例
教材の手順書(docs/lessons/)や仕様(spec/LESSON_SPEC.md)を Claude Code に読ませたうえで頼むと、精度が上がります。
| 目的 | プロンプト例 |
|---|---|
| 手順書の検証 | 「docs/lessons/07-enemy.md の手順どおりに Enemy_Straight プレハブを作って。手順と実際の Unity の画面で食い違うところがあったら報告して」 |
| シーン雛形作り | 「第11回を始める時点のシーンを作って。spec/LESSON_SPEC.md のヒエラルキーのうち、第10回までに出てくるものだけを配置して」 |
| エラー調査 | 「Console のエラーを要約して、原因のスクリプトを直して。直した箇所を教えて」 |
| コードの検証 | 「docs/appendix/scripts.md の PlayerShooter を Assets/_Game/Scripts/ に作ってコンパイルが通るか確認して」 |
| 設定の確認 | 「Enemy_Straight プレハブの Rigidbody と Collider の設定が仕様(Is Kinematic ON、Use Gravity OFF、Is Trigger ON)どおりか確認して」 |
| スクリーンショット | 「Game ビューのスクリーンショットを撮って docs/public/images/lesson07-01.png に保存して」 |
| 数値の調整 | 「▶ で動かして、敵の出現間隔 1.5 秒が難しすぎないか見て。Console に出たログも教えて」 |
| 一括作業 | 「Assets/_Game/Prefabs のプレハブをすべて調べて、Tag と Collider の一覧を表にして」 |
スクリーンショット機能について
スクリーンショットや Play モードの操作ができるかどうかは、MCP for Unity のバージョンによって異なります。/mcp で表示されるツール一覧で、対応するツールがあるか確認してください。ない場合は、Unity の Window > General > Recorder や OS のスクリーンショット機能を使います。
5. 使うときの注意
- 元に戻せる状態で使う: Claude が加える変更は大きくなることがあります。プロジェクトを git で管理し、こまめにコミット してから頼みましょう。Unity の Undo(Ctrl+Z / Cmd+Z)でも戻せますが、ファイルの作成・削除は戻らないことがあります
- Unity を Finder や Unity Hub から起動すると PATH が通らない: macOS では、Dock や Finder から起動したアプリはシェルの PATH を引き継がないため、Unity から
claudeやuvが見つからないことがあります。次のどちらかで対処します- ターミナルから Unity Hub を起動する(例:
open -a "Unity Hub") - MCP for Unity ウィンドウの Choose Claude Install Location で
claudeの場所を指定する(which claudeで確認できます)
- ターミナルから Unity Hub を起動する(例:
- トランスポートを切り替えたら Claude Code を再起動 する
- ツールは変わりやすい: 不具合や手順の違いがあれば、まず最新の README を確認する
- 生成物は必ず人が確認する: 手順書の検証に使う場合でも、最終的には先生自身が生徒と同じ手順で操作して確認してください。Claude がコードで直接作った状態と、生徒がメニューから手で作った状態は細部が異なることがあります
6. トラブルシューティング
| 症状 | 原因 | 対処 |
|---|---|---|
パッケージ追加時に git のエラーが出る(No 'git' executable was found など) | git が入っていない、または Unity から見えていない | git --version で確認。入れたあと Unity Hub と Unity を再起動。それでもだめならターミナルから Unity Hub を起動する |
| ステータスが Connected にならない | サーバーが起動していない、設定が古い | MCP for Unity ウィンドウでサーバーを再起動/Configure Selected をやり直す。Claude Code も再起動する |
uv が見つからない | uv 未インストール、または PATH が通っていない | uv --version で確認。which uv の結果をウィンドウで指定するか、ターミナルから Unity Hub を起動する |
claude が見つからない | PATH が通っていない | Choose Claude Install Location で指定。which claude で場所を確認 |
ポートが使用中(address already in use) | 別のプロセスや別の Unity が同じポートを使っている | lsof -i :8080 で使っているプロセスを確認して終了するか、ウィンドウでポートを変え、claude mcp add の URL も合わせる |
/mcp に unityMCP が出ない | 登録したスコープ・フォルダがちがう | claude mcp list で確認。--scope project の場合は、そのプロジェクトのフォルダで Claude Code を起動する |
| ツールを呼ぶとタイムアウトする | Unity がコンパイル中・インポート中、またはモーダルダイアログが開いている | Unity の画面を確認し、ダイアログを閉じる。コンパイル完了を待ってから再実行 |
| 複数の Unity を開いていて意図しない方が操作される | 複数インスタンスの接続 | 作業する Unity だけを開く。ドキュメントのマルチインスタンスの項を参照 |
| アップデート後に動かなくなった | パッケージとサーバーのバージョン不一致 | Package Manager でパッケージを更新し、ウィンドウから再設定。安定版タグへの固定も検討 |