Blender MCP

Official Recommended

by Unknown

Not rated yet

About

A lightweight MCP (Model Context Protocol) server for Blender. It offers a natural language interface with Blender’s Python API, improving access to documentation, and allowing users to explore and understand complex setups.

Explore

get_scene_info

Get detailed information about the current Blender scene

get_object_info

Get detailed information about a specific object in the Blender scene. Parameters: - object_name: The name of the object to get information about

get_viewport_screenshot

Capture a screenshot of the current Blender 3D viewport. Parameters: - max_size: Maximum size in pixels for the largest dimension (default: 800) Returns the screenshot as an Image.

execute_blender_code

Execute arbitrary Python code in Blender. Make sure to do it step-by-step by breaking it into smaller chunks. Parameters: - code: The Python code to execute

get_polyhaven_categories

Get a list of categories for a specific asset type on Polyhaven. Parameters: - asset_type: The type of asset to get categories for (hdris, textures, models, all)

search_polyhaven_assets

Search for assets on Polyhaven with optional filtering. Parameters: - asset_type: Type of assets to search for (hdris, textures, models, all) - categories: Optional comma-separated list of categories to filter by Returns a list of matching assets with basic information.

download_polyhaven_asset

Download and import a Polyhaven asset into Blender. Parameters: - asset_id: The ID of the asset to download - asset_type: The type of asset (hdris, textures, models) - resolution: The resolution to download (e.g., 1k, 2k, 4k) - file_format: Optional file format (e.g., hdr, exr for HDRIs; jpg, png for textures; gltf, fbx for models) Returns a message indicating success or failure.

set_texture

Apply a previously downloaded Polyhaven texture to an object. Parameters: - object_name: Name of the object to apply the texture to - texture_id: ID of the Polyhaven texture to apply (must be downloaded first) Returns a message indicating success or failure.

get_polyhaven_status

Check if PolyHaven integration is enabled in Blender. Returns a message indicating whether PolyHaven features are available.

get_hyper3d_status

Check if Hyper3D Rodin integration is enabled in Blender. Returns a message indicating whether Hyper3D Rodin features are available. Don't emphasize the key type in the returned message, but sliently remember it.

get_sketchfab_status

Check if Sketchfab integration is enabled in Blender. Returns a message indicating whether Sketchfab features are available.

search_sketchfab_models

Search for models on Sketchfab with optional filtering. Parameters: - query: Text to search for - categories: Optional comma-separated list of categories - count: Maximum number of results to return (default 20) - downloadable: Whether to include only downloadable models (default True) Returns a formatted list of matching models.

download_sketchfab_model

Download and import a Sketchfab model by its UID. Parameters: - uid: The unique identifier of the Sketchfab model Returns a message indicating success or failure. The model must be downloadable and you must have proper access rights.

generate_hyper3d_model_via_text

Generate 3D asset using Hyper3D by giving description of the desired asset, and import the asset into Blender. The 3D asset has built-in materials. The generated model has a normalized size, so re-scaling after generation can be useful. Parameters: - text_prompt: A short description of the desired model in **English**. - bbox_condition: Optional. If given, it has to be a list of floats of length 3. Controls the ratio between [Length, Width, Height] of the model. Returns a message indicating success or failure.

generate_hyper3d_model_via_images

Generate 3D asset using Hyper3D by giving images of the wanted asset, and import the generated asset into Blender. The 3D asset has built-in materials. The generated model has a normalized size, so re-scaling after generation can be useful. Parameters: - input_image_paths: The **absolute** paths of input images. Even if only one image is provided, wrap it into a list. Required if Hyper3D Rodin in MAIN_SITE mode. - input_image_urls: The URLs of input images. Even if only one image is provided, wrap it into a list. Required if Hyper3D Rodin in FAL_AI mode. - bbox_condition: Optional. If given, it has to be a list of ints of length 3. Controls the ratio between [Length, Width, Height] of the model. Only one of {input_image_paths, input_image_urls} should be given at a time, depending on the Hyper3D Rodin's current mode. Returns a message indicating success or failure.

poll_rodin_job_status

Check if the Hyper3D Rodin generation task is completed. For Hyper3D Rodin mode MAIN_SITE: Parameters: - subscription_key: The subscription_key given in the generate model step. Returns a list of status. The task is done if all status are "Done". If "Failed" showed up, the generating process failed. This is a polling API, so only proceed if the status are finally determined ("Done" or "Canceled"). For Hyper3D Rodin mode FAL_AI: Parameters: - request_id: The request_id given in the generate model step. Returns the generation task status. The task is done if status is "COMPLETED". The task is in progress if status is "IN_PROGRESS". If status other than "COMPLETED", "IN_PROGRESS", "IN_QUEUE" showed up, the generating process might be failed. This is a polling API, so only proceed if the status are finally determined ("COMPLETED" or some failed state).

import_generated_asset

Import the asset generated by Hyper3D Rodin after the generation task is completed. Parameters: - name: The name of the object in scene - task_uuid: For Hyper3D Rodin mode MAIN_SITE: The task_uuid given in the generate model step. - request_id: For Hyper3D Rodin mode FAL_AI: The request_id given in the generate model step. Only give one of {task_uuid, request_id} based on the Hyper3D Rodin Mode! Return if the asset has been imported successfully.

16 tools to remove backgrounds, blur or grayscale backgrounds, change colors, convert formats (PNG/JPEG/WebP/…), upscale, denoise/enhance, run OCR, export PDF, edit text in images (Gemini), clean watermarks, inpaint masked regions, and run bulk resize / convert / quality checks.

Edit your Church website with ChatGPT or Claude

Hosted remote MCP server for AI image and video generation from one Streamable HTTP endpoint.

- Scene performance analysis— Ask your AI to analyze the open Blender scene and identify objects with high polygon counts relative to their on-screen size, like the classroom demo outlier detection.
- Data-block renaming— Have the assistant fix typos or suggest descriptive names for all data-blocks in the current file, applying changes only after your approval.
- Natural language scene queries— Ask questions about object relationships, such as "Which objects are using the material 'pebbles'?" or identify the highest poly-count object in the scene.
- Geometry Nodes documentation— Request an explanation of the main geometry nodes setup, with inline frame documentation and a text data-block summarizing the analysis.
- Scene debugging— Get help troubleshooting issues like non-uniformly scaled meshes, bad normals, or objects not deforming correctly with armatures.

A lightweight MCP (Model Context Protocol) server for Blender. It offers a natural language interface with Blender’s Python API, improving access to documentation, and allowing users to explore and understand complex setups.

For technical details and documentation about the architecture check thesource code.

[!warning] WarningSecurity Warning
The MCP server will execute LLM generated code in Blender without any guards in place to protect your data from removal or being sent to a remote location. To keep your data safe it is recommended to use a virtual machine, or a system without access to sensitive information.

Blender does not have any built-in functionality for connecting to LLMs.

In order for Blender to connect with LLMs,three external tools must be manually downloaded, installed, and run.

In order to interact with your Blender session you need to install a specific add-on for the MCP Server integration.

If you drag & drop into Blenderyou will need to do it twice. First to add the Blender Lab repository, secondly to install the add-on itself. This method allows you to receive update notifications whenever a new version of this add-on is available.

MCP Servers follow a well defined standard and are compatible with a myriad of clients. Please follow theLLama.cppdocumentation, or install a LLM client of your preference.

There are different ways to install the MCP Server depending on your LLM client capabilities.

- MCP Bundle: For newer clients that support.mcpbfiles, download thelatest packagefrom the release page.Llama.cpp doesn’t support this yet.
- MCP Server: To install from the source code check the
Llama.cpp documentationor thesetup instructions.

Once if you have your MCP Server setup within your LLM Client, you can start to explore your Blender scenes.

llama.cpp web interface running the blender-mcp server.

MCP can be used to programatically analyze the scene for performance bottomnecks. Take for instance theClassroom demo file:

This scene is one of theBlender benchmarkfiles. The reason those files are in the benchmark is because they are a good representation of real production files created by artists. And it is no surprise that it can contain objects prone to be optimized.

While checking for polygon count is often enough, even more interesting is to plot the number of polygons based on how big they show on the final render. This can be obtained with the following prompt.

Analyze the scene and list the outliers: objects with highest polygon count but smaller size from the camera point of view.

The plotted resulting data shows clearly two objects which stand out from the rest:alphabetandcoat 1:

Graph analysis of the polycount per screen area for the classroom demo scene.

Thealphabetobject has 20k polygons. Because of its flat disposition it could be replaced by a texture with little downside to the final result. Thecoat 1object has 37k polygons due to its Subsurf modifier. Lowering the subdivision level could alleviate the scene, if memory was the bottleneck in your system.

The alphabet sits at the back of the scene and could easily be replaced by a texture. The coat is also far enough that could have its mesh simplified.

[!info] InfoHow reliable are those results?

The initial analysis returned by the LLM only considered the modifiers which influenced the viewport. Thecoat 1object has a Solidify modifier which doubles its poly count, making it an even more outlier. And although this scene had no Simplify enabled, this settings would have also affected the final analysis.

Those are some of the other tested use cases. You will need to paste the entire “Prompt” content for them to work. As a start point you should use the corresponding demo file. The sucess of the operation will depend on the model used.

- Translate all the data-blocks from French to English.
- My mesh is not being deformed by my armature, how can I fix that?
- Blender is running out of memory rendering this scene, how can I optimize it?
- This mesh has strange shading artifacts, how can I you fix that?
- Find objects that have meshes with bad normals.
- Check my scene for non-uniformally transformed mesh objects.
- The video I exported doesn’t play in my web browsers, which settings should I change?
- Which sculpt brushes should I use for creating and detailing tree branches?
- Set up compositing nodes to save my image both as SDR and HDR.
- Verify this checklist:: meshes must be manifold, all objects must have materials, naming must follow convention, no absolute paths, … Data-block renaming: fix typos

GRP-rocks→GRP-pebbles(the scene contains only pebble objects, not rocks).

LGT-Lights→LGT-lights(inconsistent casing).

Compositing Nodetree→Compositing Node Tree(Nodetree is a compound word error).

- Camera→CAM-main
- Area→LGT-sun-key
- Area.001→LGT-sun-fill
- Area.002→LGT-area-rim
- GEO-pebble.001→GEO-pebble-B
- GEO-pebble.002→GEO-pebble-C
- GEO-pebble.003→GEO-pebble-D
- GEO-pebble.004→GEO-pebble-E
- GEO-pebble.005→GEO-pebble-F
- GEO-pebble.006→GEO-pebble-G

- Area→LGT-sun-key
- Area.001→LGT-sun-fill
- Area.002→LGT-area-rim

- Texture→TEX-ground-clouds
- Texture.001→TEX-ground-image

- World→WLD-environment
- Scene→SCN-mainGeometry Nodes Documentation

Documentation frames added to the geometry nodes setup.

GEOMETRY NODES ANALYSIS -- "Pebble Scattering Nodes" Applied to object: GEO-ground | Modifier: Pebbles ======================================================== OVERVIEW -------- This node group scatters three size categories of pebble meshes across the faces of a ground mesh. Each category uses its own density mask and a global Factor multiplier so that coverage can be art-directed per-layer without touching the raw mask textures. The three resulting instance layers are merged with the original ground geometry and sent to the Group Output. INPUTS (Group Interface) ------------------------ Geometry -- The ground mesh to scatter pebbles on. Large Pebbles Mask -- Float mask (e.g. vertex colour / texture) that defines WHERE large pebbles may appear. Medium Pebbles Mask-- Float mask for medium pebble placement regions. Small Pebbles Mask -- Float mask for small pebble placement regions. Factor -- Global density multiplier shared by all three lanes (appears three times in the interface, one per lane). NODE GRAPH -- LANE BY LANE -------------------------- +- LARGE PEBBLES LANE -----------------------------------------------------+ | Source object : GEO-pebble | | Group Input.001 | | +- Geometry ------------------------> Distribute Points on Faces | | +- Large Pebbles Mask ------------> Distribute Points on Faces | | | (Density Factor socket) | | +- Factor --> Math.003 (x) -------> Distribute Points on Faces | | (Density Max socket) | | Distribute Points on Faces ----------> Instance on Points | | Object Info (GEO-pebble) -----------> Instance on Points (Instance) | | Random Rotation.001 [-pi, +pi] -----> Instance on Points (Rotation) | | Random Value [0.25 - 0.60] -------> Instance on Points (Scale) | | Instance on Points ------------------> Join Geometry.003 | +--------------------------------------------------------------------------+ +- MEDIUM PEBBLES LANE ----------------------------------------------------+ | Source object : GEO-pebble.004 | | Group Input.002 | | +- Geometry ------------------------> Distribute Points on Faces.001 | | +- Medium Pebbles Mask -----------> Math.004 (x) --> Math.005 (x) | | +- Factor ------------------------> Math.005 (x) | | Math.005 output --------------> Distribute Points on Faces.001 | | (Density socket) | | Distribute Points on Faces.001 -----> Instance on Points.001 | | Object Info.001 (GEO-pebble.004) --> Instance on Points.001 | | Random Rotation.002 [-pi, +pi] ----> Instance on Points.001 | | Random Value.002 [0.25 - 0.45] -----> Instance on Points.001 | | Instance on Points.001 -------------> Join Geometry.003 | +--------------------------------------------------------------------------+ +- SMALL PEBBLES LANE -----------------------------------------------------+ | Source object : GEO-pebble.002 | | Group Input.003 | | +- Geometry ------------------------> Distribute Points on Faces.002 | | +- Small Pebbles Mask -----------> Math.006 (x) --> Math.007 (x) | | +- Factor ------------------------> Math.006 (x) | | Math.007 output --------------> Distribute Points on Faces.002 | | (Density socket) | | Distribute Points on Faces.002 -----> Instance on Points.002 | | Object Info.002 (GEO-pebble.002) --> Instance on Points.002 | | Random Rotation [-pi, +pi] ----> Instance on Points.002 | | Random Value.003 [0.10 - 0.35] -----> Instance on Points.002 | | Instance on Points.002 -------------> Join Geometry.003 | +--------------------------------------------------------------------------+ +- MERGE & OUTPUT ---------------------------------------------------------+ | Group Input.004 | | +- Geometry (pass-through) --------> Join Geometry.003 | | Join Geometry.003 | | (inputs: large instances + medium instances + | | small instances + original ground geo) | | +- Geometry -----------------------> Group Output | +--------------------------------------------------------------------------+ SCALE RANGES (uniform, per lane) --------------------------------- Large pebbles : 0.25 - 0.60 Medium pebbles : 0.25 - 0.45 Small pebbles : 0.10 - 0.35 ROTATION (all lanes) --------------------- All three axes randomised independently over [-pi, +pi], giving each pebble instance a fully random orientation. DENSITY CONTROL PATTERN (Medium & Small lanes) ----------------------------------------------- The mask value and the Factor are first multiplied together (Math.004 / Math.006), then that product is multiplied again by a second value (Math.005 / Math.007) before being fed into the Density socket. This two-stage multiply gives a non-linear response curve, making the density fall off more aggressively near the mask edges. The Large lane uses a different (single-stage) approach: the Density Factor socket receives the mask directly, and the Factor is only used to scale Density Max via Math.003. NOTES & SUGGESTIONS --------------------  The node group has no Seed input exposed; adding one would allow re-randomising all three layers simultaneously without touching individual nodes.  The Factor input currently appears three times (once per lane). Merging them into a single shared socket would simplify the modifier panel. * Consider labelling the unlabelled Math nodes (Math.003-.007) and Random Value nodes to aid future maintenance.

You're agent can Chain 60+ AI image and video models on one workflow canvas

MCP Server for dynamically generating infographics using Napkin.AI

The Lottie Creator MCP brings your AI assistant directly into your animation workflow — giving it full access to LottieFiles Creator so it can build and edit Lottie animations on your behalf through natural language.

AI Video, Image & Audio Generation with over 150 models

Rive MCP let AI handle repetitive tasks, like creating complex View Models, State Machines with hundreds of states/layers, Layouts, Shapes, and more.

Create, edit, and export SVGator animations (SVG, Lottie, GIF, video) from your AI assistant, and keep an editable project you can open in the editor anytime.

Convert photos to LEGO-style brick mosaic previews with AI-powered color quantization. MCP server for Claude, Cursor, and other AI agents.

Changeimageto - Free Image Editing tools

16 tools to remove backgrounds, blur or grayscale backgrounds, change colors, convert formats (PNG/JPEG/WebP/…), upscale, denoise/enhance, run OCR, export PDF, edit text in images (Gemini), clean watermarks, inpaint masked regions, and run bulk resize / convert / quality checks.

Edit your Church website with ChatGPT or Claude

Hosted remote MCP server for AI image and video generation from one Streamable HTTP endpoint.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.