Skip to main content
Glama
Mittenzx

Adastrea-MCP

by Mittenzx

Adastrea-MCP

A Model Context Protocol (MCP) server for managing game project information for Adastrea. This server allows AI agents and tools to store, retrieve, and manage comprehensive details about the Adastrea game development project.

🚀 Vision: Building the world's best Unreal Engine MCP server. See our ROADMAP.md for the strategic plan.

📊 Current Status (v1.0.0): Phases 1, 2.1, 2.2, 2.3, and 3.1 complete! The server includes comprehensive Unreal Engine integration with 30+ tools, 15+ resources, live editor communication, Blueprint interaction, actor management, intelligent code generation, and a complete UE5.6+ knowledge database.

About Adastrea

This MCP server is specifically designed for the Adastrea game project, providing a centralized way for AI agents to understand and work with all aspects of the game's development.

Game Repository: https://github.com/Mittenzx/Adastrea

🔗 Repository Access: This MCP server has full GitHub API access to the Adastrea repository for comprehensive project understanding.

Pre-populated Project Data: The MCP server comes with comprehensive information about the Adastrea project already loaded, including:

  • Complete game description and features (22 major systems)

  • Technical details (33,000+ lines of C++ code)

  • Development timeline and milestones

  • Python automation tools and YAML templates

  • Current project status (Alpha 1.0.0-alpha, Phase 4 in progress)

  • Reality check: Code 85% complete, Content 10% complete

The pre-populated data combined with live repository access ensures AI agents have immediate and up-to-date context about Adastrea without manual configuration.

Related MCP server: unreal-engine-mcp

Features

Core Features

  • Centralized Game Project Information: Store all details about your game project in one place

  • MCP Resources: Access project information through standardized MCP resources

  • MCP Tools: Update and manage project information using built-in tools

  • Flexible Schema: Support for standard fields and custom fields for project-specific needs

  • Team Management: Track team members and their roles

  • Timeline Tracking: Monitor project milestones and progress

  • Technical Documentation: Store technical specifications and architecture details

Phase 1: Foundation Enhancement (✅ Completed)

  • Unreal Project File Parser: Parse .uproject files to extract engine version, modules, and plugins

  • C++ Code Analysis: Detect and catalog UCLASS, USTRUCT, UENUM, and UINTERFACE definitions

  • Blueprint Detection: Identify Blueprint assets and their metadata

  • Asset Management: Scan and categorize project assets (Meshes, Materials, Textures, etc.)

  • Plugin Scanner: Inventory and analyze installed plugins

  • Build Configuration: Detect available build configurations and target platforms

  • Code Intelligence: Search capabilities for classes, functions, and assets

  • Project Validation: Automated checks for common project structure issues

Phase 2.1: Editor Communication Layer (✅ Completed)

  • Adastrea-Director Integration: Seamless connection to Adastrea-Director

    • Director is now a comprehensive UE plugin with autonomous agents (P3 complete)

    • Includes built-in MCP server for AI agent access (84+ tests)

    • UE Python API integration with 25+ tests

    • Performance profiling, bug detection, and code quality monitoring

  • Live Editor State: Real-time access to UE Editor state and current level information

  • Console Command Execution: Run UE console commands remotely via MCP

  • Python Script Execution: Execute Python code in UE Editor's embedded interpreter

  • Live Asset Management: Real-time asset list with fallback to local cache

  • Graceful Degradation: Automatic fallback to local analysis when Director unavailable

Phase 2.2: Blueprint Interaction Tools (✅ Completed)

  • Blueprint Inspection: Deep inspection of Blueprint structure, variables, functions, and graphs

  • Blueprint Node Search: Find specific node types within Blueprints

  • Blueprint Modification: Add variables and functions, modify properties (requires Director)

  • Component Analysis: Inspect Blueprint component hierarchies

  • Graph Analysis: Analyze Blueprint event graphs and function graphs

Phase 2.3: Actor & Component System (✅ Completed)

  • Level Actor Registry: List and search actors in the current level

  • Actor Spawning: Create new actors programmatically with full configuration

  • Actor Modification: Modify actor properties, transforms, and tags

  • Component Inspection: Analyze actor component hierarchies and relationships

  • Actor Templates: Save and reuse common actor configurations

  • Template Management: Create, list, instantiate, and manage actor templates

