Claude Media
Unreal EngineのMCPをClaude Codeで使う設定手順(5.8対応)

Unreal EngineのMCPをClaude Codeで使う設定手順(5.8対応)

Unreal EngineのMCPをClaude Codeにつなぐ手順です。5.8のUnreal MCPを有効化し、.mcp.jsonを生成して、Epic公式プラグインまで導入します。

Unreal MCPをClaude Codeにつなぐ方法と、できること

Unreal EngineをClaude Codeにつなぐには、Unreal Engine 5.8でUnreal MCPとAll Toolsetsの2つのプラグインを有効にします。続けてEditor PreferencesでAuto Start Serverをオンにします(コンソールでModelContextProtocol.StartServerを実行しても起動できます)。

次にコンソールでModelContextProtocol.GenerateClientConfig ClaudeCodeを実行すると、プロジェクトルートに.mcp.jsonが書き出されます。あとはサーバーが動いている状態でClaude Codeを開けば接続できます。

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自身も5.8のリリースノートで実験的(Experimental)機能と位置づけており、APIやデータ形式は今後変わる可能性があります。

Epicは、Unreal MCPを扱う手順(スキル)とプロジェクト文脈を注入するフックをまとめた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)も用意されています。エンジンビルドにEngine/Plugins/Experimental/ModelContextProtocol/Extras/Proxyが含まれている場合に使えます。Editorが落ちている間もクライアント側のセッションを維持し、再接続時に自動で復帰します。ただしキャッシュ済みのツール一覧は実際の呼び出しの成功を保証せず、キャッシュが無い間に見えるのはunreal_mcp_statusだけです。

セットアップ手順

ステップ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で手動登録することもできます。ただし2つの方法は書き込み先が違います。

くらべる

設定ファイル生成と手動登録の違い

Editor側

GenerateClientConfig

Editorが今のポートとURLパスから書き出します。ポートやパスを変えたら再実行して合わせます。書き込み先はプロジェクトルートの.mcp.jsonです。

Claude Code側

claude mcp add

既定のスコープはlocalです。.mcp.jsonに書き出すのは--scope projectを付けたときで、チームで共有するならこちらを使います。

Claude Code v2.1.285で、空のディレクトリを使って確認した結果です。claude mcp add --helpのオプション欄には-s, --scope <scope> Configuration scope (local, user, or project) (default: "local")と出ます。projectを指定して実行すると、そのディレクトリに.mcp.jsonが書き出されました。

claude mcp add --scope project --transport http unreal-mcp http://127.0.0.1:8000/mcp

出力はAdded HTTP MCP server unreal-mcp with URL: http://127.0.0.1:8000/mcp to project configで、生成された.mcp.jsonの中身はGenerateClientConfig ClaudeCodeが書くものと同じ3項目(type・url・サーバー名unreal-mcp)でした。サーバー名は、Editor側がserverInfo.nameとして常にunreal-mcpを名乗ります。

claude mcp getの--helpには、承認前の.mcp.jsonのサーバーは「Pending approval」と表示され、接続もされないと書かれています。共有した.mcp.jsonが動かないときは、まず承認待ちを疑います。claude 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スキル、新しいツールセットの雛形を作るcreate-toolsetスキル、unreal-skillスキルと、リポジトリが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: 接続を確認する

手順

接続確認の順番

  1. 1

    Editorを先に起動する

    MCPサーバーが立ち上がったことを確認してから、Claude Codeを.mcp.jsonのあるプロジェクトルートで起動します。

  2. 2

    /plugin でプラグインを確認する

    Installedタブにunreal-engine-skills-for-claude-codeが表示されていれば、プラグイン(スキルとフック)は読み込まれています。

  3. 3

    /mcp でサーバーを確認する

    unreal-mcp(プロキシ経由ならunreal-mcp-proxy)が一覧にあるかを見ます。プロキシが接続済みと表示されても、Unreal本体に到達できているとは限りません。

  4. 4

    簡単な質問で応答を見る

    「選択中のActorは何ですか」のような質問を投げます。Editorの状態を反映した応答が返れば、接続は成立しています。

