Unreal Engine MCP Python Bridge Plugin について
Unreal Engine のエディター内で MCP サーバーを動作させ、MCP クライアントから UE Editor Python API にアクセスできるようにするプラグインです。UE で Python によるツールやワークフローを開発する開発者向けです。
主な機能
- 01UE Editor Python API を公開する MCP サーバー
- 02Python デコレーターによるツールとプロンプトの定義
- 03castle と town の作成を行うサンプルプロンプト
- 04クライアントでのツール一覧表示
活用シーン
- 01エージェントと協働した Python エディターツールの開発
- 02UE プロジェクトでのシーン構築作業の自動化
- 03エージェントを使った UE Python コードの反復的な作成
MCP 対応
プラグインは UE エディター内で MCP サーバーを動作させます。同梱の unreal_mcp_client.py スクリプトを介して Claude などの MCP クライアントが接続し、ツールとプロンプトを利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Unreal Engine MCP Python Bridge プラグイン
これは、Model Context Protocol(MCP)のサーバー実装を作成する Unreal Engine(UE)用プラグインです。 Anthropic の Claude などの MCP クライアントが、UE Python API の全機能にアクセスできるようになります。
ユースケース
- Claude などのエージェントを使い、Python でツールやワークフローを開発すること。
- そうしたワークフローをインテリジェントかつ動的に自動化すること。
- エージェントと全般的な共同開発を行うこと。
前提条件
-
システムの
PATHから利用できる Python 3.10 以降に、公式の MCP Python SDK がインストールされていること:pip install mcpこれが唯一の Python 依存関係です。クライアントスクリプト
unreal_mcp_client.pyはfrom mcp.server.fastmcp import FastMCPを使用して、ブリッジのツールをエージェントに公開します。利便性のため、MCPClient/requirements.txtファイルが用意されています(pip install -r MCPClient/requirements.txt)。注:これはシステムの Python です。スクリプトはエディターに同梱された Python 内ではなく、エージェントのサブプロセスとして実行されます。 -
AI エージェント。以下では Claude を使用することを前提としていますが、MCP を実装する任意の AI エージェントで問題ありません。
-
Python Editor Script Plugin が有効になっている Unreal Engine 5。
-
Visual Studio 2019 以降(プラグインをソースからビルドする場合のみ必要です。Fab からインストールする場合は不要です)。
-
Unreal Engine Python APIを確認してください。
Fab からのインストール
MCP Python Bridge プラグインをインストールする最も簡単な方法は、Fab ストアの掲載ページから入手することです。プラグインを購入すると、Epic Games Launcher のライブラリに表示されます。「Install to Engine」をクリックし、適切なバージョンの Unreal Engine を選択してください。
GitHub からのインストール
- 新しい Unreal Engine C++ プロジェクトを作成します。
- プロジェクトのルートディレクトリで、
Pluginsフォルダーを探します。 - このリポジトリを
Pluginsフォルダーにクローンし、プロジェクトの内容がすべてその下に配置される新しいフォルダーを作成します。 - UE プロジェクトファイル(末尾が
.uprojectのファイル)を右クリックし、「Generate Visual Studio project files」を選択します。このオプションがすぐに表示されない場合は、まず「Show more options」を選択すると表示されます。 - 新しい Visual Studio プロジェクトを開いてビルドします。
MCPClientフォルダーからunreal_mcp_client.pyを任意の場所にコピーします。claude_desktop_config.json設定ファイルを探します。 Mac の場所:~/Library/Application\ Support/Claude/claude_desktop_config.jsonWindows の場所:[path_to_your_user_account]\AppData\Roaming\Claude\claude_desktop_config.jsonunreal-engineサーバーセクションを設定ファイルに追加し、下記のパスから角括弧を除いた場所に更新します。 Mac のパス形式:/[path_from_step_4]/unreal_mcp_client.pyWindows のパス形式:C:\\[path_from_step_4]\\unreal_mcp_client.py
{
"mcpServers": {
"unreal-engine": {
"command": "python",
"args": [
"[mac_or_windows_format_path_to_unreal_mcp_client.py]"
]
}
}
}
- Unreal Engine を起動し、新しいプロジェクトを読み込みます。
- 新しい
UnrealMCPBridgeプラグインを有効にして、再起動します。 - マウスを重ねると「Start MCP Bridge」と表示される新しいツールバーボタンがあるはずです。
- MCP Bridge ボタンをクリックします。「MCP Python bridge running.」というポップアップが表示されます。出力ログには、127.0.0.1:9000 で新しいソケットサーバーが待ち受けていることが記録されます。
- Claude を管理者として起動します。
- プラグアイコンの「Attach from MCP」をクリックします。「Choose an integration」の下に、2 つのテスト用プロンプト
create_castleとcreate_townが表示されます。これらの実装は、プラグインのContentフォルダーにあるunreal_server_init.pyで編集できます。変更後は必ず Unreal Engine を再起動してください。 - または、UE Python API を使ってプロジェクトを構築するよう Claude に依頼します。
- 現在実装されているツールの一覧は、プラグアイコンの左側にあるハンマーアイコンをクリックすると確認できます。
新しいツールとプロンプトの開発
unreal_mcp_client.py を確認すると、MCP では関数の上に Python デコレーターを記述してツールとプロンプトを定義していることがわかります。例を示します。
@mcp.tool()
def get_project_dir() -> str:
"""Get the top level project directory"""
result = send_command("get_project_dir")
if result.get("status") == "success":
response = result.get("result")
return response
else:
return json.dumps(result)
これは get_project_dir コマンドを Unreal Engine に送信して実行し、現在のプロジェクトのプロジェクトレベルディレクトリを返します。プラグインの Content フォルダーには、このツールコマンドのサーバー側の実装があります。
@staticmethod
def get_project_dir():
"""Get the top level project directory"""
try:
project_dir = unreal.Paths.project_dir()
return json.dumps({
"status": "success",
"result" : f"{project_dir}"
})
except Exception as e:
return json.dumps({ "status": "error", "message": str(e) })
このパターンに従って、新しいツールを作成してください。作成したツールは、Claude のデスクトップインターフェースでハンマーアイコンの下に表示されます。
新しいプロンプトを実装するには、unreal_mcp_client.py に追加するだけです。例として、unreal_mcp_client.py にある create_castle プロンプトを示します。
@mcp.prompt()
def create_castle() -> str:
"""Create a castle"""
return f"""
Please create a castle in the current Unreal Engine project.
0. Refer to the Unreal Engine Python API when creating new python code: https://dev.epicgames.com/documentation/en-us/unreal-engine/python-api/?application_version=5.5
1. Clear all the StaticMeshActors in the scene.
2. Get the project directory and the content directory.
3. Find basic shapes to use for building structures.
4. Create a castle using these basic shapes.
"""
プロンプト全体が返されるよう、三重引用符を維持してください。プロンプトを作成する際は、Claude を使ってステップ番号ごとに繰り返し試し、満足のいく結果が得られるまで調整するとよいでしょう。その後、示されているように、すべてを番号付きのステップ形式のプロンプトにまとめます。
unreal_mcp_client.py の変更を反映するには、Claude を再起動する必要があります。Windows の場合、Claude を完全に再起動するには、タスクマネージャーで Claude のプロセスを終了する必要があるかもしれません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。