Skip to content

Tool Reference

Recep Samet Yıldız edited this page Sep 1, 2026 · 1 revision

Tool Reference

Complete reference for all UEBPCracker MCP tools. All tools are dispatched through call_tool with the nested arguments format.

MCP call structure:

{
  "params": {
    "name": "call_tool",
    "arguments": {
      "toolset_name": "UEBPCrackerEditor.UEBPCrackerToolset",
      "tool_name": "ToolNameHere",
      "arguments": { ... }
    }
  }
}

Tool names are PascalCaseHealthCheck, not health_check.


Read-Only Tools (L0)

HealthCheck

Returns plugin version, engine version, write roots, and policy fingerprint.

Parameters: none

Response:

{
  "success": true,
  "engineVersion": "5.8.2",
  "pluginVersion": "0.1.0",
  "toolsetVersion": "0.1.0",
  "writeRoots": ["/Game/AI/"],
  "bWriteEnabled": true,
  "bLoopbackBind": true,
  "policyFingerprint": "sha1:5308baef..."
}

GetCapabilities

Returns full capability summary: tools, resource limits, security policy, domain availability.

Parameters: none

Response includes:

  • tools[] — all registered tool names
  • resourceLimits — hard ceilings (nodes, connections, snapshot size, etc.)
  • securityPolicy — L0–L3 gates, write roots, plan hash requirement
  • domains[] — Extra module domain status

InspectBlueprint

Full Blueprint dump: variables, components, graphs, nodes, pins, connections, fingerprint.

Parameters:

Parameter Type Required Description
blueprint_path string Content path e.g. /Game/AI/BP_HealthActor
include_nodes bool No Include node list per graph (default: true)
include_pins bool No Include pin details per node (default: true)
include_connections bool No Include connection list (default: true)
include_fingerprint bool No Include semantic/layout/full fingerprints (default: true)

Response excerpt:

{
  "success": true,
  "assetPath": "/Game/AI/BP_HealthActor",
  "parentClass": "/Script/Engine.Actor",
  "variables": [
    { "name": "Health", "type": "float", "defaultValue": "100.0", "instanceEditable": true }
  ],
  "components": [
    { "name": "DefaultSceneRoot", "class": "SceneComponent", "isRoot": true }
  ],
  "graphs": [
    {
      "name": "EventGraph",
      "kind": "event_graph",
      "nodes": [ ... ],
      "connections": [ ... ]
    }
  ],
  "fingerprint": {
    "semantic": "blake3:f820f1d1...",
    "layout": "blake3:a3c4e5f6...",
    "full": "blake3:9b2c1d8e..."
  }
}

InspectBlueprintGraph

Detailed inspection of a single graph.

Parameters:

Parameter Type Required Description
blueprint_path string Blueprint content path
graph_name string Graph name e.g. EventGraph, OnCalculateDamage

ResolveUnrealType

Resolves a type string to its canonical Unreal representation.

Parameters:

Parameter Type Required Description
type_name string Type name e.g. float, FVector, AActor, /Script/Engine.Actor

Response:

{
  "success": true,
  "canonical": "float",
  "category": "real",
  "subCategory": "float",
  "containerType": "None",
  "isValid": true
}

GetBlueprintSnapshot

Creates a named snapshot with Blake3 fingerprints and stores it in the 32-slot FIFO.

Parameters:

Parameter Type Required Description
blueprint_path string Blueprint content path
include_layout bool No Include layout fingerprint and node positions (default: false)

Response:

{
  "success": true,
  "snapshotId": "snapshot:a3b4c5d6-...",
  "semanticFingerprint": "blake3:f820f1d1...",
  "layoutFingerprint": "blake3:a3c4e5f6...",
  "fullFingerprint": "blake3:9b2c1d8e..."
}

Snapshot IDs are stable across editor restarts. Fingerprints are restart-stable (verified at 59/59 assertions).


CompareBlueprintSnapshots

Element-level diff between two snapshots.

Parameters:

Parameter Type Required Description
snapshot_id_a string First snapshot ID (e.g. snapshot:...)
snapshot_id_b string Second snapshot ID

Response: diff entries with logical paths (e.g. variables/Health/defaultValue), before/after values, change type.


GetRecoveryStatus

Lists pending recovery operations (from interrupted apply/patch).

Parameters: none


CheckCompletion

Evaluates the 31-criterion DoD (code c01–c08, behavior b01–b08, security s01–s07, test_release t01–t08).

Parameters: none


Write Tools (L1 — requires bEnableWriteOperations=True)

CreateBlueprint

Creates a new Actor-based Blueprint asset.

Parameters:

Parameter Type Required Description
request_id string Client-provided idempotency key
asset_path string Full content path e.g. /Game/AI/BP_HealthActor
parent_class string Class path e.g. /Script/Engine.Actor
conflict_policy enum No reject (default) · overwrite · rename
dry_run bool No If true, validates and returns plan without mutating

Response:

{
  "success": true,
  "requestId": "req-001",
  "operation": "create_blueprint",
  "assetPath": "/Game/AI/BP_HealthActor",
  "stage": "save",
  "compileStatus": "success",
  "errors": [],
  "warnings": [],
  "saved": true,
  "transactionId": "txn:...",
  "fingerprint": { "semantic": "blake3:..." }
}

AddVariable

Adds a typed variable to an existing Blueprint.

Parameters:

Parameter Type Required Description
request_id string
blueprint_path string
variable_name string
variable_type string float, int32, bool, FString, FVector, /Script/Engine.Actor (object ref), etc.
default_value string No JSON-encoded default (codec round-trip validated)
instance_editable bool No
expose_on_spawn bool No
replication string No None, Replicated, RepNotify
category string No
dry_run bool No