.mcp.jsonのあるワークスペースのルート以外からClaude Codeを起動した場合も、MCPは見つかりません。ルートディレクトリで起動し直します。公式プラグインの3つのスキルとフックの役割はUnreal Engine Skills for Claude Codeの解説にあります。

ポートの衝突や起動オプションはどう扱うか

既定のポート8000が別のローカルサービスと衝突したときは、3通りの変え方があります。どれを使っても、変更後にModelContextProtocol.GenerateClientConfig ClaudeCodeを再実行するか、claude mcp addのURLを書き換えて合わせます。

方法書き方効き方
Editor Preferences書き方Server Port Number / Server URL Path効き方設定パネルの値が使われる
コンソールコマンド書き方ModelContextProtocol.StartServer 9000効き方その場でポートを上書きして起動する
起動引数書き方-ModelContextProtocolPort=9000効き方1〜65535の範囲外なら設定パネルの値に戻る

-ModelContextProtocolStartServerを起動引数に付けると、Auto Start Serverの設定に関係なく、Editorやコマンドレットの起動時にサーバーが立ち上がります。停止はModelContextProtocol.StopServerで、全セッションが閉じます。

Editor内蔵のTerminalプラグインでClaude Codeを動かす場合は、新しいセッションの作業ディレクトリがインストール版ではエンジンのインストール先になる点に注意が要ります。.mcp.jsonのある場所へ明示的にcdしてからclaudeを起動します。

Claude Codeとの間で切り分けたいときは、npx @modelcontextprotocol/inspectorでInspectorを立ち上げ、http://127.0.0.1:8000/mcpを接続先に指定する方法があります。Epicのドキュメントは、この手順で選ぶトランスポートを「Streamable HTTP」と書いています。一方で制限事項の欄は対応方式を「HTTPとServer-Sent Events」とだけ書いており、同じページ内で呼び方が揃っていません。

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ヘッダーを拒否しますが、認証層自体は存在しません。同じマシン上の別プロセスであれば誰でも接続できるため、共有マシンや信頼できない環境でサーバーを起動しない、ポートをループバック以外に公開しないという運用が前提になります。

Unreal MCP経由で公開される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の再起動が必要です。C++のビルドエラーを読ませる手順はClaude CodeでUnreal EngineのC++を書くにあります
  • ツールセットを追加したのに一覧に出てこない: プラグインはツールセット一覧を起動時にキャッシュします。ツールセットを新規追加したりホットリロードしたりしたら、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を前提にしたクライアントは接続できません
  • ツールの呼び出しを並行させたい: ツール呼び出しはEditorのgame threadで直列に実行されます。Epicのドキュメントは、クライアント側で呼び出しを重ねないよう求めています
  • サーバーが立ち上がらない原因が分からない: ポートのバインドに失敗している場合は、EditorのコンソールでLog LogModelContextProtocol Verboseを実行してログ出力を詳しくし、Output Logで確認します
  • Cooked/Shippingビルドでツールが自動的に見えない: Toolset Registryとの連携はエディタ専用の仕組みです。実行ファイル化したビルドでツールを使うには、IModelContextProtocolModule::AddTool()で個別に登録し、起動時にIModelContextProtocolModule::StartServer()を呼んでサーバーをホストする必要があります

まとめ

接続を成立させるのは.mcp.json(またはclaude mcp add)だけです。Epic公式プラグインは接続を担わず、Editor操作の手順とUnreal Engineの流儀をClaudeに持たせる上乗せの層と考えると、迷いません。

認証層が無く、任意のPythonが走るexecute_tool_scriptまで公開される以上、判断の軸は「そのマシンで起動してよいか」です。自分専用の開発機なら試す価値があり、共有マシンでは起動しないのが無難です。

参照した一次ソース

この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。

  1. dev.epicgames.com/documentation/unreal-engine/unreal-mcp-in-unreal-editor
  2. dev.epicgames.com/documentation/unreal-engine/unreal-engine-5-8-release-notes
  3. claude.com/plugins/unreal-engine-skills-for-claude-code
  4. github.com/EpicGames/unreal-engine-skills-for-claude-code-plugin
この記事を共有:XはてブLinkedIn