Unity MCP Server について
Unity MCP Server は、MCP 対応の IDE やアプリから Unity Editor を開かずに Unity プロジェクトを調べられるサーバーです。プロジェクトファイルを読み取り、設定、コード、シーン、プレハブ、アセットの情報を提供します。
主な機能
- 01Editor を開かずにプロジェクトを調査
- 02プロジェクトとビルド設定の確認
- 03C# スクリプトとアセンブリの検索
- 04シーンとプレハブの概要確認
- 05アセット検索と参照の確認
活用シーン
- 01ビルドシーンとプロジェクト設定の確認
- 02種類や内容でスクリプトを検索
- 03シーンオブジェクトとプレハブのコンポーネントを調査
- 04欠損参照や特定アセットの参照元を検索
MCP 対応
MCP stdio 経由で、互換クライアントに Unity プロジェクトの調査ツールを提供します。`UNITY_PROJECT_PATH` でプロジェクトのルートを指定します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
134掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
Unity MCP Server
Unity 用 MCP サーバー — MCP 対応の IDE やアプリから、AI アシスタントが Unity プロジェクトに構造化された形でアクセスできるようにします。Unity Editor は不要です。
IDE がこのサーバーと通信し、サーバーが Unity プロジェクトのフォルダーを読み取って、プロジェクト情報、ビルドシーン、スクリプト、プレハブなどを返します。これにより、Editor を開かなくても AI が支援できます。
概要
- Editor 不要 — プロジェクトのファイルシステムから読み取るだけです。
- 1 つのサーバーで複数のプロジェクトに対応 — MCP 設定でプロジェクトごとに
UNITY_PROJECT_PATHを設定します。 - MCP ネイティブ — Model Context Protocol(stdio 経由のツール)に対応するすべてのクライアントで動作します。
対応 IDE とクライアント
このサーバーは標準の stdio 経由の MCP プロトコルを使用し、ツールを公開します。MCP サーバーを実行でき、環境変数を渡せる IDE やアプリであれば、どれでも動作します。よく使われるクライアントは次のとおりです。
| クライアント | 備考 |
|---|---|
| Cursor | MCP 設定にサーバーを追加し、env に UNITY_PROJECT_PATH を設定します。 |
| Claude Desktop | claude_desktop_config.json に追加します。同じコマンドと環境変数の形式を使用します。 |
| Claude Code | ツールを含む MCP に対応しています。 |
| VS Code | MCP 拡張機能(例:GenAI / Copilot MCP)を使用し、サーバーと UNITY_PROJECT_PATH を設定します。 |
| Windsurf | コマンドと環境変数を指定して MCP サーバーを追加します。 |
| Continue | Continue の設定で MCP サーバーを設定します。 |
| Cline | MCP のツールとリソースに対応しています。 |
| その他 | stdio 経由の MCP ツールに対応するすべてのクライアント(例:Zed、Roo Code、LibreChat、カスタムエージェント)。 |
設定方法はどのクライアントでも同じです。command = node、args = dist/index.js へのパス、env = UNITY_PROJECT_PATH = Unity プロジェクトのルートです。Cursor の例は以下の設定を参照してください。他のクライアントでも、それぞれの設定形式で同じ構造を使用します。
ツール
以下のカテゴリを展開すると、含まれるツールを確認できます。
📦 プロジェクトとビルド
| ツール | 説明 | 入力するプロンプトの例 | |------|-------------|-------------------------| | `get_project_info` | パス、Unity バージョン、ビルドシーン数、プレイヤー/製品名 | *「プロジェクトのパスと Unity バージョンは何ですか?」* · *「ビルドシーン数とプレイヤー名を表示して」* | | `list_build_scenes` | EditorBuildSettings のシーン(ビルド順) | *「ビルドに含まれるシーンはどれですか?」* · *「ビルドシーンを順番に一覧表示して」* | | `get_player_settings` | 製品名、会社名、バンドル ID、バージョン | *「プレイヤー設定は何ですか?」* · *「バンドル ID と会社名を表示して」* | | `list_packages` | manifest.json のパッケージ | *「インストール済みの Unity パッケージを一覧表示して」* | | `get_quality_settings` | 品質レベル | *「品質設定は何ですか?」* | | `get_scripting_defines` | グローバルおよびアセンブリごとの定義 | *「スクリプト定義を表示して」* · *「アセンブリごとに設定されている定義は何ですか?」* | | `get_physics_settings` | 物理演算/Physics2D の設定 | *「物理演算の設定は何ですか?」* | | `get_graphics_settings` | グラフィックス設定(GraphicsSettings.asset) | *「グラフィックス設定を表示して」* | | `get_time_settings` | 時間/固定タイムステップ(TimeManager.asset) | *「固定タイムステップはいくつですか?」* · *「時間設定を表示して」* | | `get_build_target_info` | アクティブなビルドターゲット/プラットフォーム | *「現在のビルドターゲットは何ですか?」* | | `get_feature_set_inference` | パッケージから Unity 6 の機能セット(2D、ECS、AR など)を推定 | *「このプロジェクトではどの機能セットを使用していますか?」* | | `get_project_version` | バンドルバージョン | *「バンドルバージョンは何ですか?」* | | `get_changelog` | CHANGELOG の内容 | *「変更履歴を表示して」* | | `get_audio_settings` | AudioManager.asset(全体音量、リバーブ、DSP バッファー) | *「オーディオ設定は何ですか?」* | | `get_navigation_settings` | ProjectSettings の NavMesh/エージェント設定 | *「NavMesh/ナビゲーション設定を表示して」* | | `get_xr_settings` | XR/VR プロジェクト設定 | *「どの XR または VR 設定が構成されていますか?」* | | `get_script_execution_order` | スクリプト実行順序(MonoManager) | *「スクリプト実行順序を表示して」* | | `get_version_control_settings` | シリアル化モード、表示されるメタファイル | *「バージョン管理/シリアル化の設定はどうなっていますか?」* | | `get_layer_collision_matrix` | レイヤー衝突マトリックスとレイヤー名 | *「レイヤー衝突マトリックスを表示して」* · *「どのレイヤー同士が衝突しますか?」* | | `get_cloud_services_config` | Unity Cloud/Unity Connect の設定 | *「Unity Cloud は設定されていますか?」* | | `get_package_dependency_graph` | パッケージ依存関係グラフ(manifest + lock) | *「パッケージ依存関係グラフを表示して」* | | `list_package_samples` | Packages 以下のサンプルフォルダー | *「パッケージのサンプルを一覧表示して」* | | `list_unity_hub_projects` | Unity Hub の Unity プロジェクト一覧(プロジェクトパスは不要) | *「Unity Hub のプロジェクトを一覧表示して」* |💻 コードとアセンブリ
| ツール | 説明 | 入力するプロンプトの例 | |------|-------------|-------------------------| | `list_assemblies` | 参照先やプラットフォームを含むアセンブリ定義 | *「アセンブリ定義を一覧表示して」* | | `get_assembly_for_path` | 指定したスクリプトまたはフォルダのパスを含むアセンブリ | *「Assets/Scripts/Player.cs を含むアセンブリはどれ?」* | | `list_scripts_by_assembly` | 指定したアセンブリ内の C# スクリプトのパス(名前または asmdef のパスで指定) | *「Assembly-CSharp 内のスクリプトを一覧表示して」* · *「MyGame.Runtime にはどのスクリプトがある?」* | | `list_asmdef_references` | 指定したアセンブリを参照するアセンブリ名(逆方向の依存関係) | *「MyGame.Core に依存しているのはどれ?」* | | `list_scripts` | C# スクリプト(フォルダで絞り込み可能) | *「すべての C# スクリプトを一覧表示して」* · *「Assets/Scripts 内のスクリプトを表示して」* | | `find_scripts_by_content` | 型やパターンで検索(例:MonoBehaviour) | *「MonoBehaviour を継承するスクリプトを探して」* | | `get_assembly_dependency_graph` | ノードとエッジ | *「アセンブリの依存関係グラフを表示して」* | | `list_editor_scripts` | Editor フォルダ内のスクリプト | *「エディタースクリプトを一覧表示して」* | | `list_visual_scripting_assets` | Bolt / Unity Visual Scripting の .asset ファイル | *「Visual Scripting のアセットを一覧表示して」* | | `get_script_public_api` | C# スクリプトを解析:クラス名、基底型、パブリックメソッド/フィールド | *「PlayerController.cs のパブリック API は?」* |🎬 シーンとプレハブ
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
list_all_scenes | Assets 内のすべての .unity ファイル | 「すべてのシーンを一覧表示して」 |
get_scene_summary | ルート GameObject とコンポーネント数 | 「MainMenu.unity を要約して」 · 「このシーンには何がある?」 |
get_scene_components_by_type | 指定したコンポーネント型(例:Camera、Light)を持つシーン内の GameObject | 「Game.unity で Camera を持つ GameObject はどれ?」 |
get_scene_objects_by_tag | 指定したタグ(例:Spawn)が付いたシーン内の GameObject | 「このシーンで Spawn タグの付いたオブジェクトを探して」 |
get_all_components_by_type | すべてのシーンにある Camera/Light など | 「プロジェクト内のすべての Camera を一覧表示して」 |
get_scene_hierarchy_flat | シーン内の GameObject のフラットな一覧(名前とレイヤー) | 「Main.unity のすべてのオブジェクトをレイヤーとともに一覧表示して」 |
get_lighting_scene_info | シーンのライティングアセットと GI ワークフローモード | 「Main.unity ではどのライティングを使っている?」 |
list_prefabs | プレハブ(パスのプレフィックスで絞り込み可能) | 「すべてのプレハブを一覧表示して」 · 「Assets/Prefabs 内のプレハブを一覧表示して」 |
list_prefab_variants | 別のプレハブのバリアントであるプレハブ | 「プレハブのバリアントを一覧表示して」 |
list_prefabs_with_component | 指定したコンポーネント型(例:Animator)を含むプレハブ | 「Animator を持つプレハブはどれ?」 |
get_prefab_summary | プレハブの概要:ルート名、コンポーネント数、コンポーネント型 | 「Hero.prefab を要約して」 · 「このプレハブには何がある?」 |
get_prefab_script_guids | プレハブで使用されるスクリプト GUID | 「Hero.prefab はどのスクリプトを使っている?」 |
list_subscenes | ECS/DOTS の .subscene アセット | 「サブシーンを一覧表示して」 |
📁 アセットと参照
| ツール | 説明 | 入力するプロンプトの例 | |------|-------------|-------------------------| | `get_asset_folder_tree` | Assets 内のフォルダツリー | *「アセットのフォルダツリーを表示」* | | `list_assets_by_extension` | 拡張子別(例:.png、.fbx) | *「すべての.pngテクスチャを一覧表示」* · *「FBXモデルを一覧表示」* | | `find_references` | パスまたは GUID を参照しているアセット | *「このアセットを参照しているものは?」* · *「Assets/Textures/hero.png を使用しているものを検索」* | | `list_large_assets` | N MB を超えるファイル(デフォルトは 5) | *「サイズの大きいアセットを一覧表示」* · *「10 MB を超えるものは?」* | | `list_video_clips` | 動画クリップアセット(.mp4、.mov、.webm など) | *「動画クリップを一覧表示」* | | `list_legacy_font_assets` | レガシーフォント(.fontsettings、.ttf、.otf)— TMP を除く | *「レガシーフォントを一覧表示」* | | `list_render_textures` | RenderTexture アセット | *「レンダーテクスチャを一覧表示」* | | `list_terrain_data` | TerrainData および TerrainLayer アセット | *「地形データを一覧表示」* | | `list_lighting_settings_assets` | ライティング関連の .asset ファイル | *「ライティング設定アセットを一覧表示」* | | `search_assets_by_name` | 名前のパターンで Assets(および任意で Packages)を検索 | *「名前に 'hero' を含むアセットを検索」* | | `get_texture_meta` | テクスチャの .meta(maxSize、dimensions、spriteMode、PPU) | *「hero.png のインポート設定は?」* | | `search_project` | 名前のパターン、スクリプトのパターン、および/またはパスの参照元をまとめて検索 | *「プロジェクトで X を検索」* · *「このパスを参照しているものは?」* | | `get_meta_for_asset` | 任意のアセットパスの .meta を読み取る(guid、インポーターキー) | *「Assets/Models/character.fbx の .meta を表示」* | | `get_broken_asset_refs` | GUID 参照が欠落している Prefab/Scene/Material | *「壊れたアセット参照を検索」* | | `list_scriptable_objects` | ScriptableObject インスタンスである .asset ファイル | *「すべての ScriptableObject アセットを一覧表示」* |🎨 マテリアルとシェーダー
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
list_materials | マテリアル(任意でフォルダを指定) | 「すべてのマテリアルを一覧表示」 · 「Assets/Materials 内のマテリアルを一覧表示」 |
list_materials_using_shader | 指定したシェーダー(GUID またはパス)を使用するマテリアル | 「Standard シェーダーを使用しているマテリアルは?」 |
list_shaders | Assets と Packages 内の .shader | 「シェーダーを一覧表示」 |
list_shader_graphs | Shader Graph アセット | 「Shader Graph アセットを一覧表示」 |
list_vfx_graphs | VFX Graph アセット | 「VFX Graph アセットを一覧表示」 |
🎞️ アニメーション
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
list_animator_controllers | .controller アセット | 「アニメーターコントローラーを一覧表示」 |
list_animation_clips | .anim アセット | 「アニメーションクリップを一覧表示」 |
get_animator_states | コントローラーのステート名 | 「Player.controller にはどのステートがある?」 |
get_animator_transitions | コントローラーのステート名と遷移元/遷移先 | 「Player.controller のアニメーター遷移を表示」 |
list_timeline_playables | Timeline の .playable アセット | 「Timeline のプレイアブルを一覧表示」 |
list_avatar_masks | Avatar Mask(.mask)アセット | 「アバターマスクを一覧表示」 |
list_animator_override_controllers | AnimatorOverrideController アセット | 「アニメーターオーバーライドコントローラーを一覧表示」 |
🖼️ 2D とスプライト
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
list_sprite_atlases | Sprite Atlas アセット | 「スプライトアトラスを一覧表示」 |
list_tilemap_assets | Tilemap 関連アセット | 「タイルマップアセットを一覧表示」 |
list_sprite_assets | スプライトとして設定されたテクスチャ(.meta 内の spriteMode) | 「スプライトアセットを一覧表示」 |
✨ レンダリング
| ツール | 説明 | 入力するプロンプトの例 | |------|-------------|-------------------------| | `list_render_pipelines` | URP/HDRP のパイプラインアセット、ボリュームプロファイル | *「レンダーパイプラインを一覧表示して」* · *「どんな URP/HDRP アセットがある?」* |📝 TextMeshPro と UI
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
list_tmp_fonts | TMP/フォントアセット | 「TextMeshPro のフォントを一覧表示して」 |
get_tmp_settings_path | TMP Settings アセットのパス | 「TMP Settings はどこ?」 |
list_ui_documents | .uxml と .uss(UI Toolkit) | 「UI Toolkit のドキュメントを一覧表示して」 · 「UXML と USS ファイルを一覧表示して」 |
🎮 入力
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
get_input_axes | InputManager の軸 | 「Input Manager には何がある?」 · 「入力軸を表示して」 |
list_input_action_assets | 新しい Input System の .inputactions | 「Input System のアクションアセットを一覧表示して」 |
get_input_actions_summary | ファイル内のアクションマップとアクション | 「Player.inputactions を要約して」 |
🌐 Addressables とローカライズ
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
get_addressables_info | グループと設定パス | 「Addressables のグループには何がある?」 |
get_localization_tables | ローカライズテーブルのファイル | 「ローカライズテーブルを一覧表示して」 |
🔊 オーディオ
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
list_audio_clips | .wav、.mp3、.ogg、.aiff | 「オーディオクリップを一覧表示して」 |
list_audio_mixers | Audio Mixer アセット | 「オーディオミキサーを一覧表示して」 |
🧪 テストとドキュメント
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
list_test_assemblies | テストアセンブリ定義 | 「テストアセンブリを一覧表示して」 |
get_repo_docs | README、CONTRIBUTING、.cursorrules など | 「リポジトリのドキュメントを表示して」 · 「README には何が書かれている?」 |
read_agent_docs | .agents/AGENT.md、任意の REPO_UNDERSTANDING.md | 「エージェントのドキュメントを読んで」 · 「AGENT.md を表示して」 |
🔄 CI とバージョン管理
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
list_ci_configs | .github/workflows、Jenkinsfile、unity-cloud-build | 「CI 設定を一覧表示して」 · 「GitHub ワークフローを表示して」 |
list_presets | .preset アセット | 「プリセットを一覧表示して」 |
get_git_lfs_tracked | .gitattributes の LFS パターン | 「Git LFS は何を追跡している?」 |
get_plastic_config | Plastic SCM の設定 | 「Plastic SCM の設定を表示して」 |
🔌 インテグレーション(設定の検出のみ)
| ツール | 説明 | 入力するプロンプトの例 | |------|-------------|-------------------------| | `get_playfab_config` | Title ID、設定パス | *「PlayFab は設定されていますか?」* | | `list_figma_related_assets` | Figma フォルダー/名前付きアセット | *「Figma 関連のアセットを一覧表示して」* | | `get_firebase_config` | GoogleServices のパス、プロジェクト ID | *「Firebase の設定を表示して」* | | `get_steam_config` | steam_appid.txt、Steamworks のパス | *「Steam は設定されていますか?」* | | `get_discord_config` | Discord SDK のパス | *「Discord の設定を表示して」* | | `get_fmod_config` | バンクのパス、バンクファイル | *「FMOD の設定を表示して」* | | `get_wwise_config` | サウンドバンク、プロジェクトのパス | *「Wwise の設定を表示して」* | | `list_substance_assets` | .sbsar、.sbs | *「Substance アセットを一覧表示して」* | | `list_speedtree_assets` | .spm、.stm | *「SpeedTree アセットを一覧表示して」* | | `list_lottie_assets` | Lottie の JSON アセット | *「Lottie アセットを一覧表示して」* | | `get_analytics_or_crash_config` | Sentry、Crashlytics、BugSnag など | *「どの分析機能やクラッシュレポート機能が設定されていますか?」* | | `get_ads_config` | Unity Ads、AdMob、ironSource の導入状況 | *「広告 SDK は設定されていますか?」* | | `get_multiplayer_stack` | Netcode/マルチプレイヤーパッケージとスクリプト | *「このプロジェクトではどのマルチプレイヤースタックを使っていますか?」* | | `get_ugs_cloud_stack` | Unity Gaming Services/Cloud Code の一覧 | *「UGS または Cloud Code は設定されていますか?」* |🧱 Unity 6 の対応範囲
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
list_build_profiles | Unity 6 のビルドプロファイルアセット | 「ビルドプロファイルを一覧表示して」 |
get_physics_stack | Unity Physics/Physics Core 2D/従来の物理演算 | 「物理演算スタックを監査して」 |
get_optimization_package_inventory | Adaptive Performance と Project Auditor | 「Adaptive Performance はインストールされていますか?」 |
get_accessibility_stack | アクセシビリティ API とパッケージ | 「アクセシビリティ API は使われていますか?」 |
list_cinemachine_assets | Cinemachine のカメラと関連アセット | 「Cinemachine アセットを一覧表示して」 |
get_platform_build_hints | Android/WebGL の PlayerSettings スニペット | 「プラットフォーム別のビルドに関するヒントを表示して」 |
get_render_pipeline_migration_hints | BIRP と URP/HDRP の移行リスク | 「まだ Built-in RP を使っていますか?」 |
get_localization_stack | Localization パッケージとロケールテーブル | 「ローカライズ設定を監査して」 |
⚡ 高速化と生産性
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
get_project_stats | 一括統計:スクリプト、プレハブ、シーン、マテリアル、アニメーション、アセンブリ、パッケージ | 「プロジェクトの統計を教えて」 · 「プレハブとシーンはいくつありますか?」 |
get_scene_referenced_assets | シーンが参照するアセットのパス(ビルドサイズ/影響範囲) | 「Main.unity が参照するアセットは何ですか?」 |
detect_assembly_cycles | アセンブリ定義内の循環参照(コンパイルエラーの修正用) | 「アセンブリの循環参照を検出して」 · 「アセンブリ間に循環参照はありますか?」 |
find_script_references | 型/クラス名を参照する C# ファイル(リファクタリング用) | 「PlayerController の参照を検索して」 |
get_broken_script_refs | スクリプト参照が欠落しているプレハブ/シーン | 「スクリプトが欠落しているプレハブを検索して」 |
get_prefab_dependencies | プレハブが参照するアセットのパス(影響分析用) | 「Hero.prefab は何に依存していますか?」 |
get_release_readiness | 一括確認:バージョン、ビルドシーン、パッケージ、参照切れ、循環参照、大容量アセット | 「プロジェクトはリリース可能な状態ですか?」 · 「リリース準備状況を確認して」 |
get_build_size_estimate | ビルドサイズの推定:ビルドシーンの合計サイズと最大アセット | 「ビルドサイズはどれくらいですか?」 · 「ビルド内の最大アセットを表示して」 |
🤖 AI と ML
| ツール | 説明 | 入力するプロンプトの例 | |------|-------------|-------------------------| | `get_ai_stack_summary` | AI のワンショット監査:パッケージ、モデル、スクリプト、ML-Agents の YAML | *「このプロジェクトではどの AI を使っていますか?」* · *「AI スタックの監査を実行して」* | | `get_ai_ml_package_inventory` | ML-Agents、Sentis、Barracuda、AI Navigation、Muse、Unity AI | *「Unity の AI/ML パッケージを一覧表示して」* | | `list_ml_model_assets` | `.onnx`、`.nn`、`.pt`、`.tflite`、`.pb` のモデルファイル | *「プロジェクト内の ONNX モデルを一覧表示して」* | | `find_ai_related_scripts` | Sentis、ML-Agents、NavMesh、ビヘイビアツリー、LLM API を使用する C# | *「ML-Agents または Sentis を使用しているスクリプトはどれですか?」* | | `list_ml_agents_training_configs` | ML-Agents のトレーナー用 YAML 設定 | *「ML-Agents のトレーニング設定を探して」* | | `list_ai_prompt_or_config_assets` | Assets 内のプロンプト/RAG のような JSON または MD | *「Assets に LLM プロンプトのアセットはありますか?」* | | `list_ai_skills` | Unity のドメイン別にバンドルされたスキル(39 種:シーン、マルチプレイヤー、ビルドプロファイルなど) | *「Unity のスキルを一覧表示して」* | | `read_ai_skill` | ID でスキルを読み込みます(例:`unity-scenes-workflow`、`unity-multiplayer-netcode`) | *「unity-ai-audit スキルを読んで」* |🔍 メタ
| ツール | 説明 | 入力するプロンプトの例 |
|---|---|---|
search_tools | 意図に基づいて関連ツールを検索します(例:参照の検索、スクリプトの欠落)。クエリを省略すると、カテゴリ別にすべてのツールを一覧表示します。 | 「どのような Unity ツールがありますか?」 · 「参照を検索するツールを探して」 · 「カテゴリ別にすべてのツールを一覧表示して」 |
search_tools の使用方法 — 任意の query を渡すと、名前、説明、カテゴリでツールを絞り込めます。query を省略すると、カテゴリ別にグループ化されたカタログ全体が返されます。
| 意図 | クエリの例 | 取得できるツール(概念上) |
|---|---|---|
| アセットを参照しているものを探す | find references | find_references、search_project、… |
| プレハブのスクリプト欠落を修正する | missing script | get_broken_script_refs、… |
| テクスチャを扱う | texture | get_texture_meta、list_assets_by_extension、… |
| プレハブを一覧表示または調査する | prefab | list_prefabs、list_prefabs_with_component、get_prefab_dependencies、… |
| シーンとビルド順序 | scene または build | list_all_scenes、list_build_scenes、get_scene_summary、… |
| C# スクリプトと API | script または assembly | list_scripts、get_script_public_api、find_scripts_by_content、… |
| アニメーション | animation または animator | list_animator_controllers、list_animation_clips、… |
| すべてを一覧表示する(フィルターなし) | (クエリを省略) | カテゴリ別にグループ化されたすべてのツール |
すべてのツールはプロジェクトのファイルシステムのみを読み取ります。
実際の使用例
これらを Claude、Cursor、または任意の MCP クライアントにコピーして貼り付けてください(このサーバーを設定し、UNITY_PROJECT_PATH を設定してください)。AI が適切なツールを選択します。
| 役割 | プロンプトの例 |
|---|---|
| 開発者 | 「Assets/Scripts/Player.cs を含むアセンブリはどれですか?」 · 「MyGame.Runtime 内のスクリプトを一覧表示して」 · 「MyGame.Core に依存しているのはどれですか?」 · 「アセンブリの依存関係に循環はありますか?」 · 「リリース準備状況のチェックを実行して」 |
| テスター | 「ビルドに含まれるシーンはどれですか?」 · 「名前に test が含まれるアセンブリを一覧表示して」 · 「プロジェクトはリリース可能な状態ですか?」 · 「ビルドサイズと、最も大きなアセットは何ですか?」 |
| ゲーム開発者 | 「Animator があるプレハブはどれですか?」 · 「Hero.prefab を要約して」 · 「Player.controller の Animator 遷移を表示して」 · 「入力アクションアセットを一覧表示して」 |
| ゲームデザイナー | 「Standard シェーダーを使用しているマテリアルはどれですか?」 · 「すべての ScriptableObject アセットを一覧表示して」 · 「Main.unity を要約して」 · 「Main.unity ではどのようなライティングを使用していますか?」 · 「Main.unity 内のすべてのオブジェクトをレイヤーとともに一覧表示して」 |
Claude/Cursor またはその他の MCP クライアントで入力する内容
Claude、Cursor、またはその他の MCP クライアントでは、自然言語で指示してください。AI が適切なツールを選びます。上記の各ツール表にある 入力するプロンプトの例列を使用してください。これらは、チャットに入力して目的の結果を得るためのフレーズです。
前提条件
- Node.js 18+
- UNITY_PROJECT_PATH — Unity プロジェクトルートの絶対パス(MCP クライアントで設定)
インストール
git clone https://github.com/rachitkumarrastogi/unity-mcp-server.git
cd unity-mcp-server
npm install
npm run build
サーバーは stdio を使用します。MCP クライアントが自動的に起動します。
設定
Cursor の例(Claude Desktop、VS Code + MCP、Windsurf などでも同様です):
{
"mcpServers": {
"unity": {
"command": "node",
"args": ["/absolute/path/to/unity-mcp-server/dist/index.js"],
"env": {
"UNITY_PROJECT_PATH": "/absolute/path/to/YourUnityProject"
}
}
}
}
パスを実際のパスに置き換えてください。Claude Desktop の場合は、claude_desktop_config.json の mcpServers の下に、同じ command、args、env を持つエントリーを追加してください。VS Code の場合は、MCP 拡張機能の設定を使用して、サーバーと UNITY_PROJECT_PATH を追加してください。その他のクライアントも、各自の設定ファイルで同じパターンに従います。
開発
- ビルド済みのものを実行:
node dist/index.js - 開発モードで実行:
npm run devまたはnpx tsx src/index.ts
Unity Editor との連携
-
現在のワークフロー: AI は IDE(Cursor、MCP を使用する VS Code、Claude Desktop、Windsurf、またはその他の MCP 対応クライアント)内で動作します。このサーバーは AI にプロジェクト(シーン、スクリプト、設定、関連アセット)への読み取り専用アクセスを提供します。シーンを開いたり、Play モードに入ったり、ビルドしたりするには、Unity Editor を別途実行します。AI はサーバーを使用してプロジェクトを調査し、変更を提案したり、質問に答えたり、リファクタリングを支援したりします。
-
将来の互換性: このサーバーは stdio 経由の標準 MCP プロトコルを実装しており、環境変数(
UNITY_PROJECT_PATH)を 1 つだけ必要とします。Unity Editor に MCP クライアントの組み込みサポートが追加された場合は、同じ設定でこのサーバーに接続できます。コマンドはnode、引数はdist/index.jsを指定し、環境変数にUNITY_PROJECT_PATHを設定します。このコードベースを変更する必要はありません。
セキュリティ
このリポジトリには、ゲームのコード、アセット、シークレットは含まれていません。Unity プロジェクトのパスは、実行時に MCP クライアントから渡されます。このサーバーは、パブリック用途とプライベート用途のどちらにも適しています。
ドキュメント
- MCP Registry — 公式レジストリからこのサーバーを見つけてインストールできます。
- ガイド: クイックスタート · 公開 · 役割別ツール
- スキル: Unity 領域のエージェントスキル
- 変更履歴: CHANGELOG.md
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。