Skip to main content
Glama

UnrealEngine Bridge

Release CI License: MIT Unreal Engine 5.8 Python 3.11+

Claude Code, working inside your Unreal editor. This bridge gives Claude the abilities Epic's own MCP doesn't ship: run real editor Python, see the viewport continuously, light scenes with one command, reason about space with surface normals, and stay honest about every result.

58 MCP tools · 20 mounted by default · 635 tests · Changelog · Security


The one-paragraph story

UE 5.8 ships Epic's official Unreal MCP — 830 tools once you enable AllToolsets. That's the commodity control plane: spawn, transform, materials, Blueprints, Sequencer. So this bridge stopped competing and specialized. We live-probed Epic's entire surface, wrote the verdict for every one of our tools into EPIC_MCP_MATRIX.md, and flipped the default: you get our differentiated core out of the box, Epic handles the basics, and the 36 overlapping tools stay one env var away.


Related MCP server: Hayba

How it works

Two MCP servers, one editor. Claude uses both.

graph LR
    subgraph Claude Code
        A[MCP Client]
    end

    subgraph B1["This bridge — Python"]
        B[MCP Server<br/><i>FastMCP · stdio</i>]
        B --> C[Tiered Registry<br/><i>core: 20 · full: 56</i>]
        C --> D[Remote Control Bridge<br/><i>httpx · circuit breaker</i>]
    end

    subgraph Unreal Editor
        E[Remote Control API<br/><i>localhost:30010</i>]
        E --> F[Editor Runtime]
        G[ViewportPerception<br/><i>localhost:30011</i>]
        G --> F
        H[Epic Unreal MCP<br/><i>localhost:8000 · UE 5.8</i>]
        H --> F
    end

    A -- stdio --> B
    A -. HTTP /mcp .-> H
    D -- HTTP --> E
    C -. viewport capture .-> G

    style A fill:#5CFFDB,color:#05050D
    style B fill:#5CFFDB,color:#05050D
    style C fill:#5CFFDB,color:#05050D
    style D fill:#12121F,color:#fff
    style E fill:#FFCC33,color:#05050D
    style F fill:#12121F,color:#fff
    style G fill:#FFCC33,color:#05050D
    style H fill:#FFCC33,color:#05050D

Who does what:

Job

Server

Spawn / transform / materials / Blueprints / Sequencer

Epic's MCP (UE 5.8, AllToolsets)

Editor Python, console, lighting moods, cloner, perception, spatial reasoning

This bridge

Works on UE 5.7 (no Epic MCP there)

This bridge, with UE_MCP_PROFILE=full


Quick start

You need: UE 5.7 or 5.8 · Python 3.11+ · the Remote Control API plugin enabled (ships with the engine).

1 — Install

git clone https://github.com/JosephOIbrahim/UnrealEngine_Bridge.git
cd UnrealEngine_Bridge
pip install -e .

2 — Open the project

Open UnrealEngine_Bridge.uproject. Check the Output Log for "Remote Control Web Server started" — that's localhost:30010 up.