UE5.6+ Knowledge Database (✅ Completed)

  • Comprehensive Systems Library: Detailed information on 12+ core Unreal Engine 5.6+ systems including:

    • Core Architecture (modules, subsystems, asset management)

    • Gameplay Framework (actors, components, game modes)

    • Rendering System (Lumen, Nanite, Virtual Shadow Maps)

    • Animation System (UAF, Motion Trails, MetaHuman)

    • Physics System (Chaos, collision, vehicles)

    • AI System (Behavior Trees, State Trees, Mass Entity)

    • Networking System (Iris replication, RPCs)

    • Audio System (MetaSounds, procedural audio)

    • UI System (UMG, Common UI, MVVM)

    • Niagara VFX System (particles, fluids)

    • Gameplay Ability System (GAS)

    • Material System (PBR, node-based editor)

  • Rich Metadata: Each system includes features, best practices, version info, related systems, and official references

  • Searchable Knowledge: Query by keywords, tags, or system IDs

  • Web-Sourced Information: Curated from official documentation, community forums, tutorials, and expert resources

  • MCP Resources & Tools: Access via resources (unreal://knowledge/*) and query tools

GitHub Copilot Agent (✨ New)

  • Custom Unreal Engine Agent: Pre-configured GitHub Copilot agent for UE5.6+ development

  • Epic Games Standards: Enforces official Epic Games coding conventions and best practices

  • MCP Integration: Leverages all Adastrea-MCP tools for intelligent project analysis

  • Comprehensive Knowledge: Built-in expertise in all major UE5.6+ systems

  • Multi-Repository Deployment: Can be rolled out across all your Unreal Engine repositories

  • Reusable: Works with any Unreal Engine project, not just Adastrea

Phase 3.1: AI-Enhanced Development Tools (✅ Completed)

  • Intelligent Code Generation: Generate UE-compliant C++ code following best practices

  • Unreal-Aware Templates: Create UClasses, Blueprints-compatible classes, common patterns

  • GameMode Generation: Generate GameMode classes with proper setup

  • Character Generation: Create Character classes with health system

  • Component Generation: Generate ActorComponent classes for reusable functionality

  • Replication Code: Generate network replication code for properties and RPCs

  • Data Assets: Create UDataAsset classes for configuration data

  • Data Tables: Generate USTRUCT row structures for Data Tables

  • 8 New Code Generation Tools: Comprehensive code scaffolding for UE development

Installation

npm install
npm run build

Usage

As an MCP Server

Add this to your MCP client configuration (e.g., Claude Desktop, Cline, or other MCP-compatible tools):

{
  "mcpServers": {
    "adastrea": {
      "command": "node",
      "args": ["/absolute/path/to/Adastrea-MCP/build/index.js"]
    }
  }
}

Available Resources

Game Project Resources

  • game://project/info - Complete project information in JSON format

  • game://project/summary - Human-readable project summary

Unreal Engine Resources (Phase 1)

  • unreal://project/config - Complete Unreal Engine project configuration from .uproject file

  • unreal://project/modules - List of all modules and their dependencies

  • unreal://project/plugins - Inventory of installed plugins with metadata

  • unreal://project/classes - All UCLASS, USTRUCT, UENUM, and UINTERFACE definitions

  • unreal://project/blueprints - List of all Blueprint assets in the project

  • unreal://project/assets - Complete asset catalog with types and paths

  • unreal://build/config - Available build configurations and target platforms

Editor Integration Resources (Phase 2.1)

  • unreal://editor/state - Current state of UE Editor (requires Adastrea-Director)

  • unreal://editor/capabilities - Available capabilities based on Director connection status

Actor & Component Resources (Phase 2.3)

  • unreal://level/actors - All actors in the current level with component hierarchies

UE5.6+ Knowledge Database Resources

  • unreal://knowledge/summary - Overview of the UE5.6+ knowledge database with system counts and categories

  • unreal://knowledge/systems - Complete catalog of all UE5.6+ systems with detailed information, features, best practices, and references

  • unreal://knowledge/tags - All available tags for categorizing and searching UE5.6+ systems

Available Tools

update_game_info

Update or add game project information. Supports partial updates - only provide the fields you want to change.

Parameters:

  • name (string): The name of the game

  • description (string): A detailed description of the game

  • genre (string): The game's genre (e.g., RPG, FPS, Strategy)

  • platform (array): Target platforms (e.g., ["PC", "Console", "Mobile"])

  • engine (string): Game engine being used (e.g., Unity, Unreal, Godot)

  • status (string): Current development status (e.g., Planning, In Development, Testing, Released)

  • repository_url (string): URL to the game's source code repository

  • team (array): Team members and their roles

  • features (array): Key features of the game

  • technical_details (object): Technical specifications and architecture details

  • timeline (object): Project timeline information with milestones

  • custom_fields (object): Any additional custom fields

Example:

{
  "name": "Adastrea",
  "genre": "RPG",
  "engine": "Unity",
  "status": "In Development",
  "repository_url": "https://github.com/Mittenzx/Adastrea",
  "platform": ["PC", "Console"],
  "features": [
    "Open world exploration",
    "Dynamic combat system",
    "Branching storylines"
  ]
}

get_game_info

Retrieve the current game project information in JSON format.

clear_game_info

Clear all game project information and start fresh.

Parameters:

  • confirm (boolean, required): Must be set to true to confirm deletion

Unreal Engine Tools (Phase 1)

scan_unreal_project

Perform a deep scan of an Unreal Engine project structure, analyzing .uproject files, modules, plugins, C++ classes, and assets.

Parameters:

  • project_path (string, required): Absolute path to the Unreal Engine project directory (containing the .uproject file)

Example:

{
  "project_path": "/path/to/MyUnrealProject"
}

validate_project_structure

Validate an Unreal Engine project structure and check for common issues.

Parameters:

  • project_path (string, required): Absolute path to the Unreal Engine project directory

search_code

Search for C++ classes, structs, enums, or interfaces in the scanned Unreal project.

Parameters:

  • query (string, required): Search query (class name, type, etc.)

find_class_usage

Find all usages of a specific C++ class in the project.

Parameters:

  • class_name (string, required): Name of the class to find usages for

get_class_hierarchy

Get the inheritance hierarchy for a specific C++ class.

Parameters:

  • class_name (string, required): Name of the class

search_assets

Search for assets in the scanned Unreal project by name, type, or path.

Parameters:

  • query (string, required): Search query (asset name, type, or path)

get_asset_dependencies

Get dependencies for a specific asset (placeholder for future implementation).

Parameters:

  • asset_path (string, required): Path to the asset

Editor Integration Tools (Phase 2.1)

execute_console_command

Execute a console command in the running Unreal Engine Editor via Adastrea-Director.

Parameters:

  • command (string, required): Console command to execute (e.g., 'stat fps', 'ke * list')

Example:

{
  "command": "stat fps"
}

run_python_script

Execute Python code in the Unreal Engine Editor's embedded Python interpreter.

Parameters:

  • code (string, required): Python code to execute in the UE Editor

Example:

{
  "code": "import unreal\nprint(unreal.SystemLibrary.get_project_directory())"
}

get_live_project_info

Get live project information from the running UE Editor. Prefers live data from Adastrea-Director over cached local data. Falls back to local analysis if Director is unavailable.

Parameters: None

Example Response:

{
  "projectInfo": {
    "projectName": "MyGame",
    "projectPath": "C:/Projects/MyGame",
    "engineVersion": "5.6",
    "isLoaded": true
  },
  "source": "director",
  "directorAvailable": true,
  "localAnalysisAvailable": true
}

list_assets_live

List assets from the running UE Editor in real-time. Prefers live data from Adastrea-Director over cached local data.

Parameters:

  • filter (string, optional): Optional filter string to search for specific assets

Example:

{
  "filter": "Material"
}

Actor & Component Tools (Phase 2.3)

spawn_actor

Spawn a new actor in the current level (requires Adastrea-Director integration).

Parameters:

  • className (string, required): Actor class to spawn (e.g., 'AStaticMeshActor', '/Game/Blueprints/BP_Character.BP_Character_C')

  • location (object, optional): World location {x, y, z}

  • rotation (object, optional): World rotation {pitch, yaw, roll}

  • scale (object, optional): World scale {x, y, z}

  • name (string, optional): Custom name for the actor instance

  • properties (object, optional): Initial property values

  • tags (array, optional): Tags to assign to the actor

  • folder (string, optional): Level folder to place actor in

Example:

{
  "className": "AStaticMeshActor",
  "location": {"x": 0, "y": 0, "z": 100},
  "rotation": {"pitch": 0, "yaw": 0, "roll": 0},
  "name": "MyStaticMesh"
}

modify_actor_properties

Modify properties of an existing actor in the level (requires Adastrea-Director integration).

Parameters:

  • actorPath (string, required): Full path to the actor

  • properties (object, optional): Properties to modify

  • transform (object, optional): Transform modifications (location, rotation, scale)

  • tags (array, optional): Tags to assign

Example:

{
  "actorPath": "/Game/Maps/MainLevel.MainLevel:PersistentLevel.Actor_0",
  "transform": {
    "location": {"x": 100, "y": 200, "z": 50}
  },
  "properties": {
    "bHidden": false
  }
}

get_actor_components

Get the component hierarchy for an actor.

Parameters:

  • actorPath (string, required): Full path to the actor

Example:

{
  "actorPath": "/Game/Maps/MainLevel.MainLevel:PersistentLevel.Actor_0"
}

create_actor_template

Save an actor as a reusable template.

Parameters:

  • actorPath (string, required): Path to the actor to save as template

  • templateName (string, required): Name for the template

  • description (string, optional): Description of the template

  • category (string, optional): Category for organization

  • tags (array, optional): Tags for the template

Example:

{
  "actorPath": "/Game/Maps/MainLevel.MainLevel:PersistentLevel.Actor_0",
  "templateName": "Lamp Post Standard",
  "category": "Environment",
  "tags": ["lighting", "street"]
}

list_actor_templates

List all available actor templates.

Parameters:

  • category (string, optional): Filter by category

  • tags (array, optional): Filter by tags

Example:

{
  "category": "Environment"
}

instantiate_template

Create an actor from a template (requires Adastrea-Director integration).

Parameters:

  • templateId (string, required): ID of the template to instantiate

  • location (object, optional): World location

  • rotation (object, optional): World rotation

  • scale (object, optional): World scale

  • name (string, optional): Custom name for the spawned actor

  • folder (string, optional): Level folder

Example:

{
  "templateId": "template_1234567890_abc123xyz",
  "location": {"x": 500, "y": 300, "z": 0}
}

delete_actor_template

Delete an actor template.

Parameters:

  • templateId (string, required): ID of the template to delete

Example:

{
  "templateId": "template_1234567890_abc123xyz"
}

UE5.6+ Knowledge Database Tools

query_ue_knowledge

Search the UE5.6+ knowledge database for information about Unreal Engine systems, features, and best practices.

Parameters:

  • query (string, required): Search query (keywords, system names, or tags)

Example:

{
  "query": "rendering"
}

get_ue_system

Get detailed information about a specific Unreal Engine system by ID.

Parameters:

  • systemId (string, required): System ID (e.g., 'rendering-system', 'gameplay-framework', 'animation-system')

Example:

{
  "systemId": "rendering-system"
}

get_ue_systems_by_tag

Get all Unreal Engine systems that match a specific tag.

Parameters:

  • tag (string, required): Tag to filter by (e.g., 'rendering', 'gameplay', 'animation', 'networking')

Example:

{
  "tag": "gameplay"
}

Get systems related to a specific Unreal Engine system.

Parameters:

  • systemId (string, required): System ID to find related systems for

Example:

{
  "systemId": "gameplay-ability-system"
}

Phase 3.1: Intelligent Code Generation Tools

generate_uclass

Generate a UClass following Unreal Engine conventions. Creates header and source files for a basic C++ class.

Parameters:

  • className (string, required): Name of the class (e.g., 'AMyActor', 'UMyObject')

  • parentClass (string, optional): Parent class (e.g., 'AActor', 'UObject'). Default: 'UObject'

  • module (string, optional): Module name. Default: 'YourProject'

  • blueprintType (boolean, optional): Whether this class can be used as a Blueprint type

  • blueprintable (boolean, optional): Whether Blueprints can be derived from this class

  • abstract (boolean, optional): Whether this is an abstract class

  • config (string, optional): Config category (e.g., 'Game', 'Engine')

Example:

{
  "className": "AMyCustomActor",
  "parentClass": "AActor",
  "module": "MyGame",
  "blueprintable": true,
  "blueprintType": true
}

generate_blueprint_compatible_class

Generate a Blueprint-compatible C++ class with properties and functions exposed to Blueprints.

Parameters:

  • className (string, required): Name of the class

  • parentClass (string, optional): Parent class. Default: 'UObject'

  • module (string, optional): Module name. Default: 'YourProject'

  • properties (array, optional): Properties to expose to Blueprints

  • functions (array, optional): Functions to expose to Blueprints

Example:

{
  "className": "UMyComponent",
  "parentClass": "UActorComponent",
  "module": "MyGame",
  "properties": [
    {
      "name": "Speed",
      "type": "float",
      "category": "Movement",
      "editAnywhere": true,
      "blueprintReadWrite": true,
      "defaultValue": "600.0f",
      "tooltip": "Movement speed"
    }
  ],
  "functions": [
    {
      "name": "GetSpeed",
      "returnType": "float",
      "category": "Movement",
      "blueprintPure": true,
      "isConst": true
    }
  ]
}

generate_game_mode

Generate a GameMode class following UE best practices.

Parameters:

  • className (string, required): Name of the GameMode class (e.g., 'AMyGameMode')

  • module (string, optional): Module name. Default: 'YourProject'

Example:

{
  "className": "AMyGameMode",
  "module": "MyGame"
}

generate_character_class

Generate a Character class with health system and common functionality.

Parameters:

  • className (string, required): Name of the Character class (e.g., 'AMyCharacter')

  • module (string, optional): Module name. Default: 'YourProject'

Example:

{
  "className": "AMyCharacter",
  "module": "MyGame"
}

generate_actor_component

Generate an ActorComponent class for reusable functionality.

Parameters:

  • className (string, required): Name of the ActorComponent class (e.g., 'UMyComponent')

  • module (string, optional): Module name. Default: 'YourProject'

Example:

{
  "className": "UHealthComponent",
  "module": "MyGame"
}

generate_replication_code

Generate network replication code for properties and RPCs.

Parameters:

  • className (string, required): Name of the class to add replication to

  • properties (array, required): Properties to replicate

  • rpcs (array, optional): Remote Procedure Calls to generate

Example:

{
  "className": "AMyActor",
  "properties": [
    {
      "name": "Health",
      "type": "float",
      "replicationType": "Replicated"
    },
    {
      "name": "Score",
      "type": "int32",
      "replicationType": "ReplicatedUsing",
      "repNotifyFunction": "OnRep_Score"
    }
  ],
  "rpcs": [
    {
      "name": "ServerTakeDamage",
      "type": "Server",
      "reliable": true,
      "parameters": [
        { "name": "DamageAmount", "type": "float" }
      ]
    }
  ]
}

generate_data_asset

Generate a UDataAsset class for storing configuration data.

Parameters:

  • className (string, required): Name of the DataAsset class (e.g., 'UMyDataAsset')

  • module (string, optional): Module name. Default: 'YourProject'

  • properties (array, required): Properties for the data asset

Example:

{
  "className": "UWeaponDataAsset",
  "module": "MyGame",
  "properties": [
    {
      "name": "WeaponName",
      "type": "FString",
      "category": "Weapon",
      "editAnywhere": true,
      "tooltip": "Display name of the weapon"
    },
    {
      "name": "Damage",
      "type": "float",
      "category": "Stats",
      "editAnywhere": true,
      "defaultValue": "10.0f",
      "tooltip": "Base damage"
    }
  ]
}

generate_data_table

Generate a USTRUCT for use as a DataTable row structure.

Parameters:

  • structName (string, required): Name of the struct (e.g., 'FMyTableRow')

  • module (string, optional): Module name. Default: 'YourProject'

  • properties (array, required): Properties for the data table row

Example:

{
  "structName": "FWeaponTableRow",
  "module": "MyGame",
  "properties": [
    {
      "name": "WeaponID",
      "type": "int32",
      "editAnywhere": true,
      "tooltip": "Unique weapon identifier"
    },
    {
      "name": "WeaponName",
      "type": "FString",
      "editAnywhere": true,
      "tooltip": "Display name"
    },
    {
      "name": "Damage",
      "type": "float",
      "editAnywhere": true,
      "tooltip": "Base damage"
    }
  ]
}

Example Workflows

Basic Project Information

  1. Initialize Project Information:

    Use update_game_info to set:
    - name: "Adastrea"
    - genre: "Action RPG"
    - engine: "Unreal Engine 5"
    - status: "In Development"
  2. Add Team Information:

    Use update_game_info to add team:
    - [{name: "Mittenzx", role: "Lead Developer"}]
  3. Access Project Info:

    • AI agents can read game://project/info resource

    • Get human-readable summary from game://project/summary

    • Use get_game_info tool for programmatic access

Unreal Engine Project Analysis (Phase 1)

  1. Scan an Unreal Project:

    Use scan_unreal_project with:
    - project_path: "/path/to/MyUnrealProject"

    This will analyze:

    • .uproject file and configuration

    • All modules and their dependencies

    • Installed plugins

    • C++ classes (UCLASS, USTRUCT, UENUM, UINTERFACE)

    • Blueprint assets

    • Project assets

  2. Search for Classes:

    Use search_code with:
    - query: "Character"

    Returns all classes matching the search term

  3. Analyze Class Hierarchy:

    Use get_class_hierarchy with:
    - class_name: "AMyCharacter"

    Shows the full inheritance chain

  4. Find Asset Usage:

    Use search_assets with:
    - query: "Material"

    Lists all materials in the project

  5. Access Unreal Resources:

    • Read unreal://project/config for complete project configuration

    • Read unreal://project/classes for all C++ classes

    • Read unreal://project/assets for asset catalog

Live Editor Integration (Phase 2.1)

  1. Check Director Connection:

    Read unreal://editor/capabilities to verify:
    - Director is connected
    - Editor commands available
    - Python execution available
  2. Execute Console Commands:

    Use execute_console_command with:
    - command: "stat fps"
    Opens FPS counter in editor
  3. Run Python Scripts:

    Use run_python_script with:
    - code: "import unreal\nprint(unreal.EditorLevelLibrary.get_all_level_actors())"
    Lists all actors in current level
  4. Get Live Asset List:

    Use list_assets_live with:
    - filter: "Blueprint"
    Gets real-time list of Blueprint assets from editor
  5. Access Editor State:

    • Read unreal://editor/state for current editor context

    • Get current level, selected actors, viewport state

    • Use for context-aware suggestions

Actor & Component Management (Phase 2.3)

  1. List Actors in Level:

    Read unreal://level/actors to get:
    - All actors in current level
    - Actor locations, rotations, scales
    - Component hierarchies
  2. Spawn New Actors:

    Use spawn_actor with:
    - className: "AStaticMeshActor"
    - location: {x: 0, y: 0, z: 100}
    Creates a new static mesh actor at specified location
  3. Modify Actor Properties:

    Use modify_actor_properties with:
    - actorPath: "/Game/Maps/MainLevel.MainLevel:PersistentLevel.Actor_0"
    - transform: {location: {x: 100, y: 200, z: 50}}
    Moves the actor to a new location
  4. Inspect Component Hierarchy:

    Use get_actor_components with:
    - actorPath: "/Game/Maps/MainLevel.MainLevel:PersistentLevel.Actor_0"
    Returns tree structure of all components
  5. Work with Actor Templates:

    # Save an actor as a template
    Use create_actor_template with:
    - actorPath: "/Game/Maps/MainLevel.MainLevel:PersistentLevel.MyActor"
    - templateName: "Lamp Post Standard"
    - category: "Environment"
    
    # List available templates
    Use list_actor_templates with:
    - category: "Environment"
    
    # Instantiate from template
    Use instantiate_template with:
    - templateId: "template_1234567890_abc123xyz"
    - location: {x: 500, y: 300, z: 0}

UE5.6+ Knowledge Database

  1. Explore Available Systems:

    Read unreal://knowledge/summary to get:
    - Total number of systems
    - Systems by version
    - All available tags
  2. Search for Specific Information:

    Use query_ue_knowledge with:
    - query: "rendering"
    Returns all systems related to rendering (Lumen, Nanite, VSM)
  3. Get Detailed System Info:

    Use get_ue_system with:
    - systemId: "gameplay-ability-system"
    Returns complete details including features, best practices, and references
  4. Find Systems by Category:

    Use get_ue_systems_by_tag with:
    - tag: "networking"
    Returns all networking-related systems
  5. Discover Related Systems:

    Use get_related_ue_systems with:
    - systemId: "animation-system"
    Returns related systems like gameplay-framework and metahuman-system

Intelligent Code Generation (Phase 3.1)

  1. Generate a Basic Actor Class:

    Use generate_uclass with:
    - className: "AMyPickupActor"
    - parentClass: "AActor"
    - module: "MyGame"
    - blueprintable: true
    - blueprintType: true
    Creates header and source files with proper UE conventions
  2. Generate a Blueprint-Compatible Component:

    Use generate_blueprint_compatible_class with:
    - className: "UHealthComponent"
    - parentClass: "UActorComponent"
    - module: "MyGame"
    - properties: [
        { name: "MaxHealth", type: "float", category: "Health", 
          editAnywhere: true, blueprintReadWrite: true, defaultValue: "100.0f" },
        { name: "CurrentHealth", type: "float", category: "Health", 
          blueprintReadOnly: true }
      ]
    - functions: [
        { name: "TakeDamage", returnType: "void", 
          parameters: [{ name: "Amount", type: "float" }],
          category: "Health", blueprintCallable: true }
      ]
    Creates a fully Blueprint-integrated component
  3. Generate Common Pattern Classes:

    # Generate a GameMode
    Use generate_game_mode with:
    - className: "AMyGameMode"
    - module: "MyGame"
    
    # Generate a Character with health system
    Use generate_character_class with:
    - className: "APlayerCharacter"
    - module: "MyGame"
    
    # Generate an ActorComponent
    Use generate_actor_component with:
    - className: "UInventoryComponent"
    - module: "MyGame"
  4. Add Network Replication:

    Use generate_replication_code with:
    - className: "AMyActor"
    - properties: [
        { name: "Health", type: "float", replicationType: "Replicated" },
        { name: "Score", type: "int32", replicationType: "ReplicatedUsing",
          repNotifyFunction: "OnRep_Score" }
      ]
    - rpcs: [
        { name: "ServerDoAction", type: "Server", reliable: true,
          parameters: [{ name: "ActionID", type: "int32" }] }
      ]
    Generates GetLifetimeReplicatedProps and RPC implementations
  5. Create Data Assets:

    Use generate_data_asset with:
    - className: "UWeaponDataAsset"
    - module: "MyGame"
    - properties: [
        { name: "WeaponName", type: "FString", category: "Weapon" },
        { name: "Damage", type: "float", category: "Stats", 
          defaultValue: "10.0f" },
        { name: "FireRate", type: "float", category: "Stats",
          defaultValue: "0.1f" }
      ]
    Creates a data asset class for configuration
  6. Generate Data Table Structures:

    Use generate_data_table with:
    - structName: "FWeaponTableRow"
    - module: "MyGame"
    - properties: [
        { name: "WeaponID", type: "int32", tooltip: "Unique ID" },
        { name: "WeaponName", type: "FString", tooltip: "Display name" },
        { name: "Damage", type: "float", tooltip: "Base damage" },
        { name: "WeaponMesh", type: "TSoftObjectPtr<UStaticMesh>",
          tooltip: "3D mesh asset" }
      ]
    Creates a struct for use in Data Tables

Data Storage

  • Project Information: Stored in game-project-data.json in the package root directory. This file is automatically created when you first update project information.

  • Actor Templates: Stored in .adastrea/actor-templates.json in the project root directory. This file is automatically created when you create your first actor template.

GitHub Copilot Integration

Adastrea-MCP includes a pre-configured GitHub Copilot agent that can be deployed across all your Unreal Engine repositories for consistent, expert-level AI assistance.

Features

  • Expert UE5.6+ Knowledge: Comprehensive understanding of modern Unreal Engine systems

  • Epic Games Standards: Enforces official coding conventions and best practices

  • MCP Tool Integration: Automatically uses Adastrea-MCP tools for project analysis

  • Smart Context Awareness: Understands C++, Blueprints, and their interactions

  • Multi-Repository Support: Deploy once, use across all your Unreal projects

Quick Start

Option 1: Single Repository

Copy the agent configuration to your Unreal project:

# From your Unreal project root
mkdir -p .github/agents
# Replace /path/to/your/Adastrea-MCP with actual path
cp /path/to/your/Adastrea-MCP/.github/agents/unreal-engine.md .github/agents/

Deploy across all repositories in your organization:

  1. Create or use your organization's .github repository

  2. Copy agents to the agents/ directory

  3. All organization repositories automatically get access

See .github/agents/README.md for detailed deployment instructions and usage examples.

Using the Agent

In your IDE with GitHub Copilot:

@unreal_engine Create a health component with replication
@unreal_engine How do I implement Lumen in my level?
@unreal_engine Optimize this actor for multiplayer

The agent will:

  • Follow Epic Games coding standards

  • Use MCP tools to understand your project

  • Query the knowledge database for best practices

  • Generate production-ready code

  • Provide context-aware suggestions

Example Workflows

Creating Actor Classes:

@unreal_engine I need a character with health, stamina, and sprint ability

Blueprint Integration:

@unreal_engine Make this C++ function callable from Blueprints

Performance Optimization:

@unreal_engine This actor is causing performance issues [paste code]

System Implementation:

@unreal_engine Implement a quest system with save/load support

For complete documentation, see GitHub Copilot Agent Guide.

Benefits for AI Agents

When agents have access to this MCP server, they can:

  • Understand the complete context of your game project

  • Make informed suggestions based on your tech stack

  • Respect your project's architecture and conventions

  • Track progress against milestones

  • Work consistently with your team's structure and roles

Development

Build

npm run build

Watch Mode

npm run watch

Roadmap

We're on a mission to build the world's best Unreal Engine MCP server! Our comprehensive roadmap includes:

  • Phase 1: ✅ Foundation Enhancement - Deep Unreal project understanding (COMPLETED)

  • Phase 2: ✅ Deep UE Integration - Leveraging Adastrea-Director plugin for real-time editor interaction (COMPLETED: 2.1, 2.2, 2.3)

  • Phase 3: 🔄 AI-Enhanced Tools - Intelligent code generation and refactoring (COMPLETED: 3.1, IN PROGRESS: 3.2, 3.3)

  • Phase 4: 📋 Advanced Ecosystem - Multi-project support, marketplace integration (PLANNED)

  • Phase 5: 📋 Intelligence & Automation - Semantic understanding and predictive assistance (PLANNED)

🎉 Major Achievements:

  • ✅ 30+ MCP tools for comprehensive UE development

  • ✅ 15+ MCP resources for project data access

  • ✅ Live UE Editor integration via Adastrea-Director

  • ✅ Complete Blueprint interaction system

  • ✅ Actor spawning and template management

  • ✅ Intelligent C++ code generation (8 tools)

  • ✅ UE5.6+ Knowledge Database with 12+ systems

  • ✅ GitHub Copilot Agent for multi-repo deployment

📋 View Full Roadmap for detailed plans, timelines, and contribution opportunities.

Integration with Other MCP Servers

Adastrea-MCP can work alongside other MCP servers to provide comprehensive Unreal Engine development assistance.

Integration with Adastrea-Director

Adastrea-MCP works seamlessly with Adastrea-Director, a comprehensive AI-powered development assistant that provides:

  • UE Editor Plugin with dockable AI assistant panel (Weeks 1-6 complete)

  • Autonomous Agents (P3 Complete) for performance profiling, bug detection, and code quality monitoring

  • UE Python API Integration with 25+ tests for asset operations, actor management, and editor automation

  • Built-in MCP Server with 84+ tests for AI agent access to Unreal Engine

  • RAG System for intelligent documentation understanding

  • Planning Agents for autonomous task decomposition and goal analysis

  • Python Backend with LLM integration (Google Gemini, OpenAI)

Complementary Roles:

  • Adastrea-MCP: Static analysis, code generation, UE5.6+ knowledge database (37 tools, 13 resources)

  • Adastrea-Director: Runtime execution, autonomous monitoring, AI-assisted planning, live editor integration

Together, they form a complete AI-assisted game development ecosystem. Director's built-in MCP server handles runtime operations while Adastrea-MCP provides comprehensive static analysis and code scaffolding capabilities.

📖 Setup Guide: See docs/guides/DUAL_SERVER_GUIDE.md for detailed instructions on using both servers together.

Integration with VibeUE

Adastrea-MCP can be connected as an external MCP server to VibeUE, an AI-powered Unreal Engine plugin (UE 5.7+) that brings AI directly into the editor:

  • In-Editor AI Chat: Natural language control of Unreal Engine

  • 27 Built-in Tools: Blueprint lifecycle, UMG widgets, materials, actors, Python, filesystem

  • Real-time Manipulation: Create/modify Blueprints, widgets, materials instantly

  • External MCP Support: Connect Adastrea-MCP via vibeue.mcp.json configuration

Complementary Roles:

  • Adastrea-MCP: Offline analysis, C++ code generation, UE5.6+ knowledge, project validation

  • VibeUE: In-editor real-time Blueprint/widget creation, material management, actor spawning

📖 Setup Guide: See docs/integration/VIBEUE_INTEGRATION.md for detailed integration instructions and workflows.

Contributing

We welcome contributions! Whether you're fixing bugs, adding features, improving documentation, or testing with your Unreal Engine projects, your help is valuable. Check out our ROADMAP.md to see where you can contribute.

License

MIT

Available Tools

44 tools
add_blueprint_functionB

Create a new function in a Blueprint (requires Adastrea-Director integration)

ParametersJSON Schema
NameRequiredDescriptionDefault
functionYesFunction definition
blueprint_pathYesRelative path to the Blueprint asset

TDQS

B3.1/5.0
Behavior2/5

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 only states the action and the integration requirement, but fails to mention side effects, permissions, whether the operation is reversible, or what happens on failure. This is a significant gap 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.

Conciseness4/5

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

The description is a single, concise sentence with no wasted words. However, it is under-specified, which slightly reduces the structure score as it lacks meaningful elaboration beyond the purpose.

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

Completeness2/5

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

For a mutation tool with nested objects and no annotations or output schema, the description is too minimal. It provides only a purpose statement and a prerequisite, leaving out critical context about behavior, prerequisites for use, return values, and operational details.

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

Parameters3/5

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

The input schema has 100% description coverage, so the schema fully documents both parameters including nested function properties. The description adds no additional parameter-specific information, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb and resource: 'Create a new function in a Blueprint.' This distinguishes it from sibling tools like add_blueprint_variable or modify_blueprint_property, and the addition of the integration requirement adds context.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It only mentions a prerequisite ('requires Adastrea-Director integration'), but does not explain scenarios where this tool is preferred or mention any exclusions.

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

add_blueprint_variableA

Add a new variable to a Blueprint (requires Adastrea-Director integration)

ParametersJSON Schema
NameRequiredDescriptionDefault
variableYesVariable definition
blueprint_pathYesRelative path to the Blueprint asset

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It discloses the integration requirement but omits other behavioral traits such as side effects (e.g., modifying the Blueprint asset), permissions needed, whether changes are reversible, or the return value. This is insufficient for a mutating tool.

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

Conciseness5/5

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

The description is a single, clear sentence with a parenthetical requirement. No unnecessary words, and the key information is front-loaded.

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

Completeness3/5

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

Given the tool's complexity (nested object parameters, no output schema) and lack of annotations, the description is minimally viable. The schema covers parameters, and the integration requirement is mentioned, but it lacks broader context about behavior, errors, or side effects that an agent might need.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are fully documented in the schema. The description does not add any additional semantic meaning beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the action 'Add a new variable to a Blueprint', specifying the verb and resource. It distinguishes from sibling tools like add_blueprint_function and modify_blueprint_property by being specific to variables.

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

Usage Guidelines3/5

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

The usage is implied by the purpose: use when adding a variable to a Blueprint. The description also mentions a prerequisite ('requires Adastrea-Director integration') which provides context. However, it does not explicitly contrast with alternatives or state when not to use it.

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

clear_game_infoB

Clear all game project information and start fresh

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be set to true to confirm deletion

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing that this is a destructive operation. While 'Clear all' signals destructiveness, it doesn't explain reversibility, what exactly counts as 'game project information,' or what happens to existing data after the operation.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. 'Clear all game project information and start fresh' delivers the core message efficiently.

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

Completeness2/5

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

The tool is simple (one boolean parameter, full schema coverage), but as a destructive mutation with no annotations and no output schema, the description leaves gaps about consequences and post-deletion state. It doesn't mention whether cleared data can be recovered or when the agent should use this reset operation.

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

Parameters3/5

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

Schema description coverage is 100%, with the confirm parameter already documented as 'Must be set to true to confirm deletion.' The description adds no additional parameter semantics beyond the schema's existing coverage, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Clear') with a clear resource ('all game project information'), making the purpose unambiguous. It naturally distinguishes itself from sibling tools like get_game_info and update_game_info by signaling a full reset rather than retrieval or modification.

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

