unreal-mcp-ue4-for-ohd について
unreal-mcp-ue4-for-ohdは、Operation Harsh Doorstop OHDCore Mod Kit向けのUE4.25.4用MCPサーバーです。Unreal Editor内蔵のPython Remote Executionを介して、Python 2.7対応スクリプトで開発中のプロジェクトを操作できます。
主な機能
- 01プロジェクト、マップ、アセット情報の取得
- 02レベル内Actorの作成、確認、変換
- 03アセット検索と参照・メタデータの確認
- 04一般的なUE4アセットの作成と編集
- 05Python 2.7対応のエディタースクリプト実行
活用シーン
- 01現在のプロジェクトやレベルの確認
- 02レベル内Actorの作成や調整
- 03アセットの検索と参照先の確認
- 04Blueprintやデータアセットの作成・変更
MCP 対応
stdio経由でMCPクライアントに34個のツールを公開し、Python Remote Executionを通じてUnreal Editorに接続します。クライアントから開いているエディターセッションを読み取り、変更できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
34掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
unreal-mcp-ue4-for-OHD
Unreal Python Remote Execution(stdio トランスポート)を介して Operation Harsh Doorstop の Mod 制作を行う、UE4.25.4 を優先した MCP サーバーです。
runreal/unreal-mcp のフォークで、UE4 を優先する形に大幅にリファクタリング(UE4.27.2 の段階を経由)し、OHDCore Mod Kit 向けに UE4.25.4 に対応させました。トランスポートとツールの構成は同じですが、バージョンの固定、ドキュメントへのリンク、Python の方言に関する制約を、キットに組み込まれた Python 2.7.14 に合わせて調整しています。移植、ツール、ドキュメント、スモークテストの作業には OpenAI Codex の支援を利用しました。
メモ
現在も開発中です。バグや不完全な部分、UE4.25 固有の制限がある場合があります。 公開パッケージ:
unreal-mcp-ue4-for-ohd· レジストリ名:io.github.RibatTRW/unreal-mcp-ue4-for-ohd
注意
Epic Games の公式プロジェクトではありません。接続された MCP クライアントは、開いているエディターセッションを調査・変更できます。特にアセットやワールド生成のツールを使う場合は、まず使い捨てのテストプロジェクトでお試しください。
目次
- 要件 · セットアップ · unreal-mcp-ue4 からの移行 · エディターのリモート実行 · 使い方 · サイドバータブ · 内部構造 · テスト · 公開 · 利用可能なツール · コントリビューション · トラブルシューティング · 注記と制限事項 · ロードマップ · ライセンス
要件
| 必要なもの | 固定バージョン |
|---|---|
| Unreal Engine | OHDCore Mod Kit 経由の 4.25.4:エンジンツリー HDEngine/、プロジェクト HDGame/HarshDoorstop/HarshDoorstop.uproject、LaunchEditor.bat で起動 |
| ランタイム | Node.js 20+、npm |
| クライアント | 任意の MCP クライアント(Codex、Claude Code、Claude Desktop、Cursor、対応 IDE の Copilot) |
| エディターペイロード | Python 2.7 のみ(キットには 2.7.14 が組み込まれています):f-string、引数 1 つの print()、pathlib 時代の慣用表現は使用できません |
参考:Unreal Engine Python API 4.25。カスタム C++ プラグインは不要です。このサーバーはエディターに組み込まれた Python Remote Execution を使用します。UE5 専用のスクリプト機能は再導入していません。信頼性の低いグラフ/バインディングの処理フローは MCP の対象から除外するか、黙って失敗する代わりに明確なメッセージを返します。
graph TD
A[MCP client] --> B[unreal-mcp-ue4-for-ohd stdio server]
B --> C[manage_* namespaces + direct tools]
C --> D[Python 2.7 payloads]
D --> E[Unreal Editor via Remote Execution]
セットアップ
無人でセットアップする自律エージェントの場合は、docs/agent-setup.mdの手順に従ってください。
npm install -g unreal-mcp-ue4-for-ohd # recommended; then reference the `unreal-mcp-ue4-for-ohd` binary
npx unreal-mcp-ue4-for-ohd # one-off invocation
ローカルのソースチェックアウトの場合:
git clone https://github.com/RibatTRW/unreal-mcp-ue4-for-OHD.git
cd unreal-mcp-ue4-for-OHD
npm install
npm run build # produces `dist/bin.js`, `dist/index.js`, `dist/editor/tools.js`
インストールは1回だけ行い、クライアントごとに1行設定します(グローバルインストールとローカルチェックアウトの各バリアント)。すべてのクライアントは、stdio 経由で同じ34個のツール(セッション情報3個+アクターの直接 CRUD プリミティブ3個+manage_* 名前空間28個)を呼び出します。
| クライアント | グローバルインストール | ローカルチェックアウト |
|---|---|---|
| Claude | claude mcp add --scope user unreal-mcp-ue4-for-ohd -- unreal-mcp-ue4-for-ohd | claude mcp add --scope user unreal-mcp-ue4-for-ohd -- node /absolute/path/to/unreal-mcp-ue4-for-OHD/dist/bin.js |
| Codex | codex mcp add unreal-ue4 -- unreal-mcp-ue4-for-ohd | codex mcp add unreal-ue4 -- node /absolute/path/to/unreal-mcp-ue4-for-OHD/dist/bin.js |
| Copilot | .vscode/mcp.json → { "servers": { "unreal-ue4": { "command": "unreal-mcp-ue4-for-ohd", "args": [] } } }を設定し、MCP 設定 UI からサーバーを起動して、ツール選択画面にunreal-ue4が表示されていることを確認します | 同じファイルで"command": "node", "args": ["/absolute/path/to/unreal-mcp-ue4-for-OHD/dist/bin.js"]を設定します |
Copilot のドキュメント:MCP サーバーで GitHub Copilot Chat を拡張する · GitHub Copilot における Model Context Protocol について
unreal-mcp-ue4 からの移行
このフォークは、アップストリームとは独立してリリースできるよう、独自の名称に変更されました。アップストリームへの謝辞:UE4 系統はconaman/unreal-mcp-ue4(こちらもrunreal/unreal-mcpからのフォーク)をベースにしています。
警告
npm install -g unreal-mcp-ue4でインストールされるのは、アップストリームの UE4.27 ビルドであり、このフォークではありません。OHD/UE4.25.4 向けの再ターゲット版をインストールするには、名称変更後のパッケージをインストールしてください。
| 変更前(アップストリーム名) | 変更後(このフォーク) |
|---|---|
npm install -g unreal-mcp-ue4 | npm install -g unreal-mcp-ue4-for-ohd |
npx unreal-mcp-ue4 | npx unreal-mcp-ue4-for-ohd |
unreal-mcp-ue4 --version | unreal-mcp-ue4-for-ohd --version |
レジストリ io.github.conaman/unreal-mcp-ue4 | レジストリ io.github.RibatTRW/unreal-mcp-ue4-for-ohd |
クライアントでサーバーを再登録してください(unreal-ue4などのローカルサーバーのラベルは変更されず、コマンドのみ変更されます)。
claude mcp add --scope user unreal-mcp-ue4-for-ohd -- unreal-mcp-ue4-for-ohd
codex mcp add unreal-ue4 -- unreal-mcp-ue4-for-ohd
Copilot の.vscode/mcp.json:"command"を"unreal-mcp-ue4-for-ohd"に変更し、unreal-ue4のサーバーキーはそのままにします。
エディターのリモート実行
キットを使ったライブ環境で動作確認済みです。OHD エディター(LaunchEditor.bat → HarshDoorstop.uproject)で、次の手順を実行してください。
Edit -> Plugins:Python Editor Script Pluginを有効にします(標準では無効です)。Editor Scripting Utilitiesはすでに有効なので、操作は不要です。高度なmanage_sequenceアクション(アクターのバインド、トラック/キーの編集、カットの設定、再生範囲、速度トラックの分析)を使う場合に限り、SequencerScriptingを有効にします(標準では無効です)。- プロンプトが表示されたら再起動し、
Edit -> Project Settings -> Plugins -> PythonでEnable Remote Executionを有効にします(エンドポイントは239.0.0.1:6766、バインドは0.0.0.0、Multicast TTL はキットのデフォルト値0から1に引き上げます)。必要に応じて、もう一度再起動します。 - サーバーまたはテストの使用中は、プロジェクトを開いたままにしてください。プラグインまたは Python の設定を変更した後は、エディターを再起動してください。
- インストールが必要な UMG プラグインはありません(ツールは同梱のエディターモジュールを使用します)。MOD の実験は使い捨てのコンテンツ専用 MOD(エディターで Create Mod)で行い、同梱されている
Plugins/*、HDAssets、エンジンコンテンツは編集しないでください。
接続の環境変数による上書き(UNREAL_MCP_*):
| 変数 | デフォルト |
|---|---|
UNREAL_MCP_BIND_ADDRESS / UNREAL_MCP_COMMAND_ADDRESS | 内部ネットワーク用ではない IPv4 アドレスのうち、最初のもの |
UNREAL_MCP_COMMAND_PORT | 6776 |
UNREAL_MCP_MULTICAST_ADDRESS / UNREAL_MCP_MULTICAST_PORT / UNREAL_MCP_MULTICAST_TTL | 239.0.0.1 / 6766 / 1 |
UNREAL_MCP_RETRY_COUNT / UNREAL_MCP_RETRY_DELAY_MS | 組み込みの再試行ポリシー |
使用方法
manage_*名前空間のツールを優先してください(アクション固有の入力スキーマは MCP 経由で公開されます)。名前空間はaction+paramsでディスパッチされます。標準的な読み取りには、プロジェクト情報としてmanage_editor.project_info、マップ/レベル情報としてmanage_editor.map_info+manage_level.world_outlinerを使用します。manage_tools(list_namespaces)で利用可能な機能を確認してください。- 直接ツール(
get_unreal_*、editor_create/update/delete_object)は、セッションパスの検出とアクターの CRUD に使う低レベルのプリミティブです。 manage_editor.run_pythonは、デバッグ、プロトタイピング、UE4.25 の API にない機能に対応するための手段です。引き続き Python 2.7 と互換性があります。
初回実行:キットプロジェクトを開いて読み込みが完了するまで待つ → プラグインとリモート実行を確認する → npm install -g unreal-mcp-ue4-for-ohd(または npm run build)を実行する → クライアントセッションを開く/開始する → 読み取り専用の操作を実行する:
unreal-mcp-ue4-for-ohd --version(バージョンを表示します。stdio トランスポートは使用しません)manage_editor+action: "project_info"/"map_info"·manage_level+"world_outliner"·manage_tools+"list_namespaces"- 自然文での例:
unreal-ue4 serverからプロジェクト情報を取得してください。·現在のレベルにあるアクターを一覧表示してください。·0,0,100にTestCubeという名前のStaticMeshActorをスポーンしてください。
サーバーでできること:プロジェクト/マップ/アセット/アクター情報の読み取り、レベルアクターのスポーン、確認、移動、削除、アセットの検索と参照/メタデータの確認、DataAsset/StringTable などの一般的な UE4 データアセットの作成、UE4.25 Python で API が公開されている範囲での Blueprint アセットと Widget Blueprint ツリーの作成/編集。
サイドバータブ
1回の呼び出しで、EUW(Editor Utility Widget)のサイドバータブを最初から最後までセットアップできます。EUW アセットと WebBrowser 子要素を作成し、ビューポートの横に Web ページを表示します。
manage_widget + action: "setup_sidebar_tab"、パラメーターは widget_blueprint_path(例:/Game/DSHSidebar)、url(任意のページ URL。DSH Web GUI を使うのが慣例です)、use_template: true(対象が存在しない場合、ゼロから作成する代わりにゴールデンテンプレートから複製します。テンプレートには完全に埋め込まれた DSHBrowser と、動作確認済みの On Key Down ショートカット修正が含まれます。再実行しても冪等で、既存の対象を再利用しながら URL/レイアウトを更新します)。
注意事項:DSH 以外のページではエディターを操作するループは使えません(ページ内で入力してもビューポートには何も起きません)。4.25 の CEF 制限が適用されます(完全なアプリでは空白になる場合でも、最小限のページは表示されます)。テンプレートを初めて使うと template_staged が報告されます(4.25 の Asset Registry は、再起動するまでステージング済みの /Game ファイルを認識できません。再起動後に再実行してください)。テンプレートを使う場合、独自の browser_widget_name は警告とともに無視され、DSH アセット名/ブラウザー名が維持されます。開いたタブの表示が古い場合は、デザイナーで Widget Blueprint を Compile してから、ビューポートの横にドッキングしてください。
内部構造
TypeScript 7 のネイティブツールチェーン(tsc -p tsconfig.json、実証済みの ES2022、Node 20)、stdio トランスポート、Effect に移行したディスパッチ/接続レイヤー(Zod は MCP SDK の呼び出し箇所で引き続き使用します。SDK が受け付けるのは Zod のみです)。最近のパフォーマンス改善:
| 項目 | 概要 |
|---|---|
| Prelude キャッシュ | 静的な Python prelude をレンダー境界の背後にあるエディターセッション内でキャッシュします。キャッシュ可能なレンダーのサイズは全体の約 1~5%で、キャッシュミス時は1回再送します(scripts/check-prelude-cache.mjs) |
| スキーマの圧縮 | 最も大きい7つのツールスキーマを圧縮し、listTools のペイロードを削減します。機能一覧は scripts/__snapshots__/list-tools.snapshot.json で固定されています(scripts/check-tool-surface.mjs) |
| バリデーションの断片 | 共通の limit/アセットパスバリデーターを複数の名前空間で使用します |
| バッチ設計 | docs/w1-batch-design-memo.md にハーネスレベルのチェーン処理に関するメモがあります。オフラインのプロトタイプは成功しています(scripts/check-batch-prototype.mjs)。ライブゲートは未実行です |
| 接続ヘルスヒント | 有効期間の短い健全な接続のヒントにより、冗長な再接続を省略します |
テスト
| コマンド | エディターが必要? | 対象 |
|---|---|---|
npm run check:py27 | いいえ | Python 2.7 方言のチェックゲート — server/editor/scripts を変更した後に実行します |
npm run test:no-unreal | いいえ | オフライン:MCP の起動、ツールの検出、名前空間アクションのスキーマ、パラメーターの検証、ペイロードコーデック、バッチプロトタイプ、プリアンブルキャッシュ、ツールサーフェス、ディスパッチエンベロープ、スキーマの整合性、接続セッション |
npm run test:e2e | はい | ビルドし、独自の MCP サーバープロセスを起動して、開いているエディターに接続します:起動、検出、プロジェクト/マップ/アウトライナーの読み取り、ソース管理の読み取り、直接ツールによるアクターの作成/更新/削除、名前空間によるアクターのスポーン/検索/変換/検査/削除、名前空間ディスパッチ |
npm run test:e2e -- --with-assets | はい | 上記に加え、Blueprint の作成/コンポーネント編集/メッシュ割り当て/コンパイル、DataAsset の作成とメタデータ、StringTable、テクスチャのインポートとメタデータ、Widget の作成と TextBlock/Button、CanvasPanel/子 Widget のフロー。一時アセットは /Game/MCP/Tests に配置され、--keep-assets を指定しない限り削除されます |
node scripts/probe-once.mjs --file <py> [--code <snip>] [--timeout-ms 20000] [--verbose] | はい | ビルド済みサーバー経由で Python 2.7 の生プローブを 1 回実行します。エディターコンソールをバイパスします |
ランナーのオプション:--keep-assets(コンテンツブラウザーで結果を確認)、--skip-namespace(名前空間ディスパッチ部分をスキップ)、--verbose(MCP サーバーの stderr)、--help(再ビルドせずにオプションを表示)。Windows PowerShell:
cd C:\dev\unreal-mcp-ue4-for-OHD
npm install
npm run test:no-unreal
npm run test:e2e
npm run test:e2e -- --with-assets
すべての手順で [PASS] が表示されれば成功です。アクターテストでは一時アクターが目に見える形で作成された後、削除されます(両方のサーフェス)。アセットテストでは一時的な Blueprint/DataAsset/StringTable/Texture/Widget アセットが作成された後、削除されます。ワークフロー:test:no-unreal → test:e2e → test:e2e -- --with-assets → 実際のクライアントを試す → 本番コンテンツを扱う前にテストプロジェクトを使用する。
公開
バージョン形式は YYYY.M.D-N で、すべての箇所で統一します(現在は 2026.9.9-1)。バージョンを更新してから、次を実行します:
npm run publish:check # typecheck + rebuild + tarball dry-run
npm run test:e2e -- --with-assets --skip-build # when an OHD (UE4.25) editor is available
npm publish --tag latest # explicit dist-tag required (semver prerelease suffix)
prepack は npm run build を実行するため、tarball には常に最新の dist が含まれます。
利用可能なツール
注記では、重要な要件や UE4.25 の制限が関係する場合にそれらを説明します。注記が空の場合は、通常のエディター設定以外に特別な注意事項はありません。
推奨される公開サーフェスは manage_* 名前空間レイヤーです。標準的な読み取りエントリーポイントとして manage_editor.project_info、manage_editor.map_info、manage_level.world_outliner を優先し、少数の直接ツールセットはパスの検出とアクターの CRUD に使用する低レベルのプリミティブとして扱ってください。
エディターセッション情報
| ツール | 説明 | 注記 |
|---|---|---|
get_unreal_engine_path | 接続中のエディターセッションから、アクティブな Unreal Engine のルートパスを取得します | |
get_unreal_project_path | 接続中のエディターセッションから、アクティブな Unreal プロジェクトファイルのパスを取得します | |
get_unreal_version | 接続中のエディターセッションから、アクティブな Unreal Engine のバージョン文字列を取得します |
| ツール | 説明 | 備考 |
|---|---|---|
editor_create_object | ワールドに新しいオブジェクト/アクターを作成します | |
editor_update_object | ワールド内の既存のオブジェクト/アクターを更新します | |
editor_delete_object | ワールドからオブジェクト/アクターを削除します |
コアツールの名前空間
| ツール | 説明 | 備考 |
|---|---|---|
manage_asset | アセットの一覧表示、検索、検査、エクスポート、検証、複製、名前変更、移動、削除、保存、フォルダー管理操作を行うアセットツールの名前空間です。 | |
manage_actor | レベルアクターの一覧表示、検索、スポーン、削除、変換、検査を行うアクターツールの名前空間です。 | |
manage_editor | run_python、console_command、project_info、map_info、world_outliner、is_pie_running、start_pie、stop_pie、screenshot、move_camera の各操作を行うエディターツールの名前空間です。 | project_info、map_info、world_outliner、start_pie、stop_pie、is_pie_running、console_command、run_python の正式な名前空間です。 |
manage_level | マップの検査、アクターの一覧表示、ワールドアウトライナーの検査、プリセット構造の作成操作を行うレベルツールの名前空間です。 | |
manage_system | コンソールコマンドとアセット検証操作を行うシステムツールの名前空間です。 | コンソールと検証のヘルパーに絞った名前空間です。正式なプロジェクトおよびマップの検査には manage_editor を使用してください。 |
manage_inspection | アセット、アクター、マップ、基本的な Blueprint の概要確認操作を行う検査ツールの名前空間です。 | アセット、アクター、マップの検査に使用します。Blueprint の検査は、標準の UE4.25 Python ではアセットの高レベルな概要に限定されます。 |
manage_tools | 登録済みのツール名前空間を一覧表示し、サポートされているアクションを説明するツール名前空間レジストリーです。名前空間を優先する MCP サーフェスの検出用エントリーポイントとして使用してください。 | |
manage_source_control | プロバイダーの検査と、ファイルまたはパッケージのソース管理操作を行うソース管理ツールの名前空間です。 | provider_info は幅広く動作しますが、ファイルおよびパッケージ操作には、設定済みで利用可能な Unreal ソース管理プロバイダーが必要です。有効なプロバイダーがない場合は、success:false と unavailable:'source_control_no_provider' が返されます。 |
| ツール | 説明 | 備考 |
|---|---|---|
manage_lighting | 一般的なライトアクターの生成、トランスフォームの変更、レベルのライティング状態の確認を行うライティングツールの名前空間です。 | |
manage_level_structure | 町、家、屋敷、塔、壁、橋、要塞のプリセット構築アクションを行うレベル構造ツールの名前空間です。 | |
manage_volumes | 一般的なエンジンボリュームの生成と、削除またはトランスフォームの変更を行うボリュームツールの名前空間です。 | |
manage_navigation | ナビゲーションボリュームとプロキシの生成、および基本的なマップ確認アクションを行うナビゲーションツールの名前空間です。 | |
manage_environment | 町、アーチ、階段、ピラミッド、迷路のプリセット生成アクションを行う環境構築ツールの名前空間です。 | |
manage_splines | スプラインホストアクターまたはブループリントの生成と、その後のトランスフォームの変更または削除を行うスプラインツールの名前空間です。 | |
manage_geometry | 壁、アーチ、階段、ピラミッドのプリセット構築アクションを行うジオメトリツールの名前空間です。 | |
manage_effect | デバッグ形状アクターの生成、マテリアルの割り当て、色付け、削除を行うエフェクトツールの名前空間です。 |
| ツール | 説明 | 備考 |
|---|---|---|
manage_skeleton | Skeleton および SkeletalMesh アセットを検索し、そのメタデータを調べるための Skeleton ツール名前空間です。 | |
manage_material | マテリアルを一覧表示し、アクターや Blueprint に適用し、マテリアルインスタンスで色を付けるためのマテリアルツール名前空間です。 | |
manage_texture | テクスチャアセットを検索し、画像ファイルをテクスチャとしてインポートし、アセットのメタデータを読み取るためのテクスチャツール名前空間です。 | import_texture には、Unreal Editor セッションを実行しているマシンからアクセスできるローカル画像ファイルのパスが必要です。 |
manage_data | データアセットを検索し、一般的なデータコンテナーを作成し、アセットのメタデータを調べるためのデータツール名前空間です。 | |
manage_blueprint | Blueprint の作成、コンポーネント編集、コンパイル、基本的な Blueprint の概要操作を行うための Blueprint ツール名前空間です。 | Blueprint アセットとコンポーネントの編集には対応しています。読み取りで取得できるのは高レベルのグラフ概要のみです。ピンの接続、変数の作成、変数/関数の詳細ヘルパーは、標準の UE4.25 Python における MCP の対象範囲に含まれません。 |
manage_sequence | LevelSequence アセットの作成、検索、調査、編集を行うためのシーケンスツール名前空間です。バインディング、トラック、セクション、キー、カメラカット、再生範囲、スピードトラックの時間計算に対応します。 | 高度なバインディング、トラック、セクション、キー、カメラカット、再生範囲、スピードトラックの分析操作には、対象プロジェクトで UE4.25 SequencerScripting プラグインが必要です。 |
manage_audio | オーディオファイルをインポートし、オーディオアセットを検索し、そのアセットのメタデータを調べるためのオーディオツール名前空間です。 | |
manage_widget | UMG Blueprint の作成、ウィジェットツリーの調査と編集、CanvasPanel ルートの正規化、ビューポートへのスポーン操作を行うためのウィジェットツール名前空間です。デザイナーの内容を確認するには inspect_tree、入れ子レイアウトの作成には add_child_widget、絶対位置で CanvasPanel を配置する必要がある場合は ensure_canvas_root を使用します。 | create_widget_blueprint、inspect_tree、add_text_block、add_button、ensure_canvas_root に対応しています。通常の入れ子レイアウトには add_child_widget を使用してください。ルートが別のパネルの場合は、CanvasPanel の位置やサイズを設定する前に ensure_canvas_root を使用してください。setup_sidebar_tab は WebBrowser のサイドバータブを最初から最後まで作成します(EUW アセット、ブラウザー子要素、URL、タブを開く処理)。use_template は最初から作成する代わりに、ゴールデンテンプレートを複製します(ブラウザーと On Key Down のショートカット修正を含みます)。サイドバーの url には任意のページ URL を指定できます(DSH の Web GUI が慣例です)。DSH のアセット名とブラウザー名はそのまま維持されます。DSH 以外のページではエディターループが実行されず、4.25 CEF の制約を受けます。add_to_viewport には PIE が必要です。start_pie_if_needed で PIE を要求できますが、再試行が必要な場合があります。 |
| ツール | 説明 | 備考 |
|---|---|---|
manage_animation_physics | 物理演算 Blueprint の生成、Blueprint の物理設定、Blueprint のコンパイル操作を扱う、アニメーションと物理演算のツール名前空間です。 | |
manage_input | 従来型の UE4 入力マッピングを作成するための入力ツール名前空間です。 | 従来型の UE4 入力マッピングの作成に特化しています。標準的なプロジェクト概要には manage_editor.project_info を使用してください。 |
manage_behavior_tree | BehaviorTree アセットの作成、検索、確認を行うためのビヘイビアツリーのツール名前空間です。 | BehaviorTree アセットの検索と確認に特化しています。標準的なプロジェクト概要には manage_editor.project_info を使用してください。 |
manage_gas | ゲームプレイアビリティ関連アセットの検索と、アセットのメタデータ確認を行う GAS ツール名前空間です。 |
対象外の機能領域
以下の機能領域は、現在の Python 環境で安定して動作せず、ネイティブブリッジが利用可能になるまではプロンプトやコンテキストの負荷を増やすだけであるため、この UE4.25 移植版の MCP インターフェースでは意図的に公開していません。
| 機能領域 | MCP インターフェースへの影響 | 対象外とする理由 |
|---|---|---|
| Blueprint イベントグラフへのイベント挿入 | 関連するイベントノードおよび入力アクションのヘルパーは、MCP インターフェースから除外されています。 | 現在の UE4.25 Python 環境では、イベントグラフへのアクセスや K2 イベント参照の設定を安定して行えません。 |
| Blueprint グラフの検査とノード検索 | グラフ分析、グラフ検査、ノード検索のヘルパーは、MCP インターフェースから除外されています。 | 現在の UE4.25 Python 環境では、UbergraphPages や FunctionGraphs などの Blueprint グラフ配列を、決定的な検査に十分な信頼性で利用できません。 |
| 低レベル Blueprint グラフノードの作成 | 汎用グラフノードのヘルパー、および関連する self またはコンポーネント参照の挿入ヘルパーは、MCP インターフェースから除外されています。 | 現在の UE4.25 Python 環境では、低レベルのグラフノード作成やメンバー参照の接続を安定して行えません。 |
| Blueprint 関数呼び出しノードの作成 | エディターグラフのメンバー参照設定に依存する関数ノードのヘルパーは、MCP インターフェースから除外されています。 | 現在の UE4.25 Python 環境では、関数呼び出しノードの参照を安定して設定できません。 |
| Blueprint 変数と関数のメタデータ検査 | 変数詳細および関数詳細のヘルパーは、MCP インターフェースから除外されています。 | 現在の UE4.25 Python 環境では、NewVariables や FunctionGraphs を、決定的な検査に十分な信頼性で利用できません。 |
| Blueprint 変数の作成 | 変数作成のヘルパーは、MCP インターフェースから除外されています。 | 現在の UE4.25 Python 環境では、BPVariableDescription と EdGraphPinType を利用できません。 |
| UMG デリゲートバインディングの作成 | ウィジェットのイベントバインディングとテキストバインディングのヘルパーは、MCP インターフェースから除外されています。 | 現在の UE4.25 Python 環境では、DelegateEditorBinding を利用できません。 |
コントリビューション
main は protect-main ルールセットで保護されています(PR のみ。直接プッシュ、強制プッシュ、削除は禁止。レビューのスレッドは解決が必要です)。main からブランチを作成して PR を出し、プッシュする前に npm run typecheck と npm run check:py27 を実行してください(可能であれば npm run test:no-unreal も実行してください)。ペイロードは Python 2.7 との互換性を維持してください。上記の表はビルド時に再生成されるため、ドキュメントを変更した場合はコミット前に npm run build を実行してください。
トラブルシューティング
Remote node is not available:まずエディターを完全に開き、Python Editor Script Plugin、Editor Scripting Utilities、Enable Remote Executionが有効になっていることを確認してください。いずれかを変更した場合は、エディターを再起動してください。- Windows での接続/検出:
UnrealEditor.exeとnode.exeが Windows Defender ファイアウォールを通過できるように設定してください。検出には UDP マルチキャスト239.0.0.1:6766、コマンドチャネルには6776が使用されます。エディターから検出/接続できない場合は、UNREAL_MCP_BIND_ADDRESSまたはUNREAL_MCP_COMMAND_ADDRESSでバインドアドレスを上書きしてください。JSON 設定では、バックスラッシュをエスケープするか、スラッシュを使用してください。 - クライアントが
unreal-mcp-ue4-for-ohdまたはnodeを見つけられない:npm のグローバルバイナリディレクトリをクライアントのPATHに追加するか、unreal-mcp-ue4-for-ohdの絶対パスを使用してください。ソースコードをチェックアウトした場合は、PATHに頼らず、node/node.exeの絶対パスを使用してください。 - Blueprint グラフ/UMG バインディングコマンドを使用できない:想定どおりです。Widget の作成とツリーの編集は機能しますが、デリゲートバインディングとランタイムのビューポート処理には対応していません。Blueprint のアセット/コンポーネント/コンパイルと概要の取得は機能しますが、グラフの検査、ピンの接続、変数/関数のメタデータは対象外です(標準の UE4.25 Python ではこれらを公開していません)。一覧は上記の
Excluded Capability Areasを参照してください。
注意事項と制限
- ワールド/構造ツールでは、エンジンの基本形状アセットを使用する UE4.25 対応のプリセットビルダーを使用します。
- UMG の編集はネイティブの
PanelWidget親要素で機能します。絶対位置の指定ではCanvasPanelスロットを対象とします。ルートが Canvas でない場合は、先にmanage_widget.ensure_canvas_rootを実行してください。ルート Widget の付け替えと名前付きスロットの編集には対応していません。また、デリゲートバインディングは引き続き使用できません。 - Blueprint のアセット/コンポーネントの編集には対応していますが、グラフの検査、ピンの接続、変数/関数のメタデータの検査は対象外です。
- ツール群には細分化されたツールとアクションベースの名前空間が混在しているため、クライアントは異なる抽象化レベルで作業できます。
ロードマップ
- コードアーキテクチャの改善(Effect 移行のフェーズ 0~7 を実施済み)
- Dsh Harness のサポートを追加(
manage_widget.setup_sidebar_tab+ゴールデンテンプレート) - エージェントが簡単にインストールできるよう
agent.mdを追加(docs/agent-setup.mdとして追加済み) - GitHub Actions CI を追加(
.github/workflows/ci.ymlは main で成功し、Tests バッジを公開済み。protect-mainルールセットは PR のみを対象とし、必須ステータスチェックを設定) - 最初のフォーク版をリリース(
2026.5.12-12などのタグを作成済み。npm でunreal-mcp-ue4-for-ohdとして公開) - レジストリの識別子を決定:フォーク独自の
io.github.RibatTRW/unreal-mcp-ue4-for-ohdに変更(上記のMigrating from unreal-mcp-ue4を参照)
ライセンス
MIT License のもとでライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。