Symbiote Creative Labs Unreal Engine 5 MCP Server
Attribution
This project is based on chongdashu/unreal-mcp, an MIT-licensed Unreal Engine MCP server. We are not forking, but have built our implementation using the current version as a reference and foundation. All original copyright and license notices from chongdashu/unreal-mcp are retained.
A comprehensive Model Context Protocol (MCP) server for Unreal Engine integration, providing powerful automation tools for Blueprint creation, actor manipulation, UMG widget development, and more.
Differences from [chongdashu/unreal-mcp]
- Refactored for PyPI packaging and modern Python project structure
- Enhanced documentation and examples
Features
- Blueprint Management: Create, compile, and manipulate Blueprint classes
- Actor Operations: Spawn, delete, and modify actors in your levels
- UMG Widget Tools: Create and manage UMG Widget Blueprints with ease
- Node Graph Manipulation: Add and connect Blueprint nodes programmatically
- Component Management: Add and configure components on Blueprints and actors
- Project Settings: Manage input mappings and project configurations
- Viewport Control: Focus viewport, take screenshots, and manage camera positions
Installation
From PyPI
pip install unreal-mcp
From Source
git clone https://github.com/symbiote-labs/Symbiote_UE5.git
cd unreal-mcp
pip install -e .
Quick Start
1. Start the MCP Server
unreal-mcp
Or programmatically:
from unreal_mcp import UnrealMCPServer
server = UnrealMCPServer()
server.run()
2. Configure Unreal Engine
The server connects to Unreal Engine via TCP socket on port 55557. Make sure your Unreal Engine instance is configured to accept MCP connections on this port.
3. Use with MCP Clients
The server implements the Model Context Protocol and can be used with any MCP-compatible client, such as Claude Desktop or other AI assistants.
Available Tools
Blueprint Tools
create_blueprint(name, parent_class)- Create new Blueprint classescompile_blueprint(blueprint_name)- Compile Blueprint changesadd_component_to_blueprint(blueprint_name, component_type, component_name)- Add componentsset_blueprint_property(blueprint_name, property_name, property_value)- Set Blueprint properties
Actor Management
spawn_actor(name, type, location, rotation, scale)- Create actors in the leveldelete_actor(name)- Remove actorsget_actors_in_level()- List all actors in current levelset_actor_transform(name, location, rotation, scale)- Modify actor transforms
UMG Widget Tools
create_umg_widget_blueprint(widget_name, parent_class, path)- Create UMG Widget Blueprintsadd_text_block_to_widget(widget_name, text_block_name, text, position, size)- Add text blocksadd_button_to_widget(widget_name, button_name, text, position, size)- Add buttonsbind_widget_event(widget_name, widget_component_name, event_name)- Bind widget events
Blueprint Node Management
add_blueprint_event_node(blueprint_name, event_type)- Add event nodesadd_blueprint_function_node(blueprint_name, target, function_name)- Add function nodesconnect_blueprint_nodes(blueprint_name, source_node_id, source_pin, target_node_id, target_pin)- Connect nodesadd_blueprint_variable(blueprint_name, variable_name, variable_type)- Add variables
Editor Tools
focus_viewport(target, location, distance, orientation)- Focus viewport on objectstake_screenshot(filename, show_ui, resolution)- Capture screenshotsimport_fbx(file_path, output_path)- Import FBX files
Configuration
The server can be configured through environment variables or by modifying the connection settings:
# Default configuration
UNREAL_HOST = "127.0.0.1"
UNREAL_PORT = 55557
Examples
Creating a Simple Actor Blueprint
# Create a new Blueprint
response = create_blueprint("MyActor", "Actor")
# Add a Static Mesh Component
add_component_to_blueprint(
"MyActor",
"StaticMeshComponent",
"MeshComponent",
location=[0, 0, 0]
)
# Set the static mesh
set_static_mesh_properties(
"MyActor",
"MeshComponent",
"/Engine/BasicShapes/Cube.Cube"
)
# Compile the Blueprint
compile_blueprint("MyActor")
Creating a UMG Widget
# Create a new Widget Blueprint
create_umg_widget_blueprint("MainMenu", "UserWidget", "/Game/UI")
# Add a button
add_button_to_widget(
"MainMenu",
"PlayButton",
"Play Game",
position=[100, 100],
size=[200, 50]
)
# Bind the button click event
bind_widget_event("MainMenu", "PlayButton", "OnClicked", "StartGame")
License
This project is licensed under the MIT License - see the LICENSE file for details.
Portions of the code and design are derived from chongdashu/unreal-mcp, also MIT-licensed.
Support
- Documentation: GitHub README
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Changelog
v0.1.1
- Documentation updates
v0.1.0
- Initial release
- Blueprint creation and manipulation tools
- Actor management functionality
- UMG Widget Blueprint tools
- Blueprint node graph manipulation
- Editor tools for viewport and screenshot management
- Project settings management
Metadata
Release files for symbiote-unreal-mcp 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| symbiote_unreal_mcp-0.2.0.tar.gz | 33.5 kB | Without provenance | Details for symbiote_unreal_mcp-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| symbiote_unreal_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for symbiote_unreal_mcp-0.2.0-py3-none-any.whl |
Total release size: 57.5 kB
Release files / symbiote_unreal_mcp-0.2.0.tar.gz
| Download URL | symbiote_unreal_mcp-0.2.0.tar.gz |
|---|---|
| Size | 33.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
651635115416fa7a5f88b9f1a7a354a9b86219533ce3014b9039249fffc0efdf
|
|
BLAKE2b-256 checksum How to use checksums |
394ce2a1cc235b7ed72fcb5080f20bcbfeb396f2f1a42b05b204de9d60c2e764
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Release files / symbiote_unreal_mcp-0.2.0-py3-none-any.whl
| Download URL | symbiote_unreal_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 23.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
39e550281f7714ed43f01473678a1b1444c794204878d6ca8559d71607597a42
|
|
BLAKE2b-256 checksum How to use checksums |
e68d8fe015a2ee2f0cf84a658232bca1b3ef21ac53aac5878c3acdcdd03ddd42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Security for symbiote-unreal-mcp 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.