Weave 3D worlds with AI — the MCP server for Blender
BlenderWeave has 7 tools with moderate schema coverage but significant description and naming gaps. Tool names lack consistent verb-noun patterns (manage_actions, manage_nla are vague). Descriptions exist but are often generic or incomplete, many lack actionable context for LLM selection. Parameter descriptions are sparse; several parameters (e.g., 'properties' in manage_nla) lack type clarity. No output schemas documented. Error handling is minimal, most tools return generic error dicts without recovery guidance. The server is STDIO-only, which is a hard transport limitation.
Configure render and world settings.
Download and import an AmbientCG asset into Blender.
Get integration status.
Manage animation actions: create, assign, list, duplicate, delete_keyframe, insert_keyframe_all, bake_animation, set_interpolation.
Manage NLA tracks and strips for non-linear animation.
Search AmbientCG for PBR materials, HDRIs, or 3D models.
Set the viewport shading mode.
Vague tool names 'manage_actions' and 'manage_nla' combine multiple operations (create, assign, list, duplicate, delete, insert, bake, set) into single tools. LLMs cannot infer intent from the name alone and must read full descriptions to disambiguate. Should split into separate tools: create_action, assign_action, list_actions, duplicate_action, delete_keyframe, insert_keyframe, bake_animation, set_interpolation.
Output schemas not documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., asset_id from search results). Every tool must document return type and structure.
Parameter descriptions are minimal or missing. 'properties' in manage_nla has no type or format guidance. 'options' in set_viewport_shading lists possible keys but lacks structure. Parameters need explicit type, format, and constraint descriptions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Error handling is generic. Tools return {'error': 'message'} without recovery guidance. No distinction between retryable, user-fixable, and fatal errors. Should return actionable errors like 'No 3D viewport found. Ensure Blender window is open with a 3D view.'
Tool descriptions lack context for LLM selection. 'Get integration status' (get_ambientcg_status) does not explain what status means or when to call it. Descriptions should answer: What does it do? When should I call it? What does it return?