Usage Guidelines3/5

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

The phrase 'and start fresh' implies the tool is for resetting the project state, but the description provides no explicit guidance on when to choose this over alternatives like update_game_info or delete_actor_template. It also doesn't state prerequisites or exclusions (e.g., that the operation must be confirmed).

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

create_actor_templateB

Save an actor as a reusable template

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoOptional tags for the template
categoryNoOptional category for organization
actorPathYesPath to the actor to save as template (requires Adastrea-Director for live actors)
descriptionNoOptional description of the template
templateNameYesName for the template

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It only states 'Save an actor as a reusable template' without mentioning side effects, permission requirements, overwrite behavior, or what happens if the actor path is invalid. The schema adds one prerequisite, but the description contributes minimal 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.

Conciseness5/5

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

The description is a single sentence, front-loaded with the verb and object, and contains no wasted words. It is concise and easy to parse.

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

Completeness2/5

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

Given the tool has 5 parameters, no output schema, and is part of a large sibling set, the description is under-specified. It does not explain return values, when to use the tool, or important behavioral caveats. The schema covers parameter meanings but the overall description lacks essential context 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.

Parameters3/5

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

Schema description coverage is 100%, with all five parameters documented in the input schema. The description adds no parameter-specific detail, so the baseline of 3 applies. It does not need to compensate for schema gaps.

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

