Safe AI execution layer for Unity MCP — transaction safety, rollback, validation + Inspect (capture/profile/console) + ImportSettings (texture/model) ops.
CRAFT provides 13 well-structured tools with consistent naming (Craft_* prefix) and comprehensive parameter schemas. All tools have descriptions and input parameters are typed with descriptions. However, output schemas are not explicitly documented in the source code, responses are inferred from return statements. Error handling is present but generic (returns error objects without recovery guidance). Tool composition is sound (single responsibility), but descriptions lack LLM-optimized depth (many under 100 chars). No tool annotations (readOnlyHint/destructiveHint) visible despite clear risk classifications in metadata.
Capture Game view rendering at specified resolution to PNG/JPG. In Play mode uses ScreenCapture. In Edit mode uses Camera.main RenderTexture fallback.
Capture Scene view using editor camera or specified camera GameObject.
Capture an isolated UI panel from a camera-backed Canvas to PNG.
Execute one or more scene operations as a single undoable transaction. Supports CreateGameObject, ModifyComponent, DeleteGameObject. Returns transactionId for rollback.
Returns all operation types currently registered in CraftEngine. Use this to discover valid 'type' values for Craft_Execute before building a plan.
Capture performance profiling snapshot: frame stats, draw calls, triangles, memory.
Output schemas not documented. Tool responses are inferred from code (anonymous objects with dynamic fields). LLMs cannot plan downstream calls or extract required fields reliably.
Tool annotations missing. Risk classifications (READ_ONLY, REVERSIBLE) exist in metadata but are not exposed as McpTool attributes (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Query scene objects by name, components, tags, or parent path. Use before modifying to find targets.
Read console log entries since Unix timestamp, optionally filtered by level.
Rollback a CRAFT transaction by ID, or undo N steps. Restores the scene to its previous state.
Configure ModelImporter settings (animations, rig, compression, mesh optimization, LOD). Returns transactionId for rollback.
Configure TextureImporter settings (compression, max size, mipmaps, crunch, filter mode). Returns transactionId for rollback.
Get CRAFT engine status: registered operations, recent transactions, last execution trace.
Validate operations without executing them. Returns errors and warnings.
Error responses lack recovery guidance. Errors return generic messages (e.g. 'Failed to capture Game view: {ex.Message}') without actionable next steps or error classification (retryable vs user-fixable vs fatal).
Parameter descriptions lack format/constraint details. E.g., 'width' and 'height' accept 256 - 4096 but descriptions say only '(default: 1920)'. LLMs cannot infer valid ranges and may pass invalid values.
Craft_Execute and Craft_Rollback lack confirmation/dry-run patterns for irreversible operations. Agents can accidentally delete or modify scenes without preview. Dry-run support exists but is not highlighted in descriptions.