On UE 5.8, the ModelContextProtocol and AllToolsets plugins self-enable (they're staged Optional in the project). Start Epic's server from the console: ModelContextProtocol.StartServer.

3 — Connect Claude Code

The repo ships a ready .mcp.json — open the repo folder in Claude Code and both servers are configured. For other projects, copy it and fix the path.

4 — Try it

"Set golden hour and snap the crates to the terrain."

Claude uses ue_apply_mood_preset and ue_snap_to_ground — two things no other UE MCP can do.

Want the commodity tools from this bridge instead of Epic's? Set the env var and restart the server:

"unreal": { "command": "python", "args": ["-m", "ue_mcp.mcp_server"], "env": { "UE_MCP_PROFILE": "full" } }

What's mounted by default (the core 20)

These are the tools Epic's MCP does not have — verified against all 830 of theirs (the matrix).

🐍 Editor Python & console (2)

Tool

What it does

ue_execute_python

The escape hatch. Run real Python in the editor with the full unreal API (AST-sandboxed). Epic's execute_tool_script can't even import unreal.

ue_console_command

Run console commands with structured output parsing. No console exec exists anywhere in Epic's surface.

👁 Perception (4)

Tool

What it does

ue_viewport_percept

One frame + camera, selection, and scene metadata in a single call

ue_viewport_watch

Continuous capture at a set rate — Claude keeps watching

ue_viewport_diff

Two-snapshot structural diff: what moved, appeared, disappeared

ue_viewport_config

Resolution / format / rate for the capture pipeline

🌅 Lighting & atmosphere (5)

Tool

What it does

ue_apply_mood_preset

One command = coordinated sun + fog + clouds + color grade

ue_blend_mood_presets

Interpolate two moods (t 0→1) for in-between looks

ue_set_time_of_day

Hour 0–24 → sun elevation, azimuth, color, intensity

ue_setup_sky_atmosphere

Build or update the whole sky rig, idempotently

ue_list_mood_presets

See the built-in cinematic presets

📐 Spatial reasoning (4)

Tool

What it does

ue_ground_trace

Trace down at (x, y): hit point, surface normal, distance, actor. Epic's trace_world returns a bare distance.

ue_snap_to_ground

Drop an actor onto the surface, optionally tilting to the slope

ue_spatial_query

Nearest-N, AABB overlap, combined bounds, box contents

ue_get_actor_hierarchy

The full recursive attachment tree in one call

🧩 Scene gaps Epic left open (3)

Tool

What it does

ue_duplicate_actor

Clone a level actor with an offset (no Epic equivalent)

ue_get_world_info

Streaming levels, world settings, game mode

ue_create_cloner

ClonerEffector procedural instancing, with read-back-verified configuration

❤️ Bridge health (2)

Tool

What it does

ue_status

Is the editor up? Is Remote Control reachable?

ue_health_check

Version, uptime, circuit breaker, per-call metrics, active tool profile, Epic MCP reachability


The commodity tier (36 tools, UE_MCP_PROFILE=full)

Epic's MCP covers these — the matrix cites the exact equivalent for every row. They stay in the codebase, tested and honest, for UE 5.7 or as a fallback:

Module

Tools

Actors

spawn · delete · list · set_transform · get_bounds

Scene

actor details · scene query · component details

Blueprints

create · add component · set properties · CDO defaults · compile · list components · spawn

Materials

create instance · set / get parameters · assign to slot

Sequencer

create sequence · play/scrub · bind actor · keyframe

Level

save · info · load

Assets

find · create material · delete

Mograph

Niagara system · PCG graph

Properties

get / set any UObject property

Editor

focus actor · select actors

Spatial

measure (distance / extent)

Experimental tier (UE_MCP_PROFILE=all): ue_undo / ue_redo — honest not-implemented slots. The UE Python API has no scriptable editor-transaction route; these say so instead of pretending.


🧊 UE ↔ X3D round-trip harness (new in v0.3.0)

Hand Claude a level as open X3D it can read, edit, and validate — then write it back losslessly. A thin, fully-tested slice: no live editor needed to prove an edit is safe.

The one invariant it defends:

deserialize( serialize( level ) )  ==  level

Lossless round trip, plus malformed edits rejected on paper before any mutation. If both hold, the bridge is trustworthy — if either fails, nothing else matters.

Piece

Job

Coordinate crux

UE (Z-up, LH, cm) ↔ X3D (Y-up, RH, m) as one orthonormal basis B (det −1). B⁻¹ = Bᵀ, so the round trip is exact by construction — picking the right B is calibration, not correctness.

Closed grammar

An X3D node set small enough to hand a model whole and validate against. UE specifics (mesh · mobility · folder · parent) ride in Metadata*.

Validate boundary

Out-of-grammar nodes, dangling USE, NaN/∞, wrong arity, non-X3D root — all die here, before the editor is touched.

Apply seam

Diffs two scenes into typed ops (spawn · transform · material · reparent) that emit ue_execute_python.

Preview

The same X3D drops into a browser via X_ITE — free.

from x3d_bridge import Actor, serialize, deserialize, validate

x3d = serialize([Actor(guid="Rock_01", mesh="/Game/Meshes/SM_Rock",
                       t=(420.0, 0.0, 155.0))])
ok, errors = validate(x3d)     # the paper boundary
level = deserialize(x3d)       # lossless

Status — honest, per the house rule:

  • 55 tests — round-trip · validation battery · apply-op sequence — all green

  • ✅ Basis B independently re-derived and confirmed three ways

  • B is analyticnot yet calibrated against a live glTF export (round-trip is basis-agnostic, so this is fidelity-only, never correctness)

  • ⏳ A library today — not yet exposed as MCP tools


Why trust the results? Honesty as architecture

This bridge's tools cannot silently lie — that's enforced, not promised:

  • Exec-simulated codegen tests. Every generated editor script is compiled and executed against a strict fake unreal module in CI. Phantom APIs raise. Dropped arguments fail a sentinel gate. Hard-coded success prints fail honesty contracts.

  • Read-back verification. Writes that UE can silently ignore (cloner layout names) are read back before being reported "applied".

  • Honest statuses. The viewport fallback reports capture_status: timeout instead of an empty image with success: true. Not-implemented tools say "not implemented".

  • 635 tests, including scripted-failure contracts for every historical lying-tool bug.

graph TB
    subgraph Python layer
        MCP["MCP Server<br/><code>ue_mcp/mcp_server.py</code>"]
        Reg["Tiered Registry<br/><i>core / full / all</i>"]
        Tools["Tool Modules (14)<br/><code>ue_mcp/tools/</code>"]
        Val["Validation & AST Sandbox<br/><code>_validation.py</code>"]
        RC["Remote Control Bridge<br/><code>remote_control/</code>"]
        Met["Metrics & Circuit Breaker"]
    end

    subgraph Test layer
        Sim["Exec-Sim Harness<br/><i>strict fake unreal · honesty contracts</i>"]
    end

    subgraph Unreal Editor
        RCAPI["Remote Control API<br/><i>REST · :30010</i>"]
        VP["ViewportPerception plugin<br/><i>GPU readback · :30011</i>"]
        EPIC["Epic Unreal MCP<br/><i>HTTP+SSE · :8000 · UE 5.8</i>"]
    end

    MCP --> Reg --> Tools
    Tools --> Val
    Tools --> RC --> Met
    RC -- HTTP --> RCAPI
    Tools -. capture .-> VP
    Sim -. gates every generated script .-> Tools

    style MCP fill:#5CFFDB,color:#05050D
    style Reg fill:#5CFFDB,color:#05050D
    style Tools fill:#5CFFDB,color:#05050D
    style Sim fill:#12121F,color:#fff
    style RCAPI fill:#FFCC33,color:#05050D
    style VP fill:#FFCC33,color:#05050D
    style EPIC fill:#FFCC33,color:#05050D

Resilience

Pattern

Detail

Circuit breaker

CLOSED → OPEN (5 failures) → HALF_OPEN (30s, 1 probe) → CLOSED

Connection pooling

10 max connections, 5 keepalive

Timeout

10s adaptive default

Atomic file I/O

tempfile + os.replace (NTFS-safe)

Python sandbox

AST validation blocking os, subprocess, open, getattr, dunders

Network surface & trust model

Everything is localhost, single trusted operator: Remote Control (:30010), ViewportPerception (:30011, off by default), and — on 5.8 — Epic's MCP (:8000, no auth, serial on the game thread; Epic's EULA §6(e) governs what your LLM provider may do with transmitted data). Don't expose any of them to untrusted networks.

