mcpField
U
UnrealMCP — AI Bridge for Unreal Engine 5

UnrealMCP — AI Bridge for Unreal Engine 5

ローカル
codefizz.devメディア・デザイン3912 週間前に更新

UnrealMCP — AI Bridge for Unreal Engine 5 について

UnrealMCPは、CLIまたはMCPクライアントからUnreal Engine 5エディターを操作するコミュニティ向けツールセットです。CLIと共通のプラグインを通じて、アセット、Blueprint、マテリアル、Niagara、アクター、データテーブル、プロファイリングのコマンドを提供します。

主な機能

  1. 0115カテゴリにわたる288コマンド
  2. 02Blueprintとマテリアルの編集
  3. 03Niagaraシステムの作成と設定
  4. 04アクターとデータテーブルの管理
  5. 05基本的なパフォーマンス分析
  6. 06CLIとMCPサーバーからの操作

活用シーン

  1. 01Blueprintグラフの構築とコンパイル
  2. 02マテリアルやNiagaraエフェクトの作成・調整
  3. 03アクターの配置とデータテーブルの編集
  4. 04AIクライアントからUnreal Engineプロジェクトを分析

MCP 対応

MCPサーバーはstdioで通信し、ローカルTCP経由でUnreal Engineエディター内のC++プラグインに接続します。Claude Code、Cursor、Windsurf、VS CodeなどのMCPクライアントで設定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"aadeshrao123-unreal": {
"command": "uvx",
"args": [
"unrealmcp"
]
}
}
}
起動コマンドuvx unrealmcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiunrealmcp1.3.1

ツール

286

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
codestringはい

詳細

UnrealMCP — Unreal Engine 5 向け AI ブリッジ

Claude Code、Cursor、Windsurf、またはあらゆる MCP クライアントから Unreal Engine 5 エディターを操作できます。 マテリアルの作成、Blueprint グラフの接続、Niagara システムの作成、アクターのスポーン、データテーブルの編集、パフォーマンスのプロファイリングまで、すべて指示するだけで実行できます。15 カテゴリにわたる 288 個のコマンドを、ターミナルを離れずに利用できます。

License: MIT UE 5.3+ MCP Pro version

これはコミュニティ版です

コミュニティ版は、対応範囲において安定しており、機能も完成しています。開発が放棄されたわけではありませんが、積極的に開発されているわけでもありません。現在、新しいサブシステムの開発は、メンテナンスが継続されている商用版の **CodeFizz Editor Agent**に移行しています。ここにあるすべての機能は引き続き動作し、Issue も引き続き確認されます。MIT ライセンスは永久に有効です。

Control Rig、PCG、Sequencer、Mutable、Procedural Vegetation、オーディオと MetaSounds、Behavior Trees と EQS、または UE 5.6/5.7/5.8 向けのパッケージ済みバイナリが必要な場合は、Pro 版をご利用ください。


コミュニティ版と Pro 版の比較

コミュニティ版(このリポジトリ)CodeFizz Editor Agent(Pro)
コマンド数288900 以上
カテゴリ数1528
エンジンのサポート自分でビルド5.6、5.7、5.8
Blueprint、マテリアル、Niagara、StateTree対応対応、さらに高度な機能も利用可能
Control Rig、PCG、Sequencer非対応対応
Mutable、Procedural Vegetation非対応対応
オーディオ、MetaSounds、Sound Cues非対応対応
Behavior Trees、EQS非対応対応
Insights によるプロファイリング基本機能トレースの完全な分析
インストールクローン、ビルド、設定1 つのコマンドで完了、コンパイラー不要
アップデートコミュニティのペース継続的に提供
サポートGitHub の Issue優先対応、非公開 Discord

コマンド一覧を見る → · ドキュメント · 3 日間の無料トライアル

すでに UE 5.8 をお使いですか? Epic は 5.8 でファーストパーティの MCP サーバーを提供しています(実験的機能、localhost のみ)。何かを購入する前に、まず試してみる価値があります。このリポジトリと Pro 版は、Epic の MCP サーバーが対応していない 5.6 と 5.7 にも対応しています。


このリポジトリの 2 つの利用方法

CLIMCP サーバー
インストールnpm install -g unrealclipip install unrealmcp
依存関係なし(単一バイナリ)Python 3.10 以降
対応クライアントClaude Code(Bash 経由)Claude Code、Cursor、Windsurf、VS Code、Gemini CLI、Rider、Zed、Amazon Q
プロトコルTCP による直接接続stdio 経由の MCP

どちらもエディター内で動作する同じ C++ プラグインと通信します。ワークフローに合った方法を使うか、両方を併用してください。


クイックスタート

オプション A:CLI(Claude Code におすすめ)
# 1. Install
npm install -g unrealcli

# 2. Go to any UE5 project and install the plugin
cd YourProject/
ue-cli init

# 3. Open the editor, then verify
ue-cli health_check

これだけです。Python も設定ファイルも MCP のセットアップも必要ありません。

オプション B:MCP サーバー(Cursor、Windsurf など向け)
# 1. Clone the plugin into your project
git clone https://github.com/aadeshrao123/Unreal-MCP.git Plugins/UnrealMCP

# 2. Install the Python MCP server
pip install unrealmcp

# 3. Add to your AI tool's config (see MCP Setup section below)

