Flax MCP server has 20 tools with complete JSON schemas and descriptions, but quality is inconsistent. Most tool descriptions are adequate (50-150 chars), and parameters include types and defaults. However, many descriptions lack actionable context for LLM selection (e.g., 'Assign a material to a specific slot on an actor' doesn't explain WHEN to use this vs alternatives). Parameter descriptions are minimal, many are single phrases without format guidance or constraints. Error handling is absent from tool definitions; no recovery guidance or categorization. Output schemas are not documented. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. Naming is generally verb-first and clear, but some tools like 'get_tool_list' and 'echo' are debug utilities that clutter the primary interface. The server lacks composition guidance, no documentation of which tools chain together or what IDs/references flow between them.
Assign a material to a specific slot on an actor
Copy/duplicate an asset
Create new folder(s) in the project content directory
Create a new material asset
Delete an asset from the project
Echo test command to verify bridge connectivity
Find assets using search filters
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. delete_asset, import_asset, and move_asset are marked DESTRUCTIVE/WRITE but lack protocol-level hints to guide agent behavior.
Output schemas not documented. Tools like get_assets, get_editor_state, get_console_logs return structured data but LLMs cannot see the response schema to plan downstream calls or extract fields.
Parameter descriptions lack actionable constraints. 'path' parameters do not specify format (relative vs absolute, required prefix). 'filter' in find_assets says 'e.g. t:Material' but does not document the filter syntax or valid operators.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Get the name and path of the currently active scene
List assets in the project content directory
Retrieve editor console logs
Get current editor state including selection, play mode, active scene
Get project metadata and structure info
List all available tools with their versions and descriptions
Import an external asset file into the Flax project
Move or rename an asset
Check if the Flax Engine bridge is connected and responsive
Control editor play mode (play, stop, pause, step)
Force asset database refresh
Capture a screenshot from a specific camera
Capture the editor viewport as a screenshot
No error handling guidance. Tools lack descriptions of failure modes, recovery steps, or categorization (retryable vs user-fixable vs fatal). LLMs cannot self-correct on failures.
Debug tools (echo, ping, get_tool_list) clutter the primary interface. These should be hidden or moved to a separate debug namespace to reduce LLM confusion when selecting tools.