Purpose5/5

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

The description uses a specific verb ('Save') with a clear resource ('actor') and outcome ('reusable template'). It distinguishes itself from sibling tools like list_actor_templates and delete_actor_template by focusing on creation of a template.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as instantiate_template or modify_actor_properties. The schema includes a prerequisite note about Adastrea-Director for live actors, but the description itself offers no usage context or exclusions.

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

delete_actor_templateB

Delete an actor template

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYesID of the template to delete

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. However, it only restates the action without explaining consequences such as permanence, side effects on dependent entities, or required permissions. This is a minimal addition beyond the tool's name.

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

Conciseness5/5

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

The description is a single, clear, and front-loaded sentence with no unnecessary words. It is appropriately concise for a simple delete operation.

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

Completeness3/5

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

For a simple one-parameter deletion tool with fully documented schema, the description is minimally viable. However, it lacks context about the destructive nature's implications (e.g., irreversibility, cascading effects) and any return values, which would be helpful for an agent to fully understand the tool's impact.

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

Parameters3/5

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

The input schema fully documents the templateId parameter with 100% coverage ('ID of the template to delete'). The description adds no additional meaning to the parameter, so baseline 3 is appropriate.

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

Purpose5/5

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

The description uses the specific verb 'Delete' and resource 'actor template', clearly distinguishing it from sibling tools like create_actor_template and list_actor_templates. The action and target are unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no conditions under which deletion is appropriate. It simply states the action without any usage context.

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

execute_console_commandA

Execute a console command in the Unreal Engine Editor (requires Adastrea-Director to be running)

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesConsole command to execute (e.g., 'stat fps', 'ke * list')

TDQS

A3.5/5.0
Behavior2/5

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 mentions a prerequisite (Adastrea-Director running), which is useful, but it does not disclose potential side effects, whether the command could be destructive, or what output/return behavior to expect. Since console commands can mutate editor state, this omission is notable.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that is concise and unambiguous. Every word contributes value: the action, the scope, and a critical prerequisite. There is no wasted text.

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

Completeness3/5

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

The tool has a simple single-parameter schema, and the description states its purpose and prerequisite. However, with no output schema, the description does not explain execution results or potential consequences, which leaves some ambiguity for an agent selecting the tool. It is minimally complete for basic selection but lacks depth.

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

Parameters3/5

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

The input schema provides 100% coverage of the single 'command' parameter with a clear description and examples. The tool description itself adds no parameter-specific details, but the schema already covers this, 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.

Purpose5/5

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

The description clearly states 'Execute a console command in the Unreal Engine Editor', identifying the specific verb (execute) and resource (console command in Unreal). The prerequisite 'requires Adastrea-Director to be running' adds context that helps distinguish it from other tools. This differentiates it clearly from siblings like run_python_script.

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

Usage Guidelines3/5

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

The description implies usage when a UE console command needs to be executed, but it does not explicitly state when to use this tool over alternatives or provide exclusions. The prerequisite is mentioned but not presented as a decision guideline. This is adequate but lacks explicit alternative comparisons.

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

extract_code_metadataA

Extract detailed metadata from C++ code including classes, functions, properties, enums, structs with their comments and specifiers. Useful for analysis and custom documentation generation.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesAbsolute path to the C++ file to analyze

TDQS

A4/5.0
Behavior3/5

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

In the absence of annotations, the description carries the full burden. It does specify the expected content (metadata types) and implies a read-only operation via the verb 'extract', but it does not explicitly state that no modifications are made, nor does it describe error handling or return format. This is a moderate level of disclosure.

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

Conciseness5/5

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

The description is two concise sentences, with the core function stated upfront and a secondary use-case sentence. Every word adds value, with no redundant information or filler.

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

Completeness4/5

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

For a tool with a single parameter and no output schema, the description covers the purpose, target language, metadata categories, and common use cases. It is missing details about output formatting or failure modes, but these are not critical for a simple extraction tool with one required input.

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

Parameters3/5

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

The schema already provides a complete description of the single parameter (file_path) with a clear explanation. The tool description adds no additional parameter-specific details, so the high schema coverage warrants a baseline score of 3.

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

Purpose5/5

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

The description uses a specific and descriptive verb, 'Extract', paired with the resource, 'C++ code', and enumerates the exact metadata categories (classes, functions, properties, enums, structs). This clearly distinguishes it from sibling tools like search_code or get_class_hierarchy, which have different purposes.

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

Usage Guidelines4/5

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

The description states it is 'Useful for analysis and custom documentation generation,' providing clear context for when to use it. However, it does not explicitly mention alternative tools or exclusion cases, which would be needed for a 5.

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

find_class_usageB

Find all usages of a specific C++ class in the project

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesName of the class to find usages for

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It only restates the core action ('find all usages') and does not elaborate on side effects, whether a prior scan is required, performance characteristics, or what counts as a usage. The single sentence is too minimal to cover these aspects.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no fluff or redundancy. It efficiently communicates the essential purpose, making every word count.

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

Completeness2/5

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

Despite the tool's simplicity (one parameter, no output schema, no annotations), the description leaves significant gaps. It does not explain what 'usages' means (e.g., references, includes, dependencies), what the return format is, or any prerequisites. An agent cannot predict the tool's output or side effects from the provided information.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter class_name, so the baseline is 3. The description adds a minor clarification ('C++ class') that is not explicitly in the schema, but it largely duplicates the schema description without providing additional meaning.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('find'), resource ('C++ class'), and scope ('in the project'). It distinguishes from sibling tools like search_code (generic search) and get_class_hierarchy (hierarchy traversal) by focusing on 'usages'.

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

Usage Guidelines3/5

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

The description implies usage when needing to locate references to a C++ class, but it does not explicitly state when to use this tool over alternatives or mention exclusions. Since the purpose is narrow, the usage scenario is inferable, but no explicit guidance is provided.

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

generate_actor_componentC

Generate an ActorComponent class for reusable functionality

ParametersJSON Schema
NameRequiredDescriptionDefault
moduleNoModule name. Default: 'YourProject'
classNameYesName of the ActorComponent class (e.g., 'UMyComponent')

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing side effects and behavior. It only says 'Generate an ActorComponent class', but does not clarify whether this writes to disk, modifies the project, requires an active Unreal project, overwrites existing files, or what the output format is. This is a generation tool with potentially mutating behavior, and the description is silent on those aspects.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It immediately communicates the core action and resource. 'For reusable functionality' is a brief purpose clause, but not wasteful. It is concise and well-structured for such a short description.

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

Completeness2/5

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

For a code generation tool with 2 parameters, no output schema, and no annotations, the description is undersized. It fails to explain the generation context (e.g., C++ vs Blueprint, side effects, project requirements, or what the generated component contains). The schema fully covers parameters, but the overall tool behavior remains ambiguous, making the description inadequate for agent decision-making.

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

Parameters3/5

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

Schema description coverage is 100%: both 'className' and 'module' have descriptive text with an example format. The tool description adds no parameter semantics beyond the schema, so the baseline of 3 applies. The className example 'UMyComponent' is already in the schema.

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

Purpose4/5

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

The description clearly states the tool generates an ActorComponent class, with the verb 'Generate' and resource 'ActorComponent class'. It adds the purpose 'for reusable functionality', which provides context but is generic. It distinguishes from sibling generation tools that target other class types (game mode, character, etc.), though it doesn't explicitly differentiate from other generate_* tools.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool vs alternatives like generate_uclass or generate_blueprint_compatible_class. There are no prerequisites, no exclusions, and no mention of when not to use it. The only hint is the vague 'for reusable functionality', which does not effectively steer the agent.

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

generate_blueprint_compatible_classB

Generate a Blueprint-compatible C++ class with properties and functions exposed to Blueprints

ParametersJSON Schema
NameRequiredDescriptionDefault
moduleNoModule name. Default: 'YourProject'
classNameYesName of the class
functionsNoFunctions to expose to Blueprints
propertiesNoProperties to expose to Blueprints
parentClassNoParent class. Default: 'UObject'

TDQS

B3.2/5.0
Behavior2/5

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 only states the generation outcome without mentioning side effects like file creation, project modification, or code insertion. The mutation of the project is implied but not detailed.

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

Conciseness5/5

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

The description is a single, crisp sentence that front-loads the purpose without filler. Every word contributes to understanding the core function, making it highly concise and well-structured.

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

Completeness2/5

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

Given the tool's complexity (5 parameters, nested arrays for functions/properties, no output schema or annotations), the description is too sparse. It omits details about code generation behavior, default values, parent class handling, and potential side effects, leaving the agent without enough context to predict outcomes.

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

Parameters3/5

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

The input schema already describes all 5 parameters with 100% coverage, so the baseline is 3. The description adds minimal value by referencing properties and functions exposed to Blueprints, but it does not clarify parameter formats, types, or relationships beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the tool generates a Blueprint-compatible C++ class, naming the resource and the specific features (properties and functions exposed to Blueprints). This distinguishes it from sibling generators like generate_uclass or generate_actor_component by emphasizing Blueprint compatibility.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as generate_uclass or add_blueprint_function. There are no prerequisites, exclusions, or context clues indicating the intended scenario for using this generator.

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

generate_character_classB

Generate a Character class with health system and common functionality

ParametersJSON Schema
NameRequiredDescriptionDefault
moduleNoModule name. Default: 'YourProject'
classNameYesName of the Character class (e.g., 'AMyCharacter')

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states the output type and omits any details about side effects, file modifications, project structure requirements, or the exact scope of 'common functionality.'

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

Conciseness5/5

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

The description is a single concise sentence that immediately conveys the tool's purpose. It is appropriately sized and front-loaded with the core action and target, with no wasted words.

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

Completeness2/5

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

