MCP server for Blender 3D modeling automation and mesh manipulation
Scoring was not performed
Array and object parameters lack itemType and nested type specifications. E.g., 'vertices' is typed as array but no itemType declared; 'faces' is array but items are not described as 'array of integers'. This prevents LLMs from understanding structure and validation rules.
Enum constraints are missing for parameters that accept a fixed set of values. Tools accept 'axis' ('X', 'Y', 'Z'), 'mode' ('BLOCKS', 'SMOOTH', 'SHARP', 'VOXEL'), 'method' ('BEAUTY', 'FIXED', etc.), but these are not declared as enums in the schema. LLMs will guess or hallucinate values.
No output schemas documented. Tools return generic dictionaries with 'success', 'blender_output', 'errors' fields, but no structured description of what fields are in the response or their types. LLMs cannot plan downstream calls or extract data reliably.
Error handling is generic. All tools return a 'success' boolean and 'errors' field containing raw blender stderr/stdout. No actionable error messages, no recovery guidance. LLMs receive 'script error' with no indication of what went wrong or what to try next.
Parameter descriptions are minimal and generic. E.g., 'Name for the material' (21 chars) lacks detail on length limits, character restrictions, or uniqueness constraints. Descriptions should be 50-200 chars and answer: WHAT is this? WHEN is it used? WHAT are the constraints?
No input validation or sanitization visible in tool implementations. Parameters like 'object_name' accept arbitrary strings, no bounds, no escaping for command injection. Blender script generation uses string interpolation (f-strings) without quote escaping, risking syntax errors or injection.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) visible. All 34 tools are WRITE operations that modify Blender state, but no destructiveHint declared. LLMs cannot distinguish between safe reads and irreversible operations, risking accidental data loss.
No idempotency guarantees. Creating a mesh, scaling an object, or applying a modifier multiple times with identical parameters will produce side effects (duplicates, compound transformations). Agents expect idempotent behavior for retry safety.
Parameters accepting numeric ranges lack min/max constraints. E.g., 'distance' in extrude_face, 'thickness' in bevel_edges, 'scale' in scale_object have no declared bounds. LLMs may pass absurd values (negative distances, scale=1000000).
No pagination or result limits. While not directly applicable to mesh tools, tools that query or return lists (e.g., future search/list tools) should cap results at 20-50 items to prevent context window explosion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 0 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 34 | - | v1 |