MCP server for runtime inspection and manipulation of Unity game engines, providing tools for GameObject discovery, component inspection, managed object reading, method tracing, and instance scanning.
Strong schema definitions with proper JSON Schema validation, clear naming conventions, and comprehensive parameter constraints. All 20 tools have explicit descriptions and input schemas with type definitions, min/max bounds, and enum constraints. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present. However, parameter descriptions are entirely absent from the source code, only names and type constraints are visible. Output schemas are generic {"type": "object"} with no field documentation. Error handling and recovery guidance are not visible in the tool definitions. Descriptions are adequate (100-200 chars) but lack dependency hints and prerequisite guidance that would optimize LLM selection.
Aggregate captured caller-to-target relationships across retained method traces.
Cancel an active managed instance scan and release its queued roots. Does not modify game state.
Copy and decode a bounded managed System.Byte array as MessagePack, JSON, UTF-8 text, compressed-payload detection, or hex without exposing managed memory.
Automatically search live GameObjects and loaded managed types in one bounded request. Use this first when the location or type of a target is unknown.
Rank live GameObjects using name, path, component types, dynamic behaviour types, scene, activity, and an optional semantic role. Reports ambiguity instead of guessing.
Read progress and a bounded page of opaque object references from an instance scan.
Parameter descriptions completely absent. Source shows only parameter names, types, and constraints (minLength, maxLength, enum, min, max). No descriptions explaining what each parameter controls, expected formats, or when to use them. LLMs cannot infer parameter semantics from names alone (e.g., 'query' vs 'type_query' distinction unclear without docs).
Output schemas are generic {"type": "object"} with no field documentation. LLMs cannot plan downstream tool calls or extract specific fields without knowing what the response contains. No documented return types for any of the 20 tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2025-06-18+ | v2 |
Read bounded decoded calls from a method trace session, including sequence ranges and repeat counts for collapsed groups.
Return the GameObject currently selected in Explorer and an opaque reference.
Search the immutable live Unity hierarchy by name, path, tag, instance ID, component type, or dynamic behaviour type. Returns opaque object references, never managed pointers.
Inspect a GameObject identified by an opaque reference, or the current selection when omitted.
Read bounded fields from a component or managed-object reference and continue through returned opaque references. Property getters are opt-in because they execute game code.
Return bounded field, property, and method metadata for an opaque type reference.
List components on a GameObject without changing the Explorer selection.
List active and retained method trace sessions without exposing native addresses; consecutive identical calls are reported as collapsed groups.
Read a bounded page from a managed array reference. Reference elements receive new opaque references.
Explicitly sample one field or readable property from a component reference. Property access executes game code and is permission controlled.
Return the live Explorer runtime, scene, GC, bridge, diagnostic, and optional-capability permission status.
Search fields, properties, and methods across a bounded set of loaded managed types. Returns method and declaring-type references for follow-up inspection or invocation.
Search loaded Mono/IL2CPP metadata and return opaque type references.
Start a bounded, time-sliced search for live instances of a managed type. UnityEngine.Object types use a direct engine query; ordinary managed types traverse static managed roots and never enumerate every Unity object.
No error handling or recovery guidance visible in tool definitions. Tools that interact with managed runtime (read_member, inspect_managed_object, start_instance_scan) may fail due to permissions, GC, or type mismatches, but no error classification or suggested recovery steps are documented.
Tool descriptions lack dependency hints and prerequisite guidance. E.g., 'discover_runtime' says 'Use this first when location or type is unknown' but other tools don't explain when to call them relative to each other. LLMs cannot optimize call sequences without explicit ordering hints.
Opaque reference parameters ('reference', 'component_reference', 'scan_reference', 'type_reference', 'trace_reference') lack format documentation. LLMs cannot validate or construct these references without knowing their structure, length, or encoding. No guidance on how to obtain valid references.