Given that this is a generation tool with no output schema or annotations, the description is under-specified. It fails to detail what 'common functionality' includes, how the health system is implemented, or what the agent should expect as a result, leaving significant gaps for decision-making.

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

Parameters3/5

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

The schema already provides full descriptions for both parameters (className and module), so the baseline is 3. The description adds no extra meaning to the parameters beyond what the schema states.

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

Purpose5/5

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

The description clearly states it generates a Character class with a health system and common functionality, using the specific verb 'generate' and a specific resource. This distinguishes it from sibling tools like generate_game_mode or generate_actor_component.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or preferred scenarios, leaving the agent to infer usage solely from the tool name.

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

generate_data_assetB

Generate a UDataAsset class for storing configuration data

ParametersJSON Schema
NameRequiredDescriptionDefault
moduleNoModule name. Default: 'YourProject'
classNameYesName of the DataAsset class (e.g., 'UMyDataAsset')
propertiesYesProperties for the data asset

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure, yet it only states 'Generate' without noting side effects, file writes, overwriting behavior, or output format. This is a significant gap for a code-generation tool.

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

Conciseness4/5

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

A single, front-loaded sentence with no filler. It 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.

Completeness2/5

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

The tool has a nested properties array and no output schema, yet the description explains only the basic purpose. Missing details about generated class structure, file destination, or property formatting leave the agent under-informed for reliable invocation.

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

Parameters3/5

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

Schema coverage is 100%, so parameter names and descriptions are already documented. The description adds no additional meaning about parameters, only a general sense of configuration storage.

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

Purpose4/5

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

The description identifies the specific resource ('UDataAsset class') and the action ('Generate'), making the core purpose clear. However, it does not explicitly differentiate from siblings like 'generate_data_table' or 'generate_uclass', relying primarily on the specific asset type.

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

Usage Guidelines3/5

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

The phrase 'for storing configuration data' implies a typical use case, but offers no explicit guidance on when to prefer this over sibling generation tools. No exclusions or alternative tool references are given.

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

generate_data_tableA

Generate a USTRUCT for use as a DataTable row structure

ParametersJSON Schema
NameRequiredDescriptionDefault
moduleNoModule name. Default: 'YourProject'
propertiesYesProperties for the data table row
structNameYesName of the struct (e.g., 'FMyTableRow')

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It only states the generation action without clarifying whether the tool writes to disk, returns a string, or requires a specific project context. This is a significant gap for a code generation tool.

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

Conciseness5/5

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

The description is a single, direct sentence that gets straight to the point without fluff or repetition.

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

Completeness3/5

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

Given the simple parameter set and full schema coverage, the description is adequate but not rich. It lacks explicit differentiation from sibling generators and does not describe the return format, which the missing output schema would otherwise clarify.

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

Parameters3/5

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

The input schema provides complete descriptions for all three parameters (module, properties, structName) with 100% coverage, so the description adds no parameter information. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool generates a USTRUCT specifically for DataTable row structures, using the verb 'generate' and identifying the concrete deliverable. This distinguishes it from sibling tools like generate_uclass or generate_actor_component that target different code generation needs.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool: whenever a struct is needed as a DataTable row. However, it does not explicitly mention alternatives or 'when not to use' scenarios, though the purpose is specific enough to infer.

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

generate_documentationA

Auto-generate comprehensive documentation from C++ code including comments, metadata, classes, functions, and properties. Creates markdown documentation with detailed API information.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoTitle for the generated documentation. Default: 'Unreal Engine Documentation'
file_pathYesAbsolute path to the C++ header file (.h) to generate documentation for
includePrivateNoInclude private members in documentation. Default: false

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It reveals that the tool creates markdown documentation but does not mention potential side effects (e.g., file writes, overwriting), prerequisites (e.g., being in an Unreal Engine project), or limitations. This is a minimal but acceptable level of transparency.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the core action and resource. No wasted words, and key output details (markdown, API information) are included efficiently.

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

Completeness4/5

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

Given the relatively simple tool (3 params, no output schema), the description is mostly complete: it states the source (C++ code), output format (markdown), and content scope. It lacks details about output location or environment-specific constraints, but these are not critical for basic usage.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents the three parameters. The description adds no additional meaning about parameters; it only describes the tool's overall purpose. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Auto-generate comprehensive documentation from C++ code' with specific content types (comments, metadata, classes, functions, properties). It distinguishes itself from sibling tools that generate code templates or diagrams.

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

Usage Guidelines4/5

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

The description provides clear context: it is for generating markdown documentation from C++ code. However, it does not explicitly mention when not to use it or name alternatives, so it lacks explicit exclusions.

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

generate_game_modeC

Generate a GameMode class following UE best practices

ParametersJSON Schema
NameRequiredDescriptionDefault
moduleNoModule name. Default: 'YourProject'
classNameYesName of the GameMode class (e.g., 'AMyGameMode')

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It only says it 'generates' a class and claims adherence to best practices, but does not explain side effects (e.g., file writes, project modifications), permissions needed, or what output the agent can expect.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words. However, the phrase 'following UE best practices' is somewhat hollow and could be replaced with more concrete details, but as written it is still appropriately sized.

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

Completeness2/5

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

For a generation tool with no output schema and no annotations, the description is insufficient. It does not explain what a GameMode class entails in Unreal Engine, what files or code are generated, or how this integrates with the user's project. The agent would lack crucial context to invoke and verify the tool correctly.

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

Parameters3/5

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

The schema already documents both parameters (module and className) with 100% coverage, so the baseline is 3. The description adds no additional semantics about the parameters, such as naming conventions or how they influence generation.

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

Purpose4/5

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

The description clearly states the tool generates a GameMode class, using a specific verb ('Generate') and resource ('GameMode class'). However, it does not distinguish itself from sibling generation tools like generate_character_class or generate_actor_component beyond naming the class type, and 'following UE best practices' is vague.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as generate_character_class or generate_actor_component. The description provides no context about prerequisites, project setup, or when a GameMode class is needed.

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

generate_integration_guideA

Generate a comprehensive integration guide for a system showing how to integrate it into an Unreal Engine project with setup steps, code examples, and best practices.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathsYesArray of absolute paths to C++ header files that make up the system
system_nameYesName of the system (e.g., 'Inventory System', 'Combat System')
targetAudienceNoTarget audience level: 'beginner', 'intermediate', or 'advanced'. Default: 'intermediate'
includeBlueprintsNoInclude Blueprint integration information. Default: true
includeCodeExamplesNoInclude C++ code examples. Default: true

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It only states the action ('generate a guide') without mentioning whether it reads the provided header files, what output format it produces (e.g., Markdown, text), whether it writes to disk, or any side effects. This leaves significant behavioral ambiguity.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core purpose and includes relevant details (setup steps, code examples, best practices) without any fluff. It is efficiently sized.

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

Completeness2/5

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

The description is too brief for a 5-parameter generation tool with no output schema. It omits crucial context such as the expected output format, dependency on valid header file paths, whether an existing Unreal project is required, and any potential read-only or write behavior. This leaves the agent uncertain about preconditions and return values.

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

Parameters3/5

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

The input schema provides 100% coverage with descriptions for all parameters. The tool description adds minimal parameter-related context, referencing 'setup steps, code examples, and best practices' which loosely maps to includeCodeExamples and includeBlueprints, but does not meaningfully enhance the schema.

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

Purpose5/5

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

The description uses a specific verb ('Generate') and resource ('comprehensive integration guide for a system') and clearly distinguishes itself from sibling code-generation and documentation tools by focusing on integration into an Unreal Engine project with setup steps, code examples, and best practices.

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

Usage Guidelines4/5

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

The description makes the primary context clear: it is for generating an integration guide for an Unreal Engine project. However, it does not explicitly name alternatives or provide exclusion criteria, so it misses the full 'when not to use' guidance.

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

generate_replication_codeB

Generate network replication code for properties and RPCs

ParametersJSON Schema
NameRequiredDescriptionDefault
rpcsNoRemote Procedure Calls to generate
classNameYesName of the class to add replication to
propertiesYesProperties to replicate

TDQS

B3.1/5.0
Behavior1/5

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

No annotations are available, and the description only states the action without disclosing side effects, output format, whether it modifies project files, or any requirements. This leaves significant behavioral uncertainty.

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

Conciseness5/5

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

A single sentence that is concise and front-loaded with the verb and object. No wasted words or redundant information.

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

Completeness1/5

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

For a code generation tool with no output schema and no annotations, the description fails to explain the outcome (e.g., generated code returned in response, file modifications, or compilation steps). This is a critical gap given the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema, but does not need to compensate since the schema is self-explanatory.

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

Purpose5/5

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

The description clearly states the verb 'Generate' with the specific resource 'network replication code' for 'properties and RPCs'. This is specific enough to distinguish it from sibling generation tools like generate_uclass or generate_actor_component.

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

Usage Guidelines3/5

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

The purpose implies usage in networking contexts, but there is no explicit guidance on when to choose this over alternatives, nor any exclusions. The user must infer when to use it.

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

generate_system_diagramB

Create a system architecture diagram in Mermaid format showing class relationships, inheritance, and dependencies. The diagram can be rendered in markdown viewers.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxDepthNoMaximum depth for relationships. Default: 3
file_pathsYesArray of absolute paths to C++ header files to include in the diagram
maxItemsPerClassNoMaximum number of properties/functions to show per class. Default: 5
includeInheritanceNoInclude inheritance relationships. Default: true
includeDependenciesNoInclude dependency relationships. Default: false

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for disclosing side effects, inputs, and output. It mentions the diagram is in Mermaid format and can be rendered in markdown viewers, but does not state that it reads C++ header files, whether it is read-only, or how invalid paths are handled.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and the second sentence adds a useful detail about markdown rendering. No wasted words.

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

Completeness3/5

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

The tool has no output schema, but the description implicitly indicates the output is Mermaid code. It does not mention the required file_paths parameter or that it focuses on C++ headers, though these are covered by the schema. Overall, it provides enough context to understand the tool's function, but lacks explicit mention of return value and prerequisites.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already well-documented. The description adds no additional meaning beyond what the schema 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.

Purpose5/5

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

The description clearly states the tool creates a system architecture diagram in Mermaid format, showing class relationships, inheritance, and dependencies. This distinguishes it from sibling tools like get_class_hierarchy (raw hierarchy data) or generate_documentation (documentation).

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention any prerequisites, exclusions, or alternative tools. It only gives a high-level purpose without situational context.

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

generate_uclassB

Generate a UClass following Unreal Engine conventions. Creates header and source files for a basic C++ class.

ParametersJSON Schema
NameRequiredDescriptionDefault
configNoConfig category (e.g., 'Game', 'Engine')
moduleNoModule name. Default: 'YourProject'
abstractNoWhether this is an abstract class
classNameYesName of the class (e.g., 'AMyActor', 'UMyObject')
parentClassNoParent class (e.g., 'AActor', 'UObject'). Default: 'UObject'
blueprintTypeNoWhether this class can be used as a Blueprint type
blueprintableNoWhether Blueprints can be derived from this class

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description bears the full burden of disclosing side effects. It mentions file creation but does not disclose potential overwrites, project prerequisites, naming conventions, or any mutation of the project structure. Given the tool generates code, these omissions are significant behavioral gaps.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action, and contains no filler. Every word contributes to conveying the tool's purpose and output, making it appropriately concise and well-structured.

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

Completeness2/5

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

Despite the schema documenting parameters, the description lacks critical contextual information for a code-generation tool: no mention of required project state, output locations, error handling, or return values. With no output schema and no annotations, the description is insufficient for an agent to fully anticipate tool behavior in a real workflow.

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

Parameters3/5

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

The input schema provides 100% coverage of all 7 parameters with descriptions and examples, so the schema carries the semantic weight. The description adds no extra context about parameter interactions or generated code structure, but baseline 3 is appropriate since the schema is fully documented.

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

Purpose5/5

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

The description clearly states the tool generates a UClass and creates header/source files, with a specific scope of 'basic C++ class' and 'following Unreal Engine conventions.' This distinguishes it from sibling generation tools like generate_game_mode or generate_character_class, which target more specialized class types.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives such as generate_blueprint_compatible_class or other specialized generators. The description implies usage for basic UClass creation but does not provide exclusion criteria or decision context, leaving the agent without clear selection logic.

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

