MCP server giving Claude complete control over Unity Editor — scene, components, assets, scripts, settings, build, and more.
This server has critical definition gaps. While tool names follow verb_noun convention (good), descriptions are present but often generic and lack LLM-optimization guidance. Most critically: NO input schemas are visible in the provided source code, only parameter names and types are inferred from the tool descriptions. Error handling is minimal; most tools return generic error dicts without recovery guidance. Output schemas are undocumented. The server lacks idempotency guarantees, permission gates, and audit trails for destructive operations.
Add component to GameObject
Builds the Unity project for the specified target platform
Create Materials, ScriptableObjects, Folders, Texture2D, Prefabs, etc.
Execute editor commands (play, stop, save, compile, etc.)
Execute arbitrary C# code inside Unity Editor. Code runs with full access to UnityEngine and UnityEditor APIs. Use this as an escape hatch for anything the other tools don't cover. Code is compiled as a temp script and executed immediately.
Read asset metadata and properties
Read component data via SerializedProperty
Reads console entries with optional filtering
No input schemas visible in source code. Parameter definitions exist only as inferred types in descriptions, not as formal JSON Schema objects.
unity_execute_csharp accepts arbitrary C# code with zero validation, confirmation, or dry-run. This is an IRREVERSIBLE operation that can corrupt the entire project. No permission gate, no audit trail, no recovery path.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
Read currently selected objects
Re-import an asset with force update
Manages packages (add, remove, list)
Remove component from GameObject
Control SceneView camera (frame, move, orbit)
Find assets by name/type filter
Set ANY serialized property (batched)
Change selection in hierarchy
Destructive tools (unity_create_asset, unity_set_property, unity_remove_component, unity_build, unity_manage_packages) lack idempotency guarantees and confirmation steps. Agents retrying on ambiguous failures risk duplicate side effects.
Error responses are generic dicts with minimal recovery guidance. Example: 'return Error(...)' returns only error message, not actionable next steps. LLM cannot determine if error is retryable, user-fixable, or fatal.
Output schemas are undocumented. LLM cannot plan downstream tool calls or extract required fields (e.g., what does unity_search_assets return? What fields are in each result?). Baseline: 100% of A+ tools document return types.