Full trust model and hardening guidance: SECURITY.md.


Project structure

UnrealEngine_Bridge/
├── ue_mcp/                        # MCP server package
│   ├── mcp_server.py              # FastMCP entry point (stdio) + health tools
│   ├── metrics.py                 # Telemetry + observability
│   ├── ue_logging.py              # Structured JSON logging
│   └── tools/                     # 14 modules · 56 tools · tiered registry in __init__.py
├── remote_control/                # UE5 HTTP bridge (circuit breaker, codegen, polling)
├── x3d_bridge/                    # UE↔X3D round-trip harness (coords · grammar · validate · apply)
├── usd_bridge/                    # USD file I/O package (parked, out of the ship path)
├── Plugins/
│   ├── UEBridge/                  # Editor panel, file watcher (C++)
│   └── ViewportPerception/        # GPU readback + HTTP endpoint (C++)
├── docs/
│   ├── EPIC_MCP_MATRIX.md         # Retirement contract-of-record (probe-grounded)
│   └── epic_mcp/                  # Raw probe captures of Epic's 830-tool surface
├── scripts/probe_epic_mcp.py      # Re-probe Epic's surface per engine version
├── tests/                         # 635 tests, incl. tests/exec_sim/ + tier gates
├── smoke_live.py                  # Live-editor smoke harness (on-demand)
└── .mcp.json                      # Two-server config: this bridge + Epic's MCP

Development

Run the tests

pip install -e ".[dev]"
python -m pytest -q                # 635 tests

Lint

ruff check ue_mcp/ remote_control/ tests/

Add a tool (each step is checked by CI)

  1. Create ue_mcp/tools/your_module.py with a register(server, ue) function

  2. Decorate tools with @server.tool(...); validate inputs via _validation.py

  3. Wire the module into ue_mcp/tools/__init__.pyand classify the tool in TIERS (an unclassified tool fails CI)

  4. Add a sentinel entry in tests/exec_sim/registry.py (a missing entry fails CI)

  5. Add tests


License

Released under the MIT License — Copyright (c) 2026 Joseph Ibrahim.

Available Tools

25 tools
ue_apply_mood_presetA
Idempotent

Apply a named cinematic mood as a coordinated package — sun angle/colour, fog, clouds, and a full post-process colour grade. Call ue_list_mood_presets for available names (e.g. golden_hour, noir, overcast, midday_clear).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description clarifies that the tool applies changes to multiple visual elements (consistent with non-read-only behavior) and implies idempotency by saying 'apply' without side effects. Annotations idempotentHint=true and destructiveHint=false are supported, and the description adds context of what gets modified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. The first sentence states the action and scope; the second provides guidance. Information is front-loaded and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single required parameter and existence of an output schema (not shown but noted), the description covers the core purpose, parameter sourcing, and affected systems. It does not describe return values or error cases, but those may be covered by the output schema. Complete enough for the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by telling the agent to call ue_list_mood_presets for valid names, but does not elaborate on parameter format or constraints beyond the schema type. Baseline for low coverage is 3, and this description provides adequate but not rich semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool applies a named cinematic mood as a coordinated package, specifying affected elements (sun angle/colour, fog, clouds, post-process colour grade). This distinguishes it from sibling tools like ue_set_time_of_day or ue_setup_sky_atmosphere.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description instructs to call ue_list_mood_presets for available names and provides example names (golden_hour, noir, etc.), giving clear context on how to select parameters. It does not explicitly state when not to use it but implies a workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_blend_mood_presetsA
Idempotent

Blend two mood presets and apply the result. t=0 is preset_a, t=1 is preset_b; numeric/colour values interpolate, toggles snap at t>=0.5. Great for dialing a look between two references.

ParametersJSON Schema
NameRequiredDescriptionDefault
tNo
preset_aYes
preset_bYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotent, non-readonly, non-destructive. The description adds valuable behavioral details: interpolation method, snap threshold (t>=0.5), and that numeric/color values interpolate while toggles snap. This goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences. The first states the action and general effect, the second explains the parameter t and its behavior (interpolation vs snap). No redundant or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema existence, return values are not required. The description covers input semantics well (t, interpolation types). It does not mention prerequisites (e.g., valid preset names from ue_list_mood_presets) or error conditions, but for a blending tool with clear interpolative behavior, it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions are absent (0% coverage), so the description carries full burden. It explains t (value between 0 and 1, default 0.5) and its effect on preset_a vs preset_b. It also describes interpolation behavior for different property types. However, preset_a and preset_b are only identified as 'mood presets' without mentioning source (e.g., from ue_list_mood_presets). This partial compensation earns a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Blend... and apply' and identifies the resources (mood presets). It explains the effect (interpolation of numeric/color values, snapping of toggles) and implicitly distinguishes from the sibling 'ue_apply_mood_preset' by focusing on blending two presets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'Great for dialing a look between two references.' It explains the t parameter behavior but does not explicitly state when not to use or list alternatives. Still, the guidance is sufficient for an AI agent to infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_console_commandB

