Allows management and execution of Python scripts in a headless Blender environment, including creating 3D objects, analyzing scenes, and manipulating Blender projects through a scriptable interface.
Enables writing and executing Python scripts specifically for Blender automation, with support for tracking script metadata and capturing execution results.
Click on "Install 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 MCP Serveradd a script to create a cube and sphere in Blender"
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 MCP Server
A Model Context Protocol (MCP) server for managing and executing Blender scripts.
Features
Add, edit, execute, and remove Blender Python scripts
Execute scripts in a headless Blender environment
View execution results and errors
Track script metadata (creation date, last modified, execution count)
Related MCP server: MCP Python Server
Requirements
Python 3.7+
Blender installed and accessible
MCP library (
pip install mcp)
Usage
Start the server:
python server.pyConnect to the server using an MCP client (like Claude Desktop)
Use the provided tools to manage scripts:
add_script(name, content)- Add a new scriptedit_script(name, content)- Edit an existing scriptexecute_script(name, blend_file=None)- Execute a script in Blender, optionally specifying a .blend fileremove_script(name)- Remove a script
Access resources to get information:
scripts://list- Get list of available scriptsscript://{name}- Get content of a specific scriptresult://{name}- Get execution result of a script
Examples
Basic Example
# Add a simple script
add_script("hello_cube", '''
import bpy
# Clear existing objects
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
# Create a cube
bpy.ops.mesh.primitive_cube_add(size=2, location=(0, 0, 0))
print("Cube created!")
''')
# Execute the script
execute_script("hello_cube")
# Get the result
# Access using: result://hello_cubeWorking with Blend Files
# Add a script that works with a blend file
add_script("analyze_scene", '''
import bpy
# Print information about the current scene
print(f"Current Blender version: {bpy.app.version_string}")
print(f"Current file: {bpy.data.filepath}")
# List all objects in the scene
print("\\nObjects in the scene:")
for obj in bpy.data.objects:
print(f" - {obj.name} ({obj.type})")
''')
# Execute with a specific blend file
execute_script("analyze_scene", blend_file="/path/to/your/project.blend")
# Get the result
# Access using: result://analyze_sceneHow It Works
When a script is added, it's stored in the
script_files/scriptsdirectoryWhen executed, the script is run in a headless Blender instance
If a blend file is specified, Blender will open that file before running the script
Otherwise, a default empty Blender scene is used
Output and errors are captured and stored in the
script_files/resultsdirectoryMetadata about scripts is tracked in
script_files/metadata.json
Installation
Clone this repository
Install the MCP library:
pip install mcpEnsure Blender is installed and accessible from your PATH
License
MIT
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.