get_actor_componentsB

Get component hierarchy for an actor

ParametersJSON Schema
NameRequiredDescriptionDefault
actorPathYesFull path to the actor

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for disclosing behavior. It merely states the action without mentioning side effects, error handling, or what exactly is returned. While 'Get' implies a read operation, no explicit behavioral details are given.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words. It is highly concise and well-structured for a simple tool.

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

Completeness3/5

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

With no output schema or annotations, the description should explain what the returned hierarchy looks like or any important constraints. It provides the concept but lacks specifics about the return format and edge cases, making it viable but incomplete.

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

Parameters3/5

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

Schema description coverage is 100% (actorPath is described as 'Full path to the actor'), so the schema already documents the parameter. The description adds no additional semantic information beyond the schema, warranting the baseline score of 3.

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

Purpose5/5

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

The description uses a specific verb 'Get' and resource 'component hierarchy' for an actor, clearly distinguishing it from similar siblings like get_class_hierarchy, which targets class hierarchies rather than actor components.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool instead of alternatives such as get_class_hierarchy or inspect_blueprint. The description lacks any context about prerequisites or typical use cases.

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

get_asset_dependenciesC

Get dependencies for a specific asset (placeholder for future implementation)

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_pathYesPath to the asset

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden. The placeholder warning hints at incomplete implementation but does not disclose actual runtime behavior such as return values, errors, or side effects. This is insufficient transparency.

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

Conciseness5/5

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

The description is one concise sentence, immediately conveying the action and adding the placeholder note. No filler or redundancy.

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

Completeness2/5

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

As a minimal description with no output schema or annotations, it leaves many questions unanswered: what dependencies are, return format, recursion, error behavior. The placeholder note mitigates but does not compensate for the lack of context.

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

Parameters3/5

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

Schema coverage is 100% for the single asset_path parameter, and the description does not add any semantic details beyond the schema. Baseline of 3 applies because the schema handles the parameter documentation.

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

Purpose4/5

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

The description clearly states the tool retrieves dependencies for a given asset, using a specific verb and resource. However, the '(placeholder for future implementation)' caveat lowers confidence about current functionality, so it's 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus sibling tools like search_assets or list_assets_live. There is no mention of context, alternatives, or exclusions.

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

get_blueprint_functionsA

List all functions in a Blueprint with their signatures, parameters, and properties

ParametersJSON Schema
NameRequiredDescriptionDefault
blueprint_pathYesRelative path to the Blueprint asset

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description bears the full burden of behavioral disclosure. It indicates a read-only operation ('List') but does not mention error behavior, prerequisites (e.g., valid project path), or output format, leaving important behavioral traits unspecified.

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

Conciseness5/5

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

The description is a single, clear sentence that front-loads the action and avoids redundancy, earning the maximum score for conciseness and structure.

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

Completeness3/5

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

While the description covers the core purpose and return content, the lack of an output schema and the absence of details about scope (e.g., inherited functions, sorting) or error handling leaves the description minimally sufficient but not fully complete for a tool with no structured output specification.

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

Parameters3/5

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

The schema fully describes the single parameter blueprint_path as a relative path to the Blueprint asset (100% coverage), and the description does not add additional semantic detail beyond what the schema already provides, so it meets the baseline for schema-covered parameters.

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

Purpose5/5

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

The description uses a specific verb 'List' with a clear resource 'functions in a Blueprint' and specifies the return contents (signatures, parameters, properties), distinguishing it from sibling tools like get_blueprint_variables which list variables.

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving function definitions, but it does not explicitly state when to choose it over alternatives like inspect_blueprint or search_blueprint_nodes, nor does it provide exclusions or context about prerequisites.

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

get_blueprint_variablesA

List all variables in a Blueprint with their types, categories, and properties

ParametersJSON Schema
NameRequiredDescriptionDefault
blueprint_pathYesRelative path to the Blueprint asset

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of disclosure. The word 'List' indicates a read-only operation, and the description mentions what information is returned, but it does not disclose potential limitations, error behavior, or whether the variable values are also returned.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the purpose without any waste. It earns its place and is easy to parse quickly.

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

Completeness4/5

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

For a simple single-parameter listing tool, the description provides sufficient context: the operation, the resource, and the output details. It is slightly limited by the lack of an output schema and absence of any guidance on related tools, but the core information is complete enough for straightforward use.

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

Parameters3/5

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

The input schema already describes the only parameter, 'blueprint_path', as 'Relative path to the Blueprint asset', giving 100% coverage. The description adds no additional meaning about path format, resolution, or examples beyond what the schema already provides.

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

Purpose5/5

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

The description uses a specific verb ('List') with a clear resource ('all variables in a Blueprint') and specifies the scope (types, categories, properties). It clearly distinguishes from sibling tools like get_blueprint_functions, which lists functions rather than variables.

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

Usage Guidelines3/5

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

The usage is implied by the description: it is for retrieving variable definitions from a Blueprint. However, it does not explicitly state when not to use this tool or mention alternatives such as get_blueprint_functions, inspect_blueprint, or add_blueprint_variable.

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

get_class_hierarchyA

Get the inheritance hierarchy for a specific C++ class

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYesName of the class

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'Get' implies a read-only operation, and no side effects are suggested, which is appropriate for a simple getter. However, it does not disclose the output format, failure behavior (e.g., unknown class), or whether the hierarchy includes both ancestors and descendants, leaving some ambiguity.

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

Conciseness5/5

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

The description is a single, concise sentence that directly states the tool's purpose without any redundant wording or filler. It is immediately comprehensible and well-structured.

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

Completeness3/5

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

Given the tool's low complexity (one parameter) and high schema coverage, the description is mostly complete. However, the absence of an output schema and annotations means the description should ideally clarify the return structure (e.g., list of parent classes, child classes, or both) and any project context requirements, which are currently unspecified.

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

Parameters3/5

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

The schema adequately describes the sole parameter 'class_name' with a simple 'Name of the class' (100% coverage). The description adds context by specifying 'C++ class' and 'inheritance hierarchy', but it does not clarify expected naming conventions (e.g., full path, case sensitivity) or the precise meaning of 'hierarchy' in terms of output.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('inheritance hierarchy') for a specific target ('C++ class'), making the tool's function immediately clear. It also implicitly distinguishes itself from sibling query tools like 'find_class_usage' and 'inspect_blueprint' by focusing solely on class hierarchy.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. With several sibling tools that could also retrieve class-related information (e.g., 'find_class_usage', 'get_blueprint_functions'), explicit usage guidance is missing.

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

get_game_infoB

Retrieve the current game project information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only says 'retrieve', implying a read-only operation, but gives no details about return format, error handling, or prerequisites (e.g., whether a project must be open).

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

Conciseness5/5

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

The description is a single short sentence with no redundant words. It is appropriately sized for a simple getter tool.

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

Completeness3/5

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

For a tool with no parameters and no output schema, the description is minimally sufficient but lacks important context. It does not specify what 'current game project information' includes or how the return value is structured, and it does not differentiate from similar siblings.

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

Parameters4/5

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

The tool has zero parameters and the schema description coverage is trivially 100%. As per guidelines, a baseline of 4 is appropriate since no parameter explanation is needed.

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

Purpose4/5

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

The description uses a specific verb ('Retrieve') and identifies the resource ('current game project information'), clearly stating the tool's function. However, it does not differentiate from the sibling tool 'get_live_project_info', which appears to serve a similar purpose.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'get_live_project_info' or 'get_ue_system'. There is no mention of context, exclusions, or preferred use cases.

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

get_live_project_infoA

Get live project information from the running Unreal Engine Editor via Adastrea-Director (prefers live data over cached)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It does disclose a key behavior—preferring live data over cached—and mentions the dependency on the running editor. However, it does not specify safety (read-only), error behaviors, or return format details, leaving some gap.

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

Conciseness5/5

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

The description is a single, focused sentence that conveys the essential purpose and the live-data preference without any fluff. Every word adds value, making it highly concise and well-structured.

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

Completeness3/5

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

The tool is simple with zero parameters and no output schema, but the description's 'project information' is vague and could mean many things. It does not describe the structure or types of information returned, which is a notable gap given the absence of an output schema. More specificity about the return value would improve completeness.

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

Parameters4/5

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

The input schema is empty (0 parameters), and schema description coverage is 100%, so the schema already exhaustively documents parameters. The description correctly avoids adding irrelevant parameter details. Baseline 4 applies for zero-parameter tools.

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

Purpose5/5

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

The description clearly states the tool's action ('Get'), resource ('live project information'), and source ('running Unreal Engine Editor'). It also distinguishes itself by noting the preference for live data over cached, which sets it apart from potential siblings like get_game_info. The verb+resource structure is specific and unambiguous.

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

Usage Guidelines3/5

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

The description implies when to use this tool (when live data is needed over cached) but does not explicitly name alternatives or provide exclusion criteria. It gives a contextual hint about the live-vs-cached tradeoff but lacks clear 'use this instead of X' guidance.

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

get_ue_systemB

Get detailed information about a specific Unreal Engine system by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
systemIdYesSystem ID (e.g., 'rendering-system', 'gameplay-framework', 'animation-system')

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'get detailed information.' It does not specify what 'system' refers to, whether data comes from a live project or a knowledge base, what happens if the ID is not found, or any other behavioral traits.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It effectively communicates the core purpose without unnecessary elaboration.

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

Completeness3/5

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

For a simple getter with one parameter, the description is minimally adequate, but it lacks context about what constitutes a 'system' and how this tool relates to other knowledge-oriented tools like query_ue_knowledge or get_ue_systems_by_tag. No output schema means additional context would be helpful.

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

Parameters3/5

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

The schema fully covers the single parameter systemId with descriptive examples, so the baseline is 3. The description adds no additional parameter semantics beyond 'by ID,' which is already evident from the schema.

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

Purpose5/5

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

The description clearly states the tool's function: retrieving detailed information about a specific Unreal Engine system by ID. The verb 'get' and resource 'system' are precise, and the 'by ID' qualifier distinguishes it from siblings like get_ue_systems_by_tag.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as get_ue_systems_by_tag or get_related_ue_systems. It only states the mechanism (by ID) but does not provide context for choosing this tool.

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

get_ue_systems_by_tagA

Get all Unreal Engine systems that match a specific tag

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag to filter by (e.g., 'rendering', 'gameplay', 'animation', 'networking')

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. The phrase 'Get all' implies a read operation and suggests a list return, which is transparent. However, it does not explicitly confirm read-only behavior, mention absence of side effects, or describe potential large result sets. It adds some behavioral context but not rich detail.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It states the action, resource, and filter in under 10 words.

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

Completeness4/5

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

Given the low complexity (1 parameter, no output schema, simple list operation), the description is mostly complete. It conveys the core purpose and the filter parameter is well documented in the schema. However, it lacks any sibling differentiation or usage guidance, which is a minor gap for context.

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

Parameters3/5

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

Schema description coverage is 100%: the 'tag' parameter already has a clear description with examples. The tool description simply references 'a specific tag' and adds no new meaning beyond the schema. Baseline of 3 applies because the schema handles parameter semantics well.

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

Purpose5/5

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

The description clearly states the verb 'Get' and resource 'Unreal Engine systems', with a specific filter by tag. It implicitly distinguishes itself from sibling tools like get_ue_system (by ID) and get_related_ue_systems (by relation) by specifying 'match a specific tag'.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It doesn't mention default use cases, prerequisites, or how it contrasts with get_ue_system or get_related_ue_systems. The usage context is only implied by the name.

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

inspect_blueprintA

Get full Blueprint structure including variables, functions, graphs, and components

ParametersJSON Schema
NameRequiredDescriptionDefault
blueprint_pathYesRelative path to the Blueprint asset (e.g., 'Blueprints/BP_Character.uasset')

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description must convey behavioral traits. It states what information is returned but does not explicitly confirm the operation is read-only or free of side effects. Although the verb 'Get' strongly implies a safe read, the description does not disclose potential performance costs or output format, leaving some behavioral ambiguity.

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

Conciseness5/5

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

The description is a single, direct sentence with no wasted words. It front-loads the action and resource, then lists what is included, making it easy to parse quickly.

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

Completeness4/5

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

