UEBridgeMCP is a native C++ Unreal Engine plugin that exposes the Unreal Editor to any MCP-compatible AI client over Streamable HTTP.
Overview
UEBridgeMCP is a native C++ Unreal Engine plugin that exposes the Unreal Editor to any MCP-compatible AI client over Streamable HTTP.
README
UEBridgeMCP
Native C++ Model Context Protocol (MCP) plugin for Unreal Engine 5.6+
Language: English | 简体中文
Overview
UEBridgeMCP is a native C++ Unreal Engine plugin that exposes the Unreal Editor to any MCP-compatible AI client over Streamable HTTP. It embeds the MCP server directly inside the editor process, so tools can inspect and edit Blueprints, levels, assets, materials, widgets, StateTrees, PIE sessions, and build workflows without a separate bridge process.
Acknowledgments: This project is a heavily extended and optimized fork of yes-ue-mcp by softdaddy-o. Special thanks to the original author for the foundational MCP HTTP server architecture.
Current release: v1.19.0
Highlights:
- Native UE integration - uses Unreal’s built-in HTTP stack and editor APIs
- Dynamic workflow tool surface - the live inventory comes from
tools/list, with conditional tools and compatibility aliases depending on loaded UE modules - Cross-client compatible - works with Claude Code, Claude Desktop, Cursor, Continue, Windsurf, and other MCP clients
- Project-agnostic - no game-specific coupling; can be moved between UE 5.6+ C++ projects
- Extensible - add custom tools by subclassing
UMcpToolBase
Documentation Map
| Document | Description |
|---|---|
| Tools Reference | Full list of the built-in tools, grouped by workflow and subsystem |
| Tool Development | How to implement, register, validate, and maintain your own MCP tools |
| Release Preflight | Release-gate checks for runtime inventory, compatibility aliases, and safety probes |
| Troubleshooting | Known failure modes, connection issues, PIE caveats, and debugging steps |
| Architecture | Module layout, request lifecycle, registry warmup, and threading model |
| Chinese Documentation Index | Chinese landing page with links to the translated docs |
Quick Start
Requirements
- Unreal Engine 5.6+
- A C++ Unreal project (Blueprint-only projects should be converted by adding any C++ class)
- Core plugin dependencies enabled in
UEBridgeMCP.uplugin:EditorScriptingUtilitiesGameplayAbilitiesEnhancedInputStateTreeGameplayStateTree
PythonScriptPluginpowersrun-python-script. The plugin descriptor marks it optional, but the current source build links against it directly inSource/UEBridgeMCPEditor/UEBridgeMCPEditor.Build.cs, so keep it enabled unless you intentionally remove Python tooling.- Feature and extension surfaces also declare optional dependencies for
ControlRig,PCG,Niagara, andMetasound; availability of those modules changes the livetools/listinventory.
Installation
- Copy the plugin into your project:
/Plugins/UEBridgeMCP/
- Enable it in your
.uproject:
{
"Plugins": [
{ "Name": "UEBridgeMCP", "Enabled": true }
]
}
- Regenerate project files and build your editor target.
- Launch the editor and confirm the module loads successfully.
Configuration
Server settings live in Config/DefaultUEBridgeMCP.ini:
[/Script/UEBridgeMCPEditor.McpServerSettings]
ServerPort=8080
bAutoStartServer=true
BindAddress=127.0.0.1
LogLevel=Log
Important: on Windows, prefer 127.0.0.1 instead of localhost. Some clients resolve localhost to IPv6 ([::1]) while the server commonly binds IPv4, which causes avoidable connection failures.
Client Configuration
Any MCP client that supports HTTP transport can connect. Examples:
Claude Code CLI
claude mcp add --transport http unreal-engine http://127.0.0.1:8080/mcp
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"unreal-engine": {
"url": "http://127.0.0.1:8080/mcp"
}
}
}
Cursor (.cursor/mcp.json)
{
"mcpServers": {
"unreal-engine": {
"url": "http://127.0.0.1:8080/mcp"
}
}
}
VS Code Continue (.continue/config.json)
{
"mcpServers": [
{
"name": "unreal-engine",
"transport": {
"type": "http",
"url": "http://127.0.0.1:8080/mcp"
}
}
]
}
Sanity Check
Use a tools/list request to confirm the server is reachable:
curl -s -X POST http://127.0.0.1:8080/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
If the plugin is running correctly, the response should contain the registered tool set for the current editor session.
For release validation, run the bundled preflight after the editor MCP endpoint is online:
powershell -ExecutionPolicy Bypass -File Validation\Smoke\Invoke-ReleasePreflight.ps1
Built-in Tool Surface
The authoritative registration site is:
Source/UEBridgeMCPEditor/Private/UEBridgeMCPEditor.cpp
At v1.19.0, the tool surface is intentionally dynamic:
- Always-on editor tools are registered in
RegisterBuiltInTools(). - Conditional tools appear when optional UE modules such as Sequencer, Landscape, Foliage, World Partition, Niagara, and MetaSound are available.
- Extension modules can add Control Rig, PCG, and External AI tools.
- Compatibility aliases are exposed as name-only aliases that resolve to canonical UEBridgeMCP tools.
The release gate is initialize.capabilities.tools.registeredCount == tools/list.length, plus the preflight checks under Validation/Smoke/.
See Tools Reference for the full list and per-tool summaries.
Architecture Snapshot
MCP Client
-> HTTP POST /mcp
-> UEBridgeMCPEditor module
-> FMcpServer
-> FMcpToolRegistry
-> UMcpToolBase-derived tools
-> Unreal Editor subsystems / assets / worlds / PIE
The plugin descriptor currently declares five editor-only modules:
UEBridgeMCP- shared protocol types, schema helpers, base classes, and the tool/resource/prompt registries used by the editor-side MCP implementationUEBridgeMCPEditor- editor-only server, subsystem integration, built-in tools, and toolbar/status integrationUEBridgeMCPControlRig- Control Rig extension toolsUEBridgeMCPPCG- PCG extension toolsUEBridgeMCPExternalAI- external AI content-generation extension tools
See Architecture for the full lifecycle, warmup behavior, and threading constraints.
Extending UEBridgeMCP
To add a new tool:
- Create a new
UMcpToolBasesubclass underSource/UEBridgeMCPEditor/Public/Tools/andPrivate/Tools/ - Override
GetToolName,GetToolDescription,GetInputSchema,GetRequiredParams, andExecute - Register the class in
FUEBridgeMCPEditorModule::RegisterBuiltInTools() - Rebuild or trigger Live Coding
- Add automated validation if your branch or repo contains a test harness; otherwise document a focused live-editor validation recipe such as a
tools/listortools/callrequest
See Tool Development for a fuller guide and recommended implementation rules.
Versioning
UEBridgeMCP follows semantic versioning for public releases.
- Keep
VersionNameinUEBridgeMCP.upluginandUEBRIDGEMCP_VERSIONinSource/UEBridgeMCP/Public/UEBridgeMCP.hidentical. - Bump both in the same PR when public tool names, schemas, defaults, or externally visible behavior changes.
- Update
CHANGELOG.mdandRELEASE_NOTES.mdalongside the version bump.
Troubleshooting Entry Points
Start with Troubleshooting if you hit any of these problems:
- The client cannot connect to
http://127.0.0.1:8080/mcp tools/listis empty or missing expected tools- PIE start/stop appears stuck
- Python execution fails or crashes the editor
- Live Coding or rebuild operations do not reflect recent code changes
- Multiple UE projects are fighting over the same server port
License
GNU General Public License v3.0 - see LICENSE for details.
Links
- GitHub Repository
- Changelog
- Release Notes
- MCP Overview
- MCP Specification
- Unreal Engine Documentation
Star History
Install
This server does not publish a one-line install command.
Open the repository installation guideConfiguration
{
"mcpServers": {
"unreal-engine": {
"url": "http://127.0.0.1:8080/mcp"
}
}
}