Execute a UE console command and capture output. Blocked commands: exit, quit, crash, gpf, open, servertravel, killall.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false, idempotentHint=false, destructiveHint=false. The description adds that it captures output and lists blocked destructive commands, but does not disclose other behavioral traits such as side effects, error behavior, or permissions. The annotations carry the main transparency burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, no extraneous words, and front-loads the core purpose. The blocked command list adds value without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single parameter and an existing output schema, the description covers the essential action. However, it lacks information on error handling, execution context (e.g., UE editor), and potential timeout behavior, making it only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, and the tool description does not explain the 'command' parameter at all. It only mentions 'Execute a UE console command,' which is insufficient to convey what values the parameter accepts or any format requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Execute a UE console command and capture output,' using a specific verb and resource. It distinguishes from siblings like ue_execute_python by listing blocked commands, which narrows the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists blocked commands (e.g., exit, quit, crash), which provides when-not-to-use guidance. However, it does not explicitly state when to use this tool over alternatives like ue_execute_python, leaving gaps in usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_create_clonerB

Create a ClonerEffector actor that instances a mesh in a layout pattern. Requires the ClonerEffector plugin to be enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
zNo
labelNo
layoutNoGrid
count_xNo
count_yNo
count_zNo
spacingNo
mesh_pathNo/Engine/BasicShapes/Cube

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool creates an actor and requires a plugin. With annotations being all false, it fails to clarify important behavioral aspects such as whether the operation is idempotent, what side effects occur (e.g., instancing multiple meshes), or any required permissions. More detail is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two sentences front-loading the core purpose and a key requirement. However, for 10 parameters, it is under-informative and could benefit from a brief parameter overview without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, no schema descriptions, and minimal annotations), the description is insufficient. It lacks details on parameter usage, output behavior (despite an output schema existing), and fails to provide the context needed for an agent to confidently invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 10 parameters and 0% schema description coverage, the description provides no information about what parameters like x, y, z, label, layout, counts, spacing, or mesh_path mean. The description mentions only 'mesh' and 'layout pattern' but does not map to the schema. This severely hinders correct parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create', the specific resource 'ClonerEffector actor', and the action 'instances a mesh in a layout pattern'. It also includes a prerequisite plugin requirement, making the purpose unambiguous and distinct from sibling tools like ue_duplicate_actor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions a required plugin, providing a necessary condition for use. However, it does not specify when to use this tool versus alternatives, nor does it give any exclusions or contexts where it should be avoided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_duplicate_actorB

Duplicate an actor with an optional position offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
offset_xNo
offset_yNo
offset_zNo
actor_labelYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds the duplication behavior but does not disclose side effects (e.g., whether it modifies the existing actor, what happens to references, or what the output contains). With output schema present, the lack of detail is partially mitigated but not fully.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence) and contains no fluff, but it could be more informative without losing conciseness. It does not fully earn its place given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 4 parameters (1 required) and no schema descriptions, the description is too sparse. It does not explain what the output is (despite an output schema existing), how offsets are applied (relative or absolute), or any constraints. Sibling tools provide further context but the description itself is lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate. It mentions 'optional position offset' but does not explain the three offset parameters individually or the required actor_label. The parameter names are somewhat self-explanatory, but the description adds minimal value beyond what is evident from the names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Duplicate' and the resource 'actor', and mentions the optional offset feature. This distinguishes it from sibling tools like ue_create_cloner or ue_snap_to_ground.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., ue_create_cloner, ue_spatial_query). There is no mention of prerequisites or scenarios where duplication is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_execute_pythonA
Destructive

Execute Python code inside the UE5 editor. The code has access to the 'unreal' module and all editor APIs. Use print() to return output. This is the most powerful tool - use it when no specific tool exists for your operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true. The description adds that it is the most powerful tool, has access to all editor APIs, and that print() is used for output. This provides useful behavioral context beyond annotations, though it could mention potential side effects like scene modification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, each earning its place. No redundant information. Front-loaded with the core purpose and immediately followed by key capabilities and usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and destructive potential, the description explains input, output mechanism, and when to use it. The presence of an output schema reduces the need to describe return values. Slight lack of safety warnings, but overall complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining that the 'code' parameter takes Python code, has access to editor APIs, and that print() returns output. This adds meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it executes Python code in the UE5 editor, specifies access to the 'unreal' module and editor APIs, and explicitly contrasts with sibling tools by calling itself the most powerful tool to use when no specific tool exists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'use it when no specific tool exists for your operation,' giving clear guidance on when to prefer this tool over alternatives. Lacks explicit exclusions but the context of sibling tools makes the usage context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_get_actor_hierarchyB
Read-onlyIdempotent

Get the parent-child attachment tree for an actor. Shows all attached children recursively (max depth 10).

ParametersJSON Schema
NameRequiredDescriptionDefault
actor_labelYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, confirming safe, repeatable behavior. The description adds value by specifying recursive traversal with a max depth of 10, which is behavioral context not captured by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main action, and every sentence adds value. No redundant or irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, output schema present), the description covers the key behavioral aspects (recursive depth limit). It does not explain error handling or output format, but the output schema likely handles that. Slight gap in usage context but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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. It only mentions 'for an actor', implying actor_label identifies the actor, but gives no details on format or identification rules. This is minimal semantic addition for a required parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the parent-child attachment tree for an actor and shows all attached children recursively. It uses specific verbs and resource, and while it doesn't explicitly differentiate from siblings, the purpose is clear and distinct from other tools like spatial queries or console commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or any comparison with sibling tools, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_get_world_infoA
Read-onlyIdempotent