For a simple read-only tool with one well-documented parameter, the description sufficiently covers the output scope by listing the major Blueprint components. However, the absence of an output schema and lack of detail about the structure's hierarchy or shape leave some room for ambiguity, so it does not reach a perfect 5.

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

Parameters3/5

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

Schema description coverage is 100%: the sole parameter blueprint_path is well described with a concrete example. The tool description adds no additional parameter-level detail beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('full Blueprint structure'). It explicitly enumerates the included contents (variables, functions, graphs, components), which distinguishes it from narrower sibling tools like get_blueprint_functions or get_blueprint_variables.

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

Usage Guidelines3/5

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

The description implies usage when a comprehensive overview of a Blueprint is needed, but it does not explicitly contrast with alternatives or state when not to use it. It provides context ('full') but lacks explicit exclusionary guidance, resulting in a score of 3.

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

instantiate_templateA

Create an actor from a template (requires Adastrea-Director integration)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional custom name for the spawned actor
scaleNoWorld scale for the actor
folderNoLevel folder to place actor in
locationNoWorld location to spawn the actor
rotationNoWorld rotation for the actor
templateIdYesID of the template to instantiate

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description bears the full burden of disclosing behavior. It only mentions the integration requirement, but does not disclose side effects, permissions, return values, or any destructive implications. For a creation tool, this is a significant transparency gap.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the core purpose and a key requirement without any wasted words. It is highly concise and well-structured.

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

Completeness2/5

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

Given the tool's complexity (6 parameters including nested objects), lack of annotations, and no output schema, the description is too sparse. It does not mention what happens on success, failure modes, or return data, leaving the agent with insufficient context for correct invocation.

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

Parameters3/5

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

The input schema has 100% description coverage, with each parameter documented. The description itself adds no extra parameter context beyond the schema, so it meets the baseline but does not enhance understanding of how the parameters interact or are used.

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

Purpose5/5

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

The description clearly states the action ('Create an actor') and the resource ('from a template'), which distinguishes it from sibling tools like spawn_actor (likely direct spawn) and create_actor_template (creates templates). It is specific and unambiguous.

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

Usage Guidelines4/5

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

The description provides a clear prerequisite ('requires Adastrea-Director integration'), indicating when this tool is available and needed. However, it does not explicitly mention alternatives or when not to use it, though the purpose already differentiates it from siblings.

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

list_actor_templatesC

List all available actor templates

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoOptional tags filter
categoryNoOptional category filter

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral aspects but only states the action. It does not clarify that it is a read-only operation, what fields the returned templates contain, or how the optional filters interact with the 'all' claim, creating ambiguity.

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

Conciseness4/5

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

The description is a single, efficient sentence with no fluff, which is appropriately front-loaded. However, it is slightly under-specified, missing useful context that could be added without harming conciseness.

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

Completeness2/5

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

Given the absence of an output schema and annotations, the description should explain what constitutes an actor template, the shape of the response, and how filtering works. The single clause leaves the agent with insufficient information for reliable invocation.

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

Parameters3/5

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

Both parameters (tags, category) are already described in the input schema with 100% coverage. The description adds no additional meaning about these filters, so it meets the baseline without enhancing parameter understanding.

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

Purpose4/5

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

The description uses the specific verb 'List' and identifies the resource as 'all available actor templates', making the operation clear. It distinguishes from sibling tools like create_actor_template and instantiate_template by focusing on the listing action, though it does not 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.

Usage Guidelines2/5

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

The description provides no context on when to use this tool versus alternatives such as instantiate_template or get_actor_components. There is no mention of prerequisites or typical use cases, leaving the agent to infer the purpose from the name alone.

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

list_assets_liveA

List assets from the running Unreal Engine Editor in real-time via Adastrea-Director (prefers live data over cached)

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional filter string to search for specific assets

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It reveals that the tool operates on the running editor and has a preference for live over cached data, which are meaningful behavioral traits. However, it does not clarify fallback behavior if live data is unavailable or potential 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.

Conciseness5/5

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

The description is a single sentence that is direct and front-loaded. Every word contributes to explaining what the tool does and its key differentiator, with no redundant or filler content.

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

Completeness4/5

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

Given the simplicity of the tool (one optional parameter, no output schema), the description covers the core context: real-time operation from the running editor and a preference for live data. It lacks explicit details on output format or fallback behavior, but these are not critical for such a straightforward list operation.

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

Parameters3/5

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

The input schema provides 100% coverage for the single 'filter' parameter, so the description adds no extra parameter semantics. Baseline of 3 applies because the schema fully documents the parameter, and the description does not contradict or extend it.

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

Purpose5/5

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

The description clearly identifies the tool as listing assets from the running Unreal Engine Editor in real-time. It also distinguishes itself from similar tools like search_assets by explicitly stating a preference for live data over cached, making its purpose unambiguous.

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

Usage Guidelines3/5

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

The phrase 'prefers live data over cached' implies a use case for real-time asset state, but it does not explicitly name alternatives or state when not to use this tool. Usage context is communicated but not formalized with clear exclusions or alternative recommendations.

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

modify_actor_propertiesB

Modify properties of an existing actor in the level (requires Adastrea-Director integration)

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags to assign to the actor
actorPathYesFull path to the actor (e.g., '/Game/Maps/MainLevel.MainLevel:PersistentLevel.Actor_0')
transformNoTransform modifications
propertiesNoProperties to modify with their new values

TDQS

B3.3/5.0
Behavior2/5

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 only states the action 'modify' and the integration requirement, but does not disclose whether the change is persistent, what happens if the actorPath is invalid, or any side effects. This is insufficient 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.

Conciseness4/5

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

The description is a single, front-loaded sentence with the verb and resource, followed by a parenthetical prerequisite. It is concise and efficient, though it omits some potentially useful context that could make it more informative without being verbose.

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

Completeness2/5

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

Given the tool's complexity (nested transform object, multiple property types) and the absence of both annotations and an output schema, the description is too minimal. It omits return behavior, error handling, and how the integration affects usage, leaving the agent to infer critical context.

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

Parameters3/5

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

The input schema provides descriptions for all parameters (100% coverage), so the baseline is 3. The tool description adds no additional parameter-specific meaning beyond what the schema already states; it only repeats the general 'modify properties' concept.

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

Purpose5/5

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

The description uses a specific verb 'Modify' and clearly identifies the resource as 'properties of an existing actor in the level'. This distinguishes it from sibling tools like 'spawn_actor' (creation) and 'modify_blueprint_property' (blueprint-level properties).

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

Usage Guidelines3/5

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

The description mentions a prerequisite ('requires Adastrea-Director integration') but does not explicitly state when to prefer this tool over alternatives or when not to use it. The usage context is implied by the tool's name and purpose, but no exclusions or alternative comparisons are provided.

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

modify_blueprint_propertyA

Change the default value of a Blueprint variable (requires Adastrea-Director integration)

ParametersJSON Schema
NameRequiredDescriptionDefault
new_valueYesNew default value for the property
property_nameYesName of the property/variable to modify
blueprint_pathYesRelative path to the Blueprint asset

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does add the integration requirement, which is a useful contextual signal. However, it does not disclose side effects, reversibility, whether the change propagates to instances, or potential failure modes, leaving significant behavioral ambiguity 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.

Conciseness5/5

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

The description is a single, concise sentence that front-loads the action and includes the key prerequisite. It is free of redundancy and gets straight to the point.

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

Completeness4/5

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

For a mutation tool with full schema coverage and no output schema, the description adequately covers the purpose and the prerequisite. It does not explain return values or errors, but the core usage is clear and sufficient for an agent to understand what the tool does and what inputs are needed.

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

Parameters3/5

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

The input schema provides descriptions for all three parameters (blueprint_path, property_name, new_value) with 100% coverage. The description adds no additional parameter semantics beyond what the schema already states, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Change the default value') and the target ('Blueprint variable'), distinguishing it from siblings like 'add_blueprint_variable' (adds new) and 'get_blueprint_variables' (reads). It also mentions a specific integration requirement, further clarifying its scope.

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

Usage Guidelines4/5

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

The description includes a clear prerequisite ('requires Adastrea-Director integration') that tells the agent when the tool is available. However, it does not explicitly mention alternatives or when-not-to-use, though the context implies it is for existing blueprint variables rather than adding or inspecting them.

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

query_ue_knowledgeA

Search the UE5.6+ knowledge database for information about Unreal Engine systems, features, and best practices

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (keywords, system names, or tags)

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states the tool performs a search, implying a read-only operation, but it does not mention return format, pagination, result limits, or whether it returns snippets, summaries, or references. This is a significant gap for a tool with no output schema.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler or redundancy. It efficiently communicates the tool's purpose and scope, entirely appropriate for a search tool.

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

Completeness3/5

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

While the tool is simple (one parameter, low complexity), the description does not clarify what the search returns or how results are structured, which is needed since there is no output schema. It also does not relate to sibling knowledge tools, leaving some contextual ambiguity. However, for a basic search action, the core function is adequately conveyed.

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

Parameters3/5

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

Schema coverage is 100%: the sole parameter 'query' is described as 'Search query (keywords, system names, or tags)'. The tool description adds no additional meaning to the parameter beyond what the schema already provides, so the baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states a specific verb ('Search'), a resource ('UE5.6+ knowledge database'), and the scope ('Unreal Engine systems, features, and best practices'). This distinguishes it from sibling tools that focus on code, assets, actors, or blueprint operations, making its purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage when one needs general Unreal Engine information, but it does not explicitly state when to use this tool versus alternatives like get_ue_systems_by_tag or get_related_ue_systems. No exclusions or alternative recommendations are provided, so guidance is implied rather than explicit.

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

run_python_scriptB

Execute Python code in the Unreal Engine Editor (requires Adastrea-Director to be running)

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesPython code to execute in the UE Editor

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only notes the prerequisite and omits any mention of potential side effects, permissions, or safety implications of executing arbitrary code in the editor, leaving a significant transparency gap.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently communicates both purpose and prerequisite without any wasted words.

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

Completeness2/5

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

Executing arbitrary Python code is a high-complexity, potentially destructive operation, yet the description provides no information about return values, error handling, or effects on the editor. With no output schema and no annotations, the description is insufficient for an agent to safely predict behavior.

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

Parameters3/5

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

The input schema covers 100% of parameters with a description that mirrors the tool description ('Python code to execute in the UE Editor'). The description adds no additional meaning about expected format, limits, or execution behavior, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly specifies 'Execute Python code in the Unreal Engine Editor,' giving a precise verb and resource. The resource distinguishes it from sibling tools like execute_console_command, which handles console commands rather than Python scripts.

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

Usage Guidelines3/5

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

The description implies usage by stating it executes Python code, but it does not explicitly compare with alternatives or state when not to use it. It mentions a prerequisite (Adastrea-Director running), but that is not a full usage guideline.

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

scan_unreal_projectB

Perform a deep scan of an Unreal Engine project structure, analyzing .uproject files, modules, plugins, C++ classes, and assets

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathYesAbsolute path to the Unreal Engine project directory (containing the .uproject file)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It does not state whether the scan is read-only, if it requires engine installation, what side effects exist, performance implications, or what the return value looks like. The list of analyzed elements is useful but insufficient.

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

Conciseness5/5

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

A single, front-loaded sentence clearly states the action and scope. No wasted words; every element (uproject, modules, plugins, C++ classes, assets) adds specificity.

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

Completeness3/5

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

The tool has one well-documented parameter and a clear purpose, but no output schema and no annotation. The description does not explain the return value, scan depth, or any limitations. It is minimally viable but leaves important contextual gaps for a 'deep scan' tool.

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

Parameters3/5

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

The schema describes project_path as an absolute path to the project directory containing the .uproject file, achieving 100% coverage. The description adds no additional parameter meaning beyond that, but the schema fully documents the param, so the baseline 3 applies.

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

Purpose4/5

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

The description uses a specific verb ('scan') and resource ('Unreal Engine project structure') with concrete elements (uproject, modules, plugins, C++ classes, assets). It distinguishes from many siblings like get_blueprint_functions, but does not explicitly differentiate from validate_project_structure, which could overlap.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It implies usage via 'deep scan' but does not state a specific scenario or contrast with sibling tools.

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

search_assetsA

