Unreal Engine MCP Server
Provides tools for controlling Unreal Engine, including asset management, actor control, editor automation, level management, animation, visual effects, sequencer, blueprint editing, audio, and system commands.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Unreal Engine MCP Serverspawn a cube at the origin"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Unreal Engine MCP Server
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal Engine through a native C++ Automation Bridge plugin. Built with TypeScript and C++.
Table of Contents
Related MCP server: Unreal Engine MCP Server
Features
Category | Capabilities |
Asset Management | Browse, import, duplicate, rename, delete assets; create materials |
Actor Control | Spawn, delete, transform, physics, tags, components |
Editor Control | PIE sessions, camera, viewport, screenshots, bookmarks |
Level Management | Load/save levels, streaming, World Partition, data layers |
Animation & Physics | Animation BPs, state machines, ragdolls, vehicles, constraints |
Visual Effects | Niagara particles, GPU simulations, procedural effects, debug shapes |
Sequencer | Cinematics, timeline control, camera animations, keyframes |
Graph Editing | Blueprint, Niagara, Material, and Behavior Tree graph manipulation |
Audio | Sound cues, audio components, sound mixes, ambient sounds |
System | Console commands, UBT, tests, logs, project settings, CVars |
Architecture
Native C++ Automation — All operations route through the MCP Automation Bridge plugin
Dynamic Type Discovery — Runtime introspection for lights, debug shapes, and sequencer tracks
Graceful Degradation — Server starts even without an active Unreal connection
On-Demand Connection — Retries automation handshakes with exponential backoff
Command Safety — Blocks dangerous console commands with pattern-based validation
Asset Caching — 10-second TTL for improved performance
Metrics Rate Limiting — Per-IP rate limiting (60 req/min) on Prometheus endpoint
Centralized Configuration — Unified class aliases and type definitions
Getting Started
Prerequisites
Node.js 18+
Unreal Engine 5.0–5.7
Step 1: Install MCP Server
Option A: NPX (Recommended)
npx unreal-engine-mcp-serverOption B: Clone & Build
git clone https://github.com/ChiR24/Unreal_mcp.git
cd Unreal_mcp
npm install
npm run build
node dist/cli.jsStep 2: Install Unreal Plugin
The MCP Automation Bridge plugin is included at Unreal_mcp/plugins/McpAutomationBridge.
Method 1: Copy Folder
Copy: Unreal_mcp/plugins/McpAutomationBridge/
To: YourUnrealProject/Plugins/McpAutomationBridge/Regenerate project files after copying.
Method 2: Add in Editor
Open Unreal Editor → Edit → Plugins
Click "Add" → Browse to
Unreal_mcp/plugins/Select the
McpAutomationBridgefolder
Video Guide:
https://github.com/user-attachments/assets/d8b86ebc-4364-48c9-9781-de854bf3ef7d
⚠️ First-Time Project Open: When opening the project directly (double-click
.uproject) for the first time, UE will prompt "Would you like to rebuild them now?" for missing modules. Click Yes to rebuild. After the rebuild completes, you may still see: "Plugin 'McpAutomationBridge' failed to load because module could not be loaded." This is expected — UE rebuilds successfully but doesn't reload the plugin in the same session. Simply close and reopen the project and the plugin will load correctly. Alternatively, build via Visual Studio first to avoid this.
Step 3: Enable Required Plugins
Enable via Edit → Plugins, then restart the editor.
Plugin | Required For |
MCP Automation Bridge | All automation operations |
Editor Scripting Utilities | Asset/Actor subsystem operations |
Niagara | Visual effects and particle systems |
Plugin | Required For |
Level Sequence Editor |
|
Control Rig |
|
GeometryScripting |
|
Behavior Tree Editor |
|
Niagara Editor | Niagara authoring |
Environment Query Editor | AI/EQS operations |
Gameplay Abilities |
|
MetaSound |
|
StateTree |
|
Smart Objects | AI smart object operations |
Enhanced Input |
|
Chaos Cloth | Cloth simulation |
Interchange | Asset import/export |
Data Validation | Data validation |
Procedural Mesh Component | Procedural geometry |
OnlineSubsystem | Session/networking operations |
OnlineSubsystemUtils | Session/networking operations |
💡 Optional plugins are auto-enabled by the MCP Automation Bridge plugin when needed.
Step 4: Configure MCP Client
Add to your Claude Desktop / Cursor config file:
Using Clone/Build:
{
"mcpServers": {
"unreal-engine": {
"command": "node",
"args": ["path/to/Unreal_mcp/dist/cli.js"],
"env": {
"UE_PROJECT_PATH": "C:/Path/To/YourProject",
"MCP_AUTOMATION_PORT": "8091"
}
}
}
}Using NPX:
{
"mcpServers": {
"unreal-engine": {
"command": "npx",
"args": ["unreal-engine-mcp-server"],
"env": {
"UE_PROJECT_PATH": "C:/Path/To/YourProject"
}
}
}
}Configuration
Environment Variables
# Required
UE_PROJECT_PATH="C:/Path/To/YourProject"
# Automation Bridge
MCP_AUTOMATION_HOST=127.0.0.1
MCP_AUTOMATION_PORT=8091
# LAN Access (optional)
# SECURITY: Set to true to allow binding to non-loopback addresses (e.g., 0.0.0.0)
# Only enable if you understand the security implications.
MCP_AUTOMATION_ALLOW_NON_LOOPBACK=false
# Logging
LOG_LEVEL=info # debug | info | warn | error
# Optional
MCP_AUTOMATION_REQUEST_TIMEOUT_MS=120000
ASSET_LIST_TTL_MS=10000LAN Access Configuration
By default, the automation bridge only binds to loopback addresses (127.0.0.1) for security. To enable access from other machines on your network:
TypeScript (MCP Server):
MCP_AUTOMATION_ALLOW_NON_LOOPBACK=true
MCP_AUTOMATION_HOST=0.0.0.0Unreal Engine Plugin:
Go to Edit → Project Settings → Plugins → MCP Automation Bridge
Under Security, enable "Allow Non Loopback"
Under Connection, set "Listen Host" to
0.0.0.0Restart the editor
⚠️ Security Warning: Enabling LAN access exposes the automation bridge to your local network. Only use on trusted networks with appropriate firewall rules.
Available Tools
36 MCP tools with action-based dispatch for comprehensive Unreal Engine automation.
Tool | Description |
| Assets, Materials, Render Targets, Behavior Trees |
| Spawn, delete, transform, physics, tags |
| PIE, Camera, viewport, screenshots |
| Load/Save, World Partition, streaming |
| UBT, Tests, Logs, Project Settings, CVars |
| Object Introspection |
| Build automation, UBT compilation, status checks |
| Dynamic tool management (enable/disable at runtime) |
Tool | Description |
| Spawn lights, GI, shadows, build lighting, list_light_types |
| Level creation, sublevels, World Partition, data layers, HLOD |
| Trigger volumes, blocking, physics, audio, navigation volumes |
| NavMesh settings, nav modifiers, nav links, smart links, pathfinding |
| Landscape, Foliage, Procedural |
| Spline creation, spline mesh deformation |
Tool | Description |
| Animation BPs, Vehicles, Ragdolls, Control Rig, IK, Blend Spaces |
| Skeleton, sockets, physics assets, cloth binding |
| Procedural mesh creation (Geometry Script) |
Tool | Description |
| Niagara, Particles, Debug Shapes, GPU simulations |
| Material creation, expressions, landscape layers |
| Texture creation, modification, compression settings |
| Create, SCS, Graph Editing, Node manipulation |
| Sequencer / Cinematics, list_track_types |
| Profiling, optimization, scalability |
Tool | Description |
| Audio Assets, Components, Sound Cues, MetaSounds, Attenuation |
| Enhanced Input Actions & Contexts |
Tool | Description |
| Behavior Tree Graph Editing |
| AI controllers, EQS, perception, State Trees, Smart Objects |
| Gameplay Ability System: abilities, effects, attributes |
| Character creation, movement, advanced locomotion |
| Weapons, projectiles, damage, melee combat |
| Items, equipment, loot tables, crafting |
| Interactables, destructibles, triggers |
| UMG widget creation, layout, styling, animations |
Tool | Description |
| Replication, RPCs, network prediction |
| Game modes, game states, player controllers, match flow |
| Sessions, split-screen, LAN, voice chat |
Blueprints • Materials • Textures • Static Meshes • Skeletal Meshes • Levels • Sounds • Particles • Niagara Systems • Behavior Trees
Optional GraphQL endpoint for complex queries. Disabled by default.
GRAPHQL_ENABLED=true
GRAPHQL_PORT=4000See GraphQL API Documentation.
Docker
docker build -t unreal-mcp .
docker run -it --rm -e UE_PROJECT_PATH=/project unreal-mcpDocumentation
Document | Description |
TypeScript to C++ routing | |
Query and mutation reference | |
C++ plugin architecture | |
How to run and write tests | |
Development phases |
Development
npm run build # Build TypeScript
npm run lint # Run ESLint
npm run test:unit # Run unit tests
npm run test:all # Run all testsCommunity
Resource | Description |
Track development progress across 47 phases | |
Ask questions, share ideas, get help | |
Report bugs and request features |
Contributing
Contributions welcome! Please:
Include reproduction steps for bugs
Keep PRs focused and small
Follow existing code style
License
MIT — See LICENSE
Available Tools
43 toolsanimation_physicsC
Create animation blueprints, blend spaces, montages, state machines, Control Rig, IK rigs, ragdolls, and vehicle physics.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | ||
| min | No | ||
| mass | No | ||
| name | No | Name identifier. | |
| time | No | ||
| frame | No | ||
| scale | No | 3D scale (x, y, z). | |
| value | No | Generic value (any type). | |
| action | Yes | Action | |
| length | No | ||
| enabled | No | Whether the item/feature is enabled. | |
| endBone | No | Name of the bone. | |
| rigPath | No | Asset path (e.g., /Game/Path/Asset). | |
| samples | No | ||
| animPath | No | Asset path (e.g., /Game/Path/Asset). | |
| axisName | No | ||
| boneName | No | Name of the bone. | |
| location | No | 3D location (x, y, z). | |
| meshPath | No | Mesh asset path. | |
| playRate | No | ||
| rotation | No | 3D rotation (pitch, yaw, roll). | |
| savePath | No | Path to save the asset. | |
| slotName | No | ||
| unitType | No | ||
| actorName | No | Name of the actor. | |
| artifacts | No | ||
| chainName | No | ||
| curveName | No | ||
| sourcePin | No | ||
| startBone | No | Name of the bone. | |
| stateName | No | ||
| targetPin | No | ||
| notifyName | No | ||
| numSamples | No | ||
| sourceNode | No | ||
| targetNode | No | ||
| controlName | No | ||
| machineName | No | ||
| montageName | No | ||
| parentClass | No | ||
| sectionName | No | ||
| vehicleType | No | ||
| wheelConfig | No | ||
| animSequence | No | Asset path (e.g., /Game/Path/Asset). | |
| engineTorque | No | ||
| skeletonName | No | ||
| skeletonPath | No | Asset path (e.g., /Game/Path/Asset). | |
| animAssetPath | No | Asset path (e.g., /Game/Path/Asset). | |
| blueprintName | No | ||
| ragdollActive | No | ||
| blendSpacePath | No | Asset path (e.g., /Game/Path/Asset). | |
| sourceSkeleton | No | Asset path (e.g., /Game/Path/Asset). | |
| targetSkeleton | No | Asset path (e.g., /Game/Path/Asset). | |
| transitionName | No | ||
| animMontagePath | No | Asset path (e.g., /Game/Path/Asset). | |
| dragCoefficient | No | ||
| retargetProfile | No | ||
| animSequencePath | No | Asset path (e.g., /Game/Path/Asset). | |
| retargetSkeleton | No | Asset path (e.g., /Game/Path/Asset). | |
| interpolationType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'Create' and lists asset types, disclosing no side effects, overwrite behavior, dependency requirements, or the wide range of actions (50+ in the enum). Annotations are all false and add no context, so the description carries the full burden but fails to disclose meaningful behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with no wasted words. It is front-loaded with the verb and resource list, which is efficient for a high-level summary, though it sacrifices depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 60 parameters, a required action enum with many values, and no output schema, this description is severely incomplete. It doesn't explain the action parameter, how to execute different creation tasks, what inputs are required for each, or what the result would be. An agent cannot reliably select and invoke the correct operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides zero parameter-level information. With only 40% schema coverage and many generic parameter names like 'value', 'time', and 'mass', the agent gets no help mapping parameters to the various creation workflows. The list of asset types does not correspond to any parameter names or values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb 'Create' and lists specific resource types (blueprints, blend spaces, montages, state machines, Control Rig, IK rigs, ragdolls, vehicle physics), which clearly communicates the tool's domain. It doesn't explicitly distinguish from siblings like manage_blueprint or manage_skeleton, but the animation/physics focus is fairly specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool vs alternatives. There are no prerequisites, exclusions, or alternative tool recommendations, leaving the agent to infer usage from the high-level description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asset_pipelineA
External AI asset generation pipeline. Generate 3D models and textures using AI services (Meshy, Tripo) and import them directly into UE. Requires API keys set via environment variables (MESHY_API_KEY, TRIPO_API_KEY). Actions: list_providers (show configured services), generate_3d_model (text-to-3D), generate_texture (text-to-texture), check_generation_status (poll task progress), download_and_import (fetch generated asset and import into UE).
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | [generate_3d_model] Art style (realistic, cartoon, low-poly, sculpture, pbr) | |
| action | Yes | The asset pipeline action to execute | |
| prompt | No | [generate_3d_model, generate_texture] Text description of the asset to generate | |
| task_id | No | [check_generation_status] Task ID from a generation request | |
| provider | No | AI service provider (default: meshy) | |
| model_url | No | [generate_texture] URL of a 3D model to texture | |
| asset_name | No | [download_and_import] Name for the imported asset | |
| import_path | No | [download_and_import] UE content path to import to (e.g., /Game/GeneratedAssets/) | |
| download_url | No | [download_and_import] URL of the generated asset file to download |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnly=false (mutating) and openWorld=true, but the description adds meaningful context: external AI services, environment variable prerequisites, and the presence of check_generation_status implying asynchronous polling. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is mostly efficient, with a clear overview and action list. The initial fragment 'External AI asset generation pipeline.' is slightly unnecessary but not harmful. The action list is dense yet well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple actions, external API dependencies), the description covers purpose, prerequisites, and action taxonomy, including polling via check_generation_status. It lacks details on return formats or error handling, but no output schema exists and the description is adequate for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already well-documented. The description adds an action-level overview but does not provide extra parameter-specific semantics beyond what the schema already includes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is an external AI asset generation pipeline for 3D models and textures using Meshy and Tripo, and lists specific actions. This distinguishes it from sibling tools like manage_asset and manage_texture, which are likely local asset management tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: it is an external pipeline requiring API keys, and the action list implies when to use each sub-operation. However, it does not explicitly contrast with sibling tools like manage_asset or manage_texture, so it lacks a clear 'when not to use' statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_environmentCDestructive
Create/sculpt landscapes, paint foliage, and generate procedural terrain/biomes.
| Name | Required | Description | Default |
|---|---|---|---|
| hour | No | ||
| maxX | No | ||
| maxY | No | ||
| minX | No | ||
| minY | No | ||
| name | No | Name identifier. | |
| path | No | Path to a directory. | |
| seed | No | ||
| time | No | ||
| tool | No | ||
| count | No | ||
| names | No | ||
| scale | No | 3D scale (x, y, z). | |
| sizeX | No | ||
| sizeY | No | ||
| action | Yes | Action | |
| assets | No | ||
| bounds | No | ||
| radius | No | ||
| density | No | ||
| falloff | No | ||
| numLODs | No | ||
| quality | No | ||
| spacing | No | ||
| filename | No | ||
| location | No | 3D location (x, y, z). | |
| material | No | Material asset path. | |
| maxScale | No | ||
| meshPath | No | Mesh asset path. | |
| minScale | No | ||
| position | No | 3D location (x, y, z). | |
| rotation | No | 3D rotation (pitch, yaw, roll). | |
| settings | No | ||
| strength | No | ||
| tileSize | No | ||
| actorName | No | Name of the actor. | |
| brushSize | No | ||
| eraseMode | No | ||
| intensity | No | ||
| layerName | No | ||
| locations | No | ||
| randomYaw | No | ||
| timeoutMs | No | ||
| assetPaths | No | ||
| dataLayers | No | ||
| heightData | No | ||
| staticMesh | No | Mesh asset path. | |
| transforms | No | ||
| volumeName | No | ||
| foliageType | No | ||
| heightScale | No | ||
| runtimeGrid | No | ||
| sectionSize | No | ||
| cullDistance | No | ||
| foliageTypes | No | ||
| materialPath | No | Material asset path. | |
| subdivisions | No | ||
| alignToNormal | No | ||
| landscapeName | No | ||
| updateNormals | No | ||
| componentCount | No | 2D vector. | |
| foliageTypePath | No | Asset path (e.g., /Game/Path/Asset). | |
| quadsPerSection | No | ||
| isSpatiallyLoaded | No | ||
| enableWorldPartition | No | ||
| sectionsPerComponent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds no further behavioral context. It fails to disclose that actions like 'delete' or 'bake_lightmap' are destructive, or that modifying landscapes can overwrite existing work. With annotations present, the description should supplement, but it offers no added detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it is under-specification for a tool with 66 parameters and over 20 distinct actions. It provides no structured breakdown or feature list, making it too terse to be useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a very broad scope, but the description only covers landscapes, foliage, and terrain. It omits entire categories like sky, fog, LODs, snapshots, and time-of-day actions, leaving the agent with an incomplete picture. With no output schema, the description should at least summarize the main capability groups, but it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 66 parameters and only 21% schema description coverage, the description carries a heavy burden to explain parameter usage. It does not mention the required 'action' parameter, nor any parameter names or how they map to operations, so it completely fails to compensate for the sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs (create, sculpt, paint, generate) and resources (landscapes, foliage, terrain/biomes), making the tool's purpose reasonably clear. However, it does not differentiate from sibling tools or hint at the full range of actions (e.g., sky, fog, LODs, snapshots) available via the 'action' parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives or exclusions. Sibling tools like manage_geometry and manage_lighting are not mentioned, and no context is given 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.
checkpointB
Checkpoint and transaction system. Create semantic snapshots of level state, diff between checkpoints, and rollback changes. Actions: create_checkpoint, list_checkpoints, diff_checkpoint, restore_checkpoint, delete_checkpoint, begin_transaction, commit_transaction, rollback_transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Human-readable label for the checkpoint or transaction | |
| action | Yes | begin_transaction auto-creates a checkpoint. commit_transaction keeps it as history. rollback_transaction restores to start state. | |
| metadata | No | Custom metadata to attach to the checkpoint | |
| checkpointId | No | Checkpoint ID (for diff, restore, delete) | |
| toCheckpointId | No | Second checkpoint ID for diff_checkpoint (omit to diff against live state) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide minimal safety hints (e.g., readOnlyHint false, destructiveHint false), so description carries the burden. The description lists destructive-ish actions like delete_checkpoint and restore/rollback without explaining side effects, reversibility, or preconditions. It does not add behavioral context beyond the schema's action-specific notes (e.g., transaction behavior) and leaves consequences unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences. The first sentence captures the core purpose efficiently; the second sentence lists actions, which is somewhat redundant with the schema but provides a useful at-a-glance summary. No fluff or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters, no output schema, and sparse annotations. The description only gives an action list and general purpose, lacking guidance on which parameters are needed for specific actions, return value expectations, or preconditions. This is insufficient for an agent to fully understand how to use the tool correctly across all eight actions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all four parameters described, including the action enum with notes on transaction behavior. The description adds no extra parameter-level detail—it only restates action names. Baseline 3 applies because the schema already documents parameters well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a 'Checkpoint and transaction system' with specific verbs: 'Create semantic snapshots', 'diff between checkpoints', and 'rollback changes'. It also lists all eight actions, making it distinct from sibling tools like source_control or manage_*.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for snapshotting, diffing, and rollback via the action list, but it does not explicitly state when to use this tool versus alternatives (e.g., source_control) or mention exclusions/prerequisites. No direct 'when to use' guidance is provided beyond the listed actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
control_actorCDestructive
Spawn actors, set transforms, enable physics, add components, manage tags, and attach actors.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Name of the tag. | |
| force | No | 3D vector. | |
| scale | No | 3D scale (x, y, z). | |
| action | Yes | Action | |
| newName | No | New name for renaming. | |
| visible | No | Whether the item/actor is visible. | |
| location | No | 3D location (x, y, z). | |
| meshPath | No | Mesh asset path. | |
| rotation | No | 3D rotation (pitch, yaw, roll). | |
| actorName | No | Name of the actor. | |
| classPath | No | Asset path (e.g., /Game/Path/Asset). | |
| variables | No | ||
| childActor | No | Name of the child actor (for attach/detach operations). | |
| properties | No | ||
| parentActor | No | Name of the parent actor (for attach operations). | |
| snapshotName | No | ||
| blueprintPath | No | Blueprint asset path. | |
| componentName | No | Name of the component. | |
| componentType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds no behavioral context about destructive actions (e.g., delete_by_tag, destroy_actor) or side effects. It even mentions 'enable physics,' which is not an explicit action in the schema, potentially misleading the agent. No contradiction with annotations, but the description fails to disclose the tool's destructive and mutating nature beyond what the annotations already state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler words. It front-loads the key actions and is easy to scan. However, it is terse to the point of vagueness, and the phrase 'enable physics' is not reflected in the schema, slightly undermining clarity. Overall, it is appropriately short but could be more precise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high complexity (19 parameters, 40-action enum, nested objects, no output schema), the description is far too minimal. It does not mention return values, action-parameter dependencies, error cases, or the breadth of operations (e.g., finding, deleting, snapshots). The one-sentence overview is inadequate for an agent to safely and correctly invoke this tool across its many actions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 79%, so the schema already documents most parameters. However, the description itself adds no parameter semantics—it does not explain that the 'action' parameter is a switch determining which other parameters apply, nor does it clarify generic object params like 'variables' and 'properties' that lack descriptions. The action enum is described only as 'Action,' providing little guidance for a required parameter with 40 possible values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs and resources: 'Spawn actors, set transforms, enable physics, add components, manage tags, and attach actors.' It clearly indicates this tool operates on actors, distinguishing it from asset or blueprint management tools. However, it omits many actions listed in the schema (e.g., delete, duplicate, find, snapshot) and does not fully differentiate it from other actor-related tools like manage_character or manage_ai.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It simply lists capabilities without stating when to prefer control_actor over sibling tools, what prerequisites exist, or what actions are excluded. The agent must infer usage from the large action enum and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
control_editorC
Start/stop PIE, control viewport camera, run console commands, take screenshots, simulate input.
| Name | Required | Description | Default |
|---|---|---|---|
| fov | No | ||
| key | No | ||
| axis | No | ||
| mode | No | ||
| name | No | Name identifier. | |
| path | No | Path to a directory. | |
| stat | No | ||
| speed | No | ||
| steps | No | ||
| value | No | Generic value (any type). | |
| width | No | ||
| action | Yes | Editor action | |
| format | No | Image format for capture_viewport (default: jpeg) | |
| height | No | ||
| command | No | ||
| enabled | No | Whether the item/feature is enabled. | |
| quality | No | JPEG quality for capture_viewport (1-100, default: 85) | |
| section | No | ||
| category | No | ||
| filename | No | ||
| location | No | 3D location (x, y, z). | |
| realtime | No | ||
| rotation | No | 3D rotation (pitch, yaw, roll). | |
| viewMode | No | ||
| actorName | No | Name of the actor. | |
| assetPath | No | Asset path (e.g., /Game/Path/Asset). | |
| deltaTime | No | ||
| levelPath | No | Level asset path. | |
| resolution | No | Resolution setting (e.g., 1024x1024). | |
| inputAction | No | ||
| preferences | No | ||
| bookmarkName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety hints (all false), so the description must disclose behavioral traits. It mentions actions like 'run console commands' and 'simulate input' but omits potential side effects, prerequisites, or irreversible changes, leaving the agent without critical safety information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the most common actions. It contains no fluff, but its extreme brevity for a tool with 32 parameters borders on under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 32 parameters, an action enum of 40+ values, and no output schema, this description is far from complete. It provides no examples, no mapping of actions to required arguments, and no mention of expected outputs or pitfalls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at only 41%, the description needed to compensate by explaining key parameters or action-argument relationships. It names no parameters and offers no mapping between the listed actions and the many generic fields (fov, key, axis, speed, etc.), leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly enumerates distinct editor control operations (PIE, viewport camera, console commands, screenshots, input simulation), distinguishing it from sibling tools focused on assets, actors, or levels. However, it is not a single specific verb+resource; it is a broad list of capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like control_actor, manage_level, or system_control. The description simply lists capabilities without any contextual triggers or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspectCRead-onlyIdempotent
Inspect any UObject: read/write properties, list components, export snapshots, and query class info.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Name of the tag. | |
| name | No | Name identifier. | |
| value | No | Generic value (any type). | |
| action | Yes | Action | |
| filter | No | ||
| format | No | ||
| actorName | No | Name of the actor. | |
| className | No | ||
| classPath | No | Asset path (e.g., /Game/Path/Asset). | |
| objectPath | No | Asset path (e.g., /Game/Path/Asset). | |
| outputPath | No | Output file or directory path. | |
| propertyName | No | Name of the property. | |
| propertyPath | No | ||
| snapshotName | No | ||
| componentName | No | Name of the component. | |
| destinationPath | No | Destination path for move/copy. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states 'read/write properties' and includes actions like set_property, set_component_property, delete_object, and restore_snapshot, which contradict the annotations readOnlyHint=true and destructiveHint=false. This is a serious inconsistency that undermines trust.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler, but it sacrifices detail and includes the misleading 'read/write' claim. It front-loads the purpose but fails to convey the tool's complexity or safety profile.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has 16 parameters, 31 action enum values, and no output schema. The description provides almost no operational context, leaving agents without guidance on which action to choose, how parameters combine, or what to expect in return. It is wholly inadequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 69%, so most parameters already have descriptions. The description adds minimal semantic value beyond the schema, only vaguely referencing property access and snapshots without explaining parameter relationships or action-specific usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Inspect' and names the resource ('any UObject'), listing core activities like read/write properties, list components, and query class info. However, it doesn't distinguish this from sibling tools like 'observe' or 'control_actor', and the read/write breadth makes it less focused.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description simply enumerates capabilities without contextualizing when each action is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_aiB
Create AI Controllers, configure Behavior Trees, Blackboards, EQS queries, and perception systems.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name identifier. | |
| path | No | Directory path for asset creation. | |
| action | Yes | AI action to perform | |
| nodeId | No | ID of the node. | |
| teamId | No | Team ID for perception affiliation (0=Neutral, 1=Player, 2=Enemy, etc.). | |
| keyName | No | Name of the key. | |
| keyType | No | Blackboard key data type. | |
| toState | No | Target state name. | |
| taskType | No | Task node type. | |
| testType | No | EQS test type. | |
| enumClass | No | Enum class for Enum keys. | |
| fromState | No | Source state name. | |
| queryPath | No | Path to EQS query asset. | |
| slotIndex | No | Index of slot to configure. | |
| stateName | No | Name of the state. | |
| testIndex | No | Index of test to configure. | |
| configPath | No | Path to config asset. | |
| massTraits | No | List of Mass traits to add. | |
| slotOffset | No | Local offset for slot. | |
| contextType | No | EQS context type. | |
| parentClass | No | Parent class for AI controller (default: AAIController). | |
| serviceType | No | Service node type. | |
| sightConfig | No | AI sight sense configuration. | |
| slotEnabled | No | Whether slot is enabled. | |
| damageConfig | No | AI damage sense configuration. | |
| parentNodeId | No | ID of the node. | |
| slotRotation | No | Local rotation for slot. | |
| slotUserTags | No | Required user tags for slot. | |
| testSettings | No | Test scoring and filter settings. | |
| blueprintPath | No | Blueprint asset path. | |
| compositeType | No | Composite node type. | |
| decoratorType | No | Decorator node type. | |
| dominantSense | No | Dominant sense for perception prioritization. | |
| generatorType | No | EQS generator type. | |
| hearingConfig | No | AI hearing sense configuration. | |
| stateTreePath | No | Path to State Tree asset. | |
| blackboardPath | No | Path to blackboard asset. | |
| controllerPath | No | Path to controller blueprint. | |
| definitionPath | No | Path to definition asset. | |
| massProcessors | No | List of Mass processors to configure. | |
| nodeProperties | No | Properties to set on the node. | |
| stateTaskClass | No | Task class for state. | |
| baseObjectClass | No | Base class for Object/Class keys. | |
| customTaskClass | No | Custom task class path for Custom task type. | |
| spawnerSettings | No | Mass spawner configuration. | |
| behaviorTreePath | No | Path to behavior tree asset. | |
| isInstanceSynced | No | Sync key across instances. | |
| slotActivityTags | No | Activity tags for the slot. | |
| generatorSettings | No | Generator-specific settings. | |
| customServiceClass | No | Custom service class path. | |
| autoRunBehaviorTree | No | Start behavior tree automatically on possess. | |
| stateEvaluatorClass | No | Evaluator class for state. | |
| transitionCondition | No | Condition expression for transition. | |
| customDecoratorClass | No | Custom decorator class path. | |
| slotBehaviorDefinition | No | Gameplay behavior definition for slot. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and not flagged as destructive. However, the description adds no additional behavioral context beyond listing operations. It fails to disclose potential asset overwrites, required project setup, or effects of repeated calls, which is significant given the sparse annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, front-loading the primary verb and resources. It is efficiently structured and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A 55-parameter tool with 44 actions and no output schema needs more high-level orientation. The description doesn't explain how actions are organized, what typical workflows look like, or how the action parameter drives behavior. It is an adequate summary but not complete enough for such a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 55 parameters have schema descriptions (100% coverage), so the schema carries the semantic burden. The tool description adds only high-level resource categories and does not explain parameter relationships or the central role of the 'action' parameter. Minimal added value beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs 'Create' and 'configure' and explicitly names five distinct AI resource types: AI Controllers, Behavior Trees, Blackboards, EQS queries, and perception systems. This clearly distinguishes it from the sibling tool manage_behavior_tree by covering a broader AI management scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus dedicated sibling tools like manage_behavior_tree, nor any exclusions or prerequisites. It simply lists capabilities without contextual steering about which action to choose or when an alternative would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_assetBDestructive
Create, import, duplicate, rename, delete assets. Edit Material graphs and instances. Analyze dependencies.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| tag | No | Name of the tag. | |
| desc | No | ||
| name | No | Name identifier. | |
| path | No | Path to a directory. | |
| posX | No | ||
| posY | No | ||
| save | No | Save the asset(s) after the operation. | |
| tags | No | ||
| type | No | ||
| limit | No | ||
| nodes | No | ||
| paths | No | ||
| toPin | No | Name of the target pin. | |
| value | No | Generic value (any type). | |
| width | No | ||
| action | Yes | Action to perform. Use dump_asset to serialize a UObject/DataAsset properties to JSON for inspection. | |
| format | No | ||
| height | No | ||
| nodeId | No | ID of the node. | |
| prefix | No | ||
| suffix | No | ||
| comment | No | ||
| fromPin | No | Name of the source pin. | |
| newName | No | New name for renaming. | |
| pinName | No | Name of the pin. | |
| inputPin | No | Name of the target pin. | |
| lodCount | No | ||
| maxDepth | No | ||
| meshPath | No | Mesh asset path. | |
| metadata | No | ||
| nodeName | No | Name identifier. | |
| nodeType | No | ||
| toNodeId | No | ID of the target node. | |
| assetPath | No | Asset path (e.g., /Game/Path/Asset). | |
| directory | No | Path to a directory. | |
| eventName | No | Name of the event. | |
| graphName | No | Name of the graph. | |
| inputName | No | Name of the pin. | |
| outputPin | No | Name of the source pin. | |
| overwrite | No | Overwrite if the asset/file already exists. | |
| assetPaths | No | ||
| classNames | No | ||
| folderPath | No | Path to a directory. | |
| fromNodeId | No | ID of the source node. | |
| parameters | No | ||
| searchText | No | ||
| sourceNode | No | ID of the source node. | |
| sourcePath | No | Source path for import/move/copy. | |
| targetNode | No | ID of the target node. | |
| childNodeId | No | ID of the node. | |
| description | No | ||
| memberClass | No | ||
| replaceText | No | ||
| texturePath | No | Texture asset path. | |
| defaultValue | No | Generic value (any type). | |
| includeNulls | No | Include null/empty values (default: false) | |
| materialPath | No | Material asset path. | |
| packagePaths | No | ||
| parentNodeId | No | ID of the node. | |
| sourceNodeId | No | ID of the source node. | |
| targetNodeId | No | ID of the target node. | |
| checkoutFiles | No | ||
| directoryPath | No | Path to a directory. | |
| maxMapEntries | No | Max map entries to serialize (default: 200) | |
| parameterName | No | Name of the parameter. | |
| parameterType | No | ||
| parentMaterial | No | Material asset path. | |
| recursivePaths | No | ||
| coordinateIndex | No | ||
| destinationPath | No | Destination path for move/copy. | |
| expressionClass | No | ||
| expressionIndex | No | ID of the node. | |
| fixupRedirectors | No | ||
| includeTransient | No | Include transient properties (default: false) | |
| maxArrayElements | No | Max array elements to serialize (default: 200) | |
| recursiveClasses | No | ||
| showConfirmation | No | ||
| propertyAllowlist | No | Only include these property names | |
| reductionSettings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description adds operation context such as deleting assets and editing materials. It does not, however, detail what gets destroyed, side effects, or consequences of source-control-related actions, so the added behavioral transparency is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tightly written sentences with no filler, front-loading the main operations. It is concise and well-structured for a broad tool, though it sacrifices detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 81 parameters, over 50 actions, and no output schema, this high-level description is insufficient for an agent to select and invoke the right action. It omits return values, parameter relationships, and action-specific behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 54% across 81 parameters, and the description itself provides no parameter-level meaning. It does not compensate for the many undocumented or sparsely documented parameters like checkoutFiles, fixupRedirectors, or reductionSettings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs and resources: 'Create, import, duplicate, rename, delete assets. Edit Material graphs and instances. Analyze dependencies.' It clearly states the tool's functional scope and is distinguishable from pure material or texture tools, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus sibling tools like manage_material_authoring or manage_texture. The description implies asset management usage but does not provide selection criteria for the many actions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_audioC
Play/stop sounds, add audio components, configure mixes, attenuation, spatial audio, and author Sound Cues/MetaSounds.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| name | No | Name identifier. | |
| path | No | Directory path for asset creation. | |
| save | No | Save the asset(s) after the operation. | |
| size | No | 3D scale (x, y, z). | |
| pitch | No | ||
| scale | No | ||
| action | Yes | Action | |
| nodeId | No | ID of the node. | |
| volume | No | ||
| enabled | No | Whether the item/feature is enabled. | |
| fftSize | No | ||
| looping | No | Whether to loop. | |
| mixName | No | ||
| fadeTime | No | ||
| fadeType | No | ||
| inputPin | No | ||
| location | No | 3D location (x, y, z). | |
| nodeType | No | ||
| rotation | No | 3D rotation (pitch, yaw, roll). | |
| wavePath | No | Path to SoundWave asset. | |
| actorName | No | Name of the actor. | |
| assetPath | No | Asset path (e.g., /Game/Path/Asset). | |
| inputName | No | Name of the input. | |
| inputType | No | ||
| outputPin | No | ||
| soundName | No | ||
| soundPath | No | Sound asset path. | |
| sourcePin | No | Name of the source pin. | |
| startTime | No | ||
| targetPin | No | Name of the target pin. | |
| fadeInTime | No | ||
| outputName | No | Name of the output. | |
| outputType | No | ||
| properties | No | ||
| sourceNode | No | Source node name. | |
| targetNode | No | Target node name. | |
| fadeOutTime | No | ||
| falloffMode | No | ||
| innerRadius | No | ||
| parentClass | No | ||
| defaultValue | No | Generic value (any type). | |
| reverbEffect | No | ||
| sourceNodeId | No | ID of the source node. | |
| targetNodeId | No | ID of the target node. | |
| targetVolume | No | ||
| componentName | No | Name of the component. | |
| metasoundType | No | ||
| soundClassName | No | ||
| soundClassPath | No | Sound class path. | |
| attachPointName | No | Name of the socket. | |
| attenuationPath | No | Asset path (e.g., /Game/Path/Asset). | |
| concurrencyPath | No | Asset path (e.g., /Game/Path/Asset). | |
| falloffDistance | No | ||
| parentClassPath | No | Parent class path. | |
| attenuationShape | No | ||
| metasoundNodeType | No | ||
| volumeAttenuation | No | ||
| lowPassFilterFrequency | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that the tool is not read-only and not idempotent. The description adds some behavioral context by mentioning 'play/stop', 'add', 'configure', and 'author', which imply state-changing and asset-creating operations. However, it does not disclose side effects such as saving assets, required permissions, or reversibility, so it only marginally exceeds annotation-provided information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that names the major functional areas without unnecessary verbosity. It is front-loaded with the most common actions ('Play/stop sounds') and remains compact given the tool's breadth. The run-on list is somewhat dense but not unwieldy, and every phrase contributes a distinct category.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 60 parameters, 48 action variants, and no output schema, this description is far from complete. It provides only a high-level overview and does not explain action-specific behavior, return values, or side effects. Even with the annotations, an agent would struggle to know which parameters are required for a given action or what the result will be.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 60 parameters and schema description coverage at 48%, the description was expected to compensate for undocumented fields, but it does not. It offers no explanation of parameter usage, relationships, or action-specific required inputs. The description's high-level categories (e.g., 'spatial audio') loosely map to some parameters but provide no concrete semantic help for invoking the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's domain and primary actions: playing/stopping sounds, adding audio components, configuring mixes/attenuation/spatial audio, and authoring Sound Cues/MetaSounds. It distinguishes itself from sibling tools by naming audio-specific resources and operations, though it remains a broad umbrella for many sub-actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives. It implies audio-related tasks but does not state exclusions, prerequisites, or complementary tools. The lack of any 'when-to-use' or 'use instead' language leaves the agent to infer from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_behavior_treeBDestructive
Create Behavior Trees, add task/decorator/service nodes, and configure node properties.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| name | No | Name identifier. | |
| action | Yes | Action | |
| nodeId | No | ID of the node. | |
| comment | No | ||
| nodeType | No | ||
| savePath | No | Path to save the asset. | |
| assetPath | No | Asset path (e.g., /Game/Path/Asset). | |
| properties | No | ||
| childNodeId | No | ID of the node. | |
| parentNodeId | No | ID of the node. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false, which already signal mutating behavior. The description adds context by naming create/add/configure actions but does not disclose that remove_node and break_connections are destructive operations. It also lacks any side-effect details. Given annotations already cover safety profile, the description adds minimal extra transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the main operations without fluff. It is front-loaded with the primary verb 'Create' and lists key capabilities. However, it could be more structured by enumerating actions or operation categories, but for its length it serves its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with 12 parameters, multiple actions, nested objects, and no output schema. The description is far too sparse to cover how each action works, which parameters are required for each, or what the tool returns. It lacks usage examples or action-specific guidance, making it inadequate for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 58%, so the schema partially explains parameters. The description mentions node types (task/decorator/service) which gives meaning to nodeType, and 'configure node properties' relates to the properties object. However, it does not explain x/y coordinates, connection parameters, or action-specific requirements, so it only adds marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: create behavior trees, add nodes, and configure properties. It identifies the resource (Behavior Trees) and specific actions, which distinguishes it from general AI or task management tools. However, it omits actions like remove_node and break_connections that are present in the action enum, so it is not fully complete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The sibling tools include manage_ai, manage_tasks, and others, but the description does not differentiate or state when behavior tree editing is appropriate. There is no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_blueprintCDestructive
Create Blueprints, add SCS components (mesh, collision, camera), and manipulate graph nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| name | No | Name identifier. | |
| posX | No | ||
| posY | No | ||
| save | No | Save the asset(s) after the operation. | |
| scale | No | ||
| toPin | No | Name of the target pin. | |
| value | No | Generic value (any type). | |
| action | Yes | Blueprint action | |
| inputs | No | ||
| nodeId | No | ID of the node. | |
| compile | No | Compile the blueprint(s) after the operation. | |
| fromPin | No | Name of the source pin. | |
| newName | No | New name for renaming. | |
| oldName | No | ||
| outputs | No | ||
| pinName | No | Name of the pin. | |
| attachTo | No | ||
| category | No | ||
| inputPin | No | Name of the pin. | |
| isPublic | No | ||
| linkedTo | No | ||
| location | No | ||
| meshPath | No | Mesh asset path. | |
| metadata | No | ||
| nodeType | No | ||
| rotation | No | ||
| savePath | No | Path to save the asset. | |
| toNodeId | No | ID of the target node. | |
| eventName | No | Name of the event. | |
| eventType | No | ||
| graphName | No | Name of the graph. | |
| newParent | No | ||
| outputPin | No | Name of the pin. | |
| timeoutMs | No | ||
| toPinName | No | Name of the target pin. | |
| transform | No | ||
| fromNodeId | No | ID of the source node. | |
| memberName | No | ||
| operations | No | ||
| parameters | No | ||
| properties | No | ||
| scriptName | No | ||
| fromPinName | No | Name of the source pin. | |
| memberClass | No | ||
| parentClass | No | Path or name of the parent class. | |
| targetClass | No | ||
| applyAndSave | No | ||
| defaultValue | No | Generic value (any type). | |
| functionName | No | Name of the function. | |
| isReplicated | No | ||
| materialPath | No | Material asset path. | |
| propertyName | No | Name of the property. | |
| variableName | No | Name of the variable. | |
| variableType | No | Variable type (e.g., Boolean, Float, Integer, Vector, String, Object) | |
| blueprintPath | No | Blueprint asset path. | |
| blueprintType | No | Path or name of the parent class. | |
| componentName | No | Name of the component. | |
| componentType | No | ||
| inputAxisName | No | ||
| componentClass | No | ||
| customEventName | No | Name of the event. | |
| parentComponent | No | ||
| variablePinType | No | ||
| saveAfterCompile | No | ||
| waitForCompletion | No | ||
| waitForCompletionTimeoutMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds no behavioral context beyond a generic action list. It does not disclose potential destructive side effects (e.g., node deletion, component removal) or any operational caveats, providing minimal value over annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no waste. However, for a tool of this complexity (68 params, 36 actions), it is under-specified rather than appropriately concise, leaving out critical scope information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's vast action set and lack of output schema, the description is incomplete. It covers only creation, component addition, and node manipulation, omitting get/compile/variable/event operations and any behavioral prerequisites. This is insufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 46%, and the description provides no parameter-level details. With 68 parameters and many undocumented fields, the description should clarify parameter usage but instead only mentions high-level component types (mesh, collision, camera), which does not map meaningfully to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's primary actions: creating Blueprints, adding SCS components (mesh, collision, camera), and manipulating graph nodes. This distinguishes it from sibling tools like manage_asset, though it omits several major action categories (compile, variables, events) and doesn't explicitly separate from manage_asset for blueprint assets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It simply lists a few actions without context for selection among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_characterC
Create Character Blueprints with movement, locomotion, and animation state machines.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name of the asset to create. | |
| path | No | Directory path for asset creation. | |
| save | No | Save the asset(s) after the operation. | |
| action | Yes | Character action to perform. | |
| modeId | No | Custom movement mode ID. | |
| flySpeed | No | ||
| modeName | No | Name for custom movement mode. | |
| runSpeed | No | ||
| swimSpeed | No | ||
| walkSpeed | No | ||
| airControl | No | ||
| climbSpeed | No | ||
| jumpHeight | No | ||
| meshOffset | No | Mesh location offset. | |
| slideSpeed | No | ||
| vaultDepth | No | Obstacle depth to check. | |
| crouchSpeed | No | ||
| parentClass | No | Parent class for character blueprint. | |
| sprintSpeed | No | ||
| surfaceType | No | Physical surface type. | |
| vaultHeight | No | Maximum vault obstacle height. | |
| acceleration | No | ||
| cameraOffset | No | Camera location offset. | |
| climbableTag | No | Tag for climbable surfaces. | |
| deceleration | No | ||
| grappleRange | No | Maximum grapple distance. | |
| grappleSpeed | No | Grapple pull speed. | |
| gravityScale | No | ||
| jumpHoldTime | No | Max hold time for variable jump. | |
| mantleHeight | No | Maximum mantle height. | |
| maxJumpCount | No | ||
| meshRotation | No | Mesh rotation offset. | |
| rotationRate | No | ||
| wallRunSpeed | No | Wall running speed. | |
| blueprintPath | No | Blueprint asset path. | |
| capsuleRadius | No | ||
| slideCooldown | No | ||
| slideDuration | No | ||
| groundFriction | No | ||
| navAgentHeight | No | ||
| navAgentRadius | No | ||
| footstepEnabled | No | Enable footstep system. | |
| springArmLength | No | ||
| wallRunDuration | No | Maximum wall run duration. | |
| avoidanceEnabled | No | Enable AI avoidance. | |
| cameraSocketName | No | Camera socket name. | |
| grappleCablePath | No | Path to cable mesh/material. | |
| grappleTargetTag | No | Tag for grapple targets. | |
| orientToMovement | No | Orient rotation to movement direction. | |
| skeletalMeshPath | No | Skeletal mesh path. | |
| animBlueprintPath | No | Path to animation blueprint. | |
| capsuleHalfHeight | No | ||
| doubleJumpEnabled | No | Enable double jump. | |
| footstepDecalPath | No | Path to footstep decal. | |
| footstepSoundPath | No | Path to footstep sound cue. | |
| springArmLagSpeed | No | Camera lag speed. | |
| climbAnimationPath | No | Path to climb animation. | |
| footstepSocketLeft | No | Left foot socket name. | |
| slideAnimationPath | No | Path to slide animation. | |
| vaultAnimationPath | No | Path to vault animation montage. | |
| footstepSocketRight | No | Right foot socket name. | |
| mantleAnimationPath | No | Path to mantle animation montage. | |
| mantleReachDistance | No | Forward reach for mantle check. | |
| springArmLagEnabled | No | Enable camera lag. | |
| wallRunGravityScale | No | Gravity during wall run. | |
| footstepParticlePath | No | Path to footstep particle. | |
| pathFollowingEnabled | No | Enable path following. | |
| wallRunAnimationPath | No | Path to wall run animation. | |
| footstepTraceDistance | No | Ground trace distance. | |
| fallingLateralFriction | No | Air friction. | |
| useControllerRotationYaw | No | Use controller yaw rotation. | |
| useControllerRotationRoll | No | Use controller roll rotation. | |
| useControllerRotationPitch | No | Use controller pitch rotation. | |
| cameraUsePawnControlRotation | No | Camera follows controller rotation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no positive safety context (all hints false), and the description doesn't disclose that many actions mutate existing assets, require specific parameters, or produce side effects. It only mentions creation, which is a subset of the tool's actual behavior, leaving destructive or modifying actions unmentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words, front-loaded and easy to parse. However, it sacrifices necessary content for brevity, underspecifying a highly complex tool. It's structurally clean but not appropriately sized for the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 74 parameters, 27 enum actions, nested objects, and no output schema, this description is grossly inadequate. An agent cannot determine how to select actions, which parameters are required for each action, or what the tool returns, making it nearly unusable for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 74 parameters with 69% description coverage, but the description adds no parameter-level semantics beyond vague categories like 'movement' and 'animation state machines'. It doesn't explain which parameters apply to which actions or highlight dependencies like required action enum and modeId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Create Character Blueprints') but is too narrow for a tool whose action enum includes configuration, movement, footstep, and query operations. It partially distinguishes from generic manage_blueprint by focusing on character-specific elements, but the verb 'Create' underrepresents the tool's broader management scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like manage_blueprint or manage_skeleton. The description implies use for character blueprint creation, but it doesn't mention exclusions or where to go for generic blueprint tasks, leaving usage boundaries vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_combatC
Create weapons with hitscan/projectile firing, configure damage types, hitboxes, reload, and melee combat (combos, parry, block).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name identifier. | |
| path | No | Directory path for asset creation. | |
| range | No | ||
| action | Yes | Combat action to perform | |
| adsFov | No | FOV when aiming. | |
| spread | No | ||
| maxAmmo | No | ||
| adsSpeed | No | Time to aim down sights. | |
| ammoType | No | Ammo type identifier. | |
| fireRate | No | ||
| recoilYaw | No | Horizontal recoil (degrees). | |
| adsEnabled | No | Enable aim down sights. | |
| baseDamage | No | ||
| hitboxSize | No | Hitbox dimensions. | |
| hitboxType | No | Hitbox collision shape. | |
| reloadTime | No | ||
| recoilPitch | No | Vertical recoil (degrees). | |
| tracerSpeed | No | Tracer travel speed. | |
| magazineSize | No | ||
| startingAmmo | No | ||
| switchInTime | No | Time to equip weapon. | |
| traceChannel | No | Trace channel for hitscan. | |
| blueprintPath | No | Blueprint asset path. | |
| bounceEnabled | No | Enable projectile bouncing. | |
| damageImpulse | No | Impulse applied on hit. | |
| homingEnabled | No | Enable homing behavior. | |
| maxComboCount | No | Maximum combo length. | |
| shellLifespan | No | Shell casing lifetime. | |
| shellMeshPath | No | Path to shell casing mesh. | |
| spreadPattern | No | Spread pattern type. | |
| switchOutTime | No | Time to unequip weapon. | |
| damageCategory | No | Damage category. | |
| damageTypeName | No | Name for damage type. | |
| hitboxBoneName | No | Bone name for hitbox. | |
| hitscanEnabled | No | Enable hitscan firing. | |
| parryWindowEnd | No | Parry window end time (normalized). | |
| recoilRecovery | No | Recoil recovery speed. | |
| spreadIncrease | No | Spread increase per shot. | |
| spreadRecovery | No | Spread recovery rate. | |
| weaponMeshPath | No | Path to weapon static/skeletal mesh. | |
| attachmentSlots | No | Attachment slot definitions. | |
| collisionRadius | No | ||
| comboAnimations | No | Paths to combo attack animations. | |
| comboWindowTime | No | Time window for combo input. | |
| homingTargetTag | No | Tag for homing targets. | |
| impactDecalPath | No | Path to impact decal. | |
| impactSoundPath | No | Path to impact sound. | |
| muzzleSoundPath | No | Path to firing sound. | |
| projectileClass | No | Projectile class path. | |
| projectileSpeed | No | ||
| blockStaminaCost | No | Stamina cost per blocked hit. | |
| damageMultiplier | No | Damage multiplier for this hitbox. | |
| hitPauseDuration | No | Hitstop duration in seconds. | |
| isDamageZoneHead | No | Mark as headshot zone. | |
| meleeTraceRadius | No | Sphere trace radius. | |
| muzzleFlashScale | No | Muzzle flash scale. | |
| muzzleSocketName | No | Muzzle socket name. | |
| parryWindowStart | No | Parry window start time (normalized). | |
| meleeTraceChannel | No | Trace channel for melee. | |
| criticalMultiplier | No | Critical hit damage multiplier. | |
| ejectionSocketName | No | Shell ejection socket name. | |
| headshotMultiplier | No | Headshot damage multiplier. | |
| hitReactionMontage | No | Path to hit reaction montage. | |
| homingAcceleration | No | Homing turn rate. | |
| impactParticlePath | No | Path to impact particle. | |
| parryAnimationPath | No | Path to parry animation. | |
| projectileLifespan | No | ||
| projectileMeshPath | No | Path to projectile mesh. | |
| shellEjectionForce | No | Shell ejection impulse. | |
| tracerParticlePath | No | Path to tracer particle. | |
| adsSpreadMultiplier | No | Spread multiplier when aiming. | |
| bounceVelocityRatio | No | Velocity retained on bounce (0-1). | |
| hitReactionStunTime | No | Stun duration on hit. | |
| meleeTraceEndSocket | No | Socket for trace end. | |
| reloadAnimationPath | No | Path to reload animation. | |
| blockDamageReduction | No | Damage reduction when blocking (0-1). | |
| hitPauseTimeDilation | No | Time dilation during hitstop. | |
| weaponTrailEndSocket | No | Trail end socket. | |
| attachmentSocketNames | No | List of attachment socket names. | |
| meleeTraceStartSocket | No | Socket for trace start. | |
| switchInAnimationPath | No | Path to equip animation. | |
| projectileGravityScale | No | ||
| switchOutAnimationPath | No | Path to unequip animation. | |
| weaponTrailStartSocket | No | Trail start socket. | |
| muzzleFlashParticlePath | No | Path to muzzle flash particle. | |
| weaponTrailParticlePath | No | Path to weapon trail particle. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations are all false (readOnlyHint, destructiveHint, etc.), providing no safety or side-effect profile. The description does not disclose potential destructive actions, prerequisites, or consequences of creating/overwriting combat configs, which is significant for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence covering key capabilities with no redundancy. It is front-loaded and efficient, though it could be slightly more structured to list actions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 86 parameters, 39 actions, and no output schema, the description is insufficient. It doesn't explain how to invoke actions, what the required 'action' parameter means, or what the tool returns. Agents would struggle to understand request composition despite the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (86%), so the schema already documents most parameters. The description adds broad thematic context (hitscan, melee) but doesn't detail any specific parameter relationships or requirements, so it meets baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs 'create' and 'configure' and names concrete combat resources (weapons, damage types, hitboxes, reload, melee). It clearly distinguishes from siblings like manage_asset or manage_blueprint by focusing on combat mechanics, though it is broad and could be more specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. It doesn't mention exclusions or prior steps. The intended usage is only implied by the tool name and description summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_effectCDestructive
Niagara particle systems, VFX, debug shapes, and GPU simulations. Create systems, emitters, modules, and control particle effects.
| Name | Required | Description | Default |
|---|---|---|---|
| mesh | No | Mesh asset path. | |
| name | No | Name identifier. | |
| node | No | ||
| time | No | ||
| type | No | ||
| color | No | ||
| count | No | ||
| reset | No | ||
| scale | No | 3D scale (x, y, z). | |
| shape | No | ||
| toPin | No | Name of the target pin. | |
| value | No | Generic value (any type). | |
| width | No | ||
| action | Yes | Effect/Niagara action to perform. | |
| effect | No | Asset path (e.g., /Game/Path/Asset). | |
| preset | No | ||
| radius | No | ||
| system | No | Asset path (e.g., /Game/Path/Asset). | |
| toNode | No | ||
| density | No | ||
| emitter | No | ||
| enabled | No | ||
| fromPin | No | Name of the source pin. | |
| payload | No | ||
| sizeMax | No | 3D location (x, y, z). | |
| sizeMin | No | 3D location (x, y, z). | |
| attachTo | No | ||
| duration | No | ||
| effectId | No | ||
| fromNode | No | ||
| inputPin | No | Name of the target pin. | |
| location | No | 3D location (x, y, z). | |
| material | No | Material asset path. | |
| rotation | No | 3D rotation (pitch, yaw, roll). | |
| savePath | No | Path to save the asset. | |
| sizeMode | No | ||
| speedMax | No | ||
| speedMin | No | ||
| strength | No | ||
| template | No | ||
| actorName | No | Name of the actor. | |
| assetPath | No | Asset path (e.g., /Game/Path/Asset). | |
| colorMode | No | ||
| condition | No | ||
| eventName | No | Name of the event. | |
| forceType | No | ||
| intensity | No | ||
| lightType | No | ||
| loopCount | No | ||
| outputPin | No | Name of the source pin. | |
| paramName | No | ||
| paramType | No | ||
| shapeType | No | ||
| spawnRate | No | ||
| stageName | No | ||
| stageType | No | ||
| timeoutMs | No | ||
| attributes | No | ||
| effectType | No | ||
| impactType | No | ||
| moduleName | No | ||
| offsetMode | No | ||
| ribbonPath | No | Asset path (e.g., /Game/Path/Asset). | |
| scattering | No | ||
| staticMesh | No | Mesh asset path. | |
| systemName | No | ||
| systemPath | No | Asset path (e.g., /Game/Path/Asset). | |
| emitterName | No | ||
| gradientEnd | No | ||
| lightRadius | No | ||
| sourceActor | No | ||
| surfaceType | No | ||
| acceleration | No | 3D location (x, y, z). | |
| effectHandle | No | ||
| loopBehavior | No | ||
| offsetAmount | No | ||
| queryChannel | No | ||
| skeletalMesh | No | Mesh asset path. | |
| updateScript | No | ||
| velocityMode | No | ||
| collisionMode | No | ||
| gradientStart | No | ||
| killCondition | No | ||
| niagaraHandle | No | ||
| parameterName | No | Name of the parameter. | |
| parameterType | No | ||
| unitsPerSpawn | No | ||
| audioComponent | No | ||
| lightIntensity | No | ||
| receiverScript | No | ||
| collisionRadius | No | ||
| emitterTemplate | No | Asset path (e.g., /Game/Path/Asset). | |
| splineComponent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, but the description only mentions 'create' and 'control', which downplays the destructive actions (e.g., cleanup, remove_niagara_node, clear_debug_shapes) possible via the action enum. The description adds no context about side effects, mutability, or destructive potential.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief (two sentences) and front-loaded with key domain terms, but it is under-specified for a tool with this complexity. It lacks structure (e.g., bullet points or an overview of actions) and feels more like an incomplete summary than a well-crafted description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's enormous parameter surface (93 params), a large action enum (60+ values), and no output schema, the two-sentence description is wholly inadequate. It does not explain how to use actions, what parameters each action requires, expected outputs, or side effects, making it difficult for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 93 parameters and only 29% schema description coverage, the description must compensate by explaining parameter roles or groupings. It does not. It only mentions high-level concepts (systems, emitters, modules) without mapping to any actual parameter names or action-specific requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's domain as Niagara particle systems, VFX, debug shapes, and GPU simulations, using specific verbs like 'create' and 'control'. It distinguishes itself from sibling tools by its focus on effects/particles, and is not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this tool is for particle systems and VFX, making it obvious when to use it. It does not explicitly exclude alternatives, but the domain is specific enough that the agent can infer appropriate usage from the stated purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_game_frameworkC
Create GameMode, GameState, PlayerController, PlayerState Blueprints. Configure match flow, teams, scoring, and spawning.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name identifier. | |
| path | No | Directory path for asset creation. | |
| save | No | Save the asset(s) after the operation. | |
| action | Yes | Game framework action to perform. | |
| states | No | Match state definitions. | |
| hudClass | No | HUD class path. | |
| location | No | Spawn location. | |
| numTeams | No | ||
| rotation | No | Spawn rotation. | |
| teamSize | No | ||
| levelPath | No | Level asset path. | |
| numRounds | No | ||
| pawnClass | No | Pawn class to use. | |
| roundTime | No | ||
| teamIndex | No | Team index for PlayerStart. | |
| timeLimit | No | ||
| scoreLimit | No | ||
| autoBalance | No | Enable automatic team balancing. | |
| bPlayerOnly | No | Restrict to players only. | |
| parentClass | No | Path or name of the parent class. | |
| friendlyFire | No | Enable friendly fire damage. | |
| respawnDelay | No | ||
| scorePerKill | No | Points awarded per kill. | |
| bDelayedStart | No | Whether to delay match start. | |
| blueprintPath | No | Blueprint asset path. | |
| gameStateClass | No | GameState class path. | |
| scorePerAssist | No | Points awarded per assist. | |
| spectatorClass | No | Spectator pawn class. | |
| allowSpectating | No | Allow spectator mode. | |
| respawnLocation | No | Where players respawn. | |
| usePlayerStarts | No | Use PlayerStart actors. | |
| defaultPawnClass | No | Default pawn class for GameMode. | |
| intermissionTime | No | ||
| playerStateClass | No | PlayerState class path. | |
| gameModeBlueprint | No | Path to GameMode blueprint to configure. | |
| respawnConditions | No | Conditions for respawn (e.g., "RoundEnd", "Manual"). | |
| scorePerObjective | No | Points awarded per objective. | |
| spectatorViewMode | No | Spectator view mode. | |
| startPlayersNeeded | No | ||
| spawnSelectionMethod | No | How to select spawn points. | |
| playerControllerClass | No | PlayerController class path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Create' and 'Configure' which implies mutation, but it doesn't disclose important behavioral traits such as whether existing assets are overwritten, required permissions, error handling, or side effects. Annotations are minimal (all false) and don't add context, so the description carries the burden and fails to provide sufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler words. It front-loads the core actions and resources, making it easy to scan. It earns its place and is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (41 parameters, 20 actions), the description only covers a few categories and doesn't mention the diverse actions like set_default_pawn_class, configure_round_system, or get_game_framework_info. Without an output schema, the agent lacks context on return values. The description is too high-level to be complete for such a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 78%, so most parameters are already explained in the schema. The description's high-level grouping (match flow, teams, scoring, spawning) maps to some parameters but doesn't add specific meaning beyond what the schema provides. With high coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates GameMode, GameState, PlayerController, and PlayerState Blueprints, and configures match flow, teams, scoring, and spawning. This distinguishes it from sibling tools like manage_blueprint by focusing on game framework elements. However, it doesn't enumerate the full range of 20 actions, leaving some ambiguity about the complete scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives like manage_blueprint or manage_character. The description implies it's for game framework setup but doesn't mention when it's appropriate or when to use a different tool. There are no exclusions or prerequisites described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_gasC
Create Gameplay Abilities, Effects, Attribute Sets, and Gameplay Cues for ability systems.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name of the asset to create. | |
| path | No | Directory path for asset creation. | |
| save | No | Save the asset(s) after the operation. | |
| action | Yes | GAS action to perform. | |
| cueTag | No | Gameplay Cue tag (e.g., GameplayCue.Damage.Fire). | |
| period | No | Period for periodic effects. | |
| cuePath | No | Path to Gameplay Cue asset. | |
| cueType | No | Type of gameplay cue notify. | |
| tagName | No | Name of the tag. | |
| duration | No | Duration in seconds. | |
| maxValue | No | Maximum value for clamping. | |
| minValue | No | Minimum value for clamping. | |
| taskType | No | Type of ability task to add. | |
| aoeRadius | No | Area of effect radius. | |
| assetPath | No | Asset path (e.g., /Game/Path/Asset). | |
| baseValue | No | Base value for attribute. | |
| clampMode | No | Attribute clamping mode. | |
| decalPath | No | Path to decal material. | |
| soundPath | No | Sound asset path. | |
| effectPath | No | Path to effect asset. | |
| ownerActor | No | Owner actor class for ASC. | |
| abilityPath | No | Path to ability asset. | |
| abilityTags | No | Gameplay tags for this ability. | |
| avatarActor | No | Avatar actor class for ASC. | |
| coefficient | No | Coefficient for attribute-based calculation. | |
| grantedTags | No | Tags granted while effect is active. | |
| parentClass | No | Path or name of the parent class. | |
| removalTags | No | Tags that cause effect removal. | |
| targetRange | No | Maximum targeting range. | |
| triggerType | No | When the cue triggers. | |
| cooldownTags | No | Tags applied during cooldown. | |
| durationType | No | Effect duration type. | |
| immunityTags | No | Tags that block this effect. | |
| stackingType | No | Stacking type for effect. | |
| taskSettings | No | Task-specific settings. | |
| attributeName | No | Name of the attribute. | |
| attributeType | No | Predefined attribute type or Custom. | |
| blueprintPath | No | Blueprint asset path. | |
| costAttribute | No | Attribute used for cost (e.g., Mana). | |
| costMagnitude | No | Cost magnitude. | |
| targetingMode | No | Targeting mode for ability. | |
| costEffectPath | No | Path to cost Gameplay Effect. | |
| setByCallerTag | No | Tag for SetByCaller magnitude. | |
| cameraShakePath | No | Path to camera shake asset. | |
| replicationMode | No | ASC replication mode. | |
| sourceAttribute | No | Source attribute for attribute-based calculation. | |
| stackLimitCount | No | Maximum stack count. | |
| targetAttribute | No | Target attribute for modifier. | |
| activationPolicy | No | When the ability activates. | |
| attributeSetPath | No | Path to Attribute Set asset. | |
| calculationClass | No | UGameplayEffectExecutionCalculation class path. | |
| cooldownDuration | No | Cooldown duration in seconds. | |
| instancingPolicy | No | How the ability is instanced. | |
| modifierMagnitude | No | Magnitude of the modifier. | |
| modifierOperation | No | Modifier operation on attribute. | |
| cooldownEffectPath | No | Path to cooldown Gameplay Effect. | |
| particleSystemPath | No | Path to particle system. | |
| activationBlockedTags | No | Tags that block activation of this ability. | |
| blockAbilitiesWithTag | No | Tags of abilities blocked while this is active. | |
| stackExpirationPolicy | No | What happens when stack expires. | |
| activationRequiredTags | No | Tags required to activate this ability. | |
| cancelAbilitiesWithTag | No | Tags of abilities to cancel when this activates. | |
| stackPeriodResetPolicy | No | When to reset stack period. | |
| applicationRequiredTags | No | Tags required to apply this effect. | |
| magnitudeCalculationType | No | How magnitude is calculated. | |
| preMultiplyAdditiveValue | No | Value added before multiplication. | |
| postMultiplyAdditiveValue | No | Value added after multiplication. | |
| stackDurationRefreshPolicy | No | When to refresh stack duration. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false and destructiveHint=false, but the description adds little behavioral context. It does not disclose that the tool can modify existing assets (e.g., set_attribute_base_value), whether it saves changes, or any side effects. The 'create' wording is inconsistent with the broader manage/set actions implied by the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it under-specifies a complex tool with 68 parameters and 27 action types. It is closer to an underspecified placeholder than a genuinely concise overview.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 68 parameters, 27 enumerated actions, and no output schema, the description is far from complete. It fails to mention the range of operations (create, set, configure, get) or any constraints, leaving the agent to infer the tool's full capabilities from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well-documented. The description adds no additional parameter meaning beyond the schema. Baseline 3 is appropriate since the description does not compensate or add value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the GAS resource domain (abilities, effects, attribute sets, cues) but uses the verb 'create' which is misleading because the tool's actions also include set, configure, add, and get info. It does not distinguish from sibling tools like manage_effect or manage_combat, which may overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no exclusions, and no context about the variety of operations it supports. The description simply states the resource type without any practical usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_geometryC
Create procedural meshes using Geometry Script: booleans, deformers, UVs, collision, and LOD generation.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Axis for deformation operations. | |
| save | No | Save the asset(s) after the operation. | |
| angle | No | Angle in degrees. | |
| depth | No | Depth value. | |
| scale | No | 3D scale (x, y, z). | |
| width | No | Width value. | |
| action | Yes | Geometry action to perform | |
| amount | No | Generic amount for operations (bevel size, inset distance, etc.). | |
| height | No | Height value. | |
| radius | No | Radius value. | |
| uvScale | No | UV scale. | |
| distance | No | Distance value. | |
| location | No | 3D location (x, y, z). | |
| lodCount | No | Number of LOD levels to generate. | |
| lodIndex | No | Specific LOD index to configure. | |
| meshPath | No | Mesh asset path. | |
| numRings | No | Number of rings for sphere, torus. | |
| numSides | No | Number of sides for cylinder, cone, etc. | |
| numSteps | No | Number of steps for stairs. | |
| numTurns | No | Number of turns for spiral. | |
| rotation | No | 3D rotation (pitch, yaw, roll). | |
| segments | No | Number of segments for bevel, subdivide. | |
| strength | No | Strength or weight. | |
| uvOffset | No | UV offset. | |
| actorName | No | Name of the actor. | |
| hullCount | No | Number of convex hulls for decomposition. | |
| overwrite | No | Overwrite if the asset/file already exists. | |
| stepDepth | No | Depth of each stair step. | |
| stepWidth | No | Width of each stair step. | |
| uvChannel | No | UV channel index (0-7). | |
| exportPath | No | Export file path. | |
| includeUVs | No | Include UVs in export. | |
| iterations | No | Number of iterations for smooth, remesh. | |
| outputPath | No | Output file or directory path. | |
| screenSize | No | Screen size threshold for LOD switching. | |
| stepHeight | No | Height of each stair step. | |
| createAsset | No | Create as persistent asset. | |
| edgeIndices | No | Array of edge indices. | |
| faceIndices | No | Array of face indices. | |
| innerRadius | No | Inner radius for torus. | |
| preserveUVs | No | Preserve UV seams during LOD generation. | |
| screenSizes | No | Array of screen sizes for each LOD. | |
| enableNanite | No | Enable Nanite for the output mesh. | |
| exportFormat | No | Export file format. | |
| selectionBox | No | Bounding box for selection. | |
| weldDistance | No | Distance threshold for vertex welding. | |
| collisionType | No | Collision complexity type. | |
| depthSegments | No | Segments along depth. | |
| hardEdgeAngle | No | Angle threshold for hard edges (degrees). | |
| hullPrecision | No | Precision for convex hull generation (0-1). | |
| vertexIndices | No | Array of vertex indices. | |
| widthSegments | No | Segments along width. | |
| heightSegments | No | Segments along height. | |
| includeNormals | No | Include normals in export. | |
| radialSegments | No | Radial segments for circular shapes. | |
| targetMeshPath | No | Path to second mesh for boolean operations. | |
| includeTangents | No | Include tangents in export. | |
| preserveBorders | No | Preserve mesh borders during LOD generation. | |
| reductionPercent | No | Percent of triangles to reduce per LOD. | |
| smoothingGroupId | No | Smoothing group ID. | |
| targetEdgeLength | No | Target edge length for remeshing. | |
| maxVerticesPerHull | No | Maximum vertices per convex hull. | |
| projectionDirection | No | Projection direction for UV. | |
| targetTriangleCount | No | Target triangle count for simplification. | |
| computeWeightedNormals | No | Use area-weighted normals. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already state readOnlyHint=false and destructiveHint=false, but the description adds no behavioral context beyond 'Create'. Many actions (boolean_subtract, remesh, generate_collision) modify existing geometry, which the wording 'Create procedural meshes' does not disclose; save/createAsset and overwrite parameters also imply persistence behavior that is not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with a colon-separated list of operation categories. No words are wasted, and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high complexity (65 parameters, 46 enum actions, no output schema), the description is far too thin. It provides no information about how to select a target mesh, interpret return values, handle asset creation/saving, or choose among the many action variants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema itself carries parameter definitions. The description offers only high-level categories (booleans, deformers, UVs, etc.) with no mapping to the 65 parameters, leaving the agent to infer which parameters apply to which actions from generic schema descriptions like 'Depth value' or 'Distance value.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function as creating procedural meshes via Geometry Script and lists key operation categories (booleans, deformers, UVs, collision, LOD generation). This distinguishes it from sibling asset/material tools, though it underrepresents non-create actions like get_mesh_info, export, and Nanite conversion that are present in the action enum.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives, nor any exclusions or prerequisites. With 46 possible actions, the description gives no decision support for selecting the appropriate action, target mesh, or operation context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_inputC
Create Input Actions and Mapping Contexts. Add key/gamepad bindings with modifiers and triggers.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| name | No | Name identifier. | |
| path | No | Path to a directory. | |
| action | Yes | Action to perform. Use dump_asset to serialize a UObject/DataAsset properties to JSON for inspection. | |
| priority | No | Priority for input mapping context (default: 0). | |
| assetPath | No | Asset path (e.g., /Game/Path/Asset). | |
| actionPath | No | Asset path (e.g., /Game/Path/Asset). | |
| contextPath | No | Asset path (e.g., /Game/Path/Asset). | |
| triggerType | No | ||
| modifierType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as mutable (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds no behavioral context beyond 'Create' and 'Add', failing to disclose that actions like remove_mapping or disable_input_action can delete or disable bindings. It also omits any side effects or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler, front-loading the primary purpose. However, the brevity comes at the cost of missing important scope details, so it is concise but not fully informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and an action enum with 10 distinct operations, a two-sentence description is inadequate. It only covers creation and adding bindings, omitting removal, disabling, enabling, retrieving info, and the critical action discriminator. With no output schema, the description must explain the breadth of the tool, and it fails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 70%, with descriptions for most parameters. The description adds a bit of meaning by connecting 'key/gamepad bindings' to key and triggerType/modifierType, but does not clarify valid values for triggerType or modifierType (which lack schema descriptions). Overall, schema carries most semantic weight, with modest addition from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Create Input Actions and Mapping Contexts' but the schema's action enum reveals the tool also removes mappings, disables actions, sets triggers/modifiers, and retrieves info. The verb 'Create' inaccurately narrows the scope and could mislead the agent into thinking only creation is supported.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives like manage_character or system_control. The description doesn't mention exclusions or context where this tool is preferred, leaving the agent to infer from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_interactionC
Create interactive objects: doors, switches, chests, levers. Set up destructible meshes and trigger volumes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name identifier. | |
| size | No | Size of trigger volume. | |
| action | Yes | The interaction action to perform. | |
| folder | No | Path to a directory. | |
| levels | No | Destruction level definitions. | |
| locked | No | Whether the item is locked. | |
| oneShot | No | Whether switch can only be used once. | |
| cooldown | No | Cooldown time in seconds. | |
| doorPath | No | Path to door actor blueprint. | |
| meshPath | No | Mesh asset path. | |
| moveTime | No | Time for lever movement. | |
| openTime | No | Time to open/close door in seconds. | |
| actorName | No | Name of the actor. | |
| autoClose | No | Automatically close after opening. | |
| chestPath | No | Path to chest actor blueprint. | |
| leverType | No | Lever movement type. | |
| maxHealth | No | Maximum health before destruction. | |
| openAngle | No | Door open rotation angle in degrees. | |
| openSound | No | Sound to play on open. | |
| resetTime | No | Time to reset switch in seconds. | |
| traceType | No | Type of interaction trace. | |
| closeSound | No | Sound to play on close. | |
| ignoreTags | No | Tags to ignore in trigger. | |
| switchPath | No | Path to switch actor blueprint. | |
| switchType | No | Type of switch. | |
| toggleable | No | Whether switch can be toggled. | |
| autoDestroy | No | Automatically destroy at zero health. | |
| filterByTag | No | Actor tag filter for trigger. | |
| keyItemPath | No | Item required to unlock. | |
| lidMeshPath | No | Path to lid mesh. | |
| onExitEvent | No | Event dispatcher name for exit. | |
| onStayEvent | No | Event dispatcher name for stay. | |
| pivotOffset | No | Offset for door pivot point. | |
| requiresKey | No | Whether interaction requires a key item. | |
| respawnTime | No | Respawn time in seconds. | |
| respawnable | No | ||
| showOnHover | No | Show widget when hovering. | |
| traceRadius | No | Trace radius. | |
| triggerPath | No | Path to trigger actor blueprint. | |
| widgetClass | No | Widget class path. | |
| destroySound | No | Sound on destruction. | |
| fractureMode | No | Fracture pattern type. | |
| moveDistance | No | Distance for translation lever. | |
| onEnterEvent | No | Event dispatcher name for enter. | |
| responseType | No | How trigger responds. | |
| stayInterval | No | Interval for stay events in seconds. | |
| targetActors | No | Actors affected by this switch. | |
| traceChannel | No | Collision trace channel. | |
| triggerShape | No | Shape of trigger volume. | |
| widgetOffset | No | Widget offset from actor. | |
| activateSound | No | Sound on activation. | |
| blueprintPath | No | Blueprint asset path. | |
| componentName | No | Name of the component. | |
| enablePhysics | No | Enable physics on destruction. | |
| filterByClass | No | Actor class filter for trigger. | |
| ignoreClasses | No | Classes to ignore in trigger. | |
| lootTablePath | No | Path to loot table asset. | |
| openDirection | No | Door open direction. | |
| traceDistance | No | Trace distance. | |
| autoCloseDelay | No | Delay before auto-close in seconds. | |
| debrisLifetime | No | Debris lifetime in seconds. | |
| fracturePieces | No | Number of fracture pieces. | |
| maxActivations | No | Maximum number of activations (0 = unlimited). | |
| showPromptText | No | Show interaction prompt text. | |
| traceFrequency | No | Trace frequency. | |
| deactivateSound | No | Sound on deactivation. | |
| destroyParticle | No | Particle effect on destruction. | |
| damageThresholds | No | Damage thresholds for destruction levels. | |
| promptTextFormat | No | Format string for prompt (e.g., "Press {Key} to {Action}"). | |
| filterByInterface | No | Interface filter for trigger. | |
| debrisPhysicsMaterial | No | Physics material for debris. | |
| impactDamageMultiplier | No | Multiplier for impact damage. | |
| radialDamageMultiplier | No | Multiplier for radial damage. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'create' and 'set up', which matches the non-read-only annotation but adds no details about side effects, whether existing objects are modified, or if any actions can be destructive. Annotations already signal mutating but non-destructive behavior; the description adds no new behavioral context beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core purpose. Every word earns its place, with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (73 parameters, 22 action enum values), the description is far too brief. It doesn't map actions to object types, explain how actions relate to parameters, or indicate required follow-up steps. It provides a high-level overview but not enough context to effectively use the tool in many scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides detailed descriptions for approximately 99% of parameters, so the description does not need to add parameter meaning. It doesn't, which is acceptable given high schema coverage, but it also doesn't add any extra semantic value beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates interactive objects (doors, switches, chests, levers) and sets up destructible meshes and trigger volumes, giving a specific verb and resource. It distinguishes from siblings like manage_blueprint or manage_volumes by focusing on interactive elements, but it omits the broader management scope (configuring, adding events, getting info) visible in the action enum, so it's not a fully accurate purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives like manage_volumes or manage_blueprint, nor when to select specific actions from the enum. The description implies it is for interaction-related tasks but does not explicitly state conditions, exclusions, or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_inventoryC
Create item data assets, inventory components, world pickups, loot tables, and crafting recipes.
| Name | Required | Description | Default |
|---|---|---|---|
| icon | No | Path to icon texture. | |
| mesh | No | Path to mesh asset. | |
| name | No | Name of the asset to create. | |
| path | No | Directory path for asset creation. | |
| save | No | Save the asset(s) after the operation. | |
| tags | No | Gameplay tags for item categorization. | |
| slots | No | Equipment slot definitions. | |
| tiers | No | Quality tier definitions. | |
| value | No | ||
| action | Yes | Inventory action to perform. | |
| folder | No | Path to a directory. | |
| prompt | No | Prompt text. | |
| rarity | No | Item rarity tier. | |
| weight | No | ||
| bobbing | No | Enable bobbing animation. | |
| recipes | No | Recipe paths for crafting station. | |
| itemPath | No | Path to item data asset. | |
| meshPath | No | Mesh asset path. | |
| rotation | No | Enable rotation animation. | |
| slotSize | No | Size of each slot (for grid inventory). | |
| actorPath | No | Path to actor Blueprint for loot drop. | |
| craftTime | No | Time in seconds to craft. | |
| dropCount | No | Number of drops to roll. | |
| dropForce | No | Physics force applied to drops. | |
| maxWeight | No | ||
| slotCount | No | ||
| stackSize | No | ||
| conditions | No | Conditions for loot entry (gameplay tag expressions). | |
| dropRadius | No | Radius for scattered drops. | |
| glowEffect | No | Enable glow effect. | |
| lootWeight | No | Weight for drop chance calculation. | |
| pickupPath | No | Path to pickup actor Blueprint. | |
| recipePath | No | Path to crafting recipe asset. | |
| replicated | No | Whether to replicate. | |
| description | No | ||
| displayName | No | ||
| ingredients | No | Required ingredients with quantities. | |
| maxQuantity | No | Maximum drop quantity. | |
| minQuantity | No | Minimum drop quantity. | |
| parentClass | No | Path or name of the parent class. | |
| pickupSound | No | Sound cue for pickup. | |
| respawnTime | No | Respawn time in seconds. | |
| respawnable | No | ||
| stationType | No | Type of crafting station. | |
| categoryIcon | No | Icon texture for category. | |
| categoryPath | No | Path to item category asset. | |
| itemDataPath | No | Path to item data asset. | |
| abilityGrants | No | Gameplay abilities granted when equipped. | |
| allowStacking | No | Allow items to stack. | |
| blueprintPath | No | Blueprint asset path. | |
| componentName | No | Name of the component. | |
| lootTablePath | No | Path to loot table asset. | |
| meshComponent | No | Component name for equipment mesh. | |
| requiredLevel | No | Required player level. | |
| respawnEffect | No | Niagara effect for respawn. | |
| statModifiers | No | Stat modifiers when equipped. | |
| attachToSocket | No | Attach mesh to socket when equipped. | |
| interactionKey | No | Input action for pickup (if type is Key/Hold). | |
| outputItemPath | No | Path to item produced by recipe. | |
| outputQuantity | No | Quantity produced. | |
| parentCategory | No | Parent category path. | |
| passiveEffects | No | Passive gameplay effects when equipped. | |
| pickupParticle | No | Particle effect on pickup. | |
| requiredSkills | No | Required skill tags. | |
| slotCategories | No | Allowed item categories per slot. | |
| guaranteedDrops | No | Item paths that always drop. | |
| interactionType | No | How player picks up item. | |
| requiredStation | No | Required crafting station type. | |
| customProperties | No | Custom key-value properties for item. | |
| slotRestrictions | No | Per-slot category restrictions. | |
| unlockConditions | No | Conditions to unlock recipe. | |
| highlightMaterial | No | Material for highlight effect. | |
| interactionRadius | No | Radius for pickup interaction. | |
| animationOverrides | No | Animation overrides (slot -> anim asset). | |
| replicationCondition | No | Replication condition for inventory. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only restates a creation-oriented summary and adds no behavioral context beyond the annotations. It does not mention that most operations modify existing assets, that the `action` parameter determines behavior, or what side effects to expect. The annotations already declare non-read-only, so no contradiction exists, but the description contributes little.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, but it is too sparse for a tool with 75 parameters and 28 action modes. It is under-specified rather than effectively concise; a brief enumeration of action categories or a note about the required `action` would be more useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool this complex—75 parameters, no output schema, multiple nested objects, and a required action enum—the one-line description is inadequate. It does not explain return values, state changes, or the need to choose an `action`, leaving significant gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 89%, so the schema mostly carries parameter meaning. The description lists high-level resource categories but does not map them to the many parameters (e.g., `action`, `itemPath`, `lootTablePath`, `ingredients`). It also does not clarify that `action` is required and drives which parameters are relevant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names specific resources ('item data assets, inventory components, world pickups, loot tables, and crafting recipes') and uses a verb ('Create'), but the tool's required `action` parameter supports 28 distinct actions, many of which are non-creative (e.g., 'set_item_properties', 'configure_inventory_slots', 'get_inventory_info'). This understates the tool's actual scope and could mislead an agent into thinking it is only for creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like manage_asset, manage_blueprint, or other sibling tools. The description does not mention conditions, prerequisites, or situations where a different tool should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_levelCDestructive
Load/save levels, configure streaming, manage World Partition cells, and build lighting.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | 3D location (x, y, z). | |
| min | No | 3D location (x, y, z). | |
| path | No | Directory path for asset creation. | |
| cells | No | ||
| color | No | RGBA color as an array [r, g, b, a]. | |
| action | Yes | Action | |
| extent | No | 3D extent (half-size). | |
| origin | No | 3D location (x, y, z). | |
| newName | No | ||
| location | No | 3D location (x, y, z). | |
| metadata | No | ||
| rotation | No | 3D rotation (pitch, yaw, roll). | |
| savePath | No | Path to save the asset. | |
| template | No | ||
| actorPath | No | Path to actor. | |
| intensity | No | ||
| levelName | No | ||
| levelPath | No | Level asset path. | |
| lightType | No | Light type. Accepts short names (Point), class names (PointLight), or lowercase (point). | |
| streaming | No | ||
| timeoutMs | No | ||
| exportPath | No | Export file path. | |
| levelPaths | No | ||
| parentPath | No | Path to a directory. | |
| sourcePath | No | Source path for import/move/copy. | |
| targetPath | No | Path to a directory. | |
| packagePath | No | Path to a directory. | |
| parentLevel | No | Parent level path. | |
| sublevelPath | No | Level asset path. | |
| dataLayerName | No | Name of the data layer. | |
| dataLayerLabel | No | ||
| dataLayerState | No | ||
| shouldBeLoaded | No | ||
| destinationPath | No | Destination path for move/copy. | |
| shouldBeVisible | No | ||
| streamingMethod | No | ||
| useWorldPartition | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false. The description adds context about the tool's scope (streaming, World Partition, lighting) beyond annotations, but it does not disclose the nature of destructive actions (e.g., delete, cleanup) or side effects. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff, covering the main operations. It is efficiently front-loaded but is high-level and could be more actionable by mentioning the action parameter or specific sub-capabilities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 37 parameters and 24 actions, this description is far too brief. It omits the required 'action' parameter, operation-specific details, return values, and side-effect warnings. The schema carries most of the burden, but the description does not integrate or highlight the most important decision points for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 59% and includes descriptions for many parameters, but the description does not explain the required 'action' parameter or how to choose among the 24 action values. It vaguely groups some parameters (e.g., lighting, streaming, cells) but provides no direct parameter semantics beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool handles level-related operations: load/save, streaming, World Partition cells, and lighting. It uses specific verb+resource pairs, but it does not differentiate from sibling tools like manage_lighting or manage_level_structure, which overlap in lighting and structure management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There are no exclusions, prerequisites, or explicit alternative tool mentions, leaving the agent to infer usage from the broad capability list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_level_structureCDestructive
Create levels and sublevels. Configure World Partition, streaming, data layers, HLOD, and level instances.
| Name | Required | Description | Default |
|---|---|---|---|
| save | No | Save the asset(s) after the operation. | |
| action | Yes | Level structure action to perform. | |
| cellSize | No | HLOD cell size. | |
| nodeName | No | Name of the node. | |
| actorName | No | Name of the actor. | |
| actorPath | No | Path to actor. | |
| levelName | No | ||
| levelPath | No | Level asset path. | |
| nodeClass | No | Node class path. | |
| volumeName | No | Name of the volume. | |
| parentLevel | No | Parent level path. | |
| boundsExtent | No | Extent of level bounds. | |
| boundsOrigin | No | Origin of level bounds. | |
| createVolume | No | Create a streaming volume (true) or just report existing volumes (false). Default: true. | |
| gridCellSize | No | World Partition grid cell size. | |
| loadingRange | No | Loading range for grid cells. | |
| nodePosition | No | Position of node in graph. | |
| sublevelName | No | Name of the sublevel. | |
| sublevelPath | No | Level asset path. | |
| volumeExtent | No | Extent of the volume. | |
| dataLayerName | No | Name of the data layer. | |
| dataLayerType | No | Type of data layer. | |
| hlodLayerName | No | Name of the HLOD layer. | |
| hlodLayerPath | No | Path to HLOD layer. | |
| instanceScale | No | Scale of the level instance. | |
| sourcePinName | No | Name of the source pin. | |
| targetPinName | No | Name of the target pin. | |
| templateLevel | No | Template level path. | |
| dataLayerLabel | No | Display label for the data layer. | |
| levelAssetPath | No | Path to the level asset for instancing. | |
| sourceNodeName | No | Source node name. | |
| streamingUsage | No | Streaming volume usage mode (default: LoadingAndVisibility). | |
| targetNodeName | No | Target node name. | |
| volumeLocation | No | Location of the volume. | |
| bPackBlueprints | No | Include blueprints in packed level. | |
| loadingDistance | No | HLOD loading distance. | |
| packedLevelName | No | Name for the packed level actor. | |
| streamingMethod | No | Level streaming method. | |
| bShouldBeVisible | No | Level should be visible when loaded. | |
| instanceLocation | No | Location of the level instance. | |
| instanceRotation | No | Rotation of the level instance. | |
| bPackStaticMeshes | No | Include static meshes in packed level. | |
| levelInstanceName | No | Level instance name. | |
| streamingDistance | No | Distance/radius for streaming volume (creates ALevelStreamingVolume). | |
| bIsInitiallyLoaded | No | Data layer initially loaded. | |
| bIsSpatiallyLoaded | No | HLOD is spatially loaded. | |
| bShouldBlockOnLoad | No | Block game until level is loaded. | |
| bIsInitiallyVisible | No | Data layer initially visible. | |
| bAutoCalculateBounds | No | Auto-calculate bounds from content. | |
| bCreateWorldPartition | No | Create with World Partition enabled. | |
| bEnableWorldPartition | No | Enable World Partition for level. | |
| bDisableDistanceStreaming | No | Disable distance-based streaming. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations mark this as destructive (destructiveHint=true) and not read-only, but the description adds no behavioral context beyond that. It does not describe side effects, whether actions are irreversible, or what assets might be modified. With annotations present, the bar is lower, but the description provides zero additional behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler or redundancy. It front-loads the primary action ('Create levels and sublevels') followed by configuration domains. This is efficient, though it could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a rich schema (52 parameters, 17 action enum values), the description is far too minimal to orient an agent. It does not explain the action-driven nature of the tool, which parameters apply to which actions, or how operations like get_level_structure_info differ from create_packed_level_actor. The description relies entirely on the schema, which is insufficient for such a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 98%, so the schema already documents most parameters with descriptions. The tool description itself adds no parameter-level guidance, but this is acceptable given the high schema coverage. It does not explain how parameters combine for specific actions, but the schema already provides baseline clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with specific verbs: 'Create levels and sublevels. Configure World Partition, streaming, data layers, HLOD, and level instances.' It names distinct resources and operations, making the general purpose obvious. However, it does not explicitly differentiate from sibling tools like manage_level or build_environment, which may also handle level creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No mention of prerequisites, exclusions, or when a different tool would be more appropriate. The description only lists capabilities without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_lightingB
Spawn lights (point, spot, rect, sky), configure GI, shadows, volumetric fog, and build lighting.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name identifier. | |
| size | No | 3D scale (x, y, z). | |
| color | No | RGBA color as an array [r, g, b, a]. | |
| width | No | ||
| action | Yes | Action | |
| height | No | ||
| method | No | ||
| radius | No | ||
| bounces | No | ||
| density | No | ||
| enabled | No | Whether the item/feature is enabled. | |
| quality | No | ||
| location | No | 3D location (x, y, z). | |
| rotation | No | 3D rotation (pitch, yaw, roll). | |
| fogHeight | No | ||
| innerCone | No | ||
| intensity | No | ||
| levelName | No | ||
| lightType | No | Light type. Accepts short names (Point), class names (PointLight), or lowercase (point). | |
| outerCone | No | ||
| recapture | No | ||
| copyActors | No | ||
| lightClass | No | Unreal light class name (e.g., PointLight, SpotLight). Alternative to lightType. | |
| sourceType | No | ||
| castShadows | No | ||
| cubemapPath | No | Texture asset path. | |
| temperature | No | ||
| useTemplate | No | ||
| maxBrightness | No | ||
| minBrightness | No | ||
| shadowQuality | No | ||
| contactShadows | No | ||
| shadowDistance | No | ||
| cascadedShadows | No | ||
| falloffExponent | No | ||
| rayTracedShadows | No | ||
| buildOnlySelected | No | ||
| compensationValue | No | ||
| scatteringIntensity | No | ||
| buildReflectionCaptures | No | ||
| useAsAtmosphereSunLight | No | For Directional Lights, use as Atmosphere Sun Light. | |
| indirectLightingIntensity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond what the annotations already indicate. It does not mention that actions like 'build_lighting' may be time-consuming, or that 'ensure_single_sky_light' might modify or delete existing lights. With annotations present but generic, the description adds no additional context about side effects or requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core capabilities. It is appropriately sized for a tool with many capabilities, avoiding unnecessary verbosity while covering the main areas. Every word contributes to the overall meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high complexity (42 parameters, 15 actions) and no output schema, the description is insufficient. It does not mention the 'action' enum, the variety of possible actions, or how to select between them. It provides only a general overview, leaving users without enough context to safely and effectively use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 42 parameters with only 26% description coverage, so the description should compensate. It does not explain any specific parameters, but it does mention high-level concepts (GI, shadows, fog) that map to parameter groups. However, it does not clarify the meaning of 'action' enum values, 'lightType', or other key fields, leaving significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: spawning lights (point, spot, rect, sky) and configuring GI, shadows, volumetric fog, and building lighting. It uses specific verbs and resources, distinguishing it from sibling tools that manage assets, blueprints, or other domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention alternative tools, exclusions, or specific conditions that would trigger its use. The only hint is the name 'manage_lighting', but there is no explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_material_authoringC
Create materials with expressions, parameters, functions, instances, and landscape blend layers.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Node X position. | |
| y | No | Node Y position. | |
| code | No | Code or expression. | |
| name | No | Name identifier. | |
| path | No | Directory path for asset creation. | |
| save | No | Save the asset(s) after the operation. | |
| group | No | Group name. | |
| value | No | Value to set (number, vector object, or texture path). | |
| action | Yes | Material authoring action to perform. Use create_complete_material to create a full material with expressions and connections in a single call. | |
| constA | No | Constant A input value. | |
| constB | No | Constant B input value. | |
| layers | No | Array of layer configurations for layer blend. | |
| nodeId | No | ID of the node. | |
| pinName | No | Name of the pin. | |
| uTiling | No | U tiling factor. | |
| vTiling | No | V tiling factor. | |
| twoSided | No | Enable two-sided rendering. | |
| assetPath | No | Asset path (e.g., /Game/Path/Asset). | |
| blendMode | No | Blend mode. | |
| blendType | No | Landscape layer blend type. | |
| inputName | No | Name of the input. | |
| inputType | No | Type of function input/output. | |
| layerName | No | Name of the layer. | |
| operation | No | Math operation type. | |
| sourcePin | No | Source pin name (output). | |
| targetPin | No | Target pin name (input). | |
| outputType | No | Output type of custom expression. | |
| properties | No | Additional material properties to set via console commands, e.g. {bUsedWithSkeletalMesh: true} (for create_complete_material) | |
| connections | No | Array of connections between expressions and material inputs (for create_complete_material) | |
| description | No | Description for custom expression or function. | |
| expressions | No | Array of expressions to add to the material (for create_complete_material) | |
| samplerType | No | Texture sampler type. | |
| texturePath | No | Texture asset path. | |
| defaultValue | No | Default value for parameter (number for scalar, object for vector, bool for switch). | |
| functionPath | No | Path to function asset. | |
| shadingModel | No | Shading model. | |
| sourceNodeId | No | Source node ID for connection. | |
| targetNodeId | No | Target node ID for connection. | |
| parameterName | No | Name of the parameter. | |
| materialDomain | No | Material domain type. | |
| parentMaterial | No | Path to parent material for instances. | |
| coordinateIndex | No | UV channel index (0-7). | |
| exposeToLibrary | No | Expose function to material library. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, providing no safety or mutation cues. The description says 'create' but doesn't disclose side effects like overwriting assets, whether existing materials are modified, or any prerequisites. No additional behavioral context is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loads the primary verb, and lists key features without redundancy. It is appropriately concise for an overview, though it sacrifices completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 43 parameters and 39 actions, the one-sentence description is far too sparse. It doesn't mention the create_complete_material convenience action, editing existing materials, or the distinction between creating assets vs connecting nodes. No output schema exists, so the description should explain more about return values or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, so baseline is 3. The tool description lists high-level categories (expressions, parameters, functions, instances) but doesn't add meaning beyond what the schema already provides. No new parameter insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool creates materials with specific components (expressions, parameters, functions, instances, landscape blend layers), clearly identifying the resource and differentiating from sibling asset tools. However, it omits many actions from the enum like set_blend_mode, connect_nodes, and compile_material, so it underrepresents the full purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as manage_asset or manage_texture, nor when to use create_complete_material versus individual node actions. The description only states what the tool does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_networkingB
Configure multiplayer: property replication, RPCs (Server/Client/Multicast), authority, relevancy, and network prediction.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Net role. | |
| action | Yes | Networking action to perform | |
| rpcType | No | Type of RPC. | |
| dataType | No | Network prediction data type. | |
| dormancy | No | Net dormancy mode. | |
| reliable | No | Whether the operation is reliable. | |
| actorName | No | Name of the actor. | |
| condition | No | Replication condition. | |
| nodeClass | No | Node class path. | |
| removeAll | No | Remove all foliage instances. | |
| parameters | No | RPC function parameters. | |
| properties | No | Predicted properties. | |
| replicated | No | Whether property should be replicated. | |
| returnType | No | RPC return type (usually void). | |
| structName | No | Name of struct for custom serialization. | |
| netPriority | No | Network priority for bandwidth (default 1.0). | |
| spatialBias | No | Spatial bias for replication graph. | |
| functionName | No | Name of the function. | |
| propertyName | No | Name of the property. | |
| usePushModel | No | Use push-model replication. | |
| blueprintPath | No | Blueprint asset path. | |
| maxClientRate | No | Max client rate. | |
| predictionKey | No | Prediction key identifier. | |
| propertyNames | No | Properties for push model. | |
| repNotifyFunc | No | RepNotify function name. | |
| smoothingRate | No | Smoothing rate for corrections. | |
| alwaysRelevant | No | Always relevant to all clients. | |
| ownerActorName | No | Name of owner actor (null to clear). | |
| withValidation | No | Enable RPC validation. | |
| netLoadOnClient | No | Net load on client for replication graph. | |
| spatiallyLoaded | No | Spatially loaded for replication graph. | |
| useNetSerialize | No | Use custom NetSerialize. | |
| enablePrediction | No | Enable client-side prediction. | |
| isAutonomousProxy | No | Configure as autonomous proxy. | |
| replicateMovement | No | Replicate movement. | |
| replicationPolicy | No | Replication policy for replication graph. | |
| netUpdateFrequency | No | How often actor replicates (Hz, default 100). | |
| correctionThreshold | No | Server correction threshold. | |
| customSerialization | No | Use custom serialization. | |
| onlyRelevantToOwner | No | Only relevant to owner. | |
| predictionThreshold | No | Prediction threshold for client prediction. | |
| defaultSettingsClass | No | Default replication settings class. | |
| netServerMaxTickRate | No | Server max tick rate. | |
| networkSmoothingMode | No | Movement smoothing mode. | |
| useOwnerNetRelevancy | No | Use owner relevancy. | |
| maxInternetClientRate | No | Max internet client rate. | |
| minNetUpdateFrequency | No | Minimum update frequency when idle (Hz, default 2). | |
| netCullDistanceSquared | No | Network cull distance squared. | |
| replicatedMovementMode | No | Replicated movement mode. | |
| validationFunctionName | No | Name of validation function. | |
| locationQuantizationLevel | No | Location quantization level. | |
| networkNoSmoothUpdateDistance | No | No smooth update distance. | |
| networkMaxSmoothUpdateDistance | No | Max smooth update distance. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), and the description adds no behavioral context such as side effects, permission requirements, or what changes are applied. 'Configure' implies mutation but gives no transparency into consequences or operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that lists key network areas without unnecessary words. It earns its place as a succinct overview, though its brevity is a drawback for other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 53 parameters, no output schema, and no helpful annotations, the one-sentence description is severely incomplete. It provides no sense of typical workflows, how to select the required action, or how parameters group into operations, leaving the agent without enough context to invoke the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with individual descriptions for all 53 parameters, so parameter semantics are already well-documented. The description only lists high-level topics and does not add mapping between parameters and actions, but that is not necessary given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Configure' and identifies the resource as 'multiplayer' with concrete sub-domains (property replication, RPCs, authority, relevancy, prediction). This clearly signals the tool's focus and distinguishes it from sibling manage_* tools that target other systems, though it doesn't explicitly contrast with alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended context is implied by the tool name and description—use for multiplayer/networking setup. However, there is no explicit when-to-use or when-not-to-use guidance, nor any mention of alternative tools for overlapping concerns like control_actor or manage_game_framework.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_performanceC
Run profiling/benchmarks, configure scalability, LOD, Nanite, and optimization settings.
| Name | Required | Description | Default |
|---|---|---|---|
| hzb | No | ||
| type | No | ||
| level | No | ||
| scale | No | ||
| action | Yes | Action | |
| actors | No | ||
| maxFPS | No | ||
| enabled | No | Whether the item/feature is enabled. | |
| lodBias | No | ||
| verbose | No | ||
| category | No | ||
| cellSize | No | ||
| detailed | No | ||
| duration | No | ||
| forceLOD | No | ||
| poolSize | No | ||
| outputPath | No | Output file or directory path. | |
| mergeActors | No | ||
| cacheShaders | No | ||
| skeletalBias | No | ||
| distanceScale | No | ||
| enableBatching | No | ||
| compileOnDemand | No | ||
| freezeRendering | No | ||
| enableInstancing | No | ||
| maxPixelsPerEdge | No | ||
| streamingDistance | No | ||
| streamingPoolSize | No | ||
| reducePermutations | No | ||
| boostPlayerLocation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=false, which are uninformative (all false). The description adds no behavioral context: it does not mention whether settings changes are persistent, whether profiling requires a running editor session, whether actions like merge_actors modify the scene destructively, or what side effects may occur. With no helpful annotations, the description should disclose such traits but does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with action verbs ('Run profiling/benchmarks, configure...'), and contains no unnecessary words. It is appropriately concise and readable. However, given the tool's complexity, a slightly longer structured description might add value, but this does not detract from its conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has 30 parameters and 20 distinct actions, yet the description covers only a fraction of its capability. There is no output schema, and annotations are minimal. The description does not explain return values, action-specific parameter dependencies, or typical usage flows (e.g., start_profiling then stop_profiling). It is far from complete for such a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 30 parameters, but only 10% have descriptions (action, enabled, outputPath). The description mentions 'scalability, LOD, Nanite, and optimization settings' which loosely map to some parameters, but it does not explain the meaning or purpose of key parameters such as hzb, type, level, scale, lodBias, maxPixelsPerEdge, streamingDistance, etc. Given the low schema coverage, the description was expected to compensate, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run profiling/benchmarks, configure scalability, LOD, Nanite, and optimization settings.' It uses specific verbs (run, configure) and distinct resources (profiling, benchmarks, scalability, LOD, Nanite, optimizations), which differentiates it from sibling tools like manage_asset or manage_level. It is not a tautology and gives a functional overview, though it is broad and does not enumerate all 20 actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any preconditions, exclusions, or scenarios where another tool would be more appropriate. For example, it does not say 'Use this for performance diagnostics; use manage_settings for general config.' This leaves the agent without explicit usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_sequenceCDestructive
Edit Level Sequences: add tracks, bind actors, set keyframes, control playback, and record camera.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| name | No | Name identifier. | |
| path | No | Asset path (e.g., /Game/Path/Asset). | |
| solo | No | ||
| frame | No | ||
| muted | No | ||
| speed | No | ||
| start | No | ||
| value | No | ||
| action | Yes | Action | |
| locked | No | ||
| newName | No | New name for renaming. | |
| endFrame | No | ||
| loopMode | No | ||
| metadata | No | ||
| property | No | Name of the property. | |
| actorName | No | Name of the actor. | |
| assetPath | No | Asset path (e.g., /Game/Path/Asset). | |
| className | No | ||
| frameRate | No | ||
| overwrite | No | Overwrite if the asset/file already exists. | |
| spawnable | No | ||
| startTime | No | ||
| trackName | No | ||
| trackType | No | ||
| actorNames | No | ||
| resolution | No | ||
| startFrame | No | ||
| playbackEnd | No | ||
| playbackStart | No | ||
| lengthInFrames | No | ||
| destinationPath | No | Destination path for move/copy. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false. The description adds no behavioral context beyond a generic 'Edit' and a list of operations; it does not disclose side effects, destructive risks for specific actions, or prerequisites. It does not contradict annotations, but it fails to add useful context beyond what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the core purpose, and lists key capabilities without wasted words. It is concise and readable, although a slightly more structured breakdown of action categories could improve utility without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is extremely complex (32 parameters, 32 action variants, nested objects) with no output schema. The description covers only a subset of operations and says nothing about return values, error behavior, or how actions are dispatched. It is far from complete for an agent to confidently invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 28% (9 of 32 parameters have descriptions). The description mentions high-level capabilities like 'add tracks' and 'record camera' but does not map them to parameters or clarify the meaning of undocumented parameters such as 'end', 'solo', 'speed', or 'value'. With low schema coverage, the description must compensate, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Edit Level Sequences' with a specific verb and resource, and lists concrete capabilities like add tracks, bind actors, set keyframes, control playback, and record camera. This distinguishes it from sibling tools like manage_level_structure or control_actor, though it does not enumerate the full range of actions (e.g., create, delete, metadata), so it is not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for editing level sequences but provides no explicit when-to-use or when-not-to-use guidance, no mention of prerequisites or alternatives among the many sibling tools. With 32 possible actions, there is no guidance on which action to choose for which scenario, leaving the agent with insufficient direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_sessionsA
Configure local multiplayer: split-screen layouts, LAN hosting/joining, voice chat channels, and push-to-talk.
| Name | Required | Description | Default |
|---|---|---|---|
| muted | No | Whether the item is muted. | |
| action | Yes | Sessions action to perform. | |
| enabled | No | Whether the item/feature is enabled. | |
| mapName | No | Map to load for hosting. | |
| sessionId | No | Session ID. | |
| maxPlayers | No | ||
| playerName | No | Player name for voice operations. | |
| serverName | No | Display name for the server. | |
| serverPort | No | ||
| bIsLANMatch | No | Whether this is a LAN match. | |
| channelName | No | Name of the channel. | |
| channelType | No | Voice channel type. | |
| playerIndex | No | ||
| sessionName | No | Name of the session. | |
| controllerId | No | ||
| voiceEnabled | No | Enable/disable voice chat. | |
| bAllowInvites | No | Allow player invites. | |
| bUsesPresence | No | Use presence for session discovery. | |
| interfaceType | No | Type of session interface to use. | |
| pushToTalkKey | No | Key binding for push-to-talk. | |
| serverAddress | No | Server address. | |
| travelOptions | No | Travel URL options string. | |
| voiceSettings | No | Voice processing settings. | |
| serverPassword | No | Server password for protected games. | |
| targetPlayerId | No | Target player ID. | |
| splitScreenType | No | Split-screen layout type. | |
| bShouldAdvertise | No | Advertise session publicly. | |
| attenuationRadius | No | Radius for voice attenuation (Proximity chat). | |
| pushToTalkEnabled | No | Enable push-to-talk mode. | |
| attenuationFalloff | No | Falloff rate for voice attenuation. | |
| bAllowJoinInProgress | No | Allow joining games in progress. | |
| bUseLobbiesIfAvailable | No | Use lobby system if available. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as non-read-only, non-idempotent, and non-destructive, lowering the bar. The description adds the configurable domains but does not disclose side effects, preconditions, or failure modes (e.g., hosting a LAN server may require port availability, voice settings may affect connected clients). It is consistent with annotations, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence front-loaded with the primary purpose ('Configure local multiplayer') followed by a colon-delimited list of feature areas. There is no filler or redundant detail, making it concise and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a highly complex tool with 32 parameters, 16 action enum values, nested objects, and no output schema. The one-line description is insufficient to orient an agent across the many distinct actions; it does not mention that the action parameter is the dispatcher or explain how parameters map to specific actions. The schema provides details, but the description leaves a significant gap for such broad functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 88% across 32 parameters, so the schema already provides detailed parameter meaning. The description only groups parameters thematically (split-screen, LAN, voice, PTT) without adding semantics beyond the schema. Baseline 3 is appropriate since the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb and resource: 'Configure local multiplayer' and then enumerates the concrete capabilities (split-screen layouts, LAN hosting/joining, voice chat channels, push-to-talk). This distinguishes it well from sibling tools like manage_audio or manage_networking by focusing on session-level multiplayer configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: when configuring local multiplayer sessions. However, it does not explicitly state when not to use it or name alternatives, so it does not reach level 5. The context is unambiguous enough to guide tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_skeletonBDestructive
Edit skeletal meshes: add sockets, configure physics assets, set skin weights, and create morph targets.
| Name | Required | Description | Default |
|---|---|---|---|
| mass | No | Mass value. | |
| save | No | Save the asset(s) after the operation. | |
| bodyA | No | First physics body. | |
| bodyB | No | Second physics body. | |
| scale | No | 3D scale (x, y, z). | |
| action | Yes | Skeleton action to perform | |
| deltas | No | Array of {vertexIndex, delta} for morph target. | |
| limits | No | Constraint angular limits. | |
| weights | No | Array of {boneIndex, weight} pairs. | |
| bodyName | No | Physics body name. | |
| bodyType | No | Physics body shape type. | |
| boneName | No | Name of the bone. | |
| location | No | 3D location (x, y, z). | |
| rotation | No | 3D rotation (pitch, yaw, roll). | |
| boneIndex | No | Bone index for operations. | |
| overwrite | No | Overwrite if the asset/file already exists. | |
| threshold | No | Weight threshold for pruning (0-1). | |
| mirrorAxis | No | Axis for weight mirroring. | |
| outputPath | No | Output file or directory path. | |
| paintValue | No | Cloth weight paint value (0-1). | |
| socketName | No | Name of the socket. | |
| mirrorTable | No | Bone name mapping for mirroring. | |
| newBoneName | No | New name for renaming. | |
| vertexIndex | No | Vertex index for weight operations. | |
| skeletonPath | No | Skeleton asset path. | |
| linearDamping | No | Linear damping factor. | |
| relativeScale | No | 3D scale (x, y, z). | |
| vertexIndices | No | Array of vertex indices. | |
| angularDamping | No | Angular damping factor. | |
| attachBoneName | No | Bone to attach to. | |
| clothAssetPath | No | Path to cloth asset. | |
| constraintName | No | Constraint name. | |
| parentBoneName | No | Parent bone name. | |
| sourceBoneName | No | Source bone name. | |
| targetBoneName | No | Target bone name. | |
| morphTargetName | No | Morph target name. | |
| morphTargetPath | No | Path to morph target or FBX file for import. | |
| simulatePhysics | No | Enable physics simulation. | |
| collisionEnabled | No | Enable collision for this body. | |
| physicsAssetPath | No | Path to physics asset. | |
| relativeLocation | No | 3D location (x, y, z). | |
| relativeRotation | No | 3D rotation (pitch, yaw, roll). | |
| skeletalMeshPath | No | Skeletal mesh path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, which the description does not contradict. It adds that the tool edits skeletal meshes, but doesn't disclose that some actions (e.g., get_skeleton_info, list_bones) are read-only despite the global destructive hint, nor does it explain asset saving or impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence covers all major action categories with no filler or repetition. It is concise and easy to parse, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 29 actions and 43 parameters, the description is sparse. It doesn't explain that an 'action' is required, how assets are selected, or that some operations are read-only despite the destructive hint. No output schema exists, so the agent receives no guidance on return values or operation flows.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and all 43 parameters have individual descriptions. The tool description adds no parameter-level meaning, but the baseline of 3 applies because the schema fully documents each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Edit skeletal meshes' and lists specific capabilities (add sockets, configure physics assets, set skin weights, create morph targets). This distinguishes it from generic tools like manage_asset, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when editing skeletal meshes, but provides no explicit when-to-use vs alternatives, no exclusions, and no prerequisites. The context signals show siblings like manage_asset and animation_physics, making the lack of guidance a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_splinesCDestructive
Create spline actors, add/modify points, attach meshes along splines, and query spline data.
| Name | Required | Description | Default |
|---|---|---|---|
| save | No | Save the asset(s) after the operation. | |
| scale | No | Scale for spline actor. | |
| width | No | Width value. | |
| action | Yes | Spline action to perform | |
| endPos | No | End position for spline mesh segment. | |
| filter | No | General search filter. | |
| points | No | Array of spline points for batch creation. | |
| endRoll | No | Roll angle at spline mesh end (radians). | |
| spacing | No | Distance between scattered meshes. | |
| tangent | No | Unified tangent (sets both arrive and leave). | |
| endScale | No | X/Y scale at spline mesh end. | |
| location | No | Location for spline actor. | |
| meshPath | No | Mesh asset path. | |
| position | No | Position for spline point. | |
| rotation | No | Rotation for spline actor. | |
| scaleMax | No | Maximum random scale multiplier. | |
| scaleMin | No | Minimum random scale multiplier. | |
| startPos | No | Start position for spline mesh segment. | |
| actorName | No | Name of the actor. | |
| actorPath | No | Path to actor. | |
| endOffset | No | Offset from spline end for last mesh. | |
| startRoll | No | Roll angle at spline mesh start (radians). | |
| cableSlack | No | Slack/sag amount for cable template. | |
| endTangent | No | End tangent for spline mesh segment. | |
| pipeRadius | No | Radius for pipe template. | |
| pointIndex | No | Index of spline point to modify. | |
| pointScale | No | Scale at spline point. | |
| railHeight | No | Height of fence rails. | |
| randomSeed | No | Seed for randomization (for reproducible results). | |
| splineName | No | Name of spline component. | |
| splineType | No | Type of spline interpolation. | |
| startScale | No | X/Y scale at spline mesh start. | |
| bClosedLoop | No | Whether spline forms a closed loop. | |
| forwardAxis | No | Forward axis for spline mesh deformation. | |
| postSpacing | No | Spacing between fence posts. | |
| startOffset | No | Offset from spline start for first mesh. | |
| leaveTangent | No | Leave tangent for spline point (outgoing direction). | |
| materialPath | No | Material asset path. | |
| startTangent | No | Start tangent for spline mesh segment. | |
| templateType | No | Type of spline template to create. | |
| arriveTangent | No | Arrive tangent for spline point (incoming direction). | |
| bUpdateSpline | No | Update spline after modification (default: true). | |
| blueprintPath | No | Blueprint asset path. | |
| componentName | No | Name of the component. | |
| pointRotation | No | Rotation at spline point. | |
| segmentLength | No | Length of mesh segments for deformation. | |
| bAlignToSpline | No | Align scattered meshes to spline direction. | |
| bRandomizeScale | No | Apply random scale to scattered meshes. | |
| coordinateSpace | No | Coordinate space for position/tangent values (default: Local). | |
| bRandomizeRotation | No | Apply random rotation to scattered meshes. | |
| rotationRandomRange | No | Random rotation range (degrees). | |
| bSmoothInterpRollScale | No | Use smooth interpolation for roll/scale. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate destructive behavior (destructiveHint=true) and non-read-only (readOnlyHint=false). The description adds no additional behavioral context such as persistence requirements (e.g., save parameter), irreversibility, or dependencies between actions, only restating high-level capability categories.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant words, making it efficient. However, given the tool's complexity (21 actions, 52 parameters), the brevity borders on under-specification, but it still earns points for being tight and front-loaded with capability verbs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is highly complex with 21 actions and 52 parameters, yet the description provides only a high-level summary. It doesn't explain the action dispatch pattern, template types, or how parameters map to actions. Without an output schema, this is insufficient for an agent to correctly invoke the tool without deep schema inspection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 52 parameters. The tool description does not add any parameter-specific details beyond the schema, such as how parameters relate to actions, but the schema already handles param semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs (create, add/modify, attach, query) and clearly identifies the spline resource, distinguishing it from other manage_* tools. However, it doesn't enumerate the 21 actionable operations or explicitly differentiate the various capabilities, so it's clear but not fully distinctive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives. The description simply lists operations without context on selecting a specific action, prerequisites, or trade-offs, making it purely descriptive with no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_tasksA
Async task queue for long-running operations. Submit tool calls for background execution, poll status, retrieve results. Use for operations that may take 30+ seconds (landscape sculpting, asset imports, blueprint compilation). Actions: submit (queue a tool call), status (check progress), result (get output), list (show all tasks), cancel (abort task), cleanup (remove old tasks).
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments object to pass to the target tool (for submit action) | |
| action | Yes | submit: queue a tool for async execution. status: check task progress. result: get completed task output. list: show all tasks. cancel: abort a pending/running task. cleanup: remove old completed tasks. | |
| task_id | No | Task ID to query (for status, result, cancel actions) | |
| tool_name | No | Target tool name to execute (for submit action, e.g. build_environment, manage_asset) | |
| status_filter | No | Filter tasks by status (for list action) | |
| target_action | No | Action to pass to the target tool (for submit action, e.g. sculpt_landscape, import) | |
| max_age_seconds | No | Max age in seconds for cleanup (default 300). Tasks older than this are removed (for cleanup action). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses core asynchronous behaviors: background execution, polling, result retrieval, cancellation, and cleanup. However, it omits details about the submit response (e.g., it returns a task_id) and error handling, which are relevant for a queue tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact—two sentences plus a concise action list—and front-loads the core purpose. Every sentence contributes meaning, and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the overall workflow but misses the critical link that submitting a task returns a task_id for use with status/result/cancel. The schema mentions task_id for queries but not its origin in the submit response. Given the tool's multi-action complexity, this gap leaves a user uncertain about how to chain actions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all 7 parameters, so the baseline is 3. The description repeats the action names but adds only marginal context (e.g., 'submit: queue a tool call') without providing new parameter-level semantics beyond the schema's own examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as an async task queue for long-running operations, with a specific list of actions (submit, status, result, list, cancel, cleanup). It distinguishes itself from sibling manage_* tools by focusing on task management rather than specific asset types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use for operations that may take 30+ seconds (landscape sculpting, asset imports, blueprint compilation).' It does not explicitly name alternative tools or when not to use, but the timing guidance gives clear context for choosing this tool over synchronous execution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_testsAIdempotent
Run and manage UE Automation Tests. Actions: list_tests (discover available tests), run_test (execute a specific test by name), run_all_tests (execute all automation tests), run_tests_by_filter (run tests matching a filter pattern), get_test_results (get the latest test report).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The test action to execute | |
| filter | No | [list_tests, run_tests_by_filter] Filter pattern to match test names | |
| test_name | No | [run_test] Full test name (e.g., Project.Gameplay.Character.Movement) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, covering basic safety. The description adds minimal behavioral context beyond that, such as 'get the latest test report' implying results are stored. It does not disclose potential side effects (e.g., resource consumption, need for a running editor), but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the purpose and then lists actions with brief parenthetical explanations. Every element earns its place; no wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has moderate complexity with five actions, and the description covers all of them with short glosses. It lacks an output schema, but the description does not need to explain return formats. It could mention prerequisites (e.g., tests must be compiled) or result handling, but given the schema and annotations, the description is reasonably complete for selecting and invoking actions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers parameter names and some descriptions (100% coverage), but the action parameter's schema description ('The test action to execute') is generic. The tool description adds value by explaining each action's purpose (e.g., 'discover available tests' for list_tests), enriching the enum semantics. It does not add much for filter and test_name, but the schema descriptions for those are already clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run and manage UE Automation Tests.' It uses a specific verb ('run and manage') and resource ('UE Automation Tests'), and enumerates distinct actions (list_tests, run_test, etc.) that differentiate it from sibling tools like manage_asset or manage_blueprint, which target other domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by listing actions and their brief explanations, implying when each action is appropriate (e.g., 'discover available tests' for list_tests). However, it does not explicitly name alternatives or state when not to use the tool, but the sibling tools are sufficiently distinct that no explicit exclusion is necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_textureC
Create procedural textures, process images, bake normal/AO maps, and set compression settings.
| Name | Required | Description | Default |
|---|---|---|---|
| hdr | No | Create HDR texture (16-bit float). | |
| bias | No | AO bias to prevent self-occlusion. | |
| name | No | Name identifier. | |
| path | No | Directory path for asset creation. | |
| save | No | Save the asset(s) after the operation. | |
| seed | No | Random seed for procedural generation. | |
| angle | No | Angle in degrees. | |
| flipY | No | Flip green channel for DirectX/OpenGL compatibility. | |
| gamma | No | Gamma correction value. | |
| scale | No | Noise scale/frequency. | |
| width | No | Width value. | |
| action | Yes | Texture action to perform | |
| amount | No | Effect amount (0-1 for desaturate). | |
| height | No | Height value. | |
| method | No | Desaturation method. | |
| offset | No | Brick offset ratio (0-1). | |
| radius | No | Radius value. | |
| tilesX | No | Number of pattern tiles horizontally. | |
| tilesY | No | Number of pattern tiles vertically. | |
| centerX | No | Center X position (0-1) for radial gradient. | |
| centerY | No | Center Y position (0-1) for radial gradient. | |
| channel | No | Target channel. | |
| lodBias | No | LOD bias (-2 to 4, lower = higher quality). | |
| octaves | No | Number of noise octaves for FBM. | |
| opacity | No | Blend opacity (0-1). | |
| samples | No | Number of AO samples. | |
| blurType | No | Type of blur. | |
| endColor | No | End color {r, g, b, a}. | |
| meshPath | No | Mesh asset path. | |
| newWidth | No | New width for resize operation. | |
| seamless | No | Generate seamless/tileable texture. | |
| strength | No | Strength or weight. | |
| tileSize | No | Virtual texture tile size (32, 64, 128, 256, 512, 1024). | |
| algorithm | No | Normal calculation algorithm. | |
| assetPath | No | Asset path (e.g., /Game/Path/Asset). | |
| blendMode | No | Blend mode for combining textures. | |
| lineWidth | No | Line width for grid/stripes (0-1). | |
| newHeight | No | New height for resize operation. | |
| noiseType | No | Type of noise to generate. | |
| uvChannel | No | UV channel to use for baking. | |
| brickRatio | No | Width/height ratio for brick pattern. | |
| colorStops | No | Array of {position, color} for multi-color gradients. | |
| lacunarity | No | Frequency multiplier per octave. | |
| outputPath | No | Output file or directory path. | |
| redChannel | No | Source texture for red channel. | |
| startColor | No | Start color {r, g, b, a}. | |
| baseTexture | No | Base texture path for combining. | |
| blueChannel | No | Source texture for blue channel. | |
| curvePoints | No | Array of {x, y} curve control points. | |
| invertAlpha | No | Whether to invert alpha channel. | |
| maskTexture | No | Optional mask texture for blending. | |
| neverStream | No | Disable texture streaming. | |
| patternType | No | Type of pattern. | |
| persistence | No | Amplitude falloff per octave. | |
| rayDistance | No | Maximum ray distance for AO. | |
| sharpenType | No | Type of sharpening. | |
| alphaChannel | No | Source texture for alpha channel. | |
| blendTexture | No | Blend texture path for combining. | |
| filterMethod | No | Resize filter method. | |
| gradientType | No | Type of gradient. | |
| greenChannel | No | Source texture for green channel. | |
| primaryColor | No | Primary pattern color {r, g, b, a}. | |
| textureGroup | No | Texture group (TEXTUREGROUP_World, TEXTUREGROUP_Character, TEXTUREGROUP_UI, etc.). | |
| sourceTexture | No | Source height map texture path. | |
| preserveAspect | No | Preserve aspect ratio when resizing. | |
| secondaryColor | No | Secondary pattern color {r, g, b, a}. | |
| tileBorderSize | No | Virtual texture tile border size. | |
| inputBlackPoint | No | Input black point (0-1). | |
| inputWhitePoint | No | Input white point (0-1). | |
| outputBlackPoint | No | Output black point (0-1). | |
| outputWhitePoint | No | Output white point (0-1). | |
| redSourceChannel | No | Which channel to use from red source. | |
| blueSourceChannel | No | Which channel to use from blue source. | |
| outputAsGrayscale | No | Output extracted channel as grayscale. | |
| streamingPriority | No | Streaming priority (-1 to 1, lower = higher priority). | |
| alphaSourceChannel | No | Which channel to use from alpha source. | |
| greenSourceChannel | No | Which channel to use from green source. | |
| compressionSettings | No | Texture compression setting. | |
| virtualTextureStreaming | No | Enable virtual texture streaming. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no useful behavioral signals (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description mentions mutating actions like 'create', 'bake', and 'set' but does not disclose potential side effects such as overwriting assets, required permissions, or whether operations are reversible. It does not contradict the annotations, but it also adds no behavioral context beyond a generic action summary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that succinctly captures the main categories. It is concise and free of fluff. However, given the tool's complexity, the brevity verges on under-specification, though it still earns credit for efficient structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a highly complex tool (79 parameters, 21 actions, no output schema). The description barely scratches the surface, providing no information about action-specific parameter requirements, return values, or usage patterns. The tool's mechanics (e.g., that a required 'action' dispatches to different operations) are not even hinted at in the description, making it inadequate for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all 79 parameters. The description adds a high-level category summary but does not clarify how parameters relate to specific actions or which parameters are relevant for which sub-operation. Since the schema carries the full parameter burden, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's main capabilities with specific verbs: 'Create procedural textures, process images, bake normal/AO maps, and set compression settings.' This distinguishes it from sibling tools like manage_material_authoring or manage_asset. However, it omits some significant functionality exposed by the action enum (e.g., channel packing, texture groups, streaming), making it slightly incomplete for the full scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, nor does it explain that the 'action' parameter determines which sub-operation to invoke. For a tool with 21 distinct actions and 79 parameters, the lack of usage context (e.g., 'use create_noise_texture for procedural generation') is a serious gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_toolsAIdempotent
Dynamic MCP tool management. Enable/disable tools and categories at runtime. Actions: list_tools, list_categories, enable_tools, disable_tools, enable_category, disable_category, get_status, reset.
| Name | Required | Description | Default |
|---|---|---|---|
| tools | No | Tool names to enable/disable | |
| action | Yes | list_tools: show all tools with status. list_categories: show categories. enable/disable_tools: toggle specific tools. enable/disable_category: toggle category. get_status: current state. reset: restore defaults. | |
| category | No | Category name to enable/disable (core, world, authoring, gameplay, utility) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent, non-destructive, and non-read-only behavior. The description adds that operations happen 'at runtime' and lists actions, but it does not disclose potential side effects such as persistence, impact on active tool calls, or what 'reset' fully restores.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the tool's purpose, and the action list is an efficient overview. No filler or redundant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers all parameters and provides action-level descriptions, but the description omits important management semantics such as conditional requirements (e.g., category needed for category actions) and consequences of reset or disabling. Given the tool's mutation capabilities, this leaves notable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter described including detailed enum values for action. The description's action list adds no information beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific purpose: dynamic management of MCP tools and categories with enable/disable actions. It clearly differentiates from sibling manage_* tools by identifying its resource as the MCP tools themselves rather than game assets or systems.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this tool for runtime enable/disable of tools and categories. It does not explicitly mention alternatives or exclusions, but the resource and action list make the intended usage apparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_volumesCDestructive
Create trigger volumes, blocking volumes, physics volumes, audio volumes, and navigation bounds.
| Name | Required | Description | Default |
|---|---|---|---|
| save | No | Save the asset(s) after the operation. | |
| action | Yes | Volume action to perform | |
| extent | No | Extent (half-size) of the volume in each axis. | |
| filter | No | General search filter. | |
| bEnabled | No | Whether the audio volume is enabled. | |
| bUnbound | No | Whether post process volume affects entire world. | |
| fadeTime | No | Fade time in seconds. | |
| location | No | World location for the volume. | |
| priority | No | Priority value. | |
| rotation | No | Rotation of the volume. | |
| actorPath | No | Path to actor. | |
| areaClass | No | Navigation area class path. | |
| boxExtent | No | Extent for box trigger volumes. | |
| damageType | No | Damage type class path for pain volumes. | |
| properties | No | Additional volume-specific properties as key-value pairs. | |
| volumeName | No | Name of the volume. | |
| volumePath | No | Path to volume. | |
| volumeType | No | Type filter for get_volumes_info (e.g., "Trigger", "Physics"). | |
| blendRadius | No | Blend radius for post process volume. | |
| blendWeight | No | Blend weight (0.0-1.0) for post process. | |
| bPainCausing | No | Whether the volume causes pain/damage. | |
| bWaterVolume | No | Whether this is a water volume. | |
| damagePerSec | No | Damage per second for pain volumes. | |
| reverbEffect | No | Reverb effect asset path. | |
| reverbVolume | No | Volume level for reverb (0.0-1.0). | |
| sphereRadius | No | Radius for sphere trigger volumes. | |
| capsuleRadius | No | Radius for capsule trigger volumes. | |
| cullDistances | No | Array of size/distance pairs for cull distance volumes. | |
| fluidFriction | No | Fluid friction for physics volumes. | |
| bDynamicModifier | No | Whether nav modifier updates dynamically. | |
| terminalVelocity | No | Terminal velocity in the volume. | |
| capsuleHalfHeight | No | Half-height for capsule trigger volumes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavior beyond what annotations already signal; it omits destructive actions like remove_volume and set_volume_properties, despite destructiveHint=true. There is no mention of side effects, permissions, or world modifications. It adds no behavioral context, so a 2 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise single sentence with no fluff, front-loading the action 'Create' and enumerating volume types. However, the conciseness comes at the cost of omitting the action enum and important scope, so it isn't a model of effective brevity; a 4 balances its tightness with incompleteness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 32 parameters, a 28-value action enum, and no output schema, a one-sentence description is severely under-specified. It doesn't explain the different action families (create/add/set/remove/get), any workflow or prerequisites, or the nature of 'navigation bounds'. The description is inadequate for the tool's complexity, hence a 2.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 32 parameters have descriptions in the schema, so the baseline is 3. The tool description contributes no parameter-level meaning—it doesn't mention how 'extent', 'location', or 'volumeType' relate to the actions. Since the schema carries the parameter semantics fully, a 3 is fair.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (volumes) and lists five concrete volume types (trigger, blocking, physics, audio, navigation bounds) with the verb 'Create', which distinguishes it from sibling manage_* tools. However, the description emphasizes only create while the schema's action enum includes add, set, remove, and get actions, so it underrepresents the tool's full purpose. This prevents a 5 and results in a 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage context, prerequisites, or alternative tool guidance is provided; the description is a single sentence listing volume types. Sibling tools like manage_navigation could plausibly handle navigation bounds, but no differentiation is made. This earns a 2 because there is essentially no when-to-use/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.
manage_widget_authoringB
Create UMG widgets: buttons, text, images, sliders. Configure layouts, bindings, animations. Build HUDs and menus.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Top padding. | |
| font | No | Font asset path. | |
| left | No | Left padding. | |
| name | No | Name identifier. | |
| text | No | Text content. | |
| time | No | Keyframe time. | |
| angle | No | Angle in degrees. | |
| brush | No | Brush asset path. | |
| color | No | Widget color. | |
| delta | No | Spinbox increment. | |
| pivot | No | Rotation/scale pivot. | |
| right | No | Right padding. | |
| scale | No | Render scale. | |
| shear | No | Render shear. | |
| sizeX | No | Width. | |
| sizeY | No | Height. | |
| style | No | Style preset name. | |
| value | No | Slider/spinbox value. | |
| action | Yes | The widget authoring action to perform. | |
| bottom | No | Bottom padding. | |
| folder | No | Path to a directory. | |
| length | No | Animation length in seconds. | |
| zOrder | No | Z-order for canvas slot. | |
| opacity | No | Widget opacity (0-1). | |
| options | No | Combo box options. | |
| padding | No | Uniform padding. | |
| percent | No | Progress bar percentage (0-1). | |
| stretch | No | Scale box stretch mode. | |
| ammoIcon | No | Ammo icon texture. | |
| autoWrap | No | Enable text auto-wrap. | |
| barColor | No | Bar color. | |
| barStyle | No | Health bar style. | |
| clipping | No | Widget clipping mode. | |
| elements | No | HUD elements to include. | |
| fadeTime | No | Fade time in seconds. | |
| fontSize | No | Font size. | |
| gridSize | No | Inventory grid size. | |
| hintText | No | Placeholder hint text. | |
| maxValue | No | Maximum value. | |
| minValue | No | Minimum value. | |
| playMode | No | Animation play mode. | |
| rowCount | No | Number of rows. | |
| slotName | No | Name of the slot. | |
| slotSize | No | Inventory slot size. | |
| stepSize | No | Value step size. | |
| alignment | No | Widget alignment (0-1). | |
| ammoStyle | No | Ammo counter style. | |
| anchorMax | No | Maximum anchor point (0-1). | |
| anchorMin | No | Minimum anchor point (0-1). | |
| brushSize | No | Brush/image size. | |
| inputType | No | Text input type. | |
| isChecked | No | Checkbox checked state. | |
| isEnabled | No | Widget enabled state. | |
| isMarquee | No | Progress bar marquee mode. | |
| loopCount | No | Number of loops (-1 for infinite). | |
| positionX | No | X position. | |
| positionY | No | Y position. | |
| showIcons | No | Show icons in radial menu. | |
| titleText | No | Menu title text. | |
| trackType | No | Animation track type. | |
| wrapWidth | No | Wrap width for wrap box. | |
| alignmentX | No | Horizontal alignment (0-1). | |
| alignmentY | No | Vertical alignment (0-1). | |
| brushColor | No | Border brush color. | |
| isPassword | No | Password masking. | |
| parentSlot | No | Parent slot to add widget to. | |
| showLabels | No | Show labels in radial menu. | |
| visibility | No | Widget visibility state. | |
| widgetPath | No | Widget blueprint path. | |
| barFillType | No | Progress bar fill direction. | |
| bindingType | No | Binding type. | |
| brushTiling | No | Image tiling mode. | |
| columnCount | No | Number of columns. | |
| customWidth | No | Custom preview width. | |
| innerRadius | No | Inner radius of radial menu. | |
| minimapSize | No | Minimap size. | |
| orientation | No | Widget orientation. | |
| outerRadius | No | Outer radius of radial menu. | |
| parentClass | No | Path or name of the parent class. | |
| previewSize | No | Preview resolution preset. | |
| showDegrees | No | Show compass degrees. | |
| showDetails | No | Show item details panel. | |
| showKeyIcon | No | Show key icon in prompt. | |
| showNumbers | No | Show numeric values. | |
| showReserve | No | Show reserve ammo. | |
| slotPadding | No | Padding between slots. | |
| texturePath | No | Texture asset path. | |
| translation | No | Render translation. | |
| choiceLayout | No | Dialog choice layout. | |
| customHeight | No | Custom preview height. | |
| functionName | No | Name of the function. | |
| keyIconStyle | No | Key icon style. | |
| minimapShape | No | Minimap shape. | |
| promptFormat | No | Interaction prompt format. | |
| propertyName | No | Name of the property. | |
| segmentCount | No | Number of radial segments. | |
| settingsType | No | Settings menu type. | |
| showPortrait | No | Show speaker portrait. | |
| showProgress | No | Show objective progress. | |
| animationName | No | Animation name. | |
| bindingSource | No | Variable or function name to bind to. | |
| crosshairSize | No | Crosshair size. | |
| interpolation | No | Keyframe interpolation. | |
| justification | No | Text justification. | |
| selectionMode | No | Selection mode for list/tree. | |
| showCardinals | No | Show cardinal directions. | |
| showEquipment | No | Show equipment panel. | |
| sizeToContent | No | Size to content. | |
| widthOverride | No | Width override for size box. | |
| animateUpdates | No | Animate objective updates. | |
| crosshairStyle | No | Crosshair style. | |
| heightOverride | No | Height override for size box. | |
| includeTipText | No | Include tip text. | |
| indicatorStyle | No | Damage indicator style. | |
| selectedOption | No | Selected combo box option. | |
| showObjectives | No | Show objectives on minimap. | |
| backgroundImage | No | Background image path. | |
| colorAndOpacity | No | Color and opacity (0-1 values). | |
| minDesiredWidth | No | Minimum desired width. | |
| showSpeakerName | No | Show speaker name. | |
| entryWidgetClass | No | List/tree view entry widget class. | |
| innerSlotPadding | No | Inner slot padding. | |
| minDesiredHeight | No | Minimum desired height. | |
| rotateWithPlayer | No | Rotate minimap with player. | |
| spreadMultiplier | No | Crosshair spread multiplier. | |
| stretchDirection | No | Scale box stretch direction. | |
| explicitWrapWidth | No | Use explicit wrap width. | |
| includePlayButton | No | Include play button in menu. | |
| includeQuitButton | No | Include quit button. | |
| onHoveredFunction | No | Function to call on hover. | |
| verticalAlignment | No | Vertical alignment. | |
| includeApplyButton | No | Include apply button. | |
| includeProgressBar | No | Include progress bar. | |
| includeResetButton | No | Include reset button. | |
| userSpecifiedScale | No | User specified scale value. | |
| alwaysShowScrollbar | No | Always show scrollbar. | |
| fillColorAndOpacity | No | Fill color for progress bar. | |
| horizontalAlignment | No | Horizontal alignment. | |
| includeResumeButton | No | Include resume button. | |
| minDesiredSlotWidth | No | Minimum slot width. | |
| onUnhoveredFunction | No | Function to call on unhover. | |
| scrollBarVisibility | No | Scroll bar visibility. | |
| maxVisibleObjectives | No | Maximum visible objectives. | |
| minDesiredSlotHeight | No | Minimum slot height. | |
| includeSettingsButton | No | Include settings button. | |
| includeBackgroundImage | No | Include background image. | |
| includeQuitToMenuButton | No | Include quit to menu button. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, destructiveHint=false, idempotentHint=false, but the description adds no behavioral details such as side effects on widget blueprints or consequences of actions. It merely restates the purpose without context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the primary purpose, using two sentences. However, it is too terse for the tool's complexity, omitting the critical action parameter and the breadth of operations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 147-parameter schema, many actions, and no output schema, the description is severely under-specified. It does not explain the action-driven nature of the tool or provide any operational context that the schema alone cannot convey.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 147 parameters have schema descriptions, giving high coverage. The description groups some parameters by concept (layouts, bindings, animations) but does not add meaning beyond the schema, such as what parameters are required for each action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs (Create, Configure, Build) and identifies UMG widgets as the resource, listing common widget types. However, it does not distinguish this tool from siblings like manage_blueprint or manage_asset, and it omits the action parameter that drives the tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for widget authoring tasks but provides no explicit guidance on when to prefer this over sibling tools like manage_asset or manage_blueprint. No exclusions or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
observeB
Runtime observability and playtest feedback. Start PIE playtests, capture snapshots at intervals, query logs, correlate events, and generate structured reports. Actions: query_logs, get_log_summary, start_playtest, capture_snapshot, stop_playtest, get_playtest_report, run_scenario, get_runtime_state.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of log entries to return (default: 50) | |
| label | No | Label for the playtest session or scenario | |
| since | No | ISO timestamp — only return logs after this time | |
| action | Yes | run_scenario automates: start PIE → capture snapshots at intervals → stop → report. query_logs reads from disk log and internal buffer. | |
| status | No | Final status when stopping playtest | |
| category | No | Log category filter (partial match) | |
| duration | No | Scenario duration in seconds (default: 10) | |
| interval | No | Snapshot capture interval in seconds (default: 3) | |
| severity | No | Minimum severity filter for logs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the burden. It discloses mutating actions like 'Start PIE playtests' and 'stop_playtest', but does not mention side effects, reversibility, or state changes beyond starting/stopping. The description gives some behavioral context but lacks details on consequences 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose. The explicit action list is somewhat redundant with the schema's enum but is concise and gives a quick overview of capabilities without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is a high-level overview but lacks workflow guidance—for example, that start_playtest should precede capture_snapshot or that run_scenario automates the full sequence. With no output schema, return values are not described, leaving some context incomplete, though parameter-level details are well-covered in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 9 parameters have descriptions in the input schema (100% coverage), so the description doesn't need to explain individual params. The description only repeats the action enum names, which is already in the schema, adding no extra semantic value beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Runtime observability and playtest feedback' and enumerates concrete actions like query_logs, start_playtest, and capture_snapshot, which gives a specific sense of the tool's scope. It focuses on PIE playtests, distinguishing it somewhat from broader observability tools, though it doesn't explicitly differentiate from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The action list implies when to use the tool (e.g., start_playtest for playtesting sessions), but there is no explicit guidance about when to prefer this tool over siblings like 'inspect' or 'manage_performance'. It provides a catalog of actions without preconditions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_controlA
Source control integration. Git-backed by default, with a provider-agnostic interface for future Perforce support. Actions: status, checkpoint (commit), revert, changed_since, lock, unlock, change_summary.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End ref for change_summary | |
| ref | No | Git ref / commit hash for revert and changed_since | |
| from | No | Start ref for change_summary | |
| path | No | Asset path for lock/unlock | |
| paths | No | Specific paths to commit (default: all changes) | |
| action | Yes | status: branch/dirty state. checkpoint: commit. revert: undo to ref. changed_since: files changed since ref. lock/unlock: asset locking. change_summary: LLM-readable diff. | |
| message | No | Commit message for checkpoint action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context by noting it is Git-backed and provider-agnostic, which is helpful beyond the annotations. However, it does not disclose potential side effects of actions like revert (though the destructiveHint annotation is false), nor does it explain operational details like locking semantics. The annotations already cover the read/write nature, so this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the tool's purpose, and lists actions in a compact, scannable manner. Every sentence earns its place without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex with 7 parameters and 7 distinct actions, but the description only provides a high-level summary. While the schema enriches each parameter and action, the description does not clarify how actions interrelate, prerequisites, or return values (no output schema exists). It is adequate but not complete for an agent to fully understand the tool's capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents all parameters in detail (e.g., action enum descriptions, ref for revert/changed_since, paths for commits). The tool description adds no additional parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a source control integration and lists the specific actions it supports (status, checkpoint, revert, etc.), which makes its purpose concrete. However, it does not explicitly distinguish itself from the sibling 'checkpoint' tool, which could cause confusion for the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for source control operations by listing the available actions, but it does not provide explicit guidance on when to use this tool versus alternatives like the 'checkpoint' sibling. No exclusions or preconditions are mentioned, such as requiring a git repository.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_controlCDestructive
Run profiling, set quality/CVars, execute console commands, run UBT, manage widgets, and execute scripts (Python, console batch, editor utility).
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| level | No | ||
| value | No | ||
| action | Yes | Action | |
| filter | No | ||
| target | No | ||
| command | No | ||
| dry_run | No | If true, validate the script without executing it (for execute_script action). | |
| enabled | No | Whether the item/feature is enabled. | |
| section | No | ||
| category | No | ||
| channels | No | ||
| platform | No | ||
| arguments | No | ||
| childClass | No | ||
| configName | No | ||
| parentName | No | ||
| resolution | No | Resolution setting (e.g., 1024x1024). | |
| widgetPath | No | Widget blueprint path. | |
| profileType | No | ||
| script_name | No | Optional friendly name for the script (for logging/history). | |
| script_type | No | Type of script to execute (for execute_script action). python: Execute Python script via editor Python plugin. console_batch: Execute multiple console commands separated by newlines. editor_utility: Run an Editor Utility Blueprint/Widget by asset path. | |
| configuration | No | ||
| script_content | No | The script code to execute, or asset path for editor_utility type (for execute_script action). | |
| timeout_seconds | No | Execution timeout in seconds (default: 30, max: 300). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior (destructiveHint=true, readOnlyHint=false), but the description adds no further behavioral context. It does not disclose potential side effects (e.g., executing arbitrary scripts, changing project settings, affecting the editor state) or any safety considerations. It merely restates action categories.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently enumerates six function areas. It is concise and front-loaded with the main actions, avoiding unnecessary detail. However, it is a simple list rather than structured guidance, so it gets a 4 rather than 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 25 parameters, multiple action types, and no output schema, this description is far from complete. It does not clarify how to construct a valid request, which parameters apply to which actions, or what to expect in response. The broad list of capabilities is insufficient for correct invocation, especially for niche actions like 'spawn_category' or 'lumen_update_scene'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schemas coverage is low (36%), so the description must compensate. It only hints at script types (Python, console batch, editor utility) and CVars, but does not explain key parameters like 'key', 'level', 'value', 'filter', or how they relate to specific actions. The description adds minimal semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly lists a range of actions (profiling, quality/CVars, console commands, UBT, widgets, scripts), which clearly indicates what the tool can do. However, it does not differentiate from sibling tools like manage_performance or manage_widget_authoring, which may overlap, so it is not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or fallback tools. The description simply lists capabilities without context on selection, so it offers no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validateBRead-onlyIdempotent
Assertion and validation tools. Run structured checks that return pass/fail with diagnostics, affected assets, and suggested next actions. Actions: assert_blueprint_compiles, assert_map_clean, assert_no_missing_references, assert_naming_conventions, assert_performance_budget, run_validation_suite, get_validation_report, set_acceptance_criteria, get_acceptance_criteria.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Asset path to scan (default: /Game) | |
| genre | No | Game genre (e.g., top-down-shooter, survival, platformer) | |
| action | Yes | Assertion to run. run_validation_suite runs all assertions. set_acceptance_criteria defines the project design contract (genre, perf budget, naming rules). | |
| camera | No | Camera style (e.g., orthographic-top-down, third-person) | |
| replace | No | If true, replace all acceptance criteria instead of merging | |
| platforms | No | Target platforms (Win64, Linux, Mac, etc.) | |
| targetFps | No | Target FPS for performance budget (default: 60) | |
| constraints | No | Hard constraints (e.g., "No marketplace content") | |
| maxMemoryMb | No | Max memory budget in MB | |
| blueprintPath | No | Blueprint path for assert_blueprint_compiles | |
| namingConventions | No | { blueprintPrefix, materialPrefix, texturePrefix, ... } | |
| performanceBudget | No | { targetFps, maxMemoryMb, maxDrawCalls, maxTriangleCount } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There is a clear contradiction: the annotations declare readOnlyHint=true, but the description lists 'set_acceptance_criteria' as one of the actions, which semantically is a write operation. The description adds some behavioral detail (return pass/fail with diagnostics) but this is overshadowed by the conflict, making the transparency score minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: the first sentence gives the general purpose, and the second sentence lists all actions compactly. No wasted words, and it is front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 12 parameters and no output schema, so the description's mention of return format (pass/fail with diagnostics, affected assets, suggested next actions) is helpful. However, it fails to address the mutating nature of set_acceptance_criteria, lacks categorization of the actions, and the contradiction with annotations leaves gaps in understanding the tool's full behavioral contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-related semantics beyond what the schema's 'action' property already explains (e.g., run_validation_suite runs all assertions, set_acceptance_criteria defines the design contract). Therefore, the description adds no extra value for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Assertion and validation tools. Run structured checks that return pass/fail with diagnostics, affected assets, and suggested next actions.' It also enumerates distinct actions (assert_*, get_*, set_*), which differentiates it from sibling tools like inspect or observe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (run structured checks for validation) and lists action types, but it does not explicitly state when to use this tool versus alternatives such as 'inspect' or 'observe', nor does it mention any exclusions or prerequisites. No direct guidance is provided for choosing among the various assert actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflowB
Composite workflow tool that chains multiple operations into high-level workflows. Actions: level_performance_audit (comprehensive level analysis with scene stats, actor summary, perf capture, lighting status, and recommendations), blueprint_health_check (analyze a blueprint for compilation issues, graph complexity, and general health), scene_populate (fill a bounding box with randomized static mesh actors), quick_test (smoke test the current level: info, actors, PIE, viewport capture).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | [scene_populate] Number of actors to place (default: 10, max: 500). | |
| action | Yes | The workflow to execute. level_performance_audit: comprehensive level audit. blueprint_health_check: inspect and compile a blueprint. scene_populate: fill an area with actors. quick_test: smoke test the current level. | |
| extent | No | [scene_populate] Half-extents [x, y, z] of the bounding box. | |
| origin | No | [scene_populate] Center point [x, y, z] of the area to populate. | |
| asset_paths | No | [scene_populate] Array of static mesh asset paths to use (cycled through). | |
| blueprint_name | No | [blueprint_health_check] Name of the blueprint to analyze. | |
| random_rotation | No | [scene_populate] Apply random Y-axis rotation to placed actors (default: true). | |
| random_scale_range | No | [scene_populate] Uniform scale range [min, max] for random scaling (default: [0.8, 1.2]). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, leaving the description to carry the burden. It partially discloses behavior by naming actions (e.g., scene_populate creates actors, quick_test runs a smoke test) and listing outputs. However, it omits side effects, reversibility, permissions, or transactional behavior for a tool that can chain multiple operations, leaving destructive implications unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear lead-in and enumerated actions, each earning its place. It is somewhat redundant with the schema's action descriptions but remains compact and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and no annotations, the description gives the core action catalog but lacks guidance on prerequisites, how to construct composite workflows, and expected return formats. It's sufficient for understanding individual actions but incomplete for fully driving the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds little parameter-level meaning beyond what the schema already provides; its action summaries align with the enum but don't explain parameter syntax or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a composite workflow tool that chains operations, and enumerates four distinct actions with concise summaries. It differentiates from sibling tools by emphasizing high-level composition, though it doesn't explicitly contrast with specific siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for high-level chained workflows but provides no explicit when-to-use guidance, exclusions, or preferred alternatives. The phrase 'chains multiple operations' hints at composition, but the agent isn't told when to choose this over sibling tools like manage_level_structure or validate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Multiple tools have overlapping purposes, such as manage_level and manage_level_structure both handling streaming and World Partition, manage_asset editing materials alongside manage_material_authoring, and manage_ai including behavior trees that duplicate manage_behavior_tree. These overlaps create ambiguity and risk misselection.
The majority of tools follow a 'manage_X' pattern, but there are several outliers like 'inspect', 'validate', 'observe', 'workflow', 'checkpoint', and 'source_control' that break the convention. While still readable, the mix of verb_noun and noun-only names is inconsistent.
With 43 tools, the server is well beyond the 25+ threshold that feels heavy. While the broad scope of Unreal Engine justifies many tools, this count is likely to overwhelm agents and suggests the tool surface could be consolidated.
The tool set offers comprehensive coverage of Unreal Engine development, including assets, blueprints, gameplay, AI, animation, audio, UI, networking, testing, validation, and source control. There are minor gaps such as no dedicated tool for physics simulation or save game systems, but overall it is remarkably complete.
Maintenance
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
Control Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Give your AI agents the tools to build, manage, and run automation workflows.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables AI assistants to control Unreal Engine via Remote Control API for game development automation, including asset management, actor control, level editing, animation, physics, visual effects, and cinematics creation through natural language.1295855MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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.2951MIT
- FlicenseAqualityBmaintenanceBridges AI assistants to Unreal Engine 5 editor, enabling direct manipulation of levels, actors, Blueprints, and Animation Blueprints through natural language commands.162
- FlicenseAqualityCmaintenanceBridges Large Language Models with Unreal Engine 5 via the Model Context Protocol, enabling AI to control scenes, inject C++ code, and manage assets through UE5's Web Remote Control interface.20
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Flux-Point-Studios/unreal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server