Skip to main content
Glama
Haiyang-Bian

blender-research-mcp

by Haiyang-Bian

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BLENDER_RESEARCH_MCP_BLENDER_EXECUTABLENoOptional path to a Blender executable. When set, the MCP server can launch a visible Blender instance via application.launch. If not set, the server will auto-discover existing Blender sessions on port 9877.

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
application.statusA

Report whether a compatible Blender MCP session is running and summarize it.

application.launchA

Reuse a compatible Blender MCP session or launch the configured Blender with the version-matched session add-on. This tool never opens a project.

application.quitA

Commit an active transaction, optionally save the current project, and quit Blender on the next main-thread tick.

project.statusA

Read the current Blender project path, dirty state, generation, transaction, and most recent lifecycle operation without requiring a 3D viewport.

project.saveA

Commit the active transaction and save the current project, optionally using an absolute Save As path. Existing targets are overwritten.

project.openA

Open an existing absolute .blend path on the next main-thread tick. By default the current transaction is committed and dirty current project is saved.

project.reloadA

Reload the current saved .blend file on the next main-thread tick. Unsaved changes are discarded unless save_current is true.

connection.pingA

Check the authenticated Blender connection, versions, and UI heartbeat.

context.getA

Read the active Blender mode, selection, scene, and available viewports.

context.snapshotC

Store the current user context in Blender and return a session-local token.

context.restoreB

Restore a previously captured session-local Blender context snapshot.

scene.inspectB

Return bounded scene objects, collections, materials, images, world, active camera, and render summaries with session-local identities.

object.inspectA

Inspect one exact Blender object without changing user context.

object.geometry.inspectA

Return a bounded evaluated mesh summary without exposing raw vertex or face arrays.

object.lookdev.inspectA

List bounded object-local visibility, modifier, shape-key, and material-slot targets with session identities for safe preview writes.

material.inspectA

Inspect one exact material slot and list bounded node input identities, values, ranges, links, drivers, and write eligibility.

image.inspectA

Inspect one exact Blender image data-block, including absolute path, identity, dimensions, color space, users, and packed state.

viewport.captureA

Temporarily frame an object from a semantic view, capture the 3D editor, and restore the user's context.

viewport.raycastA

Resolve a normalized image coordinate against the evaluated Blender geometry represented by a prior viewport capture.

observation.bundleC

Capture one to three consistent semantic views with before/after context and object evidence.

lookdev.compareB

Capture a baseline and one to three absolute candidates for one inspected LookDev property, rolling every candidate back before returning evidence.

transaction.beginC

Begin the single reversible preview transaction for this Blender instance.

object.createB

Create one uniquely named bounded primitive, empty, camera, or light in an exact collection inside the active structural transaction.

object.duplicateA

Duplicate one exact object with linked or independent object data and a unique new name inside the active structural transaction.

object.deleteB

Unlink one exact unselected object now, restore it on rollback, or remove the object data-block when the structural transaction commits.

object.setA

Atomically apply typed transform, visibility, Light, and Camera settings to one exact object inside the active transaction.

object.transformC

Set one or more local object scale axes to absolute values inside the active transaction.

object.visibility.setA

Set absolute object viewport and/or render visibility flags inside the active transaction.

modifier.set_stateA

Set absolute viewport and/or render enable flags for one exact modifier inside the active transaction.

shape_key.set_valueA

Set one exact non-Basis, non-driven mesh shape key to an absolute value inside the active transaction.

material.set_inputA

Set one exact unlinked, undriven scalar/vector/color material input inside the active transaction. Shared materials require explicit confirmation.

material.createB

Create a uniquely named canonical Principled PBR material with bounded semantic surface values inside the active structural transaction.

material.assignA

Append, replace, or clear one exact material slot on inspected object data. Shared data requires its exact user count and explicit permission.

image.loadA

Load or reuse an image from an arbitrary absolute local path with a bounded color-space policy inside the active structural transaction.

material.texture.bindB

Bind one exact local image through generated semantic mapping nodes to a Principled PBR channel. Existing links require an exact replacement guard.

material.texture.clearB

Clear the exact inspected incoming link set from one Principled semantic channel and restore it if the structural transaction rolls back.

world.setB

Create or modify the current World background and an optional exact local environment image inside the active structural transaction.

scene.camera.setA

Set one exact Camera object as the active scene camera inside the structural transaction and restore the previous camera on rollback.

render.previewA

Render one exact Camera with temporary bounded Eevee Next settings, return PNG evidence, and restore all camera and render settings.

render.saveA

Render one exact Camera with bounded Eevee Next settings and overwrite an absolute PNG or EXR output path whose parent already exists.

transaction.commitA

End a transaction while retaining its changes in the current Blender session. This never saves the blend file.

transaction.rollbackC

Restore transaction property deltas and the captured user context.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/Haiyang-Bian/blender-research-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server