/ ディレクトリ / プレイグラウンド / Unity-MCP
● コミュニティ IvanMurzak ⚡ 即起動

Unity-MCP

作者 IvanMurzak · IvanMurzak/Unity-MCP

Unity用の100以上のツール、Roslyn搭載C#実行、クイックセットアップ用CLIを備えた、完全なAI開発テストループです。

IvanMurzak/Unity-MCPはUnityプラグイン+MCPサーバーで、シーン、GameObject、コンポーネント、プリファブ、マテリアル、パッケージ、スクリーンショット、テスト、Roslyn C#実行など幅広い機能をMCPクライアントに公開します。トークン効率性と、生のツールの上に構築されたAIスキルレイヤーを重視しています。

なぜ使うのか

主な機能

ライブデモ

実際の動作

unity-2.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "unity-2": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/IvanMurzak/Unity-MCP"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "unity-2": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/IvanMurzak/Unity-MCP"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "unity-2": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/IvanMurzak/Unity-MCP"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "unity-2": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/IvanMurzak/Unity-MCP"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "unity-2",
      "command": "TODO",
      "args": [
        "See README: https://github.com/IvanMurzak/Unity-MCP"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "unity-2": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/IvanMurzak/Unity-MCP"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add unity-2 -- TODO 'See README: https://github.com/IvanMurzak/Unity-MCP'

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: Unity-MCP

1つのプロンプトでインポート済みアセットをバッチ処理する方法

👤 Unity テクニカルアーティスト ⏱ ~25 min intermediate

使うタイミング: 200個の新しいテクスチャがあり、インポート設定、ミップマップ、アトラス配置を統一したい場合。

前提条件
  • Unityプロジェクトを開く、プラグインをインストール — unity-mcp-cli install-plugin ./MyUnityProject を実行するか、.unitypackage をインポート
  • MCPクライアントを構成 — Claude DesktopまたはCursorをCLIで表示されたローカルMCPサーバーに指す
フロー
  1. 現在の設定を監査
    Assets/Textures/UI内のすべてのテクスチャをリストアップします。使用されている値でグループ化された現在のTextureImporterの設定を表示します。✓ コピーしました
    → 設定でグループ化 — ほぼ一貫しており、外れ値がフラグ付けされている
  2. ポリシーを適用
    すべてに対してcompression=HighQuality、filter=Bilinear、mipmaps=falseを設定します。再度インポートしてください。✓ コピーしました
    → 進捗ログ+最終的な一貫した状態
  3. ビジュアルで検証
    デフォルトカメラからScene MainMenuのスクリーンショットを取得し、何も壊れていないことを確認してください。✓ コピーしました
    → スクリーンショットが返され、サニティチェックに合格している

結果: フォルダ全体で統一されたインポート設定+スクリーンショットの痕跡。

注意点
  • 再インポートがエディタードメインリロードをブロック — 最初にシーンを保存し、再インポートが完了するまで関連しないコマンドを実行しないでください
組み合わせ: filesystem

スクリプトを書かずにエディター内で1回限りのC#スニペットを実行する方法

👤 使い捨てクリーンアップを行うUnityデベロッパー ⏱ ~15 min advanced

使うタイミング: すべてのプリファブを反復処理して、壊れた参照を修正したい — 1回のみ。

フロー
  1. スニペットを記述
    Roslynを使用してC#を実行します:Assets/Prefabs下のすべてのプリファブを反復処理し、MissingScriptコンポーネントを見つけ、プリファブ+欠落スクリプトguidをリストアップします。✓ コピーしました
    → 不正なプリファブのレポート
  2. 修正を適用
    これらのMissingScriptコンポーネントを削除し、各プリファブを保存します。✓ コピーしました
    → 更新されたプリファブ数

結果: 欠落スクリプト警告のないプロジェクト。

注意点
  • Roslyn実行はフルエディターパワーを持っています — 不正なスニペットはプロジェクトを破損させることができます — 実行前にgitにコミットし、実行前にコードスニペットを確認します
組み合わせ: github

スクリーンショットを使用してビジュアルリグレッションをトリアージする方法

👤 QA、ソロデベロッパー ⏱ ~10 min beginner

使うタイミング: テスターが「メニューがおかしく見える」と言い、基準画像をすばやく取得したい場合。

フロー
  1. 疑わしいシーンを開く
    シーンMainMenuを開き、UIカメラから1920x1080でスクリーンショットを撮影します。✓ コピーしました
    → スクリーンショットファイルパスが返される
  2. リファレンスと比較
    ゴールデンイメージです[添付]。違いを説明してください。✓ コピーしました
    → 具体的なコールアウト(オフセット、色、欠落要素)

結果: 画像証拠が添付されたバグレポート。

組み合わせ: github

組み合わせ

他のMCPと組み合わせて10倍の力を

unity-2 + github

チャットからリファクタリング+コミット+PRを自動化

PlayerController.Speedフィールドをすべての場所でMoveSpeedに名前変更し、テストを実行してコミットしてPRを開きます。✓ コピーしました
unity-2 + filesystem

外部3Dモデルをプロジェクトにインポート

~/Downloads/kenney/のすべての.fbxをAssets/Models/に移動させ、読み取り/書き込みを無効に設定します。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
scene_open path: str 検査または編集の前にシーンをロード free
gameobject_find query: str オブジェクトを配置 free
component_add target, type, values? コンポーネントをアタッチ free
script_create path, body 新しいC#ファイル free
csharp_execute code: str ワンショットエディター自動化 free
test_run mode: 'Edit'|'Play', filter? ユニット/プレイテストを実行 free
screenshot camera?: str, resolution?: {w,h} ビジュアル検証 free
console_read since_ms? 変更後のエラーをチェック free

コストと制限

運用コスト

APIクォータ
リモートAPI なし — すべてローカル
呼び出しあたりのトークン
シーンリストは大きくなる可能性があります。フィルターで制限します
金額
無料、オープンソース
ヒント
全階層ダンプより、狭いクエリ(gameobject_find 'Enemy*')を優先します。

セキュリティ

権限、シークレット、影響範囲

最小スコープ: プロジェクトへのローカルファイルシステム書き込み
認証情報の保管: なし — ローカルホストのみ
データ送信先: ローカルホスト。LLMプロバイダーは、ツールが返すシーン/スクリプトコンテンツを受け取ります。
絶対に付与しない: MCPのHTTPポートを非ループバックインターフェースに公開しないこと

トラブルシューティング

よくあるエラーと対処法

プロジェクトパスに空白が含まれる:ツールが失敗

プロジェクトを空白のないパスに移動します。これは既知の制限です。

CLIがUnityを見つけられない

UNITY_EDITOR_PATH環境変数をエディターバイナリに設定します。

確認: $UNITY_EDITOR_PATH -version
csharp_executeが「型が見つかりません」をスロー

実行前にUnityは正常にコンパイルされている必要があります。最初に赤いコンソールを修正して更新します。

代替案

Unity-MCP 他との比較

代替案代わりに使う場面トレードオフ
MCP for Unity (CoplayDev)最も一般的なオプションで、大規模なツール表面を使用したい場合Roslyn搭載の任意のC#実行がありません
mcp-unity (CoderGamester)シーン/テストに焦点を当てたシンプルな表面高度なツール数が少なくなります

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る