Type examples:

"float"           → simple float
"TArray<float>"   → float array
"TMap<FString,int32>" → map
"/Script/Engine.StaticMeshComponent" → soft object ref

AddComponent

Adds an SCS component to the Blueprint's Simple Construction Script.

Parameters:

Parameter Type Required Description
request_id string
blueprint_path string
component_name string
component_class string Class path e.g. /Script/Engine.StaticMeshComponent
parent_component string No Parent component name (defaults to root)
dry_run bool No

AddFunctionGraph

Adds a new named function graph to the Blueprint.

Parameters:

Parameter Type Required Description
request_id string
blueprint_path string
graph_name string Must not collide with existing graphs (ScriptName meta checked)
dry_run bool No

Note: AddFunctionGraph creates ONLY the entry node. Use AddNode to add a result/return node if needed.


AddNode

Adds a K2 node to a graph. Nine allow-listed node kinds.

Parameters:

Parameter Type Required Description
request_id string
blueprint_path string
graph_name string
node_kind enum See below
node_id string Spec-local logical ID
position_x int No Grid X (snapped to 16-unit floor by engine)
position_y int No Grid Y
dry_run bool No

Node kinds and their extra parameters:

Kind Extra Parameters Notes
event_override event_name (e.g. ReceiveBeginPlay), event_owner_class Use ReceiveBeginPlay not BeginPlay (AActor::BeginPlay is not UFUNCTION)
function_call function_path (/Script/Engine.KismetSystemLibrary:PrintString) Spawned via UBlueprintFunctionNodeSpawner
variable_get variable_name
variable_set variable_name
branch If/else flow control
sequence output_count
cast cast_target_class
comment comment_text, width, height UEdGraphNode_Comment
macro_instance macro_path

Position snapping: Engine snaps to 16 * floor(V/16). Position 1000 → 992, 600 → 592. Postcondition accepts both requested and snapped coordinates.


SetPinDefault

Sets a pin's default value (for unconnected input pins).

Parameters:

Parameter Type Required Description
request_id string
blueprint_path string
graph_name string
node_id string Logical node ID or Unreal node GUID
pin_name string Internal pin name (NOT the display label)
default_value string Raw value string (codec round-trip validated)
dry_run bool No

Uses UEdGraphSchema_K2::TrySetDefaultValue. Invalid values are caught by IsPinDefaultValid and rejected with INVALID_PIN_DEFAULT.


ConnectPins

Creates a pin connection between two nodes.

Parameters:

Parameter Type Required Description
request_id string
blueprint_path string
graph_name string
from_node_id string Source node logical ID or GUID
from_pin_name string Source pin internal name
to_node_id string Target node logical ID or GUID
to_pin_name string Target pin internal name
dry_run bool No

Connection policy responses:

Schema response Plugin action
MAKE Connection created
BREAK_OTHERS_AND_MAKE Existing connections broken, new one made
MAKE_WITH_CONVERSION_NODE Requires conversion — rejected (REQUIRES_CONVERSION)
Anything else Rejected (INCOMPATIBLE_PINS)

Spec Tools

ValidateBlueprintSpec

Validates a .uebp.json file (schema + semantic) and returns the execution plan without mutating anything.

Parameters:

Parameter Type Required Description
file string Relative path from spec root (e.g. BP_HealthActor.uebp.json)

PlanBlueprintSpec

Same as ValidateBlueprintSpec but also returns the full deterministic command list.

Parameters: same as ValidateBlueprintSpec


ApplyBlueprintSpec

Validates, plans, and executes a .uebp.json spec in a single transaction.

Parameters:

Parameter Type Required Description
file string Relative spec path
dry_run bool No If true, returns plan without executing
expected_plan_hash string No Sealed plan hash for integrity verification

Patch Tools (L2 — requires bRequirePlanHashForPatch=True)

PlanBlueprintPatch

Three-way ownership diff (base snapshot vs. current Blueprint vs. incoming spec). Returns a sealed plan hash.

Parameters:

Parameter Type Required Description
file string Spec file path
blueprint_path string Target Blueprint

Response includes: planHash, commands[], conflict report, noOpCount, patchCount, conflictCount


ApplyBlueprintPatch

Applies a previously planned patch using the sealed hash for integrity.

Parameters:

Parameter Type Required Description
file string
blueprint_path string
expected_plan_hash string Must match; PLAN_HASH_MISMATCH if not
dry_run bool No

Recovery Tools (L3 — requires bEnableDestructiveOperations=True)

RestoreOperationBackup

Restores a Blueprint from a durable backup asset created during a failed apply/patch.

Parameters:

Parameter Type Required Description
operation_id string Recovery operation ID from GetRecoveryStatus
expected_content_fingerprint string No Verify content fingerprint after restore

DiscardOperationBackup

Permanently deletes a backup asset (use after manual resolution).

Parameters:

Parameter Type Required Description
operation_id string

⚠️ This is irreversible. After discard, RestoreOperationBackup returns BACKUP_INVALID.


Domain Tools (Extra Modules)

GetDomainCapabilities

Returns the availability and operation status of each domain adapter.

Parameters:

Parameter Type Required Description
domain string No Specific domain ID (ai, data, fx, gameplay, input, project, ui) or all

Response:

{
  "domains": [
    { "id": "input", "available": true, "ops": ["create_action", "inspect_action", "create_mapping_context", ...] },
    { "id": "ai", "available": false, "ops": [] }
  ]
}

See Also

Clone this wiki locally