Get detailed world information: streaming levels, world settings, game mode.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds context by listing specific information types returned (streaming levels, world settings, game mode), which provides useful insight beyond the annotations. It does not mention rate limits or permissions, but for a safe getter, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that front-loads the action and resource. Every word is meaningful, and there is no verbosity or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and the existence of an output schema (not shown but indicated), the description adequately covers what the tool does. The output schema handles return value details, so the description does not need to elaborate further. It is complete for a straightforward getter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema coverage is 100% (empty). Baseline score is 4 because there are no parameters to describe. The description does not need to add parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves detailed world information including streaming levels, world settings, and game mode. The verb 'Get' and resource 'world information' are specific, but it does not explicitly differentiate from sibling tools like ue_status, though the name uniquely implies world-level data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool can be used to obtain world details but provides no guidance on when to use it versus alternatives, nor any prerequisites or restrictions. Since the tool is simple and has no parameters, the lack of explicit usage guidance is less critical but still a gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_ground_traceA
Read-onlyIdempotent

Line-trace straight down at world (x, y) to find the ground/surface. Returns the hit point, surface normal, distance, and which actor was hit. Use before placing props so you know where the floor is.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
start_zNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds value by specifying return data (hit point, normal, distance, actor), which annotations do not cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences: first defines purpose and outputs, second gives usage context. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists (not shown) so return values are covered. However, parameter start_z is unexplained, which is a gap for a tool with only 3 params and no schema descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. Description does not explain parameters individually; start_z is not mentioned despite having a default value, leaving agents to guess its meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'line-trace' and resource 'ground/surface', clearly states what it does, and distinguishes from siblings by specifying it traces straight down at world coordinates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'before placing props so you know where the floor is'. No explicit alternatives or when-not, but context is clear and helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_health_checkA
Read-onlyIdempotent

Get bridge health: version, uptime, circuit breaker state, request metrics (counts, latencies, error rates). Use this to diagnose connection issues. Pass deep=true to also run the capability preflight (can the bridge actually execute, not just connect).

ParametersJSON Schema
NameRequiredDescriptionDefault
deepNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and idempotentHint as true, and destructiveHint as false, indicating a safe read operation. The description adds behavioral context by detailing the health data returned and explaining that deep=true runs a capability preflight, going beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states purpose and output, second provides usage guidance and parameter detail. Front-loaded with key information, no redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential purpose, usage, and parameter. With an existing output schema (not shown), the return values are likely well-documented. The description could mention potential error conditions or limitations, but it's fairly complete for the tool's scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates fully by explaining the 'deep' parameter's purpose: to run a capability preflight to check if the bridge can execute. This adds significant meaning beyond the schema's basic type and default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'bridge health', listing specific data points (version, uptime, circuit breaker state, request metrics). This distinguishes it from sibling tools like 'ue_preflight' and 'ue_status'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to diagnose connection issues', providing a clear context for when to invoke the tool. It also explains the 'deep' parameter as an alternative for a deeper check, though it doesn't explicitly mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_list_mood_presetsA
Read-onlyIdempotent

List the built-in cinematic mood/look-dev presets and their descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds 'built-in' and 'descriptions' context but no additional behavioral traits. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundant words, directly states purpose. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, complete annotations, and an output schema, the description fully covers what the tool does—listing presets and descriptions. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema coverage is 100%. Baseline is 4; description does not add parameter info but is not needed. It correctly implies no input required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists built-in cinematic mood/look-dev presets and their descriptions, using a specific verb-resource pairing. It distinguishes from sibling tools like ue_apply_mood_preset and ue_blend_mood_presets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied (list presets before applying/blending), but there is no explicit statement of when to use or not use this tool versus alternatives. No exclusions or sister tool references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_preflightA
Read-onlyIdempotent