Search for assets in the scanned Unreal project by name, type, or path

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (asset name, type, or path)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden. It confirms the search is a read operation, but provides no details on query behavior (e.g., substring vs exact match, case sensitivity), result format, or pagination. The description is too sparse to disclose meaningful behavioral traits beyond the operation.

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

Conciseness5/5

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

A single sentence that is direct and front-loaded. No redundant words.

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

Completeness3/5

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

For a simple search tool with one param and no output schema, the description covers the core action and scope, but it omits details about return values, query semantics, and relationship to the scan process. It is minimally viable but incomplete for an agent needing to anticipate results.

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

Parameters3/5

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

Schema coverage is 100%, with the query parameter description already stating 'asset name, type, or path'. The tool description repeats this same information, adding no new meaning. Baseline 3 applies because the schema fully documents the parameter.

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

Purpose5/5

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

The description clearly states a specific verb (Search) and resource (assets in scanned Unreal project), and lists search dimensions (name, type, or path). This distinguishes it from sibling tools like list_assets_live and search_code.

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

Usage Guidelines3/5

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

The description implies the tool is for scanned (non-live) projects via the word 'scanned', but it does not explicitly state when to use this tool versus alternatives like list_assets_live or search_blueprint_nodes. No exclusions or alternative tool names are mentioned.

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

search_blueprint_nodesA

Find specific node types within a Blueprint (e.g., FunctionCall, Branch, ForLoop)

ParametersJSON Schema
NameRequiredDescriptionDefault
node_typeNoOptional node type to search for (e.g., 'FunctionCall', 'Branch', 'ForLoop')
blueprint_pathYesRelative path to the Blueprint asset

TDQS

A3.6/5.0
Behavior3/5

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

The description carries the full behavioral transparency burden since no annotations are present. The verb 'Find' implies a read-only search, but the description does not explicitly state that the tool makes no modifications, nor does it describe search traversal details (e.g., recursive or limited to top-level graph). It adds minimal context beyond the name.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the primary action ('Find') and includes helpful examples. 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.

Completeness2/5

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

Given the absence of an output schema, the description should at least hint at what the tool returns (e.g., list of matching nodes, their locations, or a count). It does not, leaving the agent uncertain about the response format. The low complexity (2 parameters) is offset by this missing return-value information.

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

Parameters3/5

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

Schema coverage for parameters is 100%, so the description adds little beyond the schema. The examples for node_type in the description are also present in the parameter's own description. There is no extra meaning provided, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the verb 'Find' and the resource 'specific node types within a Blueprint', with concrete examples (FunctionCall, Branch, ForLoop). This distinguishes it from sibling tools like get_blueprint_functions (which retrieves functions) or search_assets (which searches broader asset content).

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

Usage Guidelines3/5

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

The description gives clear context: use when you need to locate particular node types inside a Blueprint. However, it does not explicitly mention alternatives or when not to use this tool, leaving differentiation to the agent's inference. No exclusions or comparisons to siblings are provided.

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

search_codeA

Search for C++ classes, structs, enums, or interfaces in the scanned Unreal project

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (class name, type, etc.)

TDQS

A3.7/5.0
Behavior2/5

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 does not state whether the search is read-only, how results are returned, or any limitations (e.g., exact vs. partial matching). The mention of 'scanned project' adds some context but falls short of transparently describing 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.

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose without any filler. Every word earns its place, making it highly concise and well-structured.

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

Completeness3/5

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

For a simple one-parameter search tool, the description provides a clear scope but lacks critical context such as return format, behavioral details, or usage alternatives. Since there is no output schema and no annotations, the description should compensate more; it falls short of fully rounding out the tool's context, though it remains minimally viable.

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

Parameters4/5

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

The schema already documents the 'query' parameter with 100% coverage, but the description adds valuable meaning by specifying the acceptable targets (C++ classes, structs, enums, interfaces). This clarifies what a valid query looks like beyond the generic schema text, adding meaningful semantic context.

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

Purpose5/5

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

The description clearly states the tool searches for C++ classes, structs, enums, or interfaces in the scanned Unreal project. This specific verb+resource distinguishes it from sibling tools like search_assets (which searches assets) and find_class_usage (which finds usages), making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage when you need to locate specific C++ code entities, and it mentions the prerequisite that the project must be scanned. However, it provides no explicit guidance on when-not-to-use or alternatives among the many sibling tools, so usage guidance is only implied rather than explicit.

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

spawn_actorB

Spawn a new actor in the current level (requires Adastrea-Director integration)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional custom name for the actor instance
tagsNoTags to assign to the actor
scaleNoWorld scale for the actor
folderNoLevel folder to place actor in
locationNoWorld location to spawn the actor
rotationNoWorld rotation for the actor
classNameYesActor class to spawn (e.g., 'AStaticMeshActor', '/Game/Blueprints/BP_Character.BP_Character_C')
propertiesNoInitial property values for the actor

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only mentions the integration requirement. It does not state that spawning modifies the level, whether the operation is permanent, what side effects occur, or any permission/authentication requirements. This is a significant transparency gap for a creation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence that immediately conveys the core action and a key prerequisite. There is no wasted wording or redundant information, making it easy to parse and remember.

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

Completeness2/5

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

For a tool with 8 parameters, nested schemas, no output schema, and no annotations, the description is too minimal. It does not clarify what 'current level' refers to, whether the spawned actor is saved persistently, what the function returns, or any additional preconditions beyond integration. This leaves significant ambiguity for an agent.

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

Parameters3/5

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

The input schema provides 100% coverage of parameter descriptions, so the baseline is 3. The tool description adds no parameter-specific meaning beyond the schema, such as clarifying the format of className or the world coordinate systems for nested objects. It is adequate but not enhanced.

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

Purpose5/5

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

The description clearly states the tool's function: 'Spawn a new actor in the current level'. It uses a specific verb and resource, and the mention of 'current level' adds context. It also distinguishes from sibling tools like instantiate_template, as spawning directly from a class is a different operation.

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

Usage Guidelines3/5

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

The description gives a prerequisite ('requires Adastrea-Director integration') but does not provide guidance on when to use this tool versus alternatives like instantiate_template or create_actor_template. It implies an intended use case but lacks explicit exclusions or alternative selection criteria.

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

update_game_infoC

Update or add game project information. Can update individual fields or multiple fields at once.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoThe name of the game
teamNoTeam members and their roles
genreNoThe game's genre (e.g., RPG, FPS, Strategy)
engineNoGame engine being used (e.g., Unity, Unreal, Godot)
statusNoCurrent development status (e.g., Planning, In Development, Testing, Released)
featuresNoKey features of the game
platformNoTarget platforms (e.g., PC, Console, Mobile)
timelineNoProject timeline information
descriptionNoA detailed description of the game
custom_fieldsNoAny additional custom fields for project-specific information
repository_urlNoURL to the game's source code repository (e.g., GitHub URL)
technical_detailsNoTechnical specifications and architecture details

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but reveals little. It says 'update or add' which implies mutation, but doesn't explain side effects, whether unspecified fields are preserved, or return behavior. For a tool that can modify many fields, this is insufficient.

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

Conciseness5/5

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

Two short sentences that are front-loaded and free of waste. The first sentence states the action, the second adds a useful usage detail about granularity. Very concise.

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

Completeness2/5

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

Despite having 12 parameters including nested objects and no output schema, the description is minimal. It doesn't clarify how the tool behaves in edge cases (e.g., creating vs updating), what the response is, or any requirements. The high parameter count demands more context than provided.

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

Parameters3/5

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

The input schema has 100% description coverage, so the baseline is 3. The description adds no parameter-specific meaning beyond what the schema already provides; it only generalizes that fields can be updated individually or together.

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

Purpose4/5

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

The description clearly identifies the action ('update or add') and the resource ('game project information'). It conveys a write operation that can modify existing or create new game info. However, it doesn't list specific fields, but the schema covers that, so it's still clear enough.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like get_game_info or clear_game_info. The statement about updating individual or multiple fields at once hints at how, but not when to choose this tool over others.

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

validate_project_structureC

Validate an Unreal Engine project structure and check for common issues

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathYesAbsolute path to the Unreal Engine project directory

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It states the tool validates and checks for issues, implying a read-only analysis, but does not disclose return format, side effects, or what constitutes 'common issues'. This leaves significant ambiguity.

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

Conciseness5/5

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

The description is a single sentence with no redundant words, making it concise and front-loaded.

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

Completeness2/5

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

Given there is no output schema and no annotations, the description should explain what the validation returns or how results are presented, but it does not. It also lacks details about the scope of validation, making it incomplete for a tool with no structured output.

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

Parameters3/5

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

The input schema already fully documents the single parameter (project_path) with a description, giving 100% schema coverage. The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description uses a specific verb ('validate') and resource ('Unreal Engine project structure') and indicates the action ('check for common issues'), making the purpose clear. However, it does not differentiate from the sibling tool 'scan_unreal_project', which might also inspect projects.

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

Usage Guidelines2/5

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

The description gives a general use case (validating a project) but provides no guidance on when to prefer this tool over alternatives like 'scan_unreal_project', nor any prerequisites or exclusion criteria.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 44 tool updatesv1.0.0
    • First observedadd_blueprint_function
    • First observedadd_blueprint_variable
    • First observedclear_game_info
    • First observedcreate_actor_template
    • First observeddelete_actor_template
    • First observedexecute_console_command
    • First observedextract_code_metadata
    • First observedfind_class_usage
    • First observedgenerate_actor_component
    • First observedgenerate_blueprint_compatible_class
    • First observedgenerate_character_class
    • First observedgenerate_data_asset
    • First observedgenerate_data_table
    • First observedgenerate_documentation
    • First observedgenerate_game_mode
    • First observedgenerate_integration_guide
    • First observedgenerate_replication_code
    • First observedgenerate_system_diagram
    • First observedgenerate_uclass
    • First observedget_actor_components
    • First observedget_asset_dependencies
    • First observedget_blueprint_functions
    • First observedget_blueprint_variables
    • First observedget_class_hierarchy
    • First observedget_game_info
    • First observedget_live_project_info
    • First observedget_related_ue_systems
    • First observedget_ue_system
    • First observedget_ue_systems_by_tag
    • First observedinspect_blueprint
    • First observedinstantiate_template
    • First observedlist_actor_templates
    • First observedlist_assets_live
    • First observedmodify_actor_properties
    • First observedmodify_blueprint_property
    • First observedquery_ue_knowledge
    • First observedrun_python_script
    • First observedscan_unreal_project
    • First observedsearch_assets
    • First observedsearch_blueprint_nodes
    • First observedsearch_code
    • First observedspawn_actor
    • First observedupdate_game_info
    • First observedvalidate_project_structure

TDQS

B3.2/5.0

Scored across 44 tools

Disambiguation3/5

Several tools overlap in purpose, such as inspect_blueprint versus get_blueprint_functions/get_blueprint_variables, and generate_documentation versus extract_code_metadata. The descriptions help, but an agent could still hesitate between similar getters and generators. The placeholder get_asset_dependencies also muddies the boundary between real and non-functional tools.

Naming Consistency5/5

Tool names follow a highly consistent snake_case verb_noun pattern throughout, e.g., get_, create_, update_, delete_, search_, generate_, and execute_. Minor variations like query_, scan_, or inspect_ are still predictable and fit the established style.

Tool Count2/5

With 44 tools, the server far exceeds the 25-tool threshold and feels like a monolithic collection of several distinct Unreal Editor subsystems. Each tool may be individually useful, but the overall surface is too heavy for an agent to navigate efficiently.

Completeness3/5

The set covers major workflows: project scanning, code search, blueprint inspection, actor templates, code generation, and UE knowledge lookup. However, there are notable gaps such as get_asset_dependencies being explicitly a placeholder, missing blueprint variable/function deletion, no actor destruction, and no component mutation operations.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for controlling Unreal Engine 5 from AI agents, providing 120+ commands for spawning actors, editing Blueprints, managing assets, and more via CLI or MCP.
    54 PyPI
    209
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    An MCP server that gives AI agents broad control over Unreal Engine 5.7, enabling actor/asset/level management, Blueprint and material creation, screenshots, automation, and arbitrary editor Python execution.
    35
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server that connects Claude to Unreal Engine 5.8 via the official Remote Control API, enabling asset manipulation, actor control, level operations, and AI-powered 3D model generation (via Meshy) through natural language.
    -