IRSofka Workstation MCP
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 Workstation MCPspawn a StaticMeshActor at 10,20,30 and verify its transform"
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 Workstation MCP
The machine side of the Irsofka station bridge: a stdio Model Context Protocol server that forwards to the editor's own TCP socket, so an engine can drive a running editor without anyone typing into it.
engine (MCP client) ── stdio JSON-RPC ──> server.py ── newline JSON ──> editor bridge 127.0.0.1:9877License: Business Source License 1.1, Licensor PT IRSofka Data Teknologi, Change License the Apache License, Version 2.0, effective at each version's Change Date.
UPSTREAMstates what this is derived from — nothing third-party; it is a client of a protocol documented from the operator's own plugin source and confirmed by a live round trip.Requires: Python 3.9+ (stdlib only) and the editor running with its bridge plugin loaded.
Why the name is not the engine's name
The repository owns the machine side of the bridge — server, transport, gates. The editor plugin stays an installed artifact of the engine project, and putting a third party's product name in a repository we publish adds a trademark question without adding information.
Related MCP server: uefn-mcp-pro
Tools
Tool | Surface |
| spawn, bulk_spawn, duplicate, set_transform, get_transform, attach, delete, get_all_actors, select_actors, set_lighting, set_physics, set_visibility, set_folder, set_tags, set_material, level_streaming |
| create, add_variable, add_function, add_call_function, connect_pins, set_pin_default, compile, get_summary |
| create_material, create_instance, set_parameter, set_texture, set_static_switch, get_parameters |
| import_sound, bind_sound, play_sound, spawn_niagara, set_niagara_parameter, create_sequence |
| capture (viewport frame), frame (aim the camera at an actor) |
| ordered steps in one call, with PARTIAL reporting |
| endpoint, whether the editor answers, the class table, the step cap |
The three rules this server adds over the raw socket
All three come from defects measured on 2026-10-15 (tools/ue_bridge_probe.py in the workstation
repository), not from preference.
1. Class names are resolved, or the command is refused. The engine's LoadClass wants
/Script/Engine.StaticMeshActor. Given a bare name it returns null and the handler falls back to
AActor::StaticClass() — and a bare AActor has no RootComponent, so every later transform is a
silent no-op while spawn, set and get all answer SUCCESS. Measured: spawn reports
location [10,20,30], get_transform reads [0,0,0], before and after a set_transform that
also said SUCCESS. This server maps known short names to their full paths, refuses to send a name
it cannot resolve (CLASS_UNRESOLVED, sent: false), and flags an answer that comes back as
Actor as DEGRADED rather than passing it on as success.
2. A write is verified before it is reported. ActionSetTransform returns
{"status":"SUCCESS"} and nothing else. So this server reads the transform back and returns
before / after / asked / match and a changed flag computed from the editor's own
numbers. A SUCCESS that did not move anything is reported as DEGRADED, not as done.
3. Unreachable is a word. If the bridge is not listening, tools answer UNAVAILABLE with the
endpoint and the fact that nothing was sent. A call the editor never saw is never reported as one
that happened.
Two words travel in every reply, and they answer to different owners: status is what the engine
said, passed through untouched; state is this server's word for the same fact, mapped by one table
(SUCCESS → DONE, UNAVAILABLE → UNAVAILABLE). ok is derived from that mapping and MCP
isError is derived from ok, so the payload and the protocol flag cannot disagree. The first
version computed isError as not out.get("ok") while the engine's own success reply contains no
ok key — which meant every successful domain call reached a client labelled an error, and 24 green
offline checks never noticed because none of them drove tools/call on a domain tool. The suite now
does, at the JSON-RPC layer, in both directions.
Thread and timing facts that shape the design
The editor runs every handler on the GameThread through FIRSofkaTaskRunner::ExecuteSync. One
command therefore blocks the socket, and a pipeline of them holds the editor's main thread for the
sum of their times — which is why ue_pipeline caps at 64 steps and aborts the remainder the
moment the editor stops answering, rather than continuing to send into a dead socket.
ue_pipeline reports partial truth on purpose: a step that fails does not undo the steps that
already ran, so the reply names which ones succeeded and which did not.
Overlap with the server that already ships inside the plugin
The plugin installs its own MCP front-end (.../IRSofkaStationCore/Content/Python/mcp_server.py),
and on this workstation that one is already registered in the engines under the name
irsofka-unreal-mcp. Two servers forwarding to the same editor socket is a real condition, not a
typo, so say what distinguishes them and what it costs:
the plugin's front-end is a thin, complete passthrough: it exposes every action the C++ accepts, in the shape the C++ wants, including the bare class names that silently produce an immovable actor. It is the right tool when you want exactly the plugin's surface.
this server is the station's product surface: it resolves class names or refuses, verifies a write by reading it back, caps pipelines so one call cannot hold the GameThread indefinitely, and reports UNAVAILABLE rather than a success the editor never saw. It is the right tool when an unattended run is the caller.
Both may be registered at once. What must not happen is an engine choosing between them by name alone, because their answers differ on the failure paths — which is the whole reason this one exists. Register the one that matches the caller, or name the difference in the prompt.
python3 server.py --selftest # 28 checks, no editor needed (a fake bridge on an ephemeral port)
python3 server.py --status # honest: ok=false and state=UNAVAILABLE when the editor is closedMeasured against a live editor on 2026-10-15: spawn StaticMeshActor resolved to
/Script/Engine.StaticMeshActor, reported class=StaticMeshActor, and get_transform read the
spawn location back as [5.0, 6.0, 7.0]; set_transform to [9.5, -8.25, 3.125] with scale
[3,1,1] returned changed: true with all_match: true; an unresolvable class was refused with
sent: false; a three-step pipeline reported PARTIAL with 1 succeeded; the test actor was
deleted and no leftover matched the probe prefix.
Not verified
ue_blueprint, ue_material, ue_media and ue_vision are forwarded and their framing is
exercised by the selftest against a fake bridge, but no blueprint compile, material parameter,
sound, Niagara system, sequence or viewport capture was driven against the live editor in this
session. Treat their action lists as the plugin's contract, not as measurements. The CLASS_PATHS
table is also partial: entries are names this machine's engine was checked to load, and anything
outside it is refused rather than guessed.
Available Tools
7 toolsue_blueprintC
Blueprint authoring: create / add_variable / add_function / add_call_function / connect_pins / set_pin_default / compile / get_summary.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| params | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. The authoring actions imply mutation, but the description does not disclose side effects, whether changes are reversible, permission requirements, or what compile or connect_pins actually do. The action names give minimal implicit context but fall well short of transparency for a mutation-heavy tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted text. Its brevity is efficient, though it borders on under-specification rather than pure conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-action tool with a nested params object, no output schema, no annotations, and 0% schema description coverage, the description is too thin. It enumerates action names but leaves the per-action parameter contract and behavioral expectations almost entirely unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are two parameters, one of which is a nested object. The description usefully enumerates valid values for the action parameter, but it says nothing about the structure or requirements of the params object for each action, leaving half the parameter semantics undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource clearly as Blueprint authoring and enumerates the specific actions it supports (create, add_variable, add_function, etc.). That makes it distinguishable from siblings such as ue_world or ue_material, though the individual action names are not explained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over alternatives, no prerequisites for authoring operations, and no exclusions. It only lists action names, leaving the agent to infer usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ue_materialC
Materials and instances: create_material / create_instance / set_parameter / set_texture / set_static_switch / get_parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| params | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and provides none of it. It does not disclose that the create_* and set_* actions mutate project assets, whether those writes are destructive or reversible, what permissions are needed, or what a call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single terse line, front-loaded with the resource and then the operations, with no filler sentences. It is efficient, though the brevity reflects under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter dispatcher with a free-form nested params object, no annotations, and no output schema, the description is far too thin. An agent knows the action names but not what shape params must take for any of them, which is the minimum needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the 'action' string has no enum, so the enumerated action names are genuinely useful parameter information that the schema does not provide. However, the nested 'params' object — which must carry different arguments per action — is completely unexplained, leaving the harder half of the call undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource ('Materials and instances') and enumerates six concrete operations, so an agent can tell this is the material authoring/querying surface rather than ue_world, ue_blueprint or ue_media. It lacks a single unifying verb ('manage'/'author'), but the action list makes the domain unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus siblings, nor when to prefer create_material over create_instance, nor any prerequisites (e.g. asset must exist before set_parameter). The action list implies what is possible but says nothing about selection criteria or ordering constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ue_mediaC
Audio, Niagara and Sequencer: import_sound / bind_sound / play_sound / spawn_niagara / set_niagara_parameter / create_sequence.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| params | No | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It reveals only that actions like import_sound and spawn_niagara exist, implying mutation, but says nothing about side effects on assets or levels, permissions, reversibility, or the dispatch semantics of the action/params/timeout trio.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single compact line with the domain grouping front-loaded, so there is no padding. However, the compression goes too far: the slash-separated token list reads as under-specification rather than tight, purposeful prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, 0% parameter documentation, and a free-form nested `params` object, this description is far short of what an agent needs to invoke the tool reliably. Missing are the action-to-parameter mapping, return behavior, and any failure/timeout semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters, including a nested, untyped `params` object. The description implicitly enumerates valid `action` values but does not state which params each action accepts, what `timeout` governs, or how `params` is shaped — a significant compensation gap for the most important schema field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names three domains (Audio, Niagara, Sequencer) and enumerates six concrete action strings, which lets an agent infer this is a media/asset operation dispatcher for Unreal Engine. However, it never states the tool's purpose in a verb+resource form, and the domain labels are only implicit differentiation from siblings like ue_material or ue_blueprint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use / when-not-to-use guidance and no mention of the sibling tools (ue_world, ue_blueprint, ue_material, etc.) that an agent must choose between. The listed actions imply scope, but nothing routes the agent away from the wrong tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ue_pipelineC
Run ordered steps in one call with PARTIAL reporting: a step that fails does not erase the ones that already ran, and an editor that stops answering aborts the rest instead of dropping them silently.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose real behavior: partial results survive a failing step and an unresponsive editor aborts rather than silently dropping remaining steps. However, it never says whether steps after a failure still execute, how errors surface, or what the per-step timeout means, which are exactly the ambiguities that matter for a batch executor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence that leads with the action and then the reporting behavior. No filler, though the partial-reporting clause is packed tightly enough that its meaning is slightly murky.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations for a tool whose whole value is reporting per-step outcomes, yet the description never says what comes back on partial success. Combined with zero parameter documentation and a 64-step cap disclosed only in the schema, an agent cannot reliably call or interpret this tool from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter is a nested array of step objects (domain, action, params, timeout, maxItems 64). The description adds nothing about these: no ordering semantics, no explanation of how per-step params pass through, no timeout units or per-step vs global scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Run ordered steps in one call" states a batching verb and hints at multi-step orchestration, but never says what a step is or that it dispatches into the domain siblings (world/blueprint/material/...). The agent must read the nested enum to infer that this is a fan-out across domains rather than a distinct capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to batch via ue_pipeline versus calling ue_world, ue_blueprint, ue_material, ue_media or ue_vision directly. Ordering is mentioned but not as a selection criterion, so the agent gets an implied usage rather than explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ue_statusA
Bridge facts: endpoint, whether the editor answers, the class table this server resolves, and how many steps a pipeline may take.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure; it says the result includes whether the editor answers, which signals a live health probe, and lists resolved class table and pipeline step limit. It does not explicitly state read-only/side-effect behavior or auth/rate limits, leaving important behavioral context implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with a colon-separated list and no filler. Every phrase describes a returned fact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does explain the main return values (endpoint, editor availability, class table, pipeline step limit). For a zero-parameter status tool this is reasonably complete, though it could say what format these facts take or how to interpret failures.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema coverage is 100%, so the baseline is 4. The description does not need to explain parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete facts returned—endpoint, editor responsiveness, class table, and pipeline step limit—so an agent knows this is a bridge/editor status probe. It lacks an explicit verb and does not differentiate from siblings such as ue_pipeline, so it is clear but not maximally sharp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use statement, nor any reference to alternatives. The content implies a health/status check, but the agent must infer that from the listed facts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ue_visionC
Viewport eyes: capture (active viewport as an image) and frame (move the camera onto an actor).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| params | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full disclosure burden. It does hint that frame mutates editor camera state while capture produces an image, but it never states how the image is returned (inline, file path, handle), whether framing requires the actor to be selected/visible, or what permissions/mode (PIE vs editor) are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the two modes are presented compactly. It is arguably too terse given the undocumented payload, but there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a nested free-form params object at 0% coverage, no annotations, and no output schema, the description should explain how to shape the action/params payload and what capture returns. Neither is covered, so an agent cannot reliably invoke this tool from the definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the only structured info is a required untyped 'action' string plus an opaque nested 'params' object. The description implies the action values ('capture', 'frame') and that frame needs an actor reference, but it names no parameter keys or nested shape, leaving the payload essentially undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource (the editor viewport) and enumerates the two concrete actions: capture the active viewport as an image and frame the camera onto an actor. The 'viewport eyes' metaphor is decorative but the parentheticals make the capability unambiguous and distinct from the world/blueprint/material siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Lists what the two modes do but gives no condition for choosing between them and no exclusions relative to siblings (e.g., when to use ue_world for actor inspection instead of framing on an actor here). An agent must guess which action applies to its situation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ue_worldB
Scene actors on the editor side: spawn / bulk_spawn / duplicate / set_transform / get_transform / attach / delete / get_all_actors / select_actors / set_lighting / set_physics / set_visibility / set_folder / set_tags / set_material / level_streaming. spawn resolves friendly class names to /Script/Engine.* and refuses to send one it cannot resolve; set_transform reads the transform back and reports what actually landed.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| action | Yes | ||
| params | No | ||
| location | No | ||
| rotation | No | ||
| actor_class | No | ||
| actor_label | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does add real value by disclosing that spawn validates friendly class names and refuses unresolvable ones, and that set_transform reads back the landed transform. However, it is silent on the destructive nature of delete, on any permissions or editor-connection requirements, and on level_streaming side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, followed by the action enumeration and then two behavioral caveats; there is no filler. The long slash-delimited action run-on is dense but functional rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A single dispatcher covering ~16 actions with 7 parameters, a nested params object, no annotations, and no output schema needs a per-action parameter contract that this description does not provide. An agent can identify the tool but cannot reliably determine which parameters each action requires or what state it mutates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does not: the 'params' object is never mentioned, and the mapping of location/rotation/scale to specific actions is only hinted via set_transform. The note about actor_class resolving to /Script/Engine.* is the one genuine semantic addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource precisely ('scene actors on the editor side') and enumerates the specific operations it dispatches (spawn, duplicate, attach, set_lighting, level_streaming, etc.), so an agent knows this is the actor/level-manipulation entry point. It does not explicitly contrast itself with siblings like ue_blueprint or ue_material, but the actor-scoped framing does most of the disambiguation work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The action list implies when to reach for this tool, but there is no explicit 'use this when / use X instead' guidance and no routing to ue_blueprint, ue_material, or ue_status. An agent must infer from the action vocabulary which requests belong here versus a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.1.0- First observed
ue_blueprint - First observed
ue_material - First observed
ue_media - First observed
ue_pipeline - First observed
ue_status - First observed
ue_vision - First observed
ue_world
TDQS
Scored across 7 tools
Each tool maps to a clearly distinct domain: world actors, blueprints, materials, media, viewport vision, pipeline orchestration, and bridge status. The only possible overlap is ue_pipeline invoking operations from other tools, but its ordered-multi-step purpose is explicitly different from direct domain calls.
All tools follow a consistent ue_<domain> naming pattern with lowercase snake_case-like names. The convention is predictable and readable across the entire set.
Seven tools is well within the ideal range and matches the server's domain-grouped design. Each tool represents a coherent editor subsystem rather than an arbitrary or redundant operation.
The surface covers many major editor areas, but there are notable lifecycle gaps such as blueprint component/event authoring, material deletion or graph editing, and sequencer keyframe editing. These gaps are workable in some cases but will likely cause agent dead ends for common Unreal workflows.
Related MCP Connectors
Search, inspect and invoke every public tool on Invokera through one MCP connection.
Start and manage Reason cloud coding agents, projects and sessions from any MCP client.
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Read and write shared BitsWeave context, projects, tasks, and work sessions through MCP.
Related MCP Servers
- 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
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to work inside a live Unreal Editor for Fortnite session: write and compile Verse, place and wire Creative devices, edit Scene Graph entities, manipulate actors and assets, take screenshots, run playtests, and read editor logs via MCP.MIT
- AlicenseAqualityAmaintenanceEnables AI agents to operate the Unreal Editor via MCP: reading, creating, and editing blueprints at the node level, authoring materials and UMG widgets, auditing projects, and verifying runtime behavior in PIE with read-back checks.341Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables AI engines to call Unreal Engine editor operations across world, blueprint, material, media, vision, and pipeline domains through a local bridge, returning honest UNAVAILABLE status when no plugin listener is present.-