Blender Finisher
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NIUA_BLENDER_MCP_ALLOW_PYTHON | No | Set to '1' to enable the system.execute_python tool. Off by default. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| anim.timelineA | Report scene timeline range, current frame, and frame rate |
| anim.set_timelineB | Set scene timeline range, current frame, and frame rate |
| anim.set_frameB | Set the current scene frame (playhead) |
| anim.insert_keyframeC | Insert a keyframe on an object property at a frame |
| anim.delete_keyframeC | Delete a keyframe on an object property at a frame |
| anim.set_interpolationB | Set interpolation for all keyframes on an object's f-curves |
| anim.list_actionsA | List the actions in the file (read-only) |
| anim.reportA | Animation report for an object: frame range, f-curve count (read-only) |
| anim.keyframesC | Detailed f-curve and keyframe report for an object |
| api.reportC | Report live Blender API operator/type metadata surface |
| api.searchC | Search live Blender API operators and RNA types |
| app.infoB | Report Blender runtime, active file, dirty state, scene, workspace, and render engine |
| app.file_newB | Start a new empty file; force is required if current file is dirty |
| app.file_openA | Open an existing .blend file by absolute path; force is required if current file is dirty |
| app.file_saveA | Save the current file, or save to an absolute path if the file is unsaved |
| app.file_save_asA | Save the current file to a new absolute path and make it active |
| app.file_save_copyA | Save a copy of the current file without changing the active file path |
| app.file_revertB | Reload the current file from disk; force is always required |
| app.undoB | Run Blender undo for the active session |
| app.redoC | Run Blender redo for the active session |
| app.workspacesA | List workspaces and report the active workspace |
| app.workspace_setB | Switch the active window to a named workspace |
| app.addonsA | List available Blender add-ons with enabled and loaded state |
| app.addon_enableC | Enable an installed Blender add-on module |
| app.addon_disableC | Disable an installed Blender add-on module |
| app.preferences_summaryB | Report safe high-level user preference values |
| app.preferences_saveA | Save current Blender user preferences |
| capabilities.domainsA | List the craft domains and how many operations each exposes |
| capabilities.searchC | Search ALL of Blender for a capability by keyword, ranked (start here) |
| capabilities.describeA | Get the full typed parameter schema for one operation before calling it |
| capabilities.invokeC | Run any Blender operator with args validated against its schema (undo-safe) |
| capabilities.toolsA | Navigate THIS server's tools: no args -> domain map; {domain} -> its tools; {name} -> one schema |
| constraints.listC | List object or pose-bone constraints |
| constraints.addC | Add an object or pose-bone constraint |
| constraints.removeC | Remove a named object or pose-bone constraint |
| constraints.reportB | Report live RNA properties for object or pose-bone constraints |
| constraints.setC | Set one RNA property on an object or pose-bone constraint |
| context.infoA | Report active object, selected objects, mode, mesh select mode, and available areas |
| context.areasA | List available editor areas for context overrides |
| context.set_activeC | Set the active object and optionally select it |
| context.select_objectsC | Update object selection by comma-separated object names |
| context.select_allB | Select, deselect, or invert selection for all scene objects |
| context.mode_setA | Switch Blender interaction mode, optionally activating an object first |
| context.mesh_select_modeB | Set mesh edit selection mode |
| context.poll_operatorC | Check whether a Blender operator polls in the current or proposed context |
| feedback.topologyB | Render a topology overlay: n-gons red, tris orange, quads grey, plus wireframe |
| feedback.uvB | Render a UV checker eye and return structured UV analytics |
| feedback.orientationC | Render a normal/backface orientation eye and return orientation analytics |
| feedback.wire_shadedC | Render shaded material view with real wire geometry overlay and quality analytics |
| feedback.lookdevB | Render a material-shaded lookdev turntable and return quality analytics |
| feedback.captureC | Render one view (named or the live scene camera) to a PNG the agent can see |
| feedback.capture_viewsD | Render a multi-angle preset (the anti-blob) as several images |
| feedback.silhouetteC | Flat silhouette from preset angles + proportion/symmetry — the form eye. |
| feedback.turntableC | Orbit the object/scene and return a sequence of images |
| geometry.create_curveC | Create a curve primitive |
| geometry.reportC | Report non-mesh geometry object data |
| geometry.create_textC | Create a text object |
| geometry.create_surfaceD | Create a NURBS surface primitive |
| geometry.create_metaballC | Create a metaball primitive |
| geometry.create_grease_pencilD | Create a grease pencil object |
| geometry.set_curveD | Set curve-like geometry data fields |
| geometry.set_textC | Set text object fields |
| geometry.convert_to_meshC | Convert a non-mesh geometry object to a mesh |
| geometry_nodes.create_modifierB | Create a Geometry Nodes modifier with Blender's default node group |
| geometry_nodes.reportC | Report a Geometry Nodes modifier and its node group |
| geometry_nodes.add_nodeD | Add a node to a Geometry Nodes modifier group |
| geometry_nodes.linkC | Create a link between two Geometry Nodes sockets |
| info.reportB | Report Info editor areas and available report operators |
| info.messagesC | Return Info editor report messages when exposed by Blender RNA |
| rna.describeA | Describe a Blender operator or type via RNA (e.g. 'op:mesh.bevel', 'type:Object') |
| rna.searchA | Search the live Blender API for operators/types matching a query, ranked by relevance |
| io.importC | Import a mesh/scene file; format inferred from the extension by default |
| io.exportC | Export the scene or selected objects; format can be inferred from the path |
| io.prepare_assetC | Optionally apply transforms on one object, then export just that object |
| lattice.createC | Create a lattice object |
| lattice.reportC | Report lattice object, data, and point state |
| lattice.setC | Set one RNA property on lattice data |
| lattice.point_setB | Set one lattice point's deformed coordinate |
| lightprobe.createC | Create a light probe object |
| lightprobe.listB | List light probe objects |
| lightprobe.reportA | Report live RNA properties for a light probe |
| lightprobe.setC | Set one RNA property on a light probe data-block |
| mesh.extrudeC | Extrude the selected region and translate it |
| mesh.bevelC | Bevel the selected edges/vertices |
| mesh.insetC | Inset the selected faces |
| mesh.subdivideC | Subdivide the selected edges/faces |
| mesh.recalc_normalsC | Recalculate the mesh normals consistently |
| mesh.selection_reportC | Report selected vertices, edges, and faces |
| mesh.select_allC | Select, deselect, invert, or toggle all mesh elements |
| mesh.select_by_indexC | Select mesh elements by zero-based index |
| mesh.deleteC | Delete selected mesh elements |
| mesh.dissolveC | Dissolve selected mesh elements |
| mesh.mergeD | Merge selected vertices |
| mesh.remove_doublesC | Merge duplicate vertices |
| mesh.tris_to_quadsC | Convert selected triangles to quads |
| mesh.quads_to_trisC | Convert selected faces to triangles |
| mesh.fillD | Fill selected edges |
| mesh.edge_face_addC | Create an edge or face from selected elements |
| mesh.shade_smoothC | Toggle smooth/flat shading on the object |
| mesh.reportC | Analytic topology report for a mesh (read-only) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| refine_mesh | Scaffold the iterative refinement loop: checkpoint -> edit -> feedback.critique (images + quality) -> judge -> keep or session.revert -> repeat until quality targets are met. |
| inspect | Guide a read-only assessment (scene.info -> feedback.critique -> feedback.quality) before proposing any edits. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/OhaoTech/niua-blender-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server