Blender Universal & Token-Efficient MCP Server
Provides tools for interacting with Blender 3D scenes, enabling inspection of scene data, creation and modification of objects, management of materials and modifiers, rendering viewports, exporting assets, and execution of bpy scripts through either a live Blender editor connection or headless CLI mode.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Blender Universal & Token-Efficient MCP ServerCreate a red metallic sphere at the origin and render a preview."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Blender Universal & Token-Efficient MCP Server
Blender 3D bilan ishlashda AI agentlar (Antigravity, Claude Code, Cursor, Windsurf va h.k.) uchun maxsus yaratilgan Universal, Token-tejamkor va Gibrid Model Context Protocol (MCP) serveri.
Ushbu tizim Blender sahnasini qo'lda boshqarish, murakkab bpy skriptlarini yozish va xatolarni taxmin qilish o'rniga, token sarfini 80-90% gacha tejaydi va Blender Editor bilan real vaqtda bevosita muloqot qilish imkonini beradi.
π Asosiy Imkoniyatlar
Gibrid Rejim (Jonli Editor + Oflayn Headless CLI):
Jonli Rejim (Live Editor): Blender ochilganda TCP soketi (port 8190) orqali bevosita ulanadi. Barcha operatsiyalar Blenderning Main Thread'ida (
bpy.app.timers) xavfsiz bajariladi.Headless CLI Rejimi: Agar Blender ochiq bo'lmasa, server to'xtamaydi β
blender -bbuyrug'i orqali fonda xuddi shu operatsiyalarni bajaradi.
Token Tejamkorligi (Smart Outliner & Object Pruning):
Minglab vertex va poligonlardan iborat og'ir ma'lumotlar o'rniga LLM uchun eng muhim bo'lgan parametrlar (mesh statistikasi, transformatsiyalar, modifikatorlar va shader materiallari) ixcham formatda taqdim etiladi.
Nol Tashqi Pip Bog'liqligi (Blender ichida Zero Dependencies):
Blender ichiga birorta ham qo'shimcha
pippaket o'rnatish shart emas! Standart Python kutubxonasi (socket,threading,bpy) orqali ishlaydi.
Blender 3D Viewport N-Panel UI:
3D Viewport Sidebar (N) da MCP Bridge paneli mavjud: Port sozlash (standart 8190), Start/Stop qilish va ulangan mijozlar monitoringi.
Avtomatlashtirilgan O'rnatish (
install_global.py):Windows tizimidagi barcha Blender versiyalarini (
%APPDATA%\Blender Foundation\Blender\<ver>\scripts\addons) avtomatik topib, add-onni to'g'ridan-to'g'ri o'rnatadi hamda Antigravity / AI konfiguratsiyasiga ro'yxatdan o'tkazadi.
Related MCP server: Blender Open MCP
π Taqdim Etiladigan Asosiy MCP Vositalari (Tools)
Vositachi (Tool) | Tavsifi | Rejim |
| Blender bilan aloqani, ochilgan fayl nomi, faol sahna va versiyani tekshiradi. | Jonli / Oflayn |
| Faol kamera, render dvigateli (Cycles/EEVEE), FPS, kadrlar chegarasi va obyektlar soni. | Gibrid |
| Sahnadagi barcha kolleksiyalar va obyektlar iyerarxiyasi (token-tejamkor ixcham format). | Gibrid |
| Bitta obyektning koordinatalari, mesh statistikasi, modifikatorlari, materiallari va ota-onasi. | Gibrid |
| Mesh primitivlari ( | Gibrid |
| Obyekt koordinatalari ( | Gibrid |
| Modifikator qo'shish ( | Gibrid |
| Material yaratish, Principled BSDF parametrlarini sozlash (Rang, Metallik, G'adir-budurlik) va biriktirish. | Gibrid |
| Viewport yoki to'liq sahnani tezkor rasmga olib diskda PNG saqlash va fayl yo'lini qaytarish. | Gibrid |
| Sahnani yoki tanlangan obyektlarni | Gibrid |
| Blender ichida ixtiyoriy Python ( | Gibrid |
π 1 Daqiqalik O'rnatish Qo'llanmasi
1-qadam: Virtual muhit va bog'liqliklarni o'rnatish
Loyiha papkasida terminal ochib:
# Virtual muhit yaratish
uv venv
# Bog'liqliklarni o'rnatish
uv pip install -e .2-qadam: Global ro'yxatdan o'tkazish va Add-onni o'rnatish
python install_global.pyBu skript:
Blender Add-onni barcha aniqlangan Blender versiyalarining
scripts/addonspapkasiga avtomatik nusxalaydi.blenderMCP serverini~/.gemini/config/mcp_config.jsonfayliga ulaydi.Qo'lda o'rnatish uchun
mcp_blender_bridge_addon.zippaketini yaratadi.
3-qadam: Blenderda Add-onni faollashtirish
Blenderni oching.
Edit > Preferences > Add-ons bo'limiga kiring.
Qidiruv maydoniga "MCP Blender Bridge" deb yozing va qutichani belgilab faollashtiring.
3D Viewportda
Ntugmasini bosing β o'ng tomondagi panelda "MCP Bridge" yorlig'ini ko'rasiz! Server avtomatik ravishda 8190 portida faol bo'ladi.
π‘ Foydalanish Misollari
Blender holatini tekshirish:
"Blender holatini tekshir (blender_ping)"
Sahnani ko'rish:
"Sahnadagi barcha kolleksiyalar va obyektlarni ko'rsat (blender_get_outliner)"
Obyekt yaratish va material berish:
"Sahnaga bitta Sphere yarat va unga oltin rangli metall material ber"
Rasm olish:
"Hozirgi sahnaning renderini ol va rasmni ko'rsat"
Ixtiyoriy procedural skript bajarish:
"bpy orqali spiral shaklida 20 ta kubik joylashtiradigan skriptni bajar"
Available Tools
11 toolsblender_create_objectC
Creates a new 3D primitive or entity in the Blender scene. Supported primitive_type: 'cube', 'uv_sphere', 'ico_sphere', 'cylinder', 'cone', 'plane', 'torus', 'monkey', 'circle', 'camera', 'light', 'empty', 'collection'. Location and scale are 3D floats [X, Y, Z]. Rotation is [X, Y, Z] in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scale | No | ||
| location | No | ||
| rotation | No | ||
| primitive_type | No | cube | |
| collection_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it only covers parameter formats. It never states whether the object is persisted to the scene, what happens on a name collision, whether the operation is undoable, or whether it requires an active/live Blender connection. For a scene-mutating tool this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and the primitive list, though long, is high-value enumerable data. The location/scale/rotation unit clause is compact and earns its place; only minor tightening is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the primitive/unit documentation covers the core calling path. But for a 6-parameter mutation tool with zero schema coverage and no annotations, the missing name/collection_name semantics and absent usage context leave it adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It usefully enumerates the 13 valid primitive_type values (better than the schema, which declares only a default) and specifies that location/scale are 3D floats and rotation is in degrees. However, name and collection_name remain completely undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a new 3D primitive or entity in the Blender scene') and the object classes it produces. It implicitly contrasts with blender_modify_object/blender_inspect_object through the word 'creates', but never names a sibling or draws the boundary explicitly, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g. whether a Blender session must be running), and no mention of alternatives such as blender_modify_object for editing existing objects. The agent must infer all routing from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_execute_scriptA
Executes an arbitrary Python script inside Blender's Python runtime ('bpy'). Captures standard output (stdout), errors (stderr), and any variable named 'result'. Ideal for procedural modeling, complex operations, rigging, or custom automation.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose the execution environment ('bpy' runtime) and the captured outputs (stdout, stderr, a variable named 'result'), which is genuinely useful. However, it says nothing about the safety profile of arbitrary code execution β whether scene changes are irreversible, whether the script can crash Blender, timeouts, or whether errors raise versus return.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with no filler, and the core action is front-loaded ahead of the use-case list. The final 'Ideal for...' sentence is somewhat generic but still earns its place as routing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the single required parameter is simple. The description covers purpose, environment, and capture behavior; the remaining gap is the absence of any warning about the destructive potential of arbitrary script execution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single 'script' parameter has no schema description, so the description must compensate. It partially does by defining the execution context (bpy) and the 'result' capture convention, which shapes how the script string should be written, but it adds no format, size, or content constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: executing an arbitrary Python script in Blender's 'bpy' runtime. The listed use cases (procedural modeling, rigging, custom automation) implicitly separate it from the narrow siblings like blender_create_object, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Ideal for procedural modeling, complex operations, rigging, or custom automation' gives a usage context, but these categories overlap with dedicated siblings such as blender_create_object and blender_manage_modifiers. It never states when to prefer this escape hatch over a structured tool, nor any exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_export_assetB
Exports the current scene or selected objects to a 3D asset file. format: 'gltf' (or 'glb'), 'fbx', or 'obj'. selected_only: if True, exports only selected objects.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | gltf | |
| filepath | Yes | ||
| selected_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It reveals that exports can be scoped to selected objects or the entire scene, which is useful. However, it does not disclose what happens on failure, whether it overwrites existing files, permission requirements, or the fact that filepath must be provided. It adds some context but is incomplete for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: the first sentence states the core action, followed by two bullet-like lines clarifying key parameters. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, return values need not be explained. The description covers the main parameters but omits any mention of the required 'filepath' parameter or potential error conditions. For a tool with no annotations and 0% schema description coverage, the description is adequate but not thorough enough to fully guide an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no parameter descriptions. The description compensates by explaining the 'format' parameter (listing gltf, glb, fbx, obj) and the 'selected_only' boolean flag. However, it does not describe the required 'filepath' parameter at all, leaving a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (exports) and resource (current scene or selected objects to a 3D asset file). It clearly distinguishes this tool from siblings like blender_create_object or blender_render_viewport. It is clear and specific but lacks explicit differentiation from other export-oriented siblings (if any existed).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing a saved scene or matching file extension) or exclusions. The only implied usage is that it exports, but no context is given for choosing between exporting the whole scene or selected objects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_get_outlinerB
Returns a token-efficient hierarchy of collections and objects in the current Blender scene. Filters by collection_name if specified. Includes object names, types, and visibility.
| Name | Required | Description | Default |
|---|---|---|---|
| max_depth | No | ||
| collection_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose behavioral traits β 'token-efficient' output and the fields included (names, types, visibility) β and 'Returns' implies a read-only operation. However, it omits the depth-limiting behavior (max_depth defaults to 4, silently truncating the hierarchy), which is meaningful for interpreting results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the core purpose front-loaded; little waste. Minor filler in 'if specified,' and the third sentence partly restates what the output schema already enumerates.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values needn't be explained, and the description adequately covers purpose and content. It falls short on max_depth semantics and on routing guidance against ten sibling tools, leaving gaps an agent would have to guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains collection_name's effect (filtering the hierarchy by collection) but says nothing about max_depth, which controls traversal depth and therefore what the agent actually receives. Half the parameters are semantically explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Returns a token-efficient hierarchy of collections and objects in the current Blender scene.' An agent can distinguish it from blender_get_scene_info and blender_inspect_object by the outliner/hierarchy scope, though the description never explicitly contrasts them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative. The phrase 'Filters by collection_name if specified' describes a parameter effect rather than a usage condition, and the agent is left to infer that this is the broad-overview tool versus the object-level siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_get_scene_infoA
Retrieves high-level scene configuration: active camera, render engine (Cycles / EEVEE), FPS, frame range, unit system, and object counts by type.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. 'Retrieves' clearly signals a non-mutating read, and it lists the exact categories of data returned, but it says nothing about side effects, permissions, or cost/latency characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the operation immediately and then enumerates the returned fields. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description needn't detail return structure, and it still gives a useful preview of what is returned. For a zero-parameter read tool this is essentially complete; only the read-only/side-effect guarantee is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. No parameter meaning can be added beyond the empty schema, and the description correctly does not pretend otherwise.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieves) and resource (scene configuration) and enumerates exactly what is returned: active camera, render engine, FPS, frame range, unit system, object counts. This is enough to distinguish it from siblings like blender_inspect_object or blender_get_outliner, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent can infer this is a scene-wide orientation call. There is no explicit guidance on when to prefer it over blender_inspect_object or blender_get_outliner, nor any stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_inspect_objectA
Inspects detailed properties of a specific Blender object: transforms (location, rotation in degrees, scale), mesh statistics (vertices, edges, polygons), applied modifiers, assigned materials, constraints, and parent/children relationships.
| Name | Required | Description | Default |
|---|---|---|---|
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Inspects' and the read-oriented return list clearly signal a non-mutating operation, but nothing is said about behavior when the object does not exist, name matching (case sensitivity, exactness), or whether the call has any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-structured sentence with the verb and scope front-loaded and the returned facets enumerated compactly in parentheses. Slightly list-heavy, but every element earns its place by helping the agent decide whether this tool answers its question.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values do not strictly need describing, yet the enumeration usefully confirms coverage. With only one required parameter and a read-only role, the description is nearly sufficient; the only real gap is error/not-found behavior and parameter format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One required parameter (object_name) with 0% schema description coverage, and the description only says 'a specific Blender object' without specifying name format, case sensitivity, or how to discover valid names. It adds a little targeting meaning but does not compensate for the undocumented parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (inspects) and a specific resource (a Blender object), then enumerates the exact facets returned: transforms, mesh statistics, modifiers, materials, constraints, hierarchy. This distinguishes it from scene-level siblings like blender_get_scene_info and blender_get_outliner without naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the content list β the agent can infer this is the tool to call when it needs per-object detail before modifying or exporting. However, there is no explicit statement of when to prefer it over blender_get_outliner or blender_get_scene_info, and no prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_manage_materialB
Creates, assigns, or configures a Principled BSDF material on an object. action: 'assign', 'create', or 'remove'. color: RGBA or RGB float list [R, G, B, (A)], values between 0.0 and 1.0. roughness, metallic: float values between 0.0 and 1.0. emission: RGB float list, emission_strength: float multiplier.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | ||
| action | No | assign | |
| emission | No | ||
| metallic | No | ||
| roughness | No | ||
| object_name | Yes | ||
| material_name | No | ||
| emission_strength | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies mutation and includes a 'remove' action, but never states that removal is destructive, whether it is reversible, what happens to an existing material when reassigned, or any permission/idempotency characteristics. For a write tool with zero annotation coverage this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the purpose, and then enumerated per parameter with no filler sentences. The terse parameter list is efficient, though the action values are stated twice (once in prose, once in the action line), which is minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, with 8 parameters at 0% schema coverage, the description leaves object_name and material_name undocumented and gives no semantics for the 'remove' action, so an agent cannot fully predict behavior for all modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does for six of eight parameters: action values, color as RGBA/RGB float list, the 0.0-1.0 bounds for color/roughness/metallic, and emission as an RGB list with emission_strength as a multiplier. It omits object_name and material_name semantics, keeping it short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb set (creates, assigns, configures) and a specific resource (a Principled BSDF material on an object), so the tool's purpose is immediately clear. It does not distinguish itself from siblings like blender_modify_object or blender_manage_modifiers, but the resource is narrow enough to be unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists the valid action values ('assign', 'create', 'remove') but never explains when to pick each one or what state each requires (e.g., must a material already exist for 'assign' vs 'create'?). There is no guidance on when to use this tool instead of blender_modify_object or blender_create_object.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_manage_modifiersC
Manages modifiers on an object. action: 'add', 'remove', or 'apply'. modifier_type: e.g. 'SUBSURF', 'BEVEL', 'MIRROR', 'BOOLEAN', 'SOLIDIFY', 'ARRAY'. Optional properties:
levels: subdivision levels for SUBSURF
width, segments: for BEVEL
target_object, operation ('DIFFERENCE', 'UNION', 'INTERSECT'): for BOOLEAN
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | ||
| action | No | add | |
| levels | No | ||
| segments | No | ||
| operation | No | ||
| object_name | Yes | ||
| modifier_name | No | ||
| modifier_type | No | ||
| target_object | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden for a mutation tool. It never states that 'apply' bakes the modifier irreversibly into the mesh, that 'remove' destroys the modifier, or that 'add' alters the object's modifier stack. For a 9-parameter mutating tool with zero annotation coverage, these omissions are significant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the rest is a compact bulleted map of parameters. The terse fragment style ('width, segments: for BEVEL') is efficient and every line carries information, though the parameter bullets are grouped in a slightly hard-to-scan way.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and the parameter mapping is reasonably covered. But for a 9-parameter mutation tool with no annotations, the description is missing usage selection logic and any disclosure of destructive behavior, leaving gaps for an agent to resolve on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does add real meaning: it maps levels to SUBSURF, width/segments to BEVEL, and target_object/operation to BOOLEAN. However it omits semantic guidance for object_name, modifier_name, and modifier_type beyond examples, so roughly a third of the parameters remain unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line names a specific resource ('modifiers on an object') and the action values ('add', 'remove', 'apply') clarify the verb class. This distinguishes it from blender_manage_material and blender_modify_object by subject matter, though it never explicitly contrasts with those siblings. Clear enough for an agent to identify the tool's domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists the valid 'action' values but gives no guidance on when to use each one, what prerequisites exist (e.g. an existing modifier_name for remove/apply), or how this differs from blender_modify_object. An agent gets the vocabulary but not the decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_modify_objectA
Modifies an existing object in the scene: transforms (location, rotation in degrees, scale), renaming, viewport visibility, parenting, and moving to a collection.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| parent | No | ||
| visible | No | ||
| location | No | ||
| new_name | No | ||
| rotation | No | ||
| collection | No | ||
| object_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the concrete mutations performed and a useful unit detail ('rotation in degrees'), which is genuine behavioral context. It says nothing about reversibility, error handling, required permissions, or side effects such as how parenting interacts with world transforms.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a colon-delimited list of operations. No filler and the core purpose leads the statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. The description enumerates the mutation surface for a tool with 0% schema coverage, making it largely sufficient to call correctly. Minor gaps remain around permissions and failure behavior for a mutation tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it maps seven of the eight parameters to their meaning (location, rotation, scale, new_name, visible, parent, collection), leaving only object_name implicit. It still omits format details such as the required array shape for location/rotation/scale, so it falls short of fully replacing the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Modifies') and resource ('an existing object in the scene') and enumerates the operations available (transforms, renaming, visibility, parenting, collection move). This implicitly distinguishes it from blender_create_object ('existing' vs new), but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'existing object' β an agent can infer this is for changing objects already in the scene rather than creating them. However, there is no explicit when-to-use, no prerequisites, and no reference to alternatives such as blender_manage_modifiers or blender_inspect_object.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_pingA
Checks the connection status to the Blender Editor. Returns live connection state, active scene, Blender version, and mode if Blender is open with MCP Add-on. If Blender is closed, reports offline environment status and local .blend files detected on disk.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose meaningful behavior beyond the schema: the tool degrades gracefully when Blender is closed, reporting offline status plus locally detected .blend files, and it notes the MCP Add-on requirement for live mode. It does not mention rate limits or side effects, but as a read-only probe the residual risk is low.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose before the branching detail. Efficient overall, though the return-value enumeration partially duplicates what an existing output schema already documents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter connectivity check with an output schema present, the description supplies the essential context (what is checked, the two operating modes). Nothing an agent needs in order to invoke it correctly is missing; return shape is delegated appropriately to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to clarify, and it correctly avoids inventing parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource β 'Checks the connection status to the Blender Editor' β which is unambiguous. It is clearly distinguishable from all siblings, which read or mutate scene content (get_scene_info, inspect_object, execute_script, etc.); this is the only health/connectivity probe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is relevant by describing the two outcome branches (Blender open vs. closed), but it never explicitly says 'call this first to verify Blender is reachable before invoking other tools' or names any alternative. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blender_render_viewportA
Captures a viewport preview screenshot (fast OpenGL render) or triggers a full Cycles/EEVEE render. Saves the resulting PNG image to disk and returns the file path and resolution.
| Name | Required | Description | Default |
|---|---|---|---|
| full_render | No | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It usefully discloses the side effect (writes a PNG to disk) and the response content (file path and resolution), but says nothing about overwrite behavior, required auth/context, or whether the full render blocks or is long-running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the primary action front-loaded and no filler. Slightly terse given the unstructured parameters, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not strictly needed, and the description still summarizes the return. However, with zero annotation coverage and zero schema description coverage, the absence of any output_path or default-behavior explanation leaves real gaps for a tool that writes files.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so both parameters are undocumented in structured data. The description obliquely conveys what full_render does via the two render modes, but never names the parameter, and output_path is entirely unexplained (no default-path or format guidance), so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Captures a viewport preview screenshot ... or triggers a full Cycles/EEVEE render'), clearly distinguishing the two modes. No sibling tool in the list performs rendering, so differentiation is implicit and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It contrasts 'fast OpenGL render' with 'full Cycles/EEVEE render', which implies when each mode is appropriate, but it never explicitly says which mode to choose or when to avoid one. No prerequisite or exclusion guidance is given, leaving the selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v1.0.0- First observed
blender_create_object - First observed
blender_execute_script - First observed
blender_export_asset - First observed
blender_get_outliner - First observed
blender_get_scene_info - First observed
blender_inspect_object - First observed
blender_manage_material - First observed
blender_manage_modifiers - First observed
blender_modify_object - First observed
blender_ping - First observed
blender_render_viewport
TDQS
Scored across 11 tools
Each tool targets a distinct Blender operation: connection check, scene metadata, hierarchy, object inspection, export, script execution, object creation/modification, modifiers, materials, and rendering. Overlap is minimal; execute_script is a general escape hatch but clearly distinguished as arbitrary Python.
All 11 tools use the same blender_ prefix and snake_case verb_noun pattern (e.g., blender_create_object, blender_manage_material). Deviations are minor (e.g., blender_ping, blender_get_outliner) but still consistent and predictable.
11 tools is well within the 3β15 sweet spot for a domain-specific MCP server. Each tool covers a distinct high-level capability, avoiding redundancy.
Core lifecycle operations for scene objects are covered: create, inspect, modify, material, modifiers, export, render, plus a script escape hatch. However, no dedicated delete-object tool exists, and file save/load or selection management are absent; these can be worked around via blender_execute_script.
Maintenance
Related MCP Connectors
Connect your AI assistant to Blender for 3D modeling, Geometry Nodes, materials, lighting, animation, rendering and export. Inspect real scenes and viewport images, refine the result and restore checkpoints. OAuth connects your chat to Blender Bridge Desktop on an online Windows 10/11 x64 computer running Blender 4.2+. The chat can run on another device. Requires an active Blender Bridge account; 7-day trial available. AI model access is separate.
Blender-as-a-service for agents: search 3D assets, run Blender Python, or brief the studio agent.
Cloud Blender for AI agents: build, inspect, render and animate 3D scenes over remote MCP. Keep editable .blend projects and export GLB or STL. Make your first 3D asset freeβ30 compute minutes per UTC month, no credit card. First 100 eligible Free account owners to use all 30 minutes in one UTC month by December 31, 2026 UTC receive one calendar month of beta free: 4 compute hours per UTC month, 2 concurrent workers per deployment, 2 deployments, 2048Γ2048 renders at up to 256 samples, and 10 GiB storage. Existing usage counts toward the 4-hour allowance. Limited to 100 rewards; expires January 1, 2027 00:00 UTC. Free resumes afterward without an automatic charge. Examples, eligibility and terms: https://sceneplane.online/launch?utm_source=glama&utm_medium=directory&utm_campaign=first100
Blender and GLB/FBX/USD/STL rendered on cloud GPUs for AI agents: product shots, turntables, MP4
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to inspect and modify live Blender scenes, manage objects and materials, render images, retrieve PolyHaven assets, and send prompts to configurable local or OpenAI-compatible LLM backends.-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to control a live Blender session, creating, modifying, and deleting objects, applying materials, rendering images, executing code, and pulling PolyHaven assets, while routing prompts through a provider-agnostic LLM backend that can be switched at runtime.-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to control a live Blender session, inspect and modify scenes, manage PolyHaven assets, render images, and route prompts through configurable local or OpenAI-compatible LLM backends.-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to control a live Blender session, manage scenes, objects, materials, and renders, download PolyHaven assets, and switch between multiple LLM backends at runtime.-