仕組み

                    ┌──────────────────────────────────────────┐
                    │         Unreal Engine 5 Editor            │
                    │                                          │
                    │   C++ Plugin (UnrealMCPBridge)           │
                    │   TCP server on localhost:55557           │
                    │   288 commands: materials, blueprints,   │
                    │   niagara, statetree, actors, data       │
                    │   tables, profiling, and more            │
                    └──────────────┬───────────────────────────┘
                                   │ TCP/JSON
                    ┌──────────────┴───────────────────────────┐
                    │                                          │
          ┌─────────┴─────────┐              ┌─────────┴──────────┐
          │   CLI (ue-cli)    │              │  MCP Server        │
          │   Go binary       │              │  Python (unrealmcp)│
          │   Direct TCP      │              │  stdio → TCP       │
          │                   │              │                    │
          │  Claude Code      │              │  Cursor, Windsurf, │
          │  (via Bash tool)  │              │  VS Code, Rider... │
          └───────────────────┘              └────────────────────┘

C++ プラグインはエディター内で動作し、TCP 経由で 288 個のコマンドを公開します。CLI と MCP サーバーは、同じプラグインにつながる 2 つの異なる入り口です。


CLI リファレンス

インストール
# From npm (recommended)
npm install -g unrealcli

# Or download binary directly from GitHub Releases
# https://github.com/aadeshrao123/Unreal-MCP/releases

対応プラットフォーム: Windows(x64)、macOS(Intel + Apple Silicon)、Linux(x64 + ARM64)

セットアップ
# Navigate to your UE5 project
cd MyProject/

# Install the C++ plugin (one-time)
ue-cli init
# → Creates Plugins/UnrealMCP/ with C++ source
# → Patches .uproject to enable the plugin
# → Open editor to compile, then you're ready

# Verify everything works
ue-cli doctor
使い方
# Every command follows this pattern:
ue-cli <command> [--flag value]

# Examples:
ue-cli health_check
ue-cli find_assets --class-type material --path /Game
ue-cli spawn_actor --name MyCube --type StaticMeshActor --location "[0,0,100]"
ue-cli get_data_table_rows --data-table-path /Game/Data/DT_Items
ue-cli save_all

# For complex params, use --json:
ue-cli build_material_graph --json '{"material_path":"/Game/M_Test","nodes":[...],"connections":[...]}'

# Or pipe from stdin:
echo '{"material_path":"/Game/M_Test","nodes":[...]}' | ue-cli build_material_graph --json -
ヘルプと機能の確認
# See all commands grouped by category
ue-cli --help

# See flags for a specific command
ue-cli find_assets --help

# Dump all commands with descriptions, flags, and examples (for AI assistants)
ue-cli list_commands
グローバルフラグ
フラグ説明
--port <int>TCP ポートの上書き(デフォルト:ポートファイルから自動検出)
--timeout <int>タイムアウト(秒)(デフォルト:30、大規模な処理:300)
--json <string>すべてのパラメーターを JSON 文字列で指定(標準入力には - を使用)
--versionバージョンを表示
主なコマンド
アセット
ue-cli find_assets --class-type material --path /Game/Materials
ue-cli list_assets --path /Game --class-filter blueprint
ue-cli get_asset_properties --asset-path /Game/Materials/M_Base
ue-cli import_asset --source-file "C:/Art/texture.png" --destination-path /Game/Textures
ue-cli save_asset --asset-path /Game/Materials/M_Base
ue-cli save_all
ブループリント
ue-cli create_blueprint --name BP_MyActor --parent-class Actor
ue-cli add_component_to_blueprint --blueprint-path /Game/BP_MyActor --component-class StaticMeshComponent
ue-cli add_event_node --blueprint-name BP_MyActor --event-name BeginPlay
ue-cli compile_blueprint --blueprint-name BP_MyActor
ue-cli read_blueprint_content --blueprint-path /Game/BP_MyActor
マテリアル
ue-cli create_material --name M_Red --path /Game/Materials
ue-cli build_material_graph --material-path /Game/Materials/M_Red \
  --nodes '[{"type":"Constant3Vector","pos_x":-400,"properties":{"Constant":"(R=1,G=0,B=0)"}}]' \
  --connections '[{"from_node":0,"to_node":"material","to_pin":"BaseColor"}]'
ue-cli create_material_instance --parent-path /Game/Materials/M_Base --name MI_Red
データテーブル
ue-cli get_data_table_schema --data-table-path /Game/Data/DT_Items
ue-cli get_data_table_rows --data-table-path /Game/Data/DT_Items
ue-cli add_data_table_row --data-table-path /Game/Data/DT_Items --row-name CopperOre \
  --data '{"DisplayName":"Copper Ore","StackSize":100}'
ue-cli update_data_table_row --data-table-path /Game/Data/DT_Items --row-name CopperOre \
  --data '{"StackSize":200}'
アクターとレベル
ue-cli get_actors_in_level
ue-cli spawn_actor --name MyCube --type StaticMeshActor --location "[0,0,100]"
ue-cli spawn_blueprint_actor --blueprint-path /Game/BP_MyActor --location "[500,0,0]"
ue-cli find_actors_by_name --pattern "Light"
ue-cli get_world_info
ue-cli take_screenshot
パフォーマンスプロファイリング
# Record → Stop → Analyze
ue-cli performance_start_trace --channels "cpu,gpu,frame"
# ... play the game ...
ue-cli performance_stop_trace
ue-cli performance_analyze_insight --query diagnose
ue-cli performance_analyze_insight --query flame --count 20
ue-cli performance_analyze_insight --query search --filter "ConveyorProcessor"
Enhanced Input
ue-cli create_input_action --asset-path /Game/Input/IA_Jump --value-type Boolean
ue-cli create_input_mapping_context --asset-path /Game/Input/IMC_Default
ue-cli add_key_mapping --context-path /Game/Input/IMC_Default --action-path /Game/Input/IA_Jump --key SpaceBar
Niagara VFX
# Create a system from an emitter template, then tweak it
ue-cli create_niagara_system --asset-path /Game/VFX/NS_Sparks \
  --template "/Niagara/DefaultAssets/FX_Sparks.FX_Sparks"