Capability preflight: probe whether the bridge can ACTUALLY execute against the editor, not merely connect. Runs a ladder -- reachable, remote function calls permitted, a value round-trips, full Python round-trip -- stops at the first failure, and returns the named cause plus the one-line fix (with the raw Remote Control error body as evidence). Use this whenever tools error but ue_status says connected -- e.g. UE 5.8's bAllowAnyRemoteFunctionCall block.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the ladder of tests (reachable, remote function calls, value round-trip, Python round-trip), stop-at-first-failure behavior, and return content (cause, fix, raw error). Annotations already indicate readOnly and idempotent; description adds valuable behavioral detail beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: purpose, mechanism, usage context. Front-loaded with key verb and resource. No extraneous words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, present annotations, and existing output schema, the description fully covers the tool's purpose, behavior, and usage. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline of 4 applies. Description does not need to add parameter info. Schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines a preflight probe that checks actual execution capability, not just connection. It distinguishes from ue_status by specifying what it tests and its use case. The verb 'probe' and resource 'capability' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'whenever tools error but ue_status says connected', with a concrete example (UE 5.8's bAllowAnyRemoteFunctionCall block). This provides clear context and differentiation from alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_set_time_of_dayA
Idempotent

Set the time of day (hour 0-24) — drives sun elevation, compass azimuth, colour temperature (warm near the horizon, neutral high, cool moonlight at night), and intensity. Builds/reuses the sky rig and recaptures.

ParametersJSON Schema
NameRequiredDescriptionDefault
hourNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotentHint=true and destructiveHint=false. The description adds behavioral context: it drives multiple lighting properties, builds/reuses the sky rig, and recaptures. This goes beyond the annotations by explaining side effects without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the primary action and followed by key effects and technical detail. Every word contributes value; there is no redundancy or verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having one parameter and an output schema (not shown), the description covers the parameter's effect and the tool's overall behavior (sky rig reuse). It could mention prerequisites (e.g., sky atmosphere setup) but remains adequate for a focused tool with idempotent annotation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides no description for the 'hour' parameter (0% coverage). The description compensates by specifying the valid range 0-24 and explaining that it drives sun elevation, compass azimuth, colour temperature, and intensity. This adds meaning beyond the schema's type and default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets the time of day and specifies the hour range 0-24. It enumerates the effects (sun elevation, azimuth, colour temperature, intensity) and mentions sky rig reuse, making the purpose unambiguous and distinct from sibling tools like ue_setup_sky_atmosphere.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. While the purpose is clear, there is no mention of prerequisites or conditions (e.g., requiring ue_setup_sky_atmosphere first), nor comparison to sibling tools that might adjust lighting differently.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_setup_sky_atmosphereA
Idempotent

Build or update the sky/atmosphere rig in one call: find-or-spawn the DirectionalLight (sun), SkyAtmosphere, SkyLight, fog, and clouds, then recapture the sky. sun_elevation is degrees above the horizon, sun_azimuth is the compass heading. Idempotent — reuses existing rig actors.

ParametersJSON Schema
NameRequiredDescriptionDefault
fogNo
cloudsNo
fog_densityNo
sun_azimuthNo
sun_elevationNo
sun_intensityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide idempotentHint=true and destructiveHint=false. The description adds behavioral details: find-or-spawns actors, recaptures sky, and reuses existing rig. No contradiction with annotations. Additional context on limits or side effects would be beneficial but is not critical given annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. The first sentence front-loads the purpose and key components. The second sentence explains two key parameters and idempotency. Every word earns its place, and the structure is logical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given moderate complexity (multiple actors, parameters) and existing annotations, the description provides a good overview but leaves gaps. Parameter documentation is incomplete, and it does not mention the output schema (though exists). The description is adequate for basic use but not fully comprehensive for all scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description explains only two parameters (sun_elevation, sun_azimuth) with degrees and compass heading. The other four parameter names (fog, clouds, fog_density, sun_intensity) are self-explanatory to some extent but lack precision. For example, sun_intensity's default null and anyOf is unexplained, and fog_density's unit is missing. With 0% schema coverage, the description should document all parameters more thoroughly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds or updates the sky/atmosphere rig in one call, listing specific components (DirectionalLight, SkyAtmosphere, SkyLight, fog, clouds) and action (recapturing sky). It distinguishes from sibling tools like ue_set_time_of_day, which adjust time, not setup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context (build/update sky rig) and notes idempotency, implying safe reuse. However, it does not explicitly state when to avoid this tool versus alternatives like mood presets or when manual setup is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_snap_to_groundA
Idempotent

Drop an actor (by label) onto the surface directly beneath it so its bounding-box bottom rests on the ground. Optionally tilt it to match the surface slope, and apply a vertical offset. One fast transaction.

ParametersJSON Schema
NameRequiredDescriptionDefault
z_offsetNo
actor_labelYes
align_to_normalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: 'One fast transaction' indicates speed and atomicity, and 'bounding-box bottom rests on the ground' clarifies the exact outcome. However, it does not disclose failure modes (e.g., what if ray doesn't hit ground) or permissions needed. Annotations already indicate idempotency and non-destructiveness, so the bar is lower.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first gives the primary action, the second lists options and adds a performance note. Every word is necessary; no redundancy or filler. It is front-loaded and easily parseable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters and a simple action, the description covers the core behavior and optional features. It mentions a transaction hint and offsets. However, it does not address edge cases like missing ground or incompatible actors, and the output schema is not described but is available separately. Overall, it is sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully explains all three parameters: 'by label' for actor_label, 'apply a vertical offset' for z_offset, and 'tilt it to match the surface slope' for align_to_normal. It adds meaningful semantics beyond titles and defaults, leaving no ambiguity about parameter purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Drop an actor onto the surface directly beneath it so its bounding-box bottom rests on the ground.' It specifies the resource (actor by label) and the verb (snap/drop), and distinguishes from siblings like ue_ground_trace (which likely traces rays, not snaps) by focusing on repositioning with optional tilt and offset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., ue_ground_trace, ue_spatial_query). It does not mention conditions like actor must exist, must be movable, or what happens if no ground is found. The agent must infer usage from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_spatial_queryA
Read-onlyIdempotent

Reason about actor positions and volumes. Modes: 'nearest' (N closest actors to a point), 'overlap' (do two actors' bounding boxes intersect, + penetration depth), 'combined_bounds' (union AABB of a filtered set — its footprint), 'box_contents' (which actors sit inside an axis-aligned box). Filter the candidate set with class_filter / tag_filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
zNo
modeYes
countNo
actor_aNo
actor_bNo
extent_xNo
extent_yNo
extent_zNo
tag_filterNo
class_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by detailing the behavior of each mode (e.g., 'N closest actors', 'penetration depth', 'union AABB', 'actors inside box'). This goes beyond what annotations provide, though it could mention that results are returned as a list or other format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences that front-load the purpose and then list modes. There is no redundant information. It could be slightly more structured (e.g., bullet points for modes), but it is clear and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters, 1 required, with output schema), the description provides a good high-level overview and explains mode and filters. However, it omits critical details about spatial parameters (coordinates, extents) which are central to the tool's operation. The presence of an output schema somewhat reduces the need to explain return values, but the missing parameter details leave the description incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage. The description explains the 'mode' parameter and mentions 'class_filter' and 'tag_filter', but fails to describe many other parameters (x, y, z, count, actor_a, actor_b, extent_x, extent_y, extent_z). With 12 parameters and no schema descriptions, the tool description should compensate by explaining these, but it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Reason about actor positions and volumes.' It enumerates four distinct modes with brief explanations, making the tool's function very specific. The sibling tools (e.g., ue_ground_trace, ue_get_actor_hierarchy) are clearly different in purpose, so this tool is well-differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains each mode's behavior (nearest, overlap, combined_bounds, box_contents) and implies usage for spatial queries. It does not explicitly state when not to use this tool or compare it to siblings, but given the unique nature of the sibling tools, the guidance is sufficient for a typical use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_statusA
Read-onlyIdempotent

Check if the UE5 editor is running and the Remote Control API is reachable.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds context about what is checked (editor running, API reachable) but does not provide additional behavioral details beyond that. This is adequate given the safety profile is clear from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the key action. Every word earns its place; no extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (no parameters, output schema exists), the description is fully sufficient. It tells the agent exactly what the tool does without needing further elaboration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and 100% schema description coverage, the description correctly has no parameter details. The baseline score of 4 is appropriate as the empty schema says nothing and the description does not need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'check' with the clear objects 'UE5 editor is running' and 'Remote Control API is reachable'. This explicitly distinguishes it from siblings like 'ue_health_check' which might cover broader health, while this focuses on connectivity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. There is no mention of when to use this tool versus the sibling 'ue_health_check' or any context about prerequisites or typical scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_viewport_configB
Idempotent

Configure the viewport perception system (resolution, format, capture rate).

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
formatNo
heightNo
max_fpsNo
qualityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is not readonly, idempotent, and not destructive. The description adds minimal behavioral context beyond listing the configurable attributes; it does not mention side effects, prerequisites, or effects on the system.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. However, it could be more informative without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given five optional parameters and no enum constraints, the description fails to explain defaults, parameter interactions, or what the output schema returns. The tool is a configuration operation, yet the description omits critical usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It vaguely lists 'resolution, format, capture rate' but does not map to specific parameters (width, height, format, max_fps, quality) or clarify allowed values, defaults, or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Configure the viewport perception system (resolution, format, capture rate)' clearly specifies the verb (configure) and resource (viewport perception system), and distinguishes from sibling tools like ue_viewport_percept (perception) and ue_viewport_diff (diff).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks any guidance on when to use this tool versus alternatives such as ue_viewport_percept or ue_viewport_watch. No explicit conditions or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_viewport_diffA
Read-onlyIdempotent

Capture two viewport snapshots with a delay and return a structural diff showing what changed (actors, camera, selection). Useful for verifying that scene modifications took effect.

ParametersJSON Schema
NameRequiredDescriptionDefault
delay_msNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: it captures two snapshots with a delay (controlled by delay_ms) and returns a diff. This aligns with readOnlyHint and idempotentHint. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, short and front-loaded. The first sentence explains the action and result, the second gives a use case. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single optional parameter, rich annotations, and existing output schema, the description covers purpose, usage context, and behavioral key points. No gaps are apparent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by mentioning 'with a delay,' which implies the delay_ms parameter. It does not explicitly name the parameter or detail its unit, but the default and context make it clear enough for an agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool captures two viewport snapshots and returns a structural diff of changes (actors, camera, selection). The verb 'Capture' and the resource are specific, and the purpose of verifying scene modifications distinguishes it from siblings like ue_viewport_percept or ue_viewport_watch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description suggests use for verifying scene modifications, providing a clear context. However, it does not explicitly mention when not to use or compare to alternative sibling tools, so the guidance is good but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_viewport_perceptA
Read-onlyIdempotent

Capture the UE5 editor viewport -- returns the rendered frame as an image plus camera, selection, and scene metadata. Gives the AI situated visual awareness.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
formatNojpeg
heightNo
include_imageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly and idempotent behavior. The description adds value by specifying the returned data (image, camera, selection, metadata), with no contradiction. It could further disclose format or prerequisites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences front-loaded with purpose, no fluff, earning every word.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description captures the core function and output, but lacks parameter guidance. Given an output schema exists, return values are covered, but the missing parameter context reduces completeness for a 4-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description does not explain any of the 4 parameters (width, height, format, include_image), leaving the agent without meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool captures the viewport and returns an image plus metadata, providing a specific verb and resource that distinguishes it from sibling tools like ue_viewport_config or ue_viewport_diff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for visual awareness but does not explicitly state when to use this tool versus alternatives, nor does it exclude any contexts or give when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_viewport_watchB
Idempotent

Start or stop continuous viewport awareness at the specified rate. When active, the perception system captures frames continuously.

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNo
widthNo
actionNostart
heightNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations set idempotentHint=true and destructiveHint=false, reducing the burden. Description adds that it captures frames continuously, but lacks details on the effects of start vs. stop or consequences of repeated calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with key information. No extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description covers start/stop and capture behavior but omits details on the action parameter and potential side effects. With four optional parameters but defaults, basic completeness is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. Only the rate (fps) is hinted; no explanation of action, width, or height parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it starts/stops viewport awareness with a specified rate. Distinguishable from siblings like ue_viewport_config or ue_viewport_percept, but could be more specific about 'viewport awareness'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus alternatives, no when-not-to-use information. Only implies usage context via the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_x3d_applyA
Destructive

Apply an X3D document's actor transforms back to the live level. Validates the document, then for each Transform (addressed by its DEF = the actor's object path) sets location/rotation/scale in the editor. Actors must already exist. Returns {applied} or an error. v0.4.0 applies transforms only.

