unreal-mcp
Provides access to the full Unreal Engine Python API through Python remote execution protocol, allowing AI agents to interact with and manipulate Unreal Engine projects without requiring a custom plugin
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-mcplist all assets in the project"
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-mcp
MCP server for Unreal Engine that uses Unreal Python Remote Execution


⚡ Differences
This server does not require installing a new UE plugin as it uses the built-in Python remote execution protocol.
Adding new tools/features is much faster to develop since it does not require any C++ code.
It can support the full Unreal Engine Python API
Related MCP server: Unreal-MCP-Ghost
⚠️ Note
This is not an official Unreal Engine project.
Your AI agents or tools will have full access to your Editor.
Review any changes your Client suggests before you approve them.
📦 Installation
📋 Requirements
🔧 Unreal Engine 5.4+ (verified, may work with earlier versions)
🟢 Node.js with npx
🤖 MCP Client (Claude, Cursor, etc.)
Setting up your Editor:
Open your Unreal Engine project
Go to
Edit->PluginsSearch for "Python Editor Script Plugin" and enable it
Restart the editor if prompted
Go to
Edit->Project SettingsSearch for "Python" and enable the "Enable Remote Execution" option

Set up your Client:
Edit your Claude (or Cursor) config
{
"mcpServers": {
"unreal": {
"command": "npx",
"args": [
"-y",
"@runreal/unreal-mcp"
]
}
}
}🔧 Troubleshooting
If you get an error similar to MCP Unreal: Unexpected token 'C', Connection... it means that the mcp-server was not able to connect to the Unreal Editor.
Make sure that the Python Editor Script Plugin is enabled and that the Remote Execution option is checked in your project settings.
Try also changing your bind address from
127.0.0.1to0.0.0.0but note that this will allow connections from your local network.Restart your Unreal Editor fully.
Fully close/open your client (Claude, Cursor, etc.) to ensure it reconnects to the MCP server. (
File -> Exiton windows).Check your running processes and kill any zombie unreal-mcp Node.js processes.
🛠️ Available Tools
Tool | Description |
| Set the Unreal Engine path |
| Set the Project path |
| Get the current Unreal Engine path |
| Get the current Unreal Project path |
| Execute any python within the Unreal Editor |
| List all Unreal assets |
| Export an Unreal asset to text |
| Get information about an asset, including LOD levels for StaticMesh and SkeletalMesh assets |
| Get references for an asset |
| Run a console command in Unreal |
| Get detailed information about the current project |
| Get detailed information about the current map/level |
| Search for assets by name or path with optional class filter |
| Get all actors in the current world with their properties |
| Validate assets in the project to check for errors |
| Create a new object/actor in the world |
| Update an existing object/actor in the world |
| Delete an object/actor from the world |
| Take a screenshot of the Unreal Editor |
| Move the viewport camera to a specific location and rotation for positioning screenshots |
🤝 Contributing
Please feel free to open issues or pull requests. Contributions are welcome, especially new tools/commands.
License MIT
Available Tools
20 toolseditor_console_commandC
Run a console command in Unreal
Example output: (No output for most commands, executed silently)
Executes the console command without returning output.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that commands execute silently with no output for most commands, which is useful context about the tool's behavior. However, it doesn't disclose critical traits like whether this is a read-only or destructive operation, potential side effects, permission requirements, or error handling. For a tool that runs arbitrary console commands in Unreal, this is a significant gap in safety and operational 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 appropriately concise with three short sentences that each serve a purpose: stating the action, providing output expectations, and reinforcing execution behavior. It's front-loaded with the core purpose. While efficient, the second sentence about example output could be integrated more smoothly rather than as a parenthetical note.
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 complexity of running arbitrary console commands in Unreal Engine, no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It lacks crucial information about safety, side effects, command syntax, error conditions, and what 'executed silently' means operationally. The description doesn't provide enough context for safe or effective use of this potentially powerful/destructive 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 0% description coverage, so the description must compensate. It mentions 'command' as a parameter in the context of running console commands, but provides no semantic details about what constitutes a valid command, format requirements, or examples beyond the generic mention. This leaves the single required parameter largely undocumented, failing to adequately compensate for the schema's lack of descriptions.
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 action ('Run a console command') and the context ('in Unreal'), which is a specific verb+resource combination. It distinguishes this tool from siblings like editor_run_python or editor_create_object by focusing on console commands rather than Python scripts or object manipulation. However, it doesn't explicitly differentiate from all siblings (e.g., it could mention this is for Unreal Engine's console vs. other command execution 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer editor_console_command over editor_run_python for similar tasks, nor does it specify prerequisites or contexts where console commands are appropriate. The example output note hints at usage but doesn't provide explicit when/when-not instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_create_objectB
Create a new object/actor in the world
Example output: {'success': true, 'actor_name': 'StaticMeshActor_1', 'actor_label': 'MyCube', 'class': 'StaticMeshActor', 'location': {'x': 100.0, 'y': 200.0, 'z': 0.0}, 'rotation': {'pitch': 0.0, 'yaw': 45.0, 'roll': 0.0}, 'scale': {'x': 1.0, 'y': 1.0, 'z': 1.0}}
Returns created actor details with final transform values.
| Name | Required | Description | Default |
|---|---|---|---|
| object_class | Yes | Unreal class name (e.g., 'StaticMeshActor', 'DirectionalLight') | |
| object_name | Yes | Name/label for the created object | |
| location | No | World position coordinates | |
| rotation | No | Rotation in degrees | |
| scale | No | Scale multipliers | |
| properties | No | Additional actor properties. For StaticMeshActor: use 'StaticMesh' for mesh path, 'Material' for single material path, or 'Materials' for array of material paths. Example: {"StaticMesh": "/Game/Meshes/Cube", "Material": "/Game/Materials/M_Basic"} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the creation behavior and example output format, which is helpful. However, it lacks critical details like whether this requires specific permissions, if it's destructive to existing world state, error handling, or performance implications (e.g., rate limits). The output example adds some value but doesn't fully compensate for missing behavioral 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 appropriately sized with two sentences: the first states the purpose, and the second describes the return format. The example output is detailed but relevant. However, it could be more front-loaded by integrating the return details into the first sentence for better clarity.
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 (6 parameters with nested objects) and no annotations or output schema, the description is moderately complete. It covers the basic purpose and return format but lacks context on mutations, error cases, or integration with sibling tools. For a creation tool in a world editor, more guidance on typical workflows and limitations would improve completeness.
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 schema already documents all 6 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain parameter interactions, default behaviors, or usage examples for the parameters themselves. This meets the baseline of 3 when schema does the heavy lifting.
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 action ('Create a new object/actor in the world') and specifies the resource ('object/actor'), which is more specific than just restating the name. However, it doesn't explicitly differentiate from sibling tools like 'editor_update_object' or 'editor_delete_object', which would require 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?
The description provides no guidance on when to use this tool versus alternatives like 'editor_update_object' for modifying existing objects or 'editor_delete_object' for removal. It mentions no prerequisites, constraints, or typical use cases, leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_delete_objectB
Delete an object/actor from the world
Example output: {'success': true, 'message': 'Successfully deleted actor: MyCube', 'deleted_actor': {'actor_name': 'StaticMeshActor_1', 'actor_label': 'MyCube', 'class': 'StaticMeshActor', 'location': {'x': 100.0, 'y': 200.0, 'z': 0.0}}}
Returns deletion confirmation with details of the deleted actor.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_names | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly indicates this is a destructive operation ('Delete'), which is essential. It also describes the output format with an example, adding valuable context. However, it lacks details on permissions, error conditions, or side effects (e.g., whether deletion is permanent or reversible).
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 appropriately sized with two sentences: one stating the purpose and one detailing the output. The example output is included but could be more concise. It's front-loaded with the core action, though the output details might be better summarized rather than fully quoted.
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 complexity (destructive operation with 1 parameter, no annotations, no output schema), the description is moderately complete. It covers the basic action and output format but misses key details like parameter semantics, error handling, and usage context. For a deletion tool, this leaves significant gaps in understanding.
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 0% description coverage, so the description must compensate. It mentions 'actor_names' implicitly in the example output but doesn't explain what this parameter expects (e.g., a single actor name vs. multiple, format requirements). The description adds minimal semantic value beyond what's inferred from the tool name and example.
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 ('Delete') and resource ('an object/actor from the world'), making it immediately understandable. It distinguishes from siblings like 'editor_create_object' and 'editor_update_object' by specifying deletion rather than creation or modification. However, it doesn't explicitly differentiate from potential destructive siblings beyond the obvious verb contrast.
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 doesn't mention prerequisites (e.g., needing an existing actor), exclusions (e.g., what cannot be deleted), or comparisons to other destructive operations among siblings. The agent must infer usage 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.
editor_export_assetC
Export an Unreal asset to text
Example output: Binary data of the exported asset file
Returns the raw binary content of the exported asset.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool exports an asset and returns raw binary content, which implies a read operation, but doesn't disclose critical behaviors: whether it requires specific permissions, if it modifies the asset (likely not, but unclear), rate limits, error handling, or output format details beyond 'binary data'. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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 appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by example output and return details. There's minimal waste, though the second and third sentences are somewhat redundant ('Example output' and 'Returns' convey similar information). Overall, it's efficient but could be slightly tighter.
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 1 parameter with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It explains what the tool does and the return type, but lacks parameter semantics, behavioral context (e.g., permissions, errors), and doesn't leverage sibling context for guidance. For a tool in a complex Unreal editor environment, this leaves too many unknowns for effective 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 0%, and the description doesn't mention the parameter 'asset_path' at all. It adds no meaning beyond the schema, which only defines 'asset_path' as a required string. However, with 1 parameter and no schema descriptions, the baseline is 3 as the description doesn't compensate for the coverage gap but also doesn't mislead; it simply omits parameter details.
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: 'Export an Unreal asset to text' (verb+resource). It distinguishes from siblings like editor_get_asset_info (info retrieval) or editor_list_assets (listing), but doesn't explicitly differentiate from all alternatives (e.g., editor_export_asset vs. editor_search_assets). The purpose is specific and actionable, though not fully sibling-distinguished.
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 doesn't mention prerequisites (e.g., asset must exist), exclusions (e.g., not for binary assets), or compare to siblings like editor_get_asset_info for metadata. Usage is implied only by the purpose statement, with no explicit context or alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_get_asset_infoC
Get information about an asset, including LOD levels for StaticMesh and SkeletalMesh assets
Example output: [{'name': 'SM_Cube', 'is_valid': True, 'is_u_asset': True, 'is_asset_loaded': True, 'class': 'StaticMesh', 'path': '/Game/Meshes/SM_Cube', 'package': 'SM_Cube', 'package_path': '/Game/Meshes/SM_Cube', 'lod_levels': [{'lod_index': 0, 'num_vertices': 24, 'num_triangles': 12}, {'lod_index': 1, 'num_vertices': 16, 'num_triangles': 8}]}]
Returns asset metadata with LOD information for mesh assets.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool returns asset metadata with LOD information for mesh assets, which is helpful, but it doesn't disclose critical behavioral traits such as whether it requires specific permissions, if it's read-only or has side effects, error handling, or performance characteristics. The example output adds some context but doesn't cover behavioral aspects comprehensively.
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 moderately concise but could be improved. The first sentence clearly states the purpose, but the lengthy example output (which is useful) might be better placed elsewhere or summarized. The final sentence reiterates the purpose, adding redundancy. Overall, it's front-loaded with key information but includes some repetitive elements.
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 complexity (a tool with 1 parameter, no annotations, and no output schema), the description is partially complete. It explains what information is returned (asset metadata with LOD details) and provides an example output, which helps understand the return format. However, it lacks details on parameters, error cases, and behavioral context, making it adequate but with clear gaps for effective 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?
The input schema has 1 parameter (asset_path) with 0% description coverage, meaning the schema provides no semantic information. The description does not mention the asset_path parameter at all, failing to explain what it represents (e.g., a file path, asset name, or identifier) or its format. This leaves the parameter's meaning undocumented, which is a significant gap given the low schema coverage.
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: 'Get information about an asset, including LOD levels for StaticMesh and SkeletalMesh assets.' It specifies the verb ('Get information') and resource ('asset'), and distinguishes it from siblings like editor_list_assets (which lists assets) and editor_get_asset_references (which gets references). However, it doesn't explicitly differentiate from editor_get_map_info or editor_get_world_outliner, which are also info-getting tools but for different resources.
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 doesn't mention when to choose editor_get_asset_info over editor_search_assets (which might search for assets) or editor_list_assets (which lists assets), nor does it specify prerequisites or exclusions. The example output implies it's for retrieving detailed metadata, but no explicit usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_get_asset_referencesC
Get references for an asset
Example output: [{'name': '/Game/Materials/M_Character.M_Character', 'class': 'Material'}, {'name': '/Game/Blueprints/BP_Player.BP_Player', 'class': 'Blueprint'}]
Returns list of assets that reference the specified asset.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns a list of referencing assets, which implies a read-only operation, but doesn't cover critical aspects like error handling (e.g., if the asset_path is invalid), performance considerations (e.g., speed for large assets), or output format details beyond the example. The example output adds some context but doesn't fully describe 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 appropriately sized with three sentences: a purpose statement, an example output, and a clarification of the return value. It's front-loaded with the core purpose, and the example is relevant but could be integrated more seamlessly. There's no wasted text, though the structure could be slightly tighter by merging sentences.
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 moderate complexity (1 parameter, no output schema, no annotations), the description is partially complete. It covers the basic purpose and output format via example, but lacks details on parameter usage, error cases, and behavioral traits. For a read-only query tool, this is adequate but has clear gaps, such as not explaining how to interpret the output or handle edge cases.
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 1 parameter with 0% description coverage, so the description must compensate. It mentions 'specified asset' in relation to asset_path, implying the parameter identifies the target asset, but doesn't explain the format (e.g., Unreal Engine path syntax like '/Game/...') or constraints. The description adds minimal meaning beyond the schema, partially compensating for the low coverage but leaving 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 verb 'Get' and resource 'references for an asset', making the purpose specific and understandable. It distinguishes from siblings like editor_get_asset_info or editor_list_assets by focusing on reference relationships rather than asset properties or listings. However, it doesn't explicitly contrast with all siblings, such as editor_search_assets, which might also involve asset relationships.
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 doesn't mention prerequisites, such as needing the asset to exist, or compare it to siblings like editor_get_asset_info for asset details or editor_search_assets for broader queries. The example output implies usage for dependency analysis, but this is not stated explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_get_map_infoA
Get detailed information about the current map/level
Example output: {'map_name': 'TestMap', 'map_path': '/Game/Maps/TestMap', 'total_actors': 45, 'actor_types': {'StaticMeshActor': 20, 'DirectionalLight': 1, 'PlayerStart': 1}, 'lighting': {'has_lightmass_importance_volume': false, 'directional_lights': 1, 'point_lights': 3, 'spot_lights': 0}, 'streaming_levels': 0, 'streaming_level_names': []}
Returns current level information with actor counts and lighting details.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns current level information with actor counts and lighting details, which is useful behavioral context. However, it lacks details on potential side effects, error conditions, or performance characteristics (e.g., if it's read-only or has any limitations). The description does not contradict any 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 well-structured and front-loaded, starting with the core purpose followed by an example output and a summary sentence. Every sentence adds value: the first defines the tool, the example illustrates output format, and the last reinforces key details. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple read operation with no parameters), no annotations, and no output schema, the description is reasonably complete. It explains what information is returned (map name, actor counts, lighting details) and provides an example output. However, it could be more complete by explicitly stating it's a read-only operation or mentioning any dependencies, but the lack of output schema is mitigated by the detailed example.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, focusing instead on the output. This meets the baseline for tools with no parameters, as it avoids unnecessary repetition.
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 ('Get detailed information') and resource ('about the current map/level'), and distinguishes it from siblings like editor_get_asset_info or editor_get_world_outliner by focusing on map-level details such as actor counts and lighting. The example output reinforces this specificity.
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 map information is needed, but does not explicitly state when to use this tool versus alternatives like editor_get_world_outliner (which might list actors) or editor_project_info (which provides project-level details). No exclusions or prerequisites are mentioned, leaving usage context somewhat open-ended.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_get_world_outlinerA
Get all actors in the current world with their properties
Example output: {'world_name': 'TestMap', 'total_actors': 45, 'actors': [{'name': 'StaticMeshActor_0', 'class': 'StaticMeshActor', 'location': {'x': 0.0, 'y': 0.0, 'z': 0.0}, 'rotation': {'pitch': 0.0, 'yaw': 0.0, 'roll': 0.0}, 'scale': {'x': 1.0, 'y': 1.0, 'z': 1.0}, 'is_hidden': false, 'folder_path': '/Meshes', 'components': ['StaticMeshComponent', 'SceneComponent']}]}
Returns complete world outliner with all actors and their transform data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the tool retrieves data (not modifies) and returns comprehensive transform data, but lacks details on permissions needed, rate limits, error conditions, or whether it requires a specific editor state. The example output helps but doesn't cover all behavioral aspects for a read operation in a game editor 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 front-loaded with the core purpose, followed by a helpful example output and a clarifying sentence about completeness. While the example output is detailed, it serves to illustrate return format. Some minor trimming (e.g., combining the last two sentences) could improve conciseness, but overall it's well-structured with minimal waste.
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 0 parameters, no annotations, and no output schema, the description provides adequate context for a read-only tool: it explains what data is returned (actors with properties/transforms) and includes an example. However, it doesn't mention potential limitations (e.g., large worlds causing performance issues) or dependencies (e.g., requires an open world), leaving slight gaps in completeness.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing instead on output semantics. This meets the baseline of 4 for zero-parameter tools, as it efficiently avoids redundant information.
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 specific action ('Get all actors') and resource ('in the current world with their properties'), distinguishing it from siblings like editor_get_map_info (which gets map-level data) or editor_get_asset_info (which focuses on assets rather than world actors). The verb 'Get' combined with 'all actors' and 'complete world outliner' provides precise 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 implies usage when needing actor data from the current world, but doesn't explicitly state when to use this tool versus alternatives like editor_get_map_info for broader map details or editor_search_assets for asset-specific queries. No explicit exclusions or prerequisites are mentioned, leaving usage context somewhat implied rather than clearly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_list_assetsB
List all Unreal assets
Example output: [''/Game/Characters/Hero/BP_Hero'', ''/Game/Maps/TestMap'', ''/Game/Materials/M_Basic'']
Returns a Python list of asset paths.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool lists assets and returns a Python list, but lacks critical behavioral details: it doesn't specify if this is a read-only operation, potential performance impacts for large projects, or any limitations. For a tool with zero annotation coverage, this is inadequate.
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 highly concise and well-structured: it starts with the core purpose, provides a concrete example output, and clarifies the return type. Every sentence adds value without redundancy, making it easy to parse quickly.
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 simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does and the return format, but lacks context on usage guidelines and behavioral transparency, which are important for completeness even in simple cases.
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 tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description adds no parameter information, which is appropriate here. Baseline is 4 for zero parameters, as no compensation is needed.
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 verb 'List' and resource 'all Unreal assets', making the purpose specific and understandable. It distinguishes from siblings like 'editor_search_assets' by implying a comprehensive listing without filtering, though not explicitly named. However, it lacks explicit sibling differentiation, preventing a perfect score.
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 when to choose this over 'editor_search_assets' for filtered results or other asset-related tools, leaving usage context unclear. This is a significant gap in practical utility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_move_cameraB
Move the viewport camera to a specific location and rotation for positioning screenshots
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | Camera world position coordinates | |
| rotation | Yes | Camera rotation in degrees |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool moves the camera for positioning, implying a mutation or view change, but doesn't disclose behavioral traits such as whether this requires specific editor permissions, if it affects other editor states, potential side effects, or how it interacts with other tools. For a mutation tool with zero annotation coverage, this is a significant gap in 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 front-loads the core action ('Move the viewport camera') and purpose ('for positioning screenshots'), with zero wasted words. It's appropriately sized for the tool's complexity, making it easy to scan and understand quickly.
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 moderate complexity (2 parameters with nested objects), no annotations, and no output schema, the description is somewhat incomplete. It covers the basic purpose but lacks details on behavioral aspects, error handling, or integration with sibling tools like 'editor_take_screenshot'. For a mutation tool without annotations, more context would be beneficial to ensure safe and effective 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%, with clear descriptions for 'location' and 'rotation' parameters in the schema. The description adds minimal value beyond the schema, as it mentions 'specific location and rotation' but doesn't provide additional context like coordinate systems, units, or constraints. With high schema coverage, the baseline is 3, and the description doesn't significantly enhance parameter understanding.
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 action ('Move the viewport camera') and the resource ('to a specific location and rotation'), with a specific purpose ('for positioning screenshots'). It distinguishes from siblings like 'editor_take_screenshot' by focusing on camera positioning rather than capturing. However, it doesn't explicitly differentiate from all siblings, such as 'editor_update_object' which might also involve movement.
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 'positioning screenshots', suggesting it should be used before taking screenshots, but it doesn't provide explicit guidance on when to use this tool versus alternatives like 'editor_update_object' for object movement or 'editor_take_screenshot' for capturing. No exclusions or clear alternatives are mentioned, leaving usage context somewhat vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_project_infoA
Get detailed information about the current project
Example output: {'project_name': 'MyGame', 'project_directory': '/Users/dev/MyGame/', 'engine_version': '5.3.0', 'total_assets': 1250, 'asset_locations': {'Game': 800, 'Engine': 450}, 'enhanced_input_enabled': true, 'input_actions': ['/Game/Input/IA_Move'], 'game_modes': ['/Game/Core/GM_Main'], 'characters': ['/Game/Characters/B_Hero'], 'maps': ['/Game/Maps/L_TestMap']}
Returns comprehensive project metadata and asset counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 that the tool returns 'comprehensive project metadata and asset counts' and provides an example output format, which adds useful behavioral context about what information to expect. However, it doesn't mention potential limitations (e.g., performance impact, Unreal Editor state requirements) or error conditions.
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 efficiently structured: a clear purpose statement, a detailed example output, and a summary sentence. Every sentence adds value—the example output is particularly helpful for understanding the return format. It's front-loaded with the core purpose and appropriately sized.
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 0 parameters, no annotations, and no output schema, the description provides good completeness for a read-only metadata tool. The example output effectively compensates for the lack of output schema by illustrating the return structure. However, it could be more complete by mentioning dependencies (e.g., requires an open Unreal project) or edge cases.
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 tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, focusing instead on the output behavior. No additional parameter semantics are needed or provided.
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 'Get detailed information about the current project' with a specific verb ('Get') and resource ('current project'). It distinguishes from siblings like editor_get_asset_info or editor_get_map_info by focusing on comprehensive project-wide metadata rather than specific assets or maps. However, it doesn't explicitly contrast with all siblings (e.g., get_unreal_project_path).
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 comprehensive project metadata is needed, but provides no explicit guidance on when to use this tool versus alternatives like editor_get_asset_info for asset-specific details or get_unreal_project_path for just the path. The context is clear (current project), but no exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_run_pythonB
Execute any python within the Unreal Editor. All python must have import unreal at the top. CHECK THE UNREAL PYTHON DOCUMENTATION BEFORE USING THIS TOOL. NEVER EVER ADD COMMENTS
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the requirement for `import unreal` and the no-comments rule, which adds some context beyond basic execution. However, it fails to disclose critical traits like whether this is read-only or destructive (Python code could modify the editor state), error handling, performance impacts, or authentication needs. For a tool that executes arbitrary code, this is a significant gap.
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 but front-loaded with the core purpose. However, the second sentence about `import unreal` and the third about documentation/comment rules are somewhat redundant or could be integrated more smoothly. The all-caps 'NEVER EVER ADD COMMENTS' is attention-grabbing but disrupts flow. It's concise but not optimally 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 complexity (executing arbitrary Python in Unreal Editor), no annotations, no output schema, and low schema coverage, the description is incomplete. It misses key details: what the tool returns (e.g., output, errors), safety warnings (destructive potential), prerequisites, or examples. The documentation reference helps but doesn't substitute for basic completeness in the description itself.
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 1 parameter with 0% description coverage, so the description must compensate. It implies the 'code' parameter is Python code and specifies the `import unreal` requirement, adding some meaning. However, it doesn't detail the code format, length limits, or expected outputs, leaving the parameter partially documented. This meets the baseline for low schema coverage but doesn't fully compensate.
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 action ('Execute any python') and target environment ('within the Unreal Editor'), which is specific and actionable. It distinguishes from siblings like editor_console_command (console commands) and editor_create_object (specific object creation), though not explicitly. However, it doesn't fully differentiate from potential Python-based siblings (none listed), keeping it at 4 rather than 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 provides implied usage guidelines: it mentions 'All python must have `import unreal` at the top' and references documentation, suggesting when to use it (for Python execution in Unreal). However, it lacks explicit alternatives (e.g., vs. editor_console_command for non-Python tasks) or clear exclusions, leaving some ambiguity. The 'NEVER EVER ADD COMMENTS' is a constraint but not a usage guideline per se.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_search_assetsB
Search for assets by name or path with optional class filter
Example output: {'search_term': 'character', 'asset_class_filter': 'Blueprint', 'total_matches': 3, 'assets': [{'name': 'BP_Character', 'path': '/Game/Characters', 'class': 'Blueprint', 'package_name': 'BP_Character'}, {'name': 'BP_EnemyCharacter', 'path': '/Game/Enemies', 'class': 'Blueprint', 'package_name': 'BP_EnemyCharacter'}]}
Returns search results with asset details, limited to 50 results.
| Name | Required | Description | Default |
|---|---|---|---|
| search_term | Yes | ||
| asset_class | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: the tool returns search results with asset details, includes an example output format, and states a limitation ('limited to 50 results'). However, it doesn't cover other important aspects like performance implications, error handling, or whether it's read-only (though 'search' implies it).
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 appropriately sized and front-loaded: the first sentence clearly states the purpose. The example output and limitation note add value without unnecessary verbosity. However, the example output is detailed and could be simplified or moved to a separate section for better 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?
Given no annotations and no output schema, the description does a fair job: it explains the purpose, parameters, and includes an example output. However, it lacks details on error cases, performance, or integration with sibling tools. For a search tool with 2 parameters and behavioral constraints (50-result limit), more context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter details. The description compensates partially: it explains that 'search_term' is for searching by name or path and 'asset_class' is an optional filter. However, it doesn't specify format requirements (e.g., case sensitivity for 'asset_class') or provide examples of valid values, leaving gaps in understanding.
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: 'Search for assets by name or path with optional class filter.' It specifies the verb ('search'), resource ('assets'), and key parameters. However, it doesn't explicitly differentiate from sibling tools like 'editor_list_assets' or 'editor_get_asset_info,' which could have overlapping functionality.
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 doesn't mention sibling tools like 'editor_list_assets' (which might list all assets without filtering) or 'editor_get_asset_info' (which might retrieve details for a specific asset). There's no context about prerequisites, limitations, or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_take_screenshotA
Take a screenshot of the Unreal Editor
Example output: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...
Returns a base64-encoded PNG image of the current editor view. IF THIS ERRORS OUT MAKE SURE THE UNREAL ENGINE WINDOW IS FOCUSED
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format (base64-encoded PNG) and mentions a specific error condition (window focus requirement), which adds useful context beyond basic functionality. However, it doesn't address other potential behavioral aspects like performance characteristics, memory usage, or what happens if the editor isn't running.
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 appropriately sized with three sentences: one stating the purpose, one showing example output, and one providing error guidance. Each sentence adds value, though the example output could be slightly truncated for better readability. The structure is front-loaded with the core functionality.
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 zero-parameter tool with no annotations and no output schema, the description provides adequate coverage of what the tool does and what it returns. However, it could be more complete by mentioning whether this captures the entire editor window or just the active viewport, and what resolution/quality settings apply.
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 tool has zero parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, focusing instead on output format and error conditions.
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 specific action ('Take a screenshot') and target resource ('of the Unreal Editor'), distinguishing it from sibling tools that perform different operations like creating objects or running commands. The verb+resource combination is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While it mentions a specific error scenario (ensuring the Unreal Engine window is focused), it doesn't explain when this tool is appropriate compared to other screenshot or visualization tools that might exist in the broader context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_update_objectC
Update an existing object/actor in the world
Example output: {'success': true, 'actor_name': 'StaticMeshActor_1', 'actor_label': 'UpdatedCube', 'class': 'StaticMeshActor', 'location': {'x': 150.0, 'y': 200.0, 'z': 50.0}, 'rotation': {'pitch': 0.0, 'yaw': 90.0, 'roll': 0.0}, 'scale': {'x': 2.0, 'y': 2.0, 'z': 2.0}}
Returns updated actor details with new transform values.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_name | Yes | Name or label of the actor to update | |
| location | No | New world position coordinates | |
| rotation | No | New rotation in degrees | |
| scale | No | New scale multipliers | |
| properties | No | Additional actor properties to update. For StaticMeshActor: use 'StaticMesh' for mesh path, 'Material' for single material path, or 'Materials' for array of material paths. Example: {"StaticMesh": "/Game/Meshes/Cube", "Material": "/Game/Materials/M_Basic"} | |
| new_name | No | New name/label for the actor |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions the tool updates objects/actors and shows example output, it doesn't disclose important behavioral traits: whether this requires specific permissions, if updates are reversible, what happens to properties not mentioned, error conditions, or side effects. The description is minimal beyond stating the basic operation.
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 reasonably concise but poorly structured. It front-loads the purpose but then immediately jumps to an example output before explaining what the tool returns. The two sentences could be better organized - first stating purpose, then explaining return values. The example output takes significant space but doesn't add proportional value.
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 mutation tool with 6 parameters (including nested objects), no annotations, and no output schema, the description is inadequate. It should explain more about the update behavior: what fields are optional vs required beyond actor_name, whether partial updates are allowed, what the success/failure responses look like beyond the example, and how this interacts with the world state. The example output helps but doesn't compensate for missing behavioral context.
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 schema already documents all 6 parameters thoroughly. The description adds no parameter semantics beyond what's in the schema - it doesn't explain parameter relationships, constraints, or usage patterns. The baseline of 3 is appropriate when the schema does all the parameter documentation work.
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 verb ('Update') and resource ('an existing object/actor in the world'), making the purpose immediately understandable. It distinguishes from siblings like 'editor_create_object' and 'editor_delete_object' by focusing on modification rather than creation or deletion. However, it doesn't explicitly differentiate from other potential update operations that might exist.
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. While siblings include 'editor_create_object' and 'editor_delete_object', there's no mention of when to choose update over create/delete, nor any prerequisites (like needing an existing actor). The example output shows what happens but doesn't provide usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
editor_validate_assetsB
Validate assets in the project to check for errors
Example output: {'total_validated': 100, 'valid_assets': [{'path': '/Game/Meshes/SM_Cube', 'class': 'StaticMesh', 'size': '1024'}], 'invalid_assets': [{'path': '/Game/Missing/Asset', 'error': 'Asset does not exist'}], 'validation_summary': {'valid_count': 95, 'invalid_count': 5, 'success_rate': 95.0}}
Returns validation results with asset status and error details.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_paths | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool performs validation and returns results with status and error details, which is useful. However, it doesn't cover behavioral traits such as whether it's read-only, destructive, requires specific permissions, or has performance implications (e.g., time-intensive for large projects). The example output adds some context but isn't comprehensive.
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 appropriately sized and front-loaded, starting with the core purpose. The example output and return statement add value without being redundant. However, the example output is detailed and might be slightly verbose, but it earns its place by clarifying the response format.
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 (validation with potential errors), no annotations, no output schema, and low schema coverage, the description is moderately complete. It explains what the tool does and shows an output example, but it lacks details on parameters, behavioral constraints, and usage context, making it adequate but with clear gaps for effective 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?
The input schema has 1 parameter with 0% description coverage, and the description doesn't mention any parameters. It fails to explain 'asset_paths', such as its format, whether it's optional or required, or how to specify multiple paths. This leaves a significant gap in understanding how to invoke the tool effectively.
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: 'Validate assets in the project to check for errors.' It specifies the verb ('validate') and resource ('assets in the project'), making it understandable. However, it doesn't explicitly differentiate from siblings like 'editor_get_asset_info' or 'editor_list_assets', which might also involve asset inspection, so it misses full sibling distinction.
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 doesn't mention prerequisites, context (e.g., after asset creation or before export), or exclusions. With many sibling tools like 'editor_get_asset_info' or 'editor_search_assets', this lack of comparative guidance leaves usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_unreal_engine_pathB
Get the current Unreal Engine path
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Get') but doesn't add any context about what 'current' means (e.g., cached, configured, or default path), potential errors, or return format. This is a significant gap for a tool with zero annotation coverage, as it leaves the agent guessing about 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, clear sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple, parameterless tool and is front-loaded with the essential 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 simplicity (0 parameters, no output schema), the description is minimal but inadequate. It lacks context about what the 'current' path entails, how it's determined, or what the return value looks like (e.g., string path, error handling). With no annotations to fill these gaps, the description should provide more completeness 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?
The tool has 0 parameters, and the schema description coverage is 100%, so there's no need for parameter details in the description. The description correctly implies no inputs are required by not mentioning any, aligning with the schema. A baseline of 4 is appropriate since it doesn't need to compensate for missing parameter info.
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 ('Get') and resource ('current Unreal Engine path'), making it easy to understand what it does. However, it doesn't explicitly distinguish itself from its sibling 'get_unreal_project_path', which is similar in structure but targets a different resource (project vs. engine path).
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 doesn't mention prerequisites, context (e.g., when the path might be needed), or compare it to siblings like 'set_unreal_engine_path' or 'get_unreal_project_path', leaving the agent to infer usage based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_unreal_project_pathB
Get the current Unreal Project path
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves a path but doesn't clarify if this is a read-only operation, what format the path returns (e.g., absolute vs. relative), or any error conditions (e.g., if no project is loaded). This leaves significant gaps for an agent to understand the tool's 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 a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.
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 lack of annotations and output schema, the description is incomplete. It doesn't specify the return value format (e.g., string path), error handling, or dependencies like requiring an active Unreal project. For a tool with no structured behavioral data, more context is needed to ensure reliable agent usage.
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 tool has 0 parameters, and the input schema has 100% description coverage (though it's empty). The description doesn't need to explain parameters, so it meets the baseline for a parameterless tool. No additional parameter information is required or provided.
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 ('Get') and resource ('current Unreal Project path'), making it immediately understandable. However, it doesn't differentiate from its sibling 'get_unreal_engine_path' or other path-related tools, which prevents a perfect score.
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 like 'get_unreal_engine_path' or 'editor_project_info'. It lacks context about prerequisites, such as whether an Unreal project must be open, or any exclusions for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_unreal_engine_pathC
Set the Unreal Engine path
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Set' implies a mutation, but the description doesn't specify whether this changes global settings, requires admin permissions, is persistent, or has side effects (e.g., affecting other tools). It lacks details on error handling, validation, or what happens if the path is invalid. For a mutation tool with zero annotation coverage, this is a significant gap.
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 with no wasted words, making it easy to parse. However, it's overly concise to the point of under-specification, as it omits necessary details for a mutation tool. While structurally sound, it could benefit from additional context without losing 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?
Given the tool's complexity (a mutation with no annotations, 1 undocumented parameter, and no output schema), the description is incomplete. It doesn't explain what the tool returns, how changes propagate, or error conditions. For a configuration-setting tool in a development environment, more context is needed to ensure safe and correct usage.
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 1 parameter ('path') with 0% description coverage, so the schema provides no semantic context. The description adds minimal meaning by implying the parameter is a path for Unreal Engine, but doesn't elaborate on format (e.g., file system path, URI), constraints, or examples. With low schema coverage, the description partially compensates but remains vague, aligning with the baseline for moderate value addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Set the Unreal Engine path' clearly states the verb ('Set') and resource ('Unreal Engine path'), making the purpose understandable. However, it lacks specificity about what this path represents (e.g., installation directory, project engine association) and doesn't distinguish it from its sibling 'set_unreal_project_path', which is a similar configuration 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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an Unreal Engine installation), exclusions, or compare it to sibling tools like 'get_unreal_engine_path' (for retrieval) or 'set_unreal_project_path' (for project-specific paths). Usage is implied but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_unreal_project_pathD
Set the Project path
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Set the Project path', implying a mutation operation, but fails to describe any behavioral traits: it doesn't specify if this changes persistent settings, requires specific permissions, has side effects (e.g., reloading the project), or what happens on success/failure. This leaves critical operational context unknown.
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 extremely concise at three words, with zero wasted text. It's front-loaded with the core action ('Set'), though this brevity comes at the cost of clarity. Every word earns its place by directly relating to the tool's function, but the structure is minimal due to the lack of 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?
Given the complexity of a mutation tool with no annotations, no output schema, and low parameter coverage, the description is severely incomplete. It doesn't explain what 'Project path' means in the Unreal context, how the tool behaves, what it returns, or its impact. This inadequacy could lead to misuse or errors by an AI 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?
The input schema has 1 parameter with 0% description coverage, meaning the schema provides no semantic information about 'path'. The description adds no parameter semantics beyond the tool name—it doesn't explain what 'path' represents (e.g., a file system path, a project directory), its format, or constraints. This fails to compensate for the low schema coverage, leaving the parameter meaning ambiguous.
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 'Set the Project path' is essentially a tautology that restates the tool name 'set_unreal_project_path' with minimal elaboration. It specifies the verb 'Set' and resource 'Project path', but lacks specificity about what this actually does operationally (e.g., configures a workspace setting, updates a file path). It doesn't distinguish from siblings like 'set_unreal_engine_path' beyond the obvious resource difference.
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 doesn't mention prerequisites (e.g., needing an active Unreal project), exclusions, or related tools like 'get_unreal_project_path' for retrieval. Without any context, an agent must infer usage from the name alone, which is insufficient for informed selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, such as editor_create_object for creation and editor_delete_object for deletion, with clear boundaries. However, some tools like editor_get_asset_info and editor_get_asset_references could be slightly overlapping in providing asset metadata, but descriptions help differentiate them.
Tool names follow a consistent snake_case pattern with a clear 'editor_' prefix for most tools, and a 'get_'/'set_' pattern for path-related tools. This uniformity makes the set predictable and easy to navigate, with no mixing of conventions.
With 20 tools, the count is slightly high but reasonable for an Unreal Editor server, covering a broad range of operations from asset management to world editing. It might feel a bit heavy, but each tool appears to serve a specific function in the domain.
The tool set provides comprehensive coverage for Unreal Editor tasks, including CRUD operations for objects (create, update, delete), asset management (list, search, validate), project and map info, and utilities like screenshots and console commands. No obvious gaps are present for the stated purpose.
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
A simple MCP server built with FastMCP and python
Related MCP Servers
- AlicenseBqualityCmaintenanceAn MCP server that gives AI agents broad control over Unreal Engine 5.7, enabling actor/asset/level management, Blueprint and material creation, screenshots, automation, and arbitrary editor Python execution.35MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI clients to control Unreal Engine 5 editor for automated Blueprint authoring, level inspection, actor spawning, and other editor workflows via a local Python MCP server and UE plugin.3AGPL 3.0
- FlicenseNot gradedqualityCmaintenanceWraps Unreal Editor as an MCP server, enabling AI agents to automate editor tasks through Python scripts.11
- AlicenseBqualityAmaintenanceAn MCP server that lets an AI agent drive Unreal Engine 5: create projects, import assets, build levels and Blueprints, configure replication, compile C++, run Play In Editor and package the game.1004MIT
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/runreal/unreal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server