ue-cli get_niagara_system_info --asset-path /Game/VFX/NS_Sparks
ue-cli set_niagara_module_input --asset-path /Game/VFX/NS_Sparks \
  --emitter-name Sparks --stack SpawnStack \
  --module-name "Spawn Rate" --input-name SpawnRate --value 250
ue-cli compile_niagara_system --asset-path /Game/VFX/NS_Sparks

# Spawn it in the level
ue-cli spawn_niagara_effect --asset-path /Game/VFX/NS_Sparks --location "[0,0,200]"
StateTree
# Create a StateTree, add a state with a task, compile
ue-cli create_statetree --asset-path /Game/AI/ST_Enemy
ue-cli add_statetree_state --asset-path /Game/AI/ST_Enemy --state-name Patrol
ue-cli add_statetree_task --asset-path /Game/AI/ST_Enemy \
  --state-name Patrol --task-type "MassEnemyNestPatrolTask"
ue-cli add_statetree_transition --asset-path /Game/AI/ST_Enemy \
  --from-state Patrol --trigger OnEvent --event-tag "Enemy.SeePlayer"
ue-cli compile_statetree --asset-path /Game/AI/ST_Enemy
Mass Config Traits(部分的な編集)
# Modify a single trait property without touching the rest of the trait array
ue-cli get_mass_config_traits --asset-path /Game/Mass/Enemy_Config
ue-cli set_mass_config_trait_property --asset-path /Game/Mass/Enemy_Config \
  --trait-class MassMovementTrait --property-name MaxSpeed --property-value 600
ウィジェット(UMG)
ue-cli get_widget_tree --widget-blueprint-path /Game/UI/WBP_HUD
ue-cli add_widget --widget-blueprint-path /Game/UI/WBP_HUD --widget-class TextBlock \
  --parent-widget-name RootCanvas --widget-name TitleText \
  --widget-properties '{"Text":"Hello World"}'
診断
# Check entire setup
ue-cli doctor

# Output:
#   [ok] Project            MyProject/MyProject.uproject
#   [ok] Plugin directory   Plugins/UnrealMCP/ exists
#   [ok] Plugin source      Source/UnrealMCPBridge/ exists
#   [ok] UProject entry     UnrealMCP plugin listed and enabled
#   [ok] Port file          port 55557
#   [ok] TCP connection     Connected to 127.0.0.1:55557
#   [ok] Health check       Bridge is responsive
#   All checks passed. ue-cli is ready to use.

MCP サーバーのセットアップ

Model Context Protocol(Cursor、Windsurf、VS Code など)を使用する AI ツール向けです。

要件
  • Unreal Engine 5.7(5.7 でテスト済み。以前の 5.x バージョンでも動作する可能性があります)
  • Python 3.10+
  • UE5 プラグイン(.uplugin によって自動的に有効化されます):
    • PythonScriptPlugin
    • EditorScriptingUtilities
    • EnhancedInput
インストール
pip install unrealmcp
セットアップスクリプト(手動設定の代替)

セットアップスクリプトは unrealmcp pip パッケージをインストールし、使用する AI ツールの MCP 設定を自動的に作成します。

Windows:

cd Plugins\UnrealMCP
install.bat

macOS / Linux:

cd Plugins/UnrealMCP
bash install.sh

スクリプトでは、MCP 設定の作成場所を選択します。

スコープ動作使用する場合
プロジェクト.uproject と同じ場所に設定を作成しますこのプロジェクトだけで UnrealMCP を使用する場合
グローバルユーザーフォルダーに設定を作成しますすべてのプロジェクトで UnrealMCP を使用する場合
AI ツールの設定
Claude Code — .mcp.json(プロジェクトルート)
{
  "mcpServers": {
    "unreal": {
      "type": "stdio",
      "command": "unrealmcp"
    }
  }
}
Cursor — .cursor/mcp.json
{
  "mcpServers": {
    "unreal": {
      "command": "unrealmcp"
    }
  }
}
VS Code / Copilot — .vscode/mcp.json
{
  "servers": {
    "unreal": {
      "command": "unrealmcp"
    }
  }
}
Windsurf — ~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "unreal": {
      "command": "unrealmcp"
    }
  }
}
Gemini CLI — .gemini/settings.json
{
  "mcpServers": {
    "unreal": {
      "command": "unrealmcp"
    }
  }
}
JetBrains / Rider — .junie/mcp/mcp.json
{
  "servers": [
    {
      "name": "unreal",
      "command": "unrealmcp"
    }
  ]
}
Zed — ~/.config/zed/settings.json
{
  "context_servers": {
    "unreal": {
      "source": "custom",
      "command": { "path": "unrealmcp" }
    }
  }
}
Amazon Q — .amazonq/mcp.json
{
  "mcpServers": {
    "unreal": {
      "command": "unrealmcp"
    }
  }
}

全 288 コマンド

カテゴリ数主な機能
コア2health_check、execute_python
アセット管理16検索/一覧表示/インポート/複製/名前変更/削除/保存
ブループリント22作成、コンパイル、変数、関数、グラフノード
マテリアル35作成、build_material_graph、マテリアル関数、Substrate
データテーブル8行の完全な CRUD とスキーマの詳細確認
データアセット12データアセットとMass Config Trait の部分的な編集
アクターとレベル19スポーン、トランスフォーム、プロパティ、スクリーンショット
Enhanced Input21アクション、マッピングコンテキスト、トリガー、モディファイア
ウィジェット — UMG11ウィジェットツリー、追加/移動/名前変更、スロットのプロパティ
Niagara VFX96システム、エミッター、スタックバインディング(ネスト対応)、スクラッチパッドの作成、グラフの CRUD、DI メンバー関数、ソースメニューの検出
StateTree33ステート、タスク、評価関数、トランジション、条件、バインディング
パフォーマンスプロファイリング3.utrace の記録とスマート分析(診断/スパイク/フレームグラフ)
デバッグ2トークンの追跡、デバッグの切り替え
コア(2)
コマンド説明
health_checkブリッジが実行中か確認します
execute_pythonエディターで任意の Python コードを実行します
アセット管理(16)
コマンド説明
find_assetsクラス/パス/名前でアセットレジストリを検索します
list_assetsディレクトリ内のアセットを一覧表示します
get_asset_infoアセットのメタデータを取得します
get_asset_properties編集可能なすべてのプロパティを取得します
set_asset_propertyプロパティを設定します
find_references参照元/参照先を検索します
import_asset外部ファイル(PNG、FBX など)をインポートします
import_assets_batch一括インポートします
duplicate_asset新しい場所にコピーします
rename_asset名前を変更/移動します(参照を自動修正)
delete_asset削除します(参照を確認)
save_asset / save_all変更されたアセットを保存します
open_assetエディターで開きます
sync_browserコンテンツブラウザーを移動します
get_selected_assets現在選択中のアセットを取得します
ブループリント(22)
コマンド説明
search_parent_classes有効な親クラスを検索します
create_blueprint任意の親クラスから作成します
compile_blueprintコンパイルします
read_blueprint_content全体構造を読み取ります
analyze_blueprint_graphグラフを分析します
add_component_to_blueprintコンポーネントを追加します
create/get/set_blueprint_variable変数を管理します
set_blueprint_variable_properties変数の設定を変更します
create/delete/rename_blueprint_function関数を管理します
add_function_input/output関数のパラメーターを設定します
get_blueprint_function_details関数を調査します
get/set_blueprint_class_defaultsCDO プロパティを設定します
add_blueprint_nodeグラフノードを追加します(23 種類以上)
add_event_nodeイベントを追加します(BeginPlay、Tick など)
connect_blueprint_nodesノードを接続します
delete_blueprint_nodeノードを削除します
set_blueprint_node_propertyノードのプロパティを編集します
マテリアル(35)
コマンド説明
create_materialブレンド/シェーディングモードを指定して作成します
create_material_instanceパラメーターの上書きを指定して作成します
build_material_graphノードグラフ全体をアトミックに構築します
get_material_infoプロパティ/パラメーター/テクスチャを調べます
set_material_propertiesマテリアルのプロパティを一括設定します
add/delete/move/duplicate_material_expressionノードを管理します
connect_material_expressionsノードを接続します
set_material_expression_propertyノードのプロパティを設定します
disconnect_material_expression接続を解除します
layout_material_expressions自動レイアウトします
recompile_material強制的に再コンパイルします
get_material_errorsコンパイルエラーを取得します
get/set_material_instance_parameterMI パラメーターの上書きを管理します
list_material_expression_typesノードの種類を確認します
get_expression_type_infoノードのピンとプロパティを取得します
search_material_functionsマテリアル関数を検索します
validate_material_graph問題を診断します
trace_material_connectionデータフローを追跡します
cleanup_material_graph孤立したノードを削除します
add_material_commentsコメントボックスを追加します
create/get_material_functionマテリアル関数を管理します
build_material_function_graphMF グラフを構築します
add/set_material_function_input/outputMF のピンを管理します
validate/cleanup_material_functionMF を診断します
apply_material_to_actor/blueprintマテリアルを適用します
get_available_materialsマテリアルを一覧表示します
get_actor/blueprint_material_infoマテリアルスロットの情報を取得します
データテーブル(8)
コマンド説明
get_data_table_schema列名と型を取得します
get_data_table_rows / get_data_table_row行を読み取ります
add_data_table_row初期データを指定して行を追加します
update_data_table_row部分更新します
delete_data_table_row行を削除します
duplicate_data_table_row行をコピーします
rename_data_table_row行の名前を変更します
データアセット(12)
コマンド説明
create_data_asset任意のUDataAssetサブクラスを作成
get/set_data_asset_property(ies)プロパティを読み取り/書き込み(単一または一括)
list_data_assetsパス/クラスで参照
list_data_asset_classes読み込み済みのすべてのUDataAssetサブクラスを検出
get_property_valid_typesプロパティスロットで有効なドロップダウン値
search_class_pathsクラスパスを検索
get_mass_config_traitsMass Entity Configアセットのすべてのトレイトを調査
add_mass_config_traitMass Configに新しいトレイトを追加(既存の内容は維持)
set_mass_config_trait_property単一のトレイトプロパティをピンポイントでインプレース編集 — Traits配列は決して置き換えません
remove_mass_config_traitインデックスまたはクラスを指定して単一のトレイトを削除。ほかのトレイトには影響しません
アクターとレベル(19)
コマンド説明
spawn_actor組み込みのアクタータイプをスポーン
spawn_blueprint_actorBPアクターをスポーン
spawn_actor_from_classクラス名を指定してスポーン
get_actors_in_levelすべてのアクターを一覧表示
find_actors_by_name名前のパターンで検索
get_actor_propertiesアクターのプロパティを読み取り
set_actor_transform位置/回転/スケールを設定
delete_actorレベルから削除
get_selected_actorsビューポートの選択内容
get_world_infoレベル情報
set_static_mesh_propertiesメッシュの割り当て
set_physics_properties物理設定
set_mesh_material_colorマテリアルの色
apply_material_to_actor/blueprintマテリアルを適用
get_actor/blueprint_material_infoマテリアルスロット
get_available_materialsマテリアルを一覧表示
take_screenshotビューポートをキャプチャ
Enhanced Input(21)
コマンド説明
create_input_actionUInputActionを作成
get/set_input_action_propertiesアクションのプロパティ
add/remove_input_action_triggerアクショントリガー
add/remove_input_action_modifierアクションモディファイア
list_input_actionsアクションを参照
create_input_mapping_contextUInputMappingContextを作成
get_input_mapping_contextマッピングを読み取り
add/remove/set_key_mappingキーバインド
add/remove_mapping_trigger/modifierマッピングごとのオーバーライド
list_input_mapping_contextsコンテキストを参照
list_trigger_types / list_modifier_typesタイプを検出
list_input_keys有効なキー名
ウィジェット — UMG(11)
コマンド説明
get_widget_treeウィジェット階層
add_widget親に追加
remove/move/rename/duplicate_widgetウィジェット操作
get/set_widget_propertiesウィジェットのプロパティ
get/set_slot_propertiesレイアウトスロットのプロパティ
list_widget_types使用可能なウィジェットクラス
Niagara VFX(96)

エンドツーエンドでNiagaraを作成できます。スタック全体の読み取り、トップレベルまたはネストされた任意のバインディングの変更、スクラッチパッドのダイナミック入力の一からの作成、データインターフェースのメンバー関数を含む任意のグラフノードのスポーン、さらにエディターのドロップダウンで公開されるすべての有効なオプションの検出が可能です。Niagaraのエクスポート済みViewModel/Stack Graph APIを基盤とし、エクスポートされていないヘルパーを安全に再現します。

システム
コマンド説明
create_niagara_systemエミッターテンプレートまたは空の状態から作成
get_niagara_system_infoシステムのメタデータ、エミッター、パラメーター
list_niagara_systemsパスでNiagaraシステムを参照
delete_niagara_systemシステムを削除
compile_niagara_system強制的に再コンパイル
set_niagara_system_propertyトップレベルのシステムプロパティを設定
get_niagara_system_errorsコンパイルエラー/警告
get_niagara_particle_statsエミッターごとのパーティクル統計
get/set_niagara_playback_rangeプレビュー再生範囲
エミッター
コマンド説明
get_niagara_emittersシステム内のエミッターを一覧表示
add_niagara_emitterテンプレートから追加
remove_niagara_emitterエミッターを削除
duplicate_niagara_emitter新しい名前でエミッターを複製
reorder_niagara_emitterエミッターのインデックスを変更
set_niagara_emitter_propertyエミッターのプロパティを設定
get_niagara_emitter_attributesパーティクル属性(位置、速度など)を取得
モジュール(Spawn/Update/Render スタック)
コマンド説明
get_niagara_modules任意のスタック内のモジュールを一覧表示
add_niagara_moduleスクリプトアセットからモジュールを追加
remove_niagara_moduleモジュールを削除
set_niagara_module_enabledモジュールを有効/無効にする
reorder_niagara_moduleスタック内で並べ替え
get_niagara_module_inputs現在の値を含むモジュール入力を確認
set_niagara_module_inputリテラル値を設定(Module.* 入力を rapid-iteration に自動ルーティング。"Spawn Count.int32001" のようなネストされたドットパスに対応)
set_niagara_dynamic_input入力を動的入力関数に置き換え(ネストされたパスに対応)
set_niagara_curveカーブ入力のカーブポイントを設定
get_niagara_module_versionsスクリプトのバージョンを一覧表示
スタック入力バインディングのループ
コマンド説明
get_niagara_module_input_binding1 回の呼び出しですべての入力について、解決モード(Default/Local/Linked/Dynamic/Data/Expression)+ターゲット+再帰的な子要素を取得
clear_niagara_module_input入力(またはネストされたパス)をデフォルトにリセット — スタック UI の「Reset to Default」と同等
list_niagara_input_source_menuエディターのソースドロップダウンを再現 — エンジンの動的入力アセット+スクラッチパッドの DI+名前空間ごとにグループ化されたリンクパラメーター
パラメーターとバインディング
コマンド説明
get_niagara_user_parametersUser 名前空間のパラメーターを一覧表示
add_niagara_user_parameterUser パラメーターを追加
set_niagara_user_parameterUser パラメーターの値を設定
remove_niagara_user_parameterUser パラメーターを削除
link_niagara_parameterモジュール入力をパラメーターにバインド(ネストされたドットパスに対応)
get_niagara_rapid_iteration_parametersRI パラメーターを調査
set_niagara_rapid_iteration_parameterRI パラメーターの値を設定
list_niagara_available_parameters既知のパラメーター+ユーザーパラメーター+スクラッチパッドスコープのパラメーターを列挙
レンダラー
コマンド説明
add_niagara_rendererSprite/Mesh/Ribbon/Light レンダラーを追加
remove_niagara_rendererレンダラーを削除
get_niagara_renderer_infoバインディングごとの詳細(binding_name + bound_variable + type + dataset_variable)を含むレンダラーの概要
get_niagara_renderer_propertiesレンダラーのプロパティをすべてダンプ
set_niagara_renderer_propertyレンダラーのプロパティを設定
set_niagara_renderer_bindingレンダラー属性をパーティクルデータにバインド
スクラッチパッド — CRUD と適用
コマンド説明
create_niagara_scratch_pad_moduleエミッターごとのスクラッチモジュールを作成(module/dynamic_input/function)
list_niagara_scratch_pad_modulesシステム上のスクラッチパッドを一覧表示
duplicate_niagara_scratch_pad_module新しい名前で複製
rename_niagara_scratch_pad_moduleその場で名前を変更
delete_niagara_scratch_pad_moduleシステムから削除
apply_niagara_scratch_pad編集コピーをアセットに反映(Apply ボタン)
apply_and_save_niagara_scratch_pad適用してアセットを保存(Apply & Save ボタン)
create_niagara_module_asset再利用可能なスタンドアロン Niagara Module Script アセットを作成
スクリプトのプロパティ(詳細パネル)
コマンド説明
get_niagara_script_propertiesCategory、Description、Keywords、ModuleUsageBitmask、ProvidedDependencies、RequiredDependencies、LibraryVisibility、bDeprecated、bExperimental、NumericOutputTypeSelectionMode、ScriptMetaData、ConversionUtility を読み取ります
set_niagara_script_properties任意の項目をまとめて設定します(ProvidedDependencies などの TArray<FName> と TArray<FNiagaraModuleDependency> に対応)
スクリプトパラメーター(入力/出力)
コマンド説明
list_niagara_script_parametersスクラッチパッド/スタンドアロンスクリプトの入力と出力を一覧表示します
add_niagara_script_parameter登録済みの任意の型(データインターフェースを含む)の入力または出力パラメーターを追加します
remove_niagara_script_parameter削除します — Map Get/Map Set のピンも自動的に連動してクリーンアップされます
rename_niagara_script_parameterアセットと編集コピーのグラフ全体で名前を変更します
グラフのイントロスペクション
コマンド説明
get_niagara_graph_nodesverbosity(summary/connections/full)、type_filter、name_filter を指定してすべてのノードを一覧表示します。スクラッチパッド、エミッタースタックグラフ、スタンドアロンスクリプトの 3 つの解決モードがあります
get_niagara_node_infonode_index/node_class/node_id で単一ノードを詳細に調査します。ピンのレイアウト、リンク、型固有のフィールド(op_name、function_script、hlsl_preview、input_name/型)を取得します
trace_niagara_connectionpin_name フィルターを使用して上流/下流を BFS でたどります。グラフ全体を出力せずに依存関係の連鎖を確認できます
validate_niagara_graph孤立ノード/行き止まりノード/入力不足ノードを分類します(+Add プレースホルダーはスキップします)
グラフノードの CRUD
コマンド説明
add_niagara_graph_nodeOp/FunctionCall/DataInterfaceFunction/ParameterMapGet/ParameterMapSet/Reroute/Input ノードを生成します。DI メンバー関数(例:Array.Length)には UNiagaraDataInterface::GetFunctionSignatures を使用します。右クリックの「Functions」サブメニューと同じ経路です
delete_niagara_graph_nodeインデックスまたは GUID で削除し、アセットと編集コピーの両方に反映します
ピンの管理
コマンド説明
add_niagara_map_get_pinMap Get に型付き出力ピンを追加します(例:Vector 型の Module.MyParam)
add_niagara_map_set_pinMap Set に型付き入力ピンを追加します(例:Particles.Velocity)
add_niagara_node_pinUNiagaraNodeWithDynamicPins 派生ノードにピンを追加します
rename_niagara_node_pin動的ピンノードのピン名を変更します
remove_niagara_node_pin動的ピンを削除します
connect_niagara_pinsUEdGraphSchema_Niagara::TryCreateConnection の検証を使用して 2 つのピンを接続します
disconnect_niagara_pinsピンの接続を解除します
カスタム HLSL
コマンド説明
set_niagara_scratch_pad_hlslHLSL ソースをスクラッチパッドの Custom HLSL ノードに書き込みます(必要に応じてピンを作成します)
add_niagara_custom_hlsl_inputCustom HLSL ノードに入力ピンを追加します
add_niagara_custom_hlsl_outputCustom HLSL ノードに出力ピンを追加します
rename_niagara_custom_hlsl_pinピン名を変更します(HLSL 本文内の {PinName} 参照も書き換えます)
remove_niagara_custom_hlsl_pinピンを削除します
イベントとシミュレーションステージ
コマンド説明
add_niagara_event_handlerイベントハンドラーステージを追加します
add_niagara_simulation_stageシミュレーションステージを追加します
get_niagara_event_handlersエミッターのハンドラーを調べます
レベルへのスポーン
コマンド説明
spawn_niagara_effectワールド座標にスポーンします
control_niagara_effect有効化/無効化/再起動します
add_niagara_componentBlueprint に NiagaraComponent を追加します
get_niagara_actorsスポーン済みの Niagara アクターを検索します
検索(推測不要の作成)
コマンド説明
list_niagara_modules利用可能なすべての Niagara モジュールスクリプト
list_niagara_emitter_templatesエミッターテンプレート
list_niagara_data_interfaces利用可能なデータインターフェース(DI_*)
list_niagara_data_interface_functionsDI クラスのメンバー関数(Array.Length、Array.Get など)— 結果を add_niagara_graph_node(node_type="DataInterfaceFunction") に渡します
list_niagara_parameter_typesパラメーター型のレジストリ
list_niagara_node_typesピンスキーマを持つ生成可能なノードクラス
get_niagara_node_type_infoノードクラスまたはスクリプトアセットのピンスキーマ
search_niagara_functions使用状況と名前で Niagara スクリプトアセットを検索
get_niagara_schema_actionsグラフの右クリックメニュー全体 — エディターが使用するものと同じソースです。add_niagara_graph_node で直接使える op_name / function_script / input_name を返します
describe_niagara_type型の照会 — FNiagaraTypeRegistry の型に加え、スクリプトプロパティの列挙型やカスタム型向けの UEnum / UScriptStruct リフレクションフォールバック
get_niagara_data_interface_schemaDI クラスの編集可能なプロパティスキーマをたどります
find_niagara_scratch_pad_usage逆引き — このスクラッチパッドはどこから参照されていますか?
resolve_niagara_built_in_dynamic_inputエンジン同梱の DI スクリプトを AssetRegistry で検索します(ハードコードされたパスは不要です)
StateTree(33、新規)

