IRSofka Unreal Engine MCP
Provides tools for interacting with Unreal Engine 5.8 through the IRSofkaStationCore plugin, exposing six master domains (ue_world, ue_blueprint, ue_material, ue_media, ue_vision, ue_pipeline) plus ue_station_status. Domain calls are executed on Unreal's GameThread with transaction rollback, and the server reports whether an editor listener is actually detected (standalone_listener, plugin not loaded, or bridge alive).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@IRSofka Unreal Engine MCPlist actors in the current Unreal level"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
IRSofka Unreal Engine MCP
Station-side MCP bridge for the IRSofkaStationCore Unreal Engine 5.8 plugin.
Licenced under the Business Source License 1.1 by PT IRSofka Data Teknologi (NIB (OSS) 1258 0003 4132 6 · D&B DUNS 5645 3618 4 · admin@irsofka.co.id · irsofka.co.id). "Unreal Engine" is a trademark of Epic Games and is used here descriptively: no Epic code is contained in this repository — the transport is ours, written against our own plugin.
Why this repository exists
The project owner's instruction of 2026-10-15 15:26: one ai-station repository becomes three — IRSofka Blender MCP, IRSofka ComfyUI MCP, IRSofka Unreal Engine MCP — because the Unreal bridge "will be changed completely and adapted", and a repository that is going to be rewritten must be able to carry its own version, licence and tests.
Related MCP server: VERA MCP Server
Architecture: the plugin is the receiver, the station is the caller
Stated by the project owner on 2026-10-15 15:02, implemented as two measurable states:
condition | behaviour |
plugin listener present on | the bridge is live: domain calls are executed on Unreal's GameThread by |
plugin not detected | the plugin does what a normal plugin does — nothing is broken, nothing is simulated. Every MCP tool answers |
ue_station_status() measures rather than remembers: it opens the socket now, so "engine not
started", "plugin not loaded" and "bridge alive" remain three different facts in the log instead of
collapsing into one word for failure.
AI engine (Qoder / Antigravity)
│ MCP over stdio — 7 tools: ue_station_status + the 6 master domains
│ (ue_world, ue_blueprint, ue_material, ue_media, ue_vision, ue_pipeline)
▼
server.py ──► bridge.py ── TCP 127.0.0.1:9877, one JSON line per call ──► IRSofkaStationCore (C++)
└─ GameThread task runner,
transaction rollbackFiles
file | owns |
| the published MCP surface (tools + docstrings the engines display) |
| the transport: framing, |
| the two-state proof, against a simulated listener on a free port — 10/10, no engine required |
Install
{
"mcpServers": {
"irsofka-unreal-mcp": {
"command": "python3",
"args": ["$HOME/Apps/mcp/irsofka-unreal-mcp/server.py"]
}
}
}Requires Python ≥ 3.10 and the mcp package. The plugin itself is installed separately as
Engine/Plugins/Marketplace/IRSofkaStationCore; its source repository is
~/Documents/ai-workstation/projects/IRSofka-UE-AIStation-Core, and the plugin directory is a
build artefact, not the source.
What is not finished here — stated, not implied
The plugin holds the two states; a given editor may not have that build yet.
FIRSofkaStationPresencelives in the plugin's source (Source/IRSofkaCore/) and is compiled byRunUAT BuildPluginfrom that repository. Loading it into a running editor means a module rebuild or Live Coding in somebody's live session, which is that person's call, not a run's. Until an editor has the new binary,ue_station_status()reportsstandalone_listener— the receiver is alive but does not yet decide its own state. That is a measured fact about the installed build, not a failure of this server.The engine-side transform defects have code, not a live measurement. A bare class name is no longer silently replaced by
AActor, andset_transformnow answers the transform that actually landed, inside a transaction. Both changes compile; proving them needs an editor listening on 9877 and a mutating round trip, so until that run exists this claim is "compiled", not "measured".No remote is configured. Publication shape and timing belong to the project owner; creating a repository is outward-facing and does not happen as a side effect of a task.
This server cannot be deployed
Maintenance
Related MCP Connectors
Control Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Discover and call AI agents via MCP. Supports A2A agents and platform agents with async tasks.
Remote MCP server for AI.TV creators — delegate account operations to your AI agent over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Unreal Editor 5 through the Python remote execution protocol. It allows for managing the editor lifecycle, configuring project settings, and executing Python scripts directly within the Unreal Engine environment.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI clients like Claude Code, Cursor, or VS Code to drive the Unreal Editor: execute Python, capture screenshots, tail logs, check status, and run VERA commands.19MIT
- AlicenseCqualityCmaintenanceEnables AI clients to control Unreal Engine 5 editor for automated Blueprint authoring, level inspection, actor spawning, and other editor workflows via a local Python MCP server and UE plugin.5004AGPL 3.0
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Unreal Engine via Remote Control API for actor, asset, level, and editor operations.229 npmMIT