SuperMCP
Provides tools for interacting with Blender, enabling AI agents to perform mesh modeling, PBR texturing, UV unwrapping, rigging, animation, lighting, camera setup, rendering, scene management, and batch processing, as well as exporting assets to formats such as glTF/GLB for game engines.
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., "@SuperMCP Export the current Blender scene as a GLB with PBR materials for Godot."
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.
SuperMCP para Blender
SuperMCP es un servidor MCP separado del Free blender-mcp que expone 107 herramientas para modelado de mallas complejas, texturizado PBR y pipeline de exportacion a Godot 4.x y Redot. El addon de Blender opera en el puerto 9877. El Free opera en 9876. Ambos coexisten sin colision.
Caracteristicas
Correcciones respecto al Free
Viewport screenshot corrige el Bug #189 mediante
GPUOffScreen.draw_view3dcon fallback a captura de ventana. Reporta el metodo empleado.Material Principled BSDF evita duplicacion de nodos al reutilizar nodos existentes.
Estabilidad de conexion con reintento automatico de tres intentos con backoff exponencial y delimitador nulo.
Librerias de assets con sanitizacion de rutas y cache.
Pipeline de curado pre-export
El exportador a Godot ejecuta de forma automatica, antes de exportar, tres operaciones:
Aplicacion de transformaciones. Convierte location, rotacion y escala a datos de malla. La escala resultante es 1,1,1. Corrige skinning y colisiones en Godot.
Union de vertices por distancia. Eliminacion de duplicados mediante
bmesh.ops.remove_doublescon distancia 0.0001 por defecto.Recalculo de normales. Correccion de caras invertidas mediante
bmesh.ops.recalc_face_normalscon orientacion exterior.
Cobertura funcional
El sistema cubre el Free corregido y 11 categorias ausentes en el Free. El total es 107 herramientas.
Modificadores: 6 herramientas, 22 tipos (Subsurf, Bevel, Boolean, Array, Mirror, Solidify, Decimate, Remesh, Weld, Triangulate, Shrinkwrap, WeightedNormal, DataTransfer entre otros).
Malla avanzada y validacion: 2 herramientas. Operaciones bmesh (subdivide, bevel, triangulate, merge_by_distance, recalc_normals) y validacion de ngons, tris, degenerados y UV.
Geometry Nodes: 5 herramientas. Creacion de modificador Nodes, agregado y conexion de nodos, asignacion de parametros y 8 plantillas (scatter, extrude, boolean, subdivide, triangulate, merge_by_distance, instance_on_points, noise_displace).
Shader Nodes: 10 herramientas. Creacion, adicion, eliminacion, conexion, parametrizacion, inspeccion, limpieza, duplicacion, ordenamiento y exportacion a codigo Python.
UV: 6 herramientas. Desempaquetado Smart/Cube/Unwrap, gestion de capas, empaquetado de islas, exportacion de layout y validacion.
PBR y horneado: 4 herramientas. Creacion y asignacion de material Principled, empaquetado ORM (AO en R, Roughness en G, Metallic en B en espacio Non-Color) y horneado Cycles (AO, Diffuse, Normal, Combined, Roughness, Emit).
Rigging: 8 herramientas. Creacion de armature, agregado de huesos, parametrizacion, parentesco con pesos automaticos, restriccion IK, preset basic_chain, transferencia de pesos y listado.
Animacion: 12 herramientas. Insercion y eliminacion de keyframes, control de timeline, creacion y asignacion de acciones, interpolacion, horneado, creacion de pistas NLA con soporte de sufijo -loop para Godot, copia de keyframes, limpieza, consulta y ajuste de manejadores.
Iluminacion: 5 herramientas. Creacion y parametrizacion de luces Point, Sun, Spot y Area, asignacion de HDRI en World y preset de iluminacion de estudio de tres puntos.
Camara: 7 herramientas. Creacion y parametrizacion, activacion en viewport, seguimiento Track-To, rig de camara con Empty, render y listado.
Render: 4 herramientas. Seleccion de motor, configuracion de resolucion y muestras, salida y consulta.
Batch: 5 herramientas. Ejecucion por objeto, cola de render, importacion y exportacion por lote y procesamiento de directorio.
Entrada y salida: 4 herramientas. Soporte de 9 formatos (FBX, gLTF, GLB, OBJ, STL, PLY, DAE, ABC, USD, BLEND), deteccion automatica por extension y listado de formatos.
Diagnostico y escena: 8 herramientas. Verificacion de salud de rig, validacion y correccion de armature, reporte, limpieza de huerfanos, organizacion de colecciones, fusion de archivos blend y estadisticas.
Presets y pulido Godot: 8 herramientas. Presets de iluminacion, tornamesa y personaje base, generacion de preset desde escena, sugerencias contextuales, generacion de colisiones por sufijo (-col, -convcol, -colonly), niveles de detalle por decimacion y verificacion de compatibilidad de materiales.
Herramientas de alto nivel: 4 herramientas. Limpieza de escena sin
read_factory_settings(seguro en sandbox), encuadre automatico de camara por AABB, render de previsualizacion en un paso y aliasexport_godot_glbcon PBR y compresion opcional.Alto nivel adicional: Gestion de contexto 3D estable mediante
temp_override, traza estructurada en JSON con excepcion, numero de linea y traceback completo, y envoltura de ejecucion de codigo con override automatico.Utilidades de escena: captura de viewport, informacion de escena y objeto, ejecucion de codigo Blender.
Related MCP server: Blender MCP Server
Requisitos
Blender 3.0 o superior. Probado con 4.x.
Python 3.11 o superior.
Dependencias del servidor:
mcp >= 1.29.0,httpx,pydantic,PyYAML.Godot 4.x o Redot para el pipeline GLB. Formato nativo gLTF 2.0 (.glb) con 1 unidad Blender equivalente a 1 metro en Godot.
Estructura del repositorio
super-mcp/
addon.py Fuente del addon (desarrollo).
super_mcp/__init__.py Modulo instalable en Blender (generado desde addon.py).
super_mcp.zip Paquete instalable via Preferences > Add-ons > Install.
addon.py (no instalar directo, usar super_mcp.zip).
server/
__main__.py Servidor FastMCP. Transporte stdio y http.
tools/ 18 modulos, 107 herramientas con registro automatico.
tools_helpers/
connection.py Cliente de socket con reintento y framing nulo.
data/
prompts.yml Instrucciones iniciales para el agente.
presets/godot/ Perfiles de exportacion por tipo de objeto.
pyproject.toml Definicion del proyecto y script super-mcp.
opencode.json Configuracion MCP para OpenCode a nivel de proyecto.
PHASES.md Historico de fases de implementacion.
README.md Este documento.Instalacion
Instalacion del addon en Blender
Abrir Blender.
Seleccionar Edit, Preferences, Add-ons, Install.
Seleccionar el archivo
super_mcp.zipdel repositorio (contienesuper_mcp/__init__.py). No instalaraddon.pysuelto, ya que Blender lo registra como modulo genericoaddon.Activar Interface: SuperMCP (buscar
SuperMCPcon el filtro de Add-ons).En la vista 3D, abrir el panel lateral con N, seleccionar la pestana SuperMCP y accionar Start Server. El servidor queda en escucha en 9877. El Free permanece en 9876.
Instalacion del servidor MCP
Opcion A: Instalacion directa desde GitHub
pip install git+https://github.com/ArkSentinel/super-blender-mcp.git
super-mcp --transport stdio
# con uv
uv tool install git+https://github.com/ArkSentinel/super-blender-mcp.gitSustituir TU_USUARIO por el propietario del repositorio. Esta variante no requiere clonacion previa y registra el binario super-mcp en el PATH.
Opcion B: Clonacion e instalacion editable para desarrollo
git clone https://github.com/ArkSentinel/super-blender-mcp.git
cd super-mcp
pip install -e .
super-mcp --transport stdioOpcion C: Herramienta aislada con uv desde ruta local
uv tool install --from /ruta/a/super-mcp super-mcp
super-mcp --transport stdioSustituir /ruta/a/super-mcp por la ruta absoluta donde se clono el repositorio.
Opcion D: Ejecucion sin instalacion
PYTHONPATH=/ruta/a/super-mcp python3 -m server.__main__ --transport stdioTransporte HTTP
super-mcp --transport http --host 127.0.0.1 --port 8001El puerto HTTP por defecto para SuperMCP es 8001. El Free utiliza 8000.
Variables de entorno
SUPER_MCP_HOST. Valor por defecto localhost.BLENDER_MCP_HOSTse considera como respaldo.SUPER_MCP_PORT. Valor por defecto 9877.
Uso
Verificacion de conexion
nc -z -w2 localhost 9877 && echo "SuperMCP abierto" || echo "SuperMCP cerrado"
nc -z -w2 localhost 9876 && echo "Free abierto" || echo "Free cerrado"Ambos deben reportar abierto cuando Blender se encuentra en ejecucion con cada servidor iniciado.
Flujo basico de modelado y exportacion a Godot
# El agente invoca herramientas MCP. Ejemplo conceptual de secuencia:
# 1. Limpiar escena
reset_scene_clean()
# 2. Crear malla y modificadores no destructivos
add_modifier(object_name="Cube", modifier_type="subsurf", params={"levels": 2})
add_modifier(object_name="Cube", modifier_type="bevel", params={"segments": 3})
# 3. Validar malla
validate_mesh(object_name="Cube")
# 4. Crear material PBR
pbr_create_material(material_name="Body", base_color=[0.8,0.2,0.2,1.0], metallic=0.0, roughness=0.5)
pbr_assign_material(object_name="Cube", material_name="Body")
# 5. Desempaquetar UV
uv_unwrap(object_name="Cube", method="SMART_PROJECT", margin=0.02)
# 6. Validar y exportar a Godot con curado automatico
godot_validate_scene(only_selected=False)
godot_export_glb(filepath="/tmp/model.glb", export_format="GLB", auto_cure=True)
# godot_export_glb aplica transforms, merge_by_distance y recalc_normals antes de bpy.ops.export_scene.gltfEl archivo /tmp/model.glb se importa directamente en Godot 4.x mediante importacion gLTF. La escala, las normales y los duplicados ya se encuentran corregidos.
Previsualizacion rapida
render_object_preview(object_name="Cube", filepath="/tmp/preview.png", resolution=512)
auto_frame_camera(target_objects=["Cube"], margin=1.2)
get_viewport_screenshot(max_size=800, filepath="/tmp/viewport.png")Trabajos por lote y multiples formatos
batch_import(directory="/ruta/a/assets", pattern="*.fbx")
batch_export(directory="/tmp/lote", export_format="GLB")
io_import_file(filepath="/ruta/a/modelo.obj", format="AUTO")
io_export_file(filepath="/tmp/salida.fbx", format="FBX", use_selection=False)
io_list_formats()Rigging y animacion
rig_create_armature(name="Armature", location=[0,0,0])
rig_add_bone(armature_name="Armature", bone_name="Bone", head=[0,0,0], tail=[0,1,0])
rig_parent_to_armature(object_name="Cube", armature_name="Armature", with_weights="ARMATURE_AUTO")
anim_create_action(object_name="Cube", action_name="Bounce")
anim_insert_keyframe(object_name="Cube", data_path="location", frame=1, value=[0,0,0])
anim_insert_keyframe(object_name="Cube", data_path="location", frame=24, value=[0,0,2])
anim_create_nla_strip(object_name="Cube", strip_name="Bounce-loop", frame_start=1)El sufijo -loop en la pista NLA activa el bucle automatico en el importador de Godot.
Colisiones y LOD para Godot
godot_setup_collision(object_name="Wall", collision_type="-colonly")
godot_setup_lod(object_name="Character", levels=[0.5, 0.25])
godot_check_material_compatibility(object_name="Wall")Godot genera StaticBody3D y CollisionShape3D a partir de los sufijos -col, -convcol, -colonly y -convcolonly en el nombre del objeto. Los objetos con sufijo -colonly no se renderizan.
Configuracion en harnesses
OpenCode
La configuracion versionada en opencode.json utiliza el binario instalado y no requiere rutas absolutas. Es portable entre equipos.
Contenido de opencode.json incluido en el repositorio:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"super-mcp": {
"type": "local",
"command": ["super-mcp"],
"enabled": true
}
}
}Este archivo funciona cuando el paquete se instalo mediante pip o uv (Opcion A o B). OpenCode lo detecta de forma automatica sin configuracion adicional.
Para ejecucion sin instalacion (Opcion D), utilizar la variante con PYTHONPATH y sustituir /ruta/a/super-mcp por la ruta absoluta del clon. Tras modificar la configuracion global en ~/.config/opencode/opencode.json, reiniciar OpenCode.
Verificacion:
opencode mcp list 2>/dev/null | grep super-mcp
# o inspeccionar el registro en los logs de OpenCodeClaude Code
Con el paquete instalado, la configuracion recomendada utiliza el binario:
{
"mcpServers": {
"super-mcp": {
"command": "super-mcp",
"args": []
}
}
}Alternativa con claude mcp add:
claude mcp add super-mcp -- super-mcpPara ejecucion sin instalacion, editar ~/.claude.json con:
{
"mcpServers": {
"super-mcp": {
"command": "/usr/bin/python3",
"args": ["-m", "server.__main__"],
"env": {
"PYTHONPATH": "/ruta/a/super-mcp"
}
}
}
}Sustituir /ruta/a/super-mcp por la ruta absoluta del clon.
Cursor
Con paquete instalado, editar ~/.cursor/mcp.json:
{
"mcpServers": {
"super-mcp": {
"command": "super-mcp",
"args": []
}
}
}Sin instalacion, utilizar el formato con PYTHONPATH descrito para Claude Code.
Windsurf
Editar ~/.codeium/windsurf/mcp_config.json con el mismo formato que Cursor.
Antigravity (Gemini)
Antigravity utiliza ~/.gemini/config/mcp_config.json (compartido con Gemini CLI). Agregar en mcpServers:
{
"mcpServers": {
"super-mcp": {
"command": "super-mcp",
"args": [],
"env": {
"SUPER_MCP_HOST": "localhost",
"SUPER_MCP_PORT": "9877"
}
}
}
}Sin instalacion via pip, utilizar:
{
"mcpServers": {
"super-mcp": {
"command": "/usr/bin/python3",
"args": ["-m", "server.__main__"],
"env": {
"PYTHONPATH": "/ruta/a/super-mcp"
}
}
}
}Reiniciar Antigravity tras guardar. Coexiste con el Free blender en puerto 9876 sin conflicto.
Cline y harnesses genericos
Con paquete instalado, cualquier harness compatible con MCP en transporte stdio utiliza:
Comando:
super-mcpArgumentos:
[]
Sin instalacion:
Comando:
/usr/bin/python3Argumentos:
["-m", "server.__main__"]Variable
PYTHONPATHapuntando a la raiz del repositorio.
Para transporte HTTP o SSE, iniciar el servidor de forma independiente con super-mcp --transport http --host 127.0.0.1 --port 8001 y configurar el harness hacia http://127.0.0.1:8001.
Gestion de errores
Todas las herramientas retornan objetos JSON estructurados. En caso de error, la respuesta contiene exception, message, line_number y traceback completo. La ejecucion de codigo arbitrario mediante execute_blender_code incluye ademas code_snippet con la linea que produjo el fallo. El contexto 3D se resuelve mediante temp_override para evitar valores nulos en bpy.context.active_object y selected_objects durante ejecuciones en segundo plano.
Licencia
GPL-3.0-or-later, compatible con el Free blender-mcp de referencia.
Referencias
Blender Python API.
bpy,bmesh,bpy.ops.export_scene.gltf,bpy.ops.object.modifier_add.Especificacion gLTF 2.0. Formato de intercambio nativo para Godot 4.x y Redot.
Protocolo MCP. Transporte stdio y streamable HTTP.
Available Tools
107 toolsadd_modifierA
Add a modifier to a mesh. modifier_type: subsurf, bevel, boolean, array, mirror, solidify, decimate, remesh, weld, triangulate, shrinkwrap, weighted_normal, etc. Handles 22 types. params example: {"levels":2, "render_levels":3} for Subsurf, {"operation":"DIFFERENCE"} for Boolean, {"segments":3} for Bevel.
Inputs: object_name (required), modifier_type (required), name, params.
anim_assign_actionD
Inputs: object_name (required), action_name.
anim_bakeD
Inputs: object_name (required), frame_end, frame_start.
anim_clearDDestructive
Inputs: object_name (required).
anim_copy_keyframesD
Inputs: source_object (required), target_object (required), data_path.
anim_create_actionD
Inputs: object_name (required), action_name.
anim_create_nla_stripC
Push action to NLA. Use -loop suffix for Godot looping.
Inputs: object_name (required), strip_name, frame_start.
anim_delete_keyframeD
Inputs: object_name (required), frame, data_path.
anim_get_infoDRead-only
Inputs: object_name (required).
anim_insert_keyframeD
Inputs: object_name (required), frame, value, data_path.
anim_set_graph_handlesD
Inputs: object_name (required), handle_type.
anim_set_interpolationD
interpolation: BEZIER, LINEAR, CONSTANT.
Inputs: object_name (required), data_path, interpolation.
anim_set_timelineD
Inputs: fps, frame_end, frame_start, current_frame.
apply_modifierBDestructive
Apply (bake) a modifier destructively.
Inputs: object_name (required), modifier_name (required).
auto_frame_cameraB
Calcula AABB y posiciona cámara en ángulo ideal antes de captura. Usa temp_override.
Inputs: margin, camera_name, target_objects.
batch_execute_on_objectsC
Execute code with obj var on each object.
Inputs: code (required), only_selected.
batch_exportC
Export each MESH object as separate file.
Inputs: directory, export_format, only_selected.
batch_importA
Import all files matching pattern from directory (fbx, gltf, obj, stl, etc).
Inputs: directory (required), pattern.
batch_process_directoryC
Process all .blend files in directory with script_code.
Inputs: directory (required), script_code.
batch_render_queueD
Inputs: filepaths.
camera_createD
Inputs: lens, name, location, rotation_euler.
camera_create_rigD
Inputs: rig_name, target_object.
camera_listDRead-only
Inputs: no named parameters.
camera_renderD
Inputs: filepath, camera_name.
camera_set_paramsC
params: lens, clip_start, clip_end, etc.
Inputs: camera_name (required), params.
camera_set_viewD
Inputs: camera_name (required).
camera_track_toD
Inputs: camera_name (required), target_object (required).
cure_modelA
Cure a single mesh before Godot export: apply transforms, merge vertices by distance, recalc normals.
Apply Transforms bakes location/rotation/scale into mesh (scale→1,1,1) — fixes Godot skinning/collision.
Merge by Distance removes duplicate vertices (bmesh remove_doubles).
Recalc Normals fixes inverted faces (bmesh recalc_face_normals outside).
Use before godot_export_glb or let godot_export_glb auto-cure.
Inputs: name (required), apply_scale, apply_location, apply_rotation, +2 more.
cure_sceneA
Cure every (or selected) mesh in the scene: apply transforms + merge by distance + recalc normals.
This is the pre-export gate for Godot. Run explicitly to inspect cure Report, or rely on godot_export_glb auto-cure.
Returns per-object reports and summary {cured_count, total_vertices_removed}.
Inputs: apply_scale, only_meshes, only_selected, apply_location, +3 more.
diag_check_rig_healthDRead-only
Inputs: armature_name (required).
diag_fix_rigD
Inputs: armature_name (required).
diag_get_rig_reportDRead-only
Inputs: armature_name (required).
diag_validate_armatureDRead-only
Inputs: armature_name (required).
execute_blender_codeADestructive
Execute arbitrary Blender Python (bpy, bmesh, mathutils) on SuperMCP port 9877.
Assign result variable for return. Separate from Free's execute on 9876.
Inputs: code (required).
export_godot_glbC
Alias PBR-compat de godot_export_glb con compresión opcional para Godot/Redot.
Inputs: filepath, auto_cure, compression, use_selection.
geometry_nodes_add_nodeC
Add a node to a geometry node group. e.g. GeometryNodeMeshCube, GeometryNodeSubdivideMesh, GeometryNodeDistributePointsOnFaces.
Inputs: node_type (required), node_group_name (required).
geometry_nodes_createB
Create a Geometry Nodes modifier with a new or existing node group.
Inputs: object_name (required), modifier_name, node_group_name.
geometry_nodes_linkB
Link two nodes in a geometry node group by socket names.
Inputs: from_node (required), node_group_name (required), to_node, to_socket, +1 more.
geometry_nodes_set_paramB
Set a param on a node (property or input default_value). value is string-coerced.
Inputs: param (required), node_name (required), node_group_name (required), value.
geometry_nodes_templatesARead-only
List 8 curated Geometry Nodes templates (scatter, extrude, boolean, etc.).
Inputs: no named parameters.
get_godot_export_infoARead-only
Info about SuperMCP Godot pipeline: ports, curing steps, formats.
Inputs: no named parameters.
get_object_infoBRead-only
Details for one object, including curing hints (needs_apply_transforms, ngon_count).
Inputs: name (required).
get_scene_infoARead-only
List objects in current Blender scene (via SuperMCP port 9877).
Inputs: no named parameters.
get_viewport_screenshotARead-only
Screenshot of 3D viewport via GPUOffScreen (fix Bug #189 — black when window not foreground). Falls back to window grab if GPU unavailable. Returns {success, width, height, filepath, method}.
Inputs: format, filepath, max_size.
godot_batch_exportD
Inputs: directory, export_format.
godot_check_material_compatibilityBRead-only
Empty object_name checks all meshes.
Inputs: object_name.
godot_export_glbA
Export to glTF 2.0 (.glb) for Godot 4.x with automatic curing before export.
Pipeline when auto_cure=true (default):
cure_scene (apply transforms → merge by distance → recalc normals) on targets
godot_validate_scene (post-cure)
bpy.ops.export_scene.gltf (GLB, Y-up, tangents, materials, skins)
Set auto_cure=false to export raw (not recommended — Godot will show scale/normal artifacts). cure_merge_distance default 0.0001 (0.1mm at 1 unit=1m).
Args: filepath: absolute path like /tmp/model.glb or /home/user/exports/prop.glb export_format: GLB (single file, recommended) or GLTF_SEPARATE / GLTF_EMBEDDED use_selection: only export selected objects auto_cure: run cure pipeline before export (recommended)
Returns {success, filepath, file_size_bytes, cure_report, validation}.
Inputs: filepath (required), auto_cure, export_yup, use_visible, +6 more.
godot_setup_collisionC
collision_type: -col, -convcol, -colonly, -convcolonly. Duplicates mesh as Godot collision via suffix.
Inputs: object_name (required), collision_type.
godot_setup_lodD
Inputs: object_name (required), levels.
godot_validate_sceneARead-only
Validate scene for Godot 4.x glTF export. Gate before godot_export_glb.
Checks: scale !=1, ngons, missing UV, missing images, degenerate faces, armature scale. Returns {can_export, errors[], warnings[], infos[], mesh_count}. If can_export is false, fix errors before exporting. Warnings are auto-fixed by cure on export.
Inputs: only_selected.
io_export_fileC
Formats: GLB, FBX, OBJ, STL, PLY, DAE, ABC, USD.
Inputs: filepath (required), format, use_selection.
io_get_import_optionsDRead-only
Inputs: format.
io_import_fileC
AUTO detects .fbx/.gltf/.glb/.obj/.stl/.ply/.dae/.abc/.usd/.blend.
Inputs: filepath (required), format.
io_list_formatsDRead-only
Inputs: no named parameters.
light_createD
light_type: POINT, SUN, SPOT, AREA.
Inputs: name, color, energy, location, +1 more.
light_listDRead-only
Inputs: no named parameters.
light_set_paramsD
Inputs: light_name (required), params.
light_setup_studioD
Inputs: preset.
light_set_world_hdriD
Inputs: filepath, strength.
list_modifiersARead-only
List all modifiers on an object with index/type/visibility.
Inputs: object_name (required).
mesh_operationBDestructive
bmesh operation on a mesh. operation: subdivide (params {cuts}), bevel ({offset, segments}), triangulate, decimate ({angle_limit}), merge_by_distance ({distance}), recalc_normals.
Inputs: operation (required), object_name (required), params.
move_modifierC
Reorder modifier stack to target index.
Inputs: index (required), object_name (required), modifier_name (required).
pbr_assign_materialD
Inputs: object_name (required), material_name (required), slot_index.
pbr_bake_textureB
Bake Cycles: AO, DIFFUSE, NORMAL, COMBINED, ROUGHNESS, EMIT. Saves to filepath.
Inputs: object_name (required), size, samples, filepath, +1 more.
pbr_create_materialC
Create or update Principled BSDF material.
Inputs: material_name (required), metallic, roughness, base_color.
pbr_pack_ormA
Pack AO(R) + Rough(G) + Metal(B) into one ORM image for Godot (Non-Color).
Inputs: width, height, output_name, ao_image_name, +2 more.
preset_applyC
Presets: studio_lighting, turntable, character_base.
Inputs: preset.
preset_create_from_sceneD
Inputs: preset_name.
preset_get_hintCRead-only
Contexts: modeling, texturing, rigging, export.
Inputs: context.
preset_listDRead-only
Inputs: no named parameters.
remove_modifierCDestructive
Remove a modifier by name.
Inputs: object_name (required), modifier_name (required).
render_get_infoDRead-only
Inputs: no named parameters.
render_object_previewC
Renderiza miniatura de objeto en 1 paso: auto_frame + render EEVEE.
Inputs: margin, filepath, resolution, object_name.
render_set_engineC
engine: CYCLES or BLENDER_EEVEE.
Inputs: engine.
render_set_outputD
Inputs: filepath, file_format.
render_set_settingsD
Inputs: samples, filepath, resolution_x, resolution_y, +1 more.
reset_scene_cleanADestructive
Limpia mallas/materiales/texturas sin read_factory_settings (sandbox-safe).
Inputs: no named parameters.
rig_add_boneD
Inputs: armature_name (required), head, tail, parent, +1 more.
rig_add_ik_constraintD
Inputs: bone_name (required), armature_name (required), target_object (required), chain_count.
rig_create_armatureD
Inputs: name, location.
rig_create_presetC
preset: basic_chain (3 bones).
Inputs: name, preset.
rig_list_armaturesDRead-only
Inputs: no named parameters.
rig_parent_to_armatureD
with_weights: ARMATURE_AUTO, ARMATURE_ENVELOPE, or ARMATURE.
Inputs: object_name (required), armature_name (required), with_weights.
rig_set_bone_paramsD
Inputs: bone_name (required), armature_name (required), params.
rig_weight_transferD
Inputs: source_object (required), target_object (required).
scene_cleanD
Inputs: purge_unused.
scene_get_statsDRead-only
Inputs: no named parameters.
scene_mergeD
Inputs: blend_filepath (required), link.
scene_organize_collectionsD
Inputs: prefix.
set_modifier_paramsA
Update params on an existing modifier. Returns applied/failed.
Inputs: params (required), object_name (required), modifier_name (required).
shader_add_nodeC
Add node e.g. ShaderNodeTexImage, ShaderNodeNormalMap, ShaderNodeSeparateColor to material.
Inputs: node_type (required), material_name (required), location_x, location_y.
shader_arrange_nodesC
Auto-grid arrange nodes.
Inputs: material_name (required).
shader_clear_treeDDestructive
Inputs: material_name (required).
shader_create_treeA
Ensure material has node tree. Create if not exists. clear_existing removes non-output nodes.
Inputs: material_name (required), clear_existing.
shader_duplicate_treeD
Inputs: source_material (required), new_material_name.
shader_export_as_codeBRead-only
Export shader tree as bpy Python code.
Inputs: material_name (required).
shader_get_treeARead-only
Get nodes and links of a material.
Inputs: material_name (required).
shader_link_nodesC
Link two shader nodes by socket names.
Inputs: to_node (required), from_node (required), to_socket (required), from_socket (required), +1 more.
shader_remove_nodeD
Inputs: node_name (required), material_name (required).
shader_set_node_paramB
Set param on shader node. For TEX_IMAGE image, pass image name or filepath.
Inputs: param (required), node_name (required), material_name (required), value.
uv_add_layerD
Inputs: object_name (required), layer_name.
uv_export_layoutD
Inputs: object_name (required), size, filepath.
uv_get_infoDRead-only
Inputs: object_name (required).
uv_pack_islandsD
Inputs: object_name (required), margin.
uv_unwrapC
Unwrap UV: SMART_PROJECT, CUBE_PROJECT, UNWRAP.
Inputs: object_name (required), margin, method.
uv_validateDRead-only
Inputs: object_name (required).
validate_meshBRead-only
Stats for mesh: ngons/tris/quads, degenerate, UV, scale. Returns needs_cure flag.
Inputs: object_name (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 107 tools
Most tools are grouped by clear prefixes (anim_, rig_, uv_, shader_), so a knowledgeable agent can often infer intent, but several blur together: export_godot_glb duplicates godot_export_glb, diag_check_rig_health/diag_validate_armature/diag_get_rig_report overlap, and anim_clear vs anim_delete_keyframe is misleading. With many tools having no description, selection becomes harder than it should be.
The dominant pattern is snake_case category prefixes with verb_noun names, but it is not applied uniformly: get_scene_info vs scene_get_stats, export_godot_glb vs godot_export_glb, add_modifier/validate_mesh without category prefixes, and reset_scene_clean all break the pattern. It remains readable but is inconsistent enough to be a real friction point.
107 tools is an extreme mismatch for a coherent MCP surface, far exceeding the calibration threshold of 50+ tools. Even for a complex Blender/Godot pipeline, this forces agents to navigate a massive namespace and suggests micro-tool sprawl rather than careful scoping.
The toolset covers an unusually wide range: import/export, animation, rigging, materials, UVs, lighting, rendering, Godot validation, and batch operations. However, there are notable lifecycle gaps like no object create/transform/delete, no selection API, no material listing/deletion, and no deletion for several entity types, forcing agents to fall back to execute_blender_code.
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.
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
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
Build editable 3D scenes, direct characters and cameras, and export AI video references with MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExposes 50+ Blender tools (object manipulation, materials, animation, etc.) via MCP for AI-driven 3D workflows and automation.1MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to control Blender via MCP tools for scene manipulation, material assignment, rendering, and Python script execution.227121 PyPI34MIT
- AlicenseCqualityCmaintenanceMCP server providing 138+ tools to control Blender 4.2 LTS, enabling modeling, coloring, rigging, animation, geometry nodes, UV, printing, batch operations, and IO through natural language from any AI assistant.1001MIT
- AlicenseAqualityCmaintenanceEnables connecting Blender 3D to AI assistants via MCP, allowing prompt-driven 3D modeling, scene editing, and real-time manipulation. Supports object/material control, scene inspection, viewport screenshots, and integrations with Poly Haven, Sketchfab, and AI model generators.22MIT