StateTree アセットの読み取りと作成に対応します — ステート、タスク、評価器、トランジション、条件、パラメーター、バインディングを扱います。スキーマを認識し、StateTreeSchemaBase と Mass スキーマの両方で動作します。

読み取り
コマンド説明
get_statetree_infoアセットの概要(スキーマ、ステート、評価器)
get_statetree_full_info再帰的な完全ダンプ(ステート + タスク + トランジション + バインディング)
get_statetree_statesすべてのステートを一覧表示(フラット形式)
get_statetree_stateID または名前で指定した単一ステートの詳細
get_statetree_node任意のノード(タスク/評価器/条件)を調査
get_statetree_evaluatorsグローバル評価器
get_statetree_global_tasksグローバルタスク
get_statetree_parametersツリーパラメーター
get_statetree_bindingsすべてのプロパティバインディング
get_statetree_transition_targetsステートで有効なトランジション先
search_statetree_nodes名前/型でノードを検索
作成
コマンド説明
create_statetree新しい StateTree アセットを作成
set_statetree_schemaスキーマを設定(例:Mass スキーマ)
add_statetree_stateステートを追加(親またはルート)
add_statetree_taskステートにタスクを追加
add_statetree_evaluatorグローバル評価器を追加
add_statetree_global_taskグローバルタスクを追加
add_statetree_condition開始条件/トランジション条件を追加
add_statetree_transitionトランジションを追加(イベント/完了/デリゲート)
add_statetree_parameterツリーパラメーターを追加
add_statetree_bindingノード間でプロパティをバインド
compile_statetree編集後にコンパイル
変更
コマンド説明
set_statetree_state_propertyステートプロパティを編集
set_statetree_node_propertyタスク/評価器/条件のプロパティを編集
set_statetree_transition_propertyトランジションプロパティを編集
set_statetree_colorステートの色を設定
削除
コマンド説明
remove_statetree_stateステートを削除
remove_statetree_nodeタスク/評価器/条件を削除
remove_statetree_transitionトランジションを削除
remove_statetree_bindingバインディングを削除
remove_statetree_parameterパラメーターを削除
検索
コマンド説明
list_statetree_node_types利用可能なすべてのタスク/評価器/条件の型
list_statetree_enum_valuesプロパティのドロップダウンに表示する列挙値
パフォーマンスのプロファイリング(3)
コマンド説明
performance_start_trace.utrace の記録を開始します
performance_stop_trace停止して自動的に読み込みます
performance_analyze_insightスマート分析(診断、スパイク、フレーム、ホットパス、検索、ヒストグラムなど)
デバッグ(2)
コマンド説明
set_mcp_debugトークン追跡を有効にします
get_mcp_token_statsトークン使用状況の統計情報を取得します

使用例

これらは CLI と MCP サーバーの両方で動作します。CLI では、AI が Bash 経由で ue-cli を呼び出します。MCP では、AI がツールを直接呼び出します。

マテリアルの作成
Create a red metallic material at /Game/Materials/M_RedMetal
with roughness 0.3 and metallic 1.0

AI は create_material を呼び出し、続いて build_material_graph を呼び出して、定数ノードを Base Color、Metallic、Roughness ピンに接続します。

アクターのスポーン
Spawn 5 point lights in a circle around the origin at height 300

AI は、計算した位置を指定して actor_type: "PointLight" の spawn_actor を 5 回呼び出します。

ブループリントの作成
Create a Blueprint actor called BP_HealthPickup based on Actor,
add a Sphere Collision component and a Static Mesh component,
set it up so on BeginOverlap it prints "Health Picked Up"

AI は create_blueprint、add_component_to_blueprint、add_event_node、add_blueprint_node、connect_blueprint_nodes を使用します。

パフォーマンスのプロファイリング
Start a performance trace, play for 10 seconds, stop it,
then diagnose the bottlenecks

AI は performance_start_trace を呼び出し、待機してから performance_stop_trace を呼び出し、その後 query: "diagnose" を指定して performance_analyze_insight を呼び出します。

データテーブルの管理
Show me the schema of DT_Items, then add a new row called
"IronIngot" with StackSize 100

AI は get_data_table_schema を呼び出し、続いて適切なデータを指定して add_data_table_row を呼び出します。


設定

カスタムポート

Config/DefaultEngine.ini に追加します:

[UnrealMCP]
Port=55557
環境変数
# Force a specific port (overrides port file)
set UNREAL_MCP_PORT=55560
複数のエディターインスタンス

各エディターは固有のポートを自動的に選択します。CLI と MCP サーバーは Saved/UnrealMCP/port.txt からポートを読み込みます。特定のインスタンスを指定するには、--port フラグまたは UNREAL_MCP_PORT 環境変数を使用します。


アーキテクチャ

プラグイン構成
Plugins/UnrealMCP/
├── UnrealMCP.uplugin              # Plugin manifest
├── cli/                            # Go CLI source (ue-cli)
│   ├── cmd/                        # Command definitions (288 commands)
│   ├── internal/bridge/            # TCP client
│   ├── internal/project/           # Plugin embedding & project detection
│   └── npm/                        # npm package wrapper
├── unrealmcp/                      # Python MCP server
│   ├── _tcp_bridge.py              # TCP communication
│   └── tools/                      # Tool modules (one per category)
├── Source/UnrealMCPBridge/         # C++ editor plugin
│   ├── Public/                     # Headers
│   └── Private/                    # Implementation + command handlers
└── .github/workflows/release.yml   # CI: builds + GitHub Release + npm publish
通信プロトコル

長さプレフィックス方式のフレーミングを使用する TCP:

[4 bytes: big-endian payload length] [N bytes: UTF-8 JSON]

リクエスト:{"type": "command_name", "params": {...}} レスポンス:{"status": "success", "result": {...}}


カスタムコマンドの追加

CLI 側(Go)

適切な cmd/*.go ファイルに CommandSpec を追加します:

{
    Name:    "my_command",
    Group:   "mygroup",
    Short:   "What it does",
    Long:    "Detailed description.",
    Example: "ue-cli my_command --param value",
    Params: []ParamSpec{
        {Name: "param", Type: "string", Required: true, Help: "Description"},
    },
},
MCP 側(Python)

unrealmcp/tools/ に新しいファイルを作成します:

# unrealmcp/tools/my_tools.py
from unrealmcp._bridge import mcp
from unrealmcp._tcp_bridge import _call

@mcp.tool()
def my_command(param: str) -> str:
    """Description shown to the AI assistant."""
    return _call("my_command", {"param": param})

unrealmcp/tools/__init__.py に登録します:

from unrealmcp.tools import my_tools  # noqa: F401
C++ 側

Source/UnrealMCPBridge/Private/Commands/ にコマンドハンドラーを追加し、ExecuteCommand() に登録します。


対応する AI ツール

ツールインターフェース設定ファイル状態
Claude CodeCLI または MCPBash(CLI) / .mcp.json(MCP)テスト済み
CursorMCP.cursor/mcp.jsonテスト済み
VS Code / CopilotMCP.vscode/mcp.json対応
WindsurfMCP~/.codeium/windsurf/mcp_config.json対応
Gemini CLIMCP.gemini/settings.json対応
JetBrains / RiderMCP.junie/mcp/mcp.json対応
ZedMCP~/.config/zed/settings.json対応
Amazon QMCP.amazonq/mcp.json対応

トラブルシューティング

問題解決方法
"Connection refused"UE5 エディターは起動していますか?出力ログで MCP Bridge initialized on port XXXXX を確認してください
ue-cli doctor でポートファイルが見つからないと表示されるエディターがまだ起動していないか、Saved/UnrealMCP/port.txt を確認してください
コマンドがタイムアウトする大規模な操作(プロファイリング、複雑なグラフ)のタイムアウトは 300 秒です。増やすには --timeout 600 を使用してください
複数のエディター特定のインスタンスを指定するには、--port <num> または UNREAL_MCP_PORT 環境変数を使用してください
プラグインをコンパイルできないPythonScriptPlugin、EditorScriptingUtilities、EnhancedInput が有効になっていることを確認してください
Python のインポートエラーpip install fastmcp requests を実行してください。PATH 上の Python が使用する AI ツールの Python と一致していることを確認してください
プラグインが読み込まれないUnrealMCP.uplugin に "Type": "Editor" が設定されていて、必要なプラグインがエンジンのビルドで利用可能であることを確認してください

リリースと配布

チャンネルコマンド
npmnpm install -g unrealcli
GitHub Releasesバイナリをダウンロード
pip(MCP のみ)pip install unrealmcp

リリースは GitHub Actions によって自動化されています。タグをプッシュすると、次の処理が実行されます:

git tag v1.2.2 && git push origin v1.2.2
# → Builds 5 platform binaries
# → Creates GitHub Release
# → Publishes to npm + PyPI

コントリビューション

ガイドラインについては、CONTRIBUTING.mdをご覧ください。


エンタープライズおよびスタジオとの連携

Unreal MCP をスタジオの制作パイプラインに統合したいですか?このツールを基盤に、AI を活用したカスタムワークフローを構築するため、ゲームスタジオと直接連携しています。

提供内容:

  • パイプライン統合 — Unreal MCP を既存のビルドシステム、CI/CD、チームのワークフローに導入し、すべてのアーティストと開発者が、Unreal プロジェクトですぐに AI アシスタントを利用できるようにします
  • カスタムツールの開発 — オープンソース版では対応していない、スタジオ独自の形式や内部ツール、具体的な制作ニーズに合わせた MCP コマンドを構築します
  • AI ワークフローの設計 — マテリアル作成からレベルデザイン、アセットパイプラインまで、Unreal Engine でチームが AI アシスタント(Claude、Cursor、Copilot)を活用する方法を設計・実装します
  • 高度なマテリアルおよび Substrate システム — プロシージャルなマテリアル生成、Substrate ワークフロー、複雑なシェーダーパイプラインを MCP で完全に自動化します

お問い合わせ:


カスタム開発とサポート

Unreal プロジェクトについてサポートが必要ですか?ゲームプレイやマルチプレイヤーから、エディターツールや Mass Entity システムまで、UE5 C++ スタック全般の契約業務に対応しています。詳細はSUPPORT.mdをご覧ください。

[email protected] · LinkedIn · ポートフォリオ · Discord:destroyerpal


ライセンス

MPL-2.0 — 詳細はLICENSEをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。