Unreal Engine 5.8のMCPをClaude Codeから使う設定ガイド
Unreal Engine 5.8に追加されたUnreal MCPプラグインを有効化し、Claude Code公式プラグインで接続してEditorを操作する手順を扱います。
Unreal MCPで何ができるようになるか
Unreal MCPは、Unreal Engine 5.8で追加された実験的プラグインです。Unreal Editorのプロセス内にMCPサーバーを直接埋め込み、Claude CodeのようなMCP対応クライアントからHTTP経由でEditorを操作できるようにします。Actorの生成・変形、マテリアルインスタンスの作成、Slateウィジェットの検査、自動化テストの実行などが、Claudeが呼び出せる「ツール」として公開されます。
エンジンのソースツリーやコンソールコマンド上でのプラグイン識別子はModelContextProtocolですが、Plugin Browserとドキュメント上の表示名は「Unreal MCP」です。ツール自体はUnreal MCPが直接持つわけではなく、AllToolsetsプラグインが実体を提供します。Epic自身もEditor Preferencesで実験的機能として扱っており、APIやデータ形式は今後変わる可能性があります。
Epicは接続作業を代行するClaude Code公式プラグインもclaude-plugins-officialマーケットプレイスで配布しています。本記事ではUnreal Editor側のプラグイン有効化からEpic公式プラグインでの接続、手動でのclaude mcp add登録まで扱います。コンテナ経由で外部ツールをClaude Codeから操作する近い例としては、Docker MCP ToolkitでClaude Codeからコンテナを操作する設定もあります。
導入前に確認する前提条件
Unreal MCPを使うにはUnreal Engine 5.8以降が必要です。旧バージョンのEditorにはプラグイン自体が存在しません。プラットフォームはWindows・macOS・Linuxのいずれでも動きますが、Epic公式のClaude Code用プラグイン(unreal-engine-skills-for-claude-code)が持つSessionStartフックはbashスクリプトのため、Windowsでは素のPowerShellでは動かず、Git BashまたはWSL経由でClaude Codeを起動する必要があります。フックが動かなくてもMCPツール自体は使えますが、プロジェクトの文脈をセッション開始時に自動注入する機能だけ失われます。
MCPサーバーはEditorプロセスの中で動くため、Editorが起動していない間はツールを呼び出せません。この制約を緩和する任意のプロキシ(unreal_mcp_proxy)も用意されており、Editorが落ちている間もクライアント側のセッションを維持し、再接続時に自動で復帰します。
セットアップ手順
ステップ1: プラグインを有効化する
Unreal EditorのEdit > Pluginsを開き、「Unreal MCP」と「All Toolsets」の両方を検索してEnabledにチェックを入れます。どちらも内部依存のToolset Registryプラグインを自動的に有効化するため、個別に操作する必要はありません。プロンプトが出たらEditorを再起動します。
ステップ2: オートスタートを設定する
Edit > Editor Preferencesの「General」グループから「Model Context Protocol」パネルを開き、「Auto Start Server」を有効にします。デフォルトはfalseなので、手動で切り替えない限りEditor起動時にサーバーは立ち上がりません。有効にするとhttp://127.0.0.1:8000/mcpで待ち受けを開始します。ポート番号(既定8000)とURLパス(既定/mcp)も同じパネルで変更できます。
オートスタートを使わず必要なときだけ起動したい場合は、Editorのコンソール(バッククォートキーで開く)から次のコマンドを実行します。
ModelContextProtocol.StartServerポートを指定したいときはModelContextProtocol.StartServer 8000のように引数を渡します。
ステップ3: クライアント設定ファイルを生成する
Editorのコンソールで次のコマンドを実行すると、プロジェクトルートに.mcp.jsonが書き出されます。
ModelContextProtocol.GenerateClientConfig ClaudeCode生成される.mcp.jsonは次の内容です。
{
"mcpServers": {
"unreal-mcp": {
"type": "http",
"url": "http://127.0.0.1:8000/mcp"
}
}
}対応するクライアント名はClaudeCode・Cursor・VSCode・Gemini・Codex・Allです。複数のクライアントを一度に設定したい場合はModelContextProtocol.GenerateClientConfig Allを実行します。JSON形式の設定(Claude Code・Cursor・VS Code・Gemini)は既存エントリとマージされるため、繰り返し実行しても安全です。Codex CLIが使うTOML形式だけは書き込み専用で、既存ファイルがあると上書きを拒否します。
このファイルを使わず、claude mcp addで手動登録することもできます。サーバーの起動ポートさえ分かっていれば、Editor側のコマンドを経由せずに接続できます。
claude mcp add --transport http unreal-mcp http://127.0.0.1:8000/mcpclaude mcp addの構文全体(スコープの使い分けや認証まわり)はClaude Code MCP設定ガイドにまとめています。
ステップ4: Claude Code側でEpic公式プラグインを導入する
.mcp.jsonだけでも接続できますが、Epicは専用のスキルとフックをまとめた公式プラグインunreal-engine-skills-for-claude-codeをAnthropicの公式マーケットプレイスで配布しています。Claude Codeのセッション内で次のスラッシュコマンドを実行するだけでインストールできます。
/plugin install unreal-engine-skills-for-claude-code@claude-plugins-official公式マーケットプレイスが見つからない場合は、先に追加します。
/plugin marketplace add anthropics/claude-plugins-officialこのプラグインには、Unreal MCP経由でEditorを操作する手順をまとめたunreal-mcpスキルと、リポジトリがUnreal Engineプロジェクトだと検出してClaudeにC++/UObject・Slate・UHTの流儀を優先させるSessionStartフックが含まれます。チーム全員に自動導入させたい場合は、プロジェクトの.claude/settings.jsonに次のように書きます。
{
"enabledPlugins": {
"unreal-engine-skills-for-claude-code@claude-plugins-official": true
}
}この設定をコミットしておくと、プロジェクトフォルダを信頼したメンバーは初回起動時にインストールを促されます。社内マーケットプレイスの許可リスト設定でプラグイン配布そのものを制御している組織は、GHESプラグインマーケットプレイスを許可リストで運用するが参考になります。なお、ここで配るのはプラグイン(スキル+フック)であり、MCPサーバー自体を組織へ一括配布するmanagedMcpServers設定はv2.1.259で追加された別の管理設定キーです(詳細はClaude Code v2.1.259)。
ステップ5: 接続を確認する
Unreal Editorを起動してMCPサーバーが立ち上がったことを確認してから、Claude Codeを.mcp.jsonのあるプロジェクトルートで起動します。/pluginを実行してInstalledタブにunreal-engine-skills-for-claude-codeが表示されていればプラグイン自体は読み込まれています。次に/mcpを実行し、unreal-mcp(プロキシ経由ならunreal-mcp-proxy)が一覧にあるかを確認します。プロキシが接続済みと表示されても、Unreal本体に到達できているとは限らない点には注意します。最後に「選択中のActorは何ですか」のような簡単な質問を投げ、Editorの状態を反映した応答が返れば接続は成立しています。
Editorをまだ起動していない、またはワークスペースのルート以外からClaude Codeを起動した場合はMCPが見つかりません。Editorを先に起動してからAIエージェントを起動し直すか、ワークスペースのルートディレクトリで起動し直します。
Unreal MCPで触れる主な機能
Editorの操作対象はToolset Registryが管理する30以上のツールセットに分かれています。すべてを一度に覚える必要はなく、作業内容に応じて必要なものだけを使います。
| 領域 | できること | 向いている作業 |
|---|---|---|
| Actor・シーン | できることActorの生成・変形・検査・削除、コンポーネントとアウトライナーフォルダの管理 | 向いている作業レベルへのオブジェクト配置、シーンの一括変更 |
| Blueprint | できることグラフの作成・編集、ノード追加、ピン接続、変数管理、コンパイル | 向いている作業ロジックの試作、既存Blueprintの調査 |
| マテリアル | できることマテリアルグラフの作成、マテリアルインスタンスの設定 | 向いている作業パラメータ違いのバリエーション量産 |
| メッシュ・テクスチャ | できることスタティック/スケルタルメッシュ、LOD、コリジョン、Nanite、ソケット、ボーンの検査・編集 | 向いている作業アセットの整合性チェック |
| Sequencer | できることLevel Sequenceの作成・キーフレーム編集、カメラ管理、FBX入出力 | 向いている作業カットシーンの下準備 |
| VFX | できることNiagaraシステム、Dataflowグラフの作成 | 向いている作業エフェクトの雛形作成 |
| UI | できることUMGウィジェットBlueprintの構築、Slate UI操作の自動化 | 向いている作業画面まわりの反復作業 |
| Gameplay | できることGameplay Tags管理、GAS状態の検査、Game Feature Plugin作成、物理アセット編集 | 向いている作業ゲームプレイロジックの調査 |
| テスト | できることC++自動化テストの発見・実行・結果検査 | 向いている作業CI前の動作確認 |
ツールは既定で「Tool Search」モードで公開されます。tools/listは全ツールのスキーマではなく、list_toolsets・describe_toolset・call_toolという3つのメタツールだけを返し、Claudeは必要になった時点でツールセットを検索してから呼び出します。数百のツールがあってもリクエストが肥大化しないための設計で、Editor Preferencesの「Enable Tool Search」をfalseにすると全ツールを最初から公開する従来型の挙動に戻せます。
セキュリティと運用上の注意点
MCPサーバーはループバックのみを既定で受け付けます。localhost:8000にバインドし、非ループバックのOriginヘッダーを拒否しますが、認証層自体は存在しません。同じマシン上の別プロセスであれば誰でも接続できるため、共有マシンや信頼できない環境でサーバーを起動しない、ポートをループバック以外に公開しないという運用が前提になります。
Epic公式プラグインが提供するProgrammaticToolset.execute_tool_scriptは、Editorプロセス内で任意のPythonスクリプトを実行します。あらゆるツールセットAPI、プロジェクトのディスク上のファイル、アセットデータベースへフルアクセスできる特権操作で、承認が無効化されていれば確認なしに実行されます。--dangerously-skip-permissionsを付けてClaude Codeを起動すると、このツール実行を含めてツール単位の承認ゲートそのものが外れるため、Unreal MCPを読み込んだ状態でこのフラグを使うのは避けたほうが安全です。
MCPツールは実行中のUObject状態を直接書き換え、1回の呼び出しでVCS管理下のアセットを移動・削除できます。長時間のMCPセッションを始める前に保存とコミット(またはシェルブ)を済ませ、意図しない変更が入っても作業内容を復元できる状態にしておきます。
よくあるつまずき
- Live Codingで新しいツールが反映されない: 既存関数の中身の変更はLive Codingが拾いますが、新しい
UFUNCTIONの追加はEditorの再起動が必要です - ツールセットを追加したのに一覧に出てこない: プラグインはツールセット一覧を起動時にキャッシュします。トゥールセットを新規追加したりホットリロードしたりしたら、Editorのコンソールで
ModelContextProtocol.RefreshToolsを実行して再検出させます - Codexの設定だけ生成し直せない:
GenerateClientConfigが書くTOML形式は書き込み専用です。既存の設定を上書きしたい場合は手動でファイルを削除してから再実行します - Editor内蔵のTerminalパネルで
claudeの出力が崩れる: TerminalプラグインのStartup CommandsでTERM環境変数(export TERM=xterm-256colorなど)を設定していないのが原因です。設定しないとCLIが装飾なしのエスケープシーケンスをそのまま表示することがあります - stdioやWebSocketクライアントから接続できない: Unreal MCPが対応するトランスポートはHTTPとServer-Sent Eventsのみです。stdioやWebSocketを前提にしたクライアントは接続できません
- Cooked/Shippingビルドでツールが自動的に見えない: Toolset Registryとの連携はエディタ専用の仕組みです。実行ファイル化したビルドでツールを使うには、
IModelContextProtocolModule::AddTool()で個別に登録する必要があります
まとめ
Unreal MCPはUnreal Engine 5.8で追加された実験的プラグインで、Editorプロセス内のMCPサーバーがActor操作やマテリアル編集などのツールをAIエージェントに公開します。導入は「プラグイン有効化」「オートスタート設定」「クライアント設定の生成」「Claude Code側の接続」という4段階で完結し、Epic公式プラグインを使えば最後の接続設定も自動化できます。
ループバックのみ・認証層なしという制約と、任意のPythonを実行できるexecute_tool_scriptの存在は把握したうえで使う機能です。共有環境では動かさない、--dangerously-skip-permissionsと組み合わせない、長時間セッションの前には保存とコミットを済ませておく、という3点を守れば、ゲームプレイロジックの調査からアセットの一括変更まで、Claude Codeからそのまま試せます。