ParametersJSON Schema
NameRequiredDescriptionDefault
x3dYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds that it validates first and applies transforms, but lacks details on side effects like overriding previous transforms, reversibility, or undo behavior. The version note (v0.4.0) adds minimal context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3 sentences), front-loaded with the primary action, and includes a version note. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, return values are covered. However, the description lacks context on the input format and does not address potential failure modes beyond returning an error. For a tool with moderate complexity and no additional annotations beyond destructiveHint, a bit more detail would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the only parameter ('x3d'). The description does not explain what the 'x3d' string should contain (e.g., file path, content, XML). It merely mentions 'X3D document's actor transforms', which is insufficient for an agent to construct the parameter correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's function: 'Apply an X3D document's actor transforms back to the live level.' It specifies the process (validates, then sets location/rotation/scale) and resource (transforms addressed by DEF). This clearly distinguishes it from sibling tools like ue_x3d_export and ue_x3d_validate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions a prerequisite: 'Actors must already exist.' However, it does not provide guidance on when to use this tool versus alternatives (e.g., ue_x3d_preview), nor does it specify when not to use it. The usage context is implied but not explicitly differentiated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_x3d_exportA
Read-onlyIdempotent

Serialize the current level to X3D text (the x3d_bridge thin-slice grammar). Reads each actor's quaternion transform, static mesh, material, and attach parent; converts UE (Z-up, cm) to X3D (Y-up, m). mesh_only=True (default) exports only actors with a static mesh. Returns {actor_count, x3d}.

ParametersJSON Schema
NameRequiredDescriptionDefault
mesh_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds behavioral context beyond annotations: reads actor properties, converts coordinates, returns actor_count and x3d. Annotations already indicate read-only and idempotent, so description enhances understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundancy. Front-loaded with main action, then relevant details. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key behaviors: serialization, data read, coordinate conversion, return value. Output schema exists but description suffices. Could mention potential limits or side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description explains mesh_only parameter's behavior (exports only actors with static mesh when True). Adds meaning beyond the schema definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it serializes the current level to X3D text, specifying the grammar, data read, coordinate conversion, and mesh_only parameter. Distinguishes from sibling tools like ue_x3d_apply and ue_x3d_preview.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for exporting level to X3D, but lacks explicit when-not or alternative references. However, sibling names provide context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_x3d_previewA
Read-onlyIdempotent

Render an X3D document to a standalone HTML page that views it in a browser via the X_ITE runtime (no editor needed). Returns {chars, html}. The page references X_ITE from a CDN, so viewing it needs network access; the X3D payload is embedded inline.

ParametersJSON Schema
NameRequiredDescriptionDefault
x3dYes
titleNoUE x X3D preview

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint and idempotentHint. The description adds useful context: the output is a standalone HTML referencing X_ITE from CDN, requiring network access, and the X3D payload is embedded inline. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences with no wasted words. Every sentence adds value: first states the core action and output format, second provides a network dependency caveat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool, the description covers key aspects: input, output structure, and runtime requirement. The presence of an output schema reduces the burden, though the output is also described. A minor gap is not specifying the X3D format (e.g., XML, JSON) expected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description should compensate. It only vaguely mentions 'an X3D document' for the required 'x3d' parameter and doesn't explain the 'title' parameter beyond its default value. More detail on content format or usage is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('render') and resource ('X3D document'), clearly distinguishing it from sibling tools like ue_x3d_apply, ue_x3d_export, and ue_x3d_validate. The phrase 'no editor needed' adds clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for previewing X3D documents but lacks explicit guidance on when to use or avoid this tool. No alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ue_x3d_validateA
Read-onlyIdempotent

Validate an X3D document against the closed thin-slice grammar without touching the editor: rejects out-of-grammar nodes, dangling USE references, wrong numeric arity, non-X3D roots, and NaN/inf. Returns {ok, errors}. Run this on model-edited X3D before apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
x3dYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint. The description adds behavioral details: it 'rejects' various issues and 'does not touch the editor', consistent with readOnly. It also specifies the return format {ok, errors}, which goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first states the main action and specifics, the second gives usage guidance. No redundant words. Front-loaded with the verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description covers the return format ({ok, errors}), lists validation checks, and provides usage context. It could mention if the function throws errors, but the return format is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single parameter 'x3d' of type string with 0% schema description coverage. The description refers to 'X3D document' but does not specify whether the string should be the raw XML content or a file path. This ambiguity reduces clarity for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'validate' and the resource 'X3D document', and lists specific validation checks (grammar, dangling USE references, numeric arity, non-X3D roots, NaN/inf). This distinguishes it from sibling tools like ue_x3d_apply and ue_x3d_export.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Run this on model-edited X3D before apply', providing clear when-to-use context. It does not mention alternatives or when not to use, but the guidance is sufficient for typical use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.8/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: mood tools are separate from viewport, X3D, spatial, and general utilities. No two tools appear to do the same thing, and descriptions clarify boundaries.

Naming Consistency5/5

All tools use the 'ue_' prefix followed by a consistent verb_noun pattern (e.g., apply_mood_preset, get_world_info, snap_to_ground). Minor deviations like 'ue_status' are still clear and follow the convention.

Tool Count4/5

With 25 tools, the server covers a broad range of Unreal Engine operations without being excessive. The count is appropriate for comprehensive bridge functionality, though it could be slightly trimmed.

Completeness4/5

The tool surface is extensive, covering mood, time, sky, viewport, X3D, spatial queries, and actor manipulation. The ue_execute_python tool fills many gaps. Minor omissions like direct material editing are acceptable given the scope.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to control and automate Unreal Engine through a native C++ Automation Bridge plugin. It supports a comprehensive range of tasks including asset management, actor manipulation, editor control, and blueprint graph editing.
    295
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server enabling AI agents to author Unreal Engine 5 scenes directly, with tools for spawning actors, building PCG graphs, validating physics, generating terrain, and more through a single MCP connection.
    12
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    An MCP server that gives AI agents broad control over Unreal Engine 5.7, enabling actor/asset/level management, Blueprint and material creation, screenshots, automation, and arbitrary editor Python execution.
    35
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JosephOIbrahim/UnrealEngine_Bridge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server