Skip to main content
Glama

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_view3d con 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:

  1. 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.

  2. Union de vertices por distancia. Eliminacion de duplicados mediante bmesh.ops.remove_doubles con distancia 0.0001 por defecto.

  3. Recalculo de normales. Correccion de caras invertidas mediante bmesh.ops.recalc_face_normals con 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 alias export_godot_glb con 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

  1. Abrir Blender.

  2. Seleccionar Edit, Preferences, Add-ons, Install.

  3. Seleccionar el archivo super_mcp.zip del repositorio (contiene super_mcp/__init__.py). No instalar addon.py suelto, ya que Blender lo registra como modulo generico addon.

  4. Activar Interface: SuperMCP (buscar SuperMCP con el filtro de Add-ons).

  5. 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.git

Sustituir 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 stdio

Opcion C: Herramienta aislada con uv desde ruta local

uv tool install --from /ruta/a/super-mcp super-mcp
super-mcp --transport stdio

Sustituir /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 stdio

Transporte HTTP

super-mcp --transport http --host 127.0.0.1 --port 8001

El puerto HTTP por defecto para SuperMCP es 8001. El Free utiliza 8000.

Variables de entorno

  • SUPER_MCP_HOST. Valor por defecto localhost. BLENDER_MCP_HOST se 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.gltf

El 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 OpenCode

Claude 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-mcp

Para 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-mcp

  • Argumentos: []

Sin instalacion:

  • Comando: /usr/bin/python3

  • Argumentos: ["-m", "server.__main__"]

  • Variable PYTHONPATH apuntando 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 tools
add_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_clearD
Destructive

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_infoD
Read-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_modifierB
Destructive

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_listD
Read-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_healthD
Read-only

Inputs: armature_name (required).

diag_fix_rigD

Inputs: armature_name (required).

diag_get_rig_reportD
Read-only

Inputs: armature_name (required).

diag_validate_armatureD
Read-only

Inputs: armature_name (required).

execute_blender_codeA
Destructive

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_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_templatesA
Read-only

List 8 curated Geometry Nodes templates (scatter, extrude, boolean, etc.).

Inputs: no named parameters.

get_godot_export_infoA
Read-only

Info about SuperMCP Godot pipeline: ports, curing steps, formats.

Inputs: no named parameters.

get_object_infoB
Read-only

Details for one object, including curing hints (needs_apply_transforms, ngon_count).

Inputs: name (required).

get_scene_infoA
Read-only

List objects in current Blender scene (via SuperMCP port 9877).

Inputs: no named parameters.

get_viewport_screenshotA
Read-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_compatibilityB
Read-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):

  1. cure_scene (apply transforms → merge by distance → recalc normals) on targets

  2. godot_validate_scene (post-cure)

  3. 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_sceneA
Read-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_optionsD
Read-only

Inputs: format.

io_import_fileC

AUTO detects .fbx/.gltf/.glb/.obj/.stl/.ply/.dae/.abc/.usd/.blend.

Inputs: filepath (required), format.

io_list_formatsD
Read-only

Inputs: no named parameters.

light_createD

light_type: POINT, SUN, SPOT, AREA.

Inputs: name, color, energy, location, +1 more.

light_listD
Read-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_modifiersA
Read-only

List all modifiers on an object with index/type/visibility.

Inputs: object_name (required).

mesh_operationB
Destructive

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_hintC
Read-only

Contexts: modeling, texturing, rigging, export.

Inputs: context.

preset_listD
Read-only

Inputs: no named parameters.

remove_modifierC
Destructive

Remove a modifier by name.

Inputs: object_name (required), modifier_name (required).

render_get_infoD
Read-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_cleanA
Destructive

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_armaturesD
Read-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_statsD
Read-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_treeD
Destructive

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_codeB
Read-only

Export shader tree as bpy Python code.

Inputs: material_name (required).

shader_get_treeA
Read-only

Get nodes and links of a material.

Inputs: material_name (required).

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_infoD
Read-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_validateD
Read-only

Inputs: object_name (required).

validate_meshB
Read-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

    D1.9/5.0

    Scored across 107 tools

    Disambiguation3/5

    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.

    Naming Consistency3/5

    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.

    Tool Count1/5

    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.

    Completeness3/5

    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

    ActivityStale
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers