blender_mcp_pro
⚠️ Nota: El servidor no se iniciará hasta que se configure un Auth Token válido en las preferencias del complemento.
Blender MCP Pro
Blender MCP Pro es un complemento compacto para Blender que expone un servidor de comandos local seguro (estilo MCP) para inspección de escenas, integraciones con proveedores, bloqueos de personajes y props, y layouts de entornos simples.
El código es intencionadamente pequeño y enfocado en un transporte seguro, edición de geometría y flujos de trabajo depurables. No implementa aún visión avanzada, orquestación autónoma ni pipelines de producción completos.
Tabla de Contenidos
- Blender MCP Pro
- Tabla de Contenidos
- Estructura del Repositorio
- Modelo de Seguridad
- Quick Start
- Architecture
- Supported MCP Tools
- Character Workflow
- Environment Workflow
- Multipurpose Usage
- Client Directory Layout
- Instalación
- Uso Seguro
- Puente MCP STDIO
- Smoke Test
- How To Run From The Repository Root
- End-to-End Test
- Troubleshooting
- Modelo de Comandos
- Workflows
- Integraciones con Proveedores
- Limitaciones Actuales
- Estado Actual
- Token de Autenticación
Estructura del Repositorio
blender-mcp-pro/
├── .gitignore
├── LICENSE
├── README.md
├── SECURITY.md
├── client/
│ ├── agent_cli.py
│ ├── blender_client.py
│ ├── mcp_adapter.py
│ ├── mcp_stdio_server.py
│ ├── smoke_test.py
│ └── tools_registry.py
└── blender_mcp_pro/
├── __init__.py
├── addon.py
├── server.py
├── protocol.py
├── dispatcher.py
├── integrations.py
├── file_ops.py
└── character_tools.py
Descripción de archivos principales:
__init__.py: Entrada del paquete, exponebl_info,register,unregister.addon.py: UI, preferencias, operadores, registro.server.py: Ciclo de vida del socket, autenticación, logging.protocol.py: Validación, framing NDJSON, límites de tamaño.dispatcher.py: Router seguro, builders de props/entorno.integrations.py: Lógica HTTP para proveedores externos.file_ops.py: Seguridad de archivos, descargas, importación.character_tools.py: Herramientas de personajes y materiales.client/agent_cli.py: CLI interactiva para prompts libres, comandos raw y exploración local del toolkit.client/blender_client.py: Cliente TCP pequeño para autenticarse y enviar comandos al backend de Blender.client/mcp_adapter.py: Adaptador local para routing de prompts, workflows y despacho de herramientas al backend TCP.client/mcp_stdio_server.py: Servidor MCP stdio real para VS Code y clientes compatibles con MCP.client/smoke_test.py: Smoke test local para validar auth y comandos básicos contra el backend TCP.client/tools_registry.py: Registro de herramientas MCP locales con descripciones y esquemas JSON.
Modelo de Seguridad
- Modo local (por defecto): solo acepta conexiones de
127.0.0.1. - Modo LAN whitelist (opcional): requiere habilitación manual y lista de IPs/subredes permitidas.
- Token de autenticación obligatorio para todos los clientes.
- Validación estricta de mensajes y límites de tamaño.
- Restricción de rutas de archivos y capturas.
- Logging de admisiones y rechazos en
~/BlenderMCP/audit.log.
Modo Local
- El servidor escucha en
127.0.0.1. - Solo acepta clientes locales.
- El token sigue siendo obligatorio.
Modo LAN Whitelist (opcional)
-
Deshabilitado por defecto.
-
Debe habilitarse manualmente en las preferencias del complemento.
-
Requiere al menos una IP o subred CIDR permitida.
-
El token sigue siendo obligatorio para cada cliente.
-
No existe modo de acceso público a Internet.
Ejemplos:
- IPs permitidas:
192.168.1.10,192.168.1.25 - Subredes permitidas:
192.168.1.0/24,10.0.0.0/24
Para detalles completos de seguridad, ver SECURITY.md.
Quick Start
- Instala el ZIP del complemento
blender_mcp_proen Blender. - Activa el add-on
Blender MCP. - Configura un
Auth Tokenen las preferencias del complemento. - Inicia el servidor desde el panel del add-on en Blender.
- En una terminal PowerShell dentro de este repositorio, define:
$env:BLENDER_HOST = "127.0.0.1"
$env:BLENDER_PORT = "9876"
$env:BLENDER_TOKEN = "tu_token"
- Ejecuta el cliente, la CLI, o el bridge MCP stdio desde este repositorio:
python client/smoke_test.py
python client/agent_cli.py
python client/mcp_stdio_server.py
- Usa
python client/smoke_test.pypara validar auth y comandos básicos. - Usa
python client/agent_cli.pypara prompts libres y llamadas raw.
Architecture
El flujo actual queda así:
VS Code / CLI / Local AI Agent
|
v
client/
(agent_cli.py, mcp_adapter.py, mcp_stdio_server.py, blender_client.py, smoke_test.py)
|
v
Blender TCP Server
(token-auth local socket)
|
v
blender_mcp_pro add-on
(addon.py, server.py, dispatcher.py, character_tools.py, integrations.py)
Responsabilidades:
blender_mcp_pro/es lo único que se instala en Blender.client/permanece fuera de Blender y consume el servidor TCP autenticado.client/blender_client.pymantiene la compatibilidad con el cliente TCP actual.client/mcp_stdio_server.pyexpone un servidor MCP stdio local que VS Code puede lanzar.client/agent_cli.pyyclient/mcp_adapter.pyayudan a un agente local a usar herramientas reales del servidor sin cambiar la arquitectura del add-on.
Supported MCP Tools
El toolkit local expone herramientas multipropósito agrupadas por dominio.
Scene / Info
get_scene_infoget_object_infoget_viewport_screenshotget_telemetry_consentlist_collections: placeholder preparado para futuro. El backend actual todavía no expone colecciones.
Character
load_character_referencesclear_character_referencescreate_character_from_referencescreate_character_blockoutapply_character_symmetrybuild_character_hairbuild_character_faceapply_character_materialscapture_character_reviewcompare_character_with_referencesapply_character_proportion_fixesreview_and_fix_character
Props
create_prop_blockoutapply_prop_symmetryapply_prop_materials
Environment / Layout
create_environment_layoutapply_environment_materialscreate_shop_scenecreate_room_blockoutcreate_street_blockout
Assets / Integrations
get_polyhaven_statusget_hyper3d_statusget_sketchfab_statusget_hunyuan3d_statusget_polyhaven_categoriessearch_polyhaven_assetsdownload_polyhaven_assetset_texturecreate_rodin_jobpoll_rodin_job_statusimport_generated_assetsearch_sketchfab_modelsget_sketchfab_model_previewdownload_sketchfab_modelcreate_hunyuan_jobpoll_hunyuan_job_statusimport_generated_asset_hunyuan
Implementado hoy:
- backend local dentro de Blender con token auth
- cliente TCP local reutilizable
- adaptador local para routing de prompts y workflows
- creación de personajes estilizados guiada por referencias
- blockouts de props e interiores
- revisión y ciclos iterativos de ajuste
No implementado hoy:
- reconstrucción automática completa image-to-3D
- visión avanzada o ML de reconstrucción
- dependencias cloud obligatorias para el flujo local
Character Workflow
El flujo práctico para personaje estilizado guiado por referencias es:
create_character_from_referencescapture_character_reviewcompare_character_with_referencesapply_character_proportion_fixes
También puedes ejecutar pasos individuales como:
create_character_blockoutcapture_character_reviewreview_and_fix_character
Soporta:
- referencias front / side / back o profile
- blockout cartoon / stylized
- pelo y cara estilizados
- materiales base
- revisión por screenshots
- ajustes iterativos de proporciones
No afirma reconstrucción automática de imagen a malla final.
Environment Workflow
El flujo práctico para layout y entorno es:
create_environment_layoutapply_environment_materials
Atajos incluidos:
create_shop_scenecreate_room_blockout
Esto cubre casos útiles como:
- room / bedroom blockouts
- shop / interior layouts
Importante:
create_street_blockoutno está implementado realmente en el servidor actual.- si intentas usar un prompt de calle, el cliente devuelve
tool_not_implementedy sugiere alternativas reales comocreate_environment_layoutconlayout_type="corridor".
Multipurpose Usage
El proyecto sigue siendo multipropósito y no está limitado solo a personajes:
character: personajes cartoon / stylized desde reference sheetsprops: props básicos para blockout rápidoenvironment: room / shop / interior / street-like layoutsreview: captura, comparación y correccionesassets: búsqueda y descarga de algunos assets ya soportados por el backend
Esto mantiene útil el toolkit para prototipado de escenas completas en Blender, no solo para un único caso de uso.
Client Directory Layout
El directorio client/ forma parte de este repositorio blender_mcp_pro y debe vivir aquí, no dentro de .vscode ni en carpetas sueltas de proyectos no relacionados.
client/
├── agent_cli.py
├── blender_client.py
├── mcp_adapter.py
├── mcp_stdio_server.py
├── smoke_test.py
└── tools_registry.py
Lo que se instala en Blender:
- solo la carpeta
blender_mcp_pro/
Lo que permanece fuera de Blender:
- toda la carpeta
client/ client/.envcomo ayuda local opcional para el bridge y las pruebas
No intentes instalar client/ como add-on de Blender.
Instalación
Requisitos:
- Blender 3.x o superior
- ZIP con la carpeta del paquete
blender_mcp_pro/
Estructura esperada del ZIP:
blender_mcp_pro.zip
└── blender_mcp_pro/
├── __init__.py
├── addon.py
└── ...
Pasos:
- Abre Blender.
- Ve a
Edit > Preferences > Add-ons. - Haz clic en
Install...y selecciona el ZIP. - Activa el complemento.
- Configura el Auth Token en las preferencias antes de iniciar el servidor.
Solución de errores comunes:
- El ZIP debe contener la carpeta del paquete, no archivos sueltos.
- La carpeta debe tener
__init__.pyy un nombre válido. - Elimina instalaciones previas rotas antes de reinstalar.
Uso Seguro
Mismo PC
- Mantén el modo local habilitado.
- Genera y configura un Auth Token.
- Inicia el servidor desde el panel de Blender.
- Conecta el cliente MCP local usando
127.0.0.1:<puerto>y el token.
LAN (opcional)
- Genera/rota el Auth Token.
- Habilita el modo LAN whitelist.
- Añade IPs/subredes permitidas.
- Inicia/reinicia el servidor.
- Conecta desde otra máquina usando la IP LAN y el token.
- Deshabilita el modo LAN al terminar.
Nunca expongas el servidor a Internet ni uses port forwarding.
Puente MCP STDIO
El backend real sigue siendo el add-on blender_mcp_pro/ dentro de Blender:
- expone el servidor TCP local autenticado
- valida red y token
- ejecuta los comandos Blender en el hilo principal
El directorio client/ es un consumidor externo de ese backend:
blender_client.pyhabla el protocolo TCP actualmcp_adapter.pyalinea prompts y tools con los comandos reales del servidormcp_stdio_server.pytraduce MCP stdio a llamadas TCP autenticadas contra Blenderagent_cli.pyofrece una CLI práctica para workflows iterativos
La arquitectura correcta es:
VS Code / CLI / Agent
|
v
client/
|
v
Blender TCP server
|
v
blender_mcp_pro/
client/ no forma parte de la instalación del add-on.
Registro En VS Code
Crea o revisa .vscode/mcp.json en la raiz del repositorio:
{
"servers": {
"blender-mcp-pro": {
"type": "stdio",
"command": "python",
"args": ["client/mcp_stdio_server.py"],
"cwd": "${workspaceFolder}",
"env": {
"BLENDER_HOST": "127.0.0.1",
"BLENDER_PORT": "9876",
"BLENDER_TOKEN": "replace-with-your-token"
}
}
}
}
Esto permite que VS Code Copilot Agent mode lance el bridge MCP local desde el workspace.
Importante:
- instala solo
blender_mcp_pro/en Blender - deja
client/fuera de Blender client/no va dentro del ZIP del add-on
Uso Con Copilot Agent Mode
- Inicia Blender y arranca el servidor del add-on.
- Abre este repositorio en VS Code.
- Verifica
.vscode/mcp.json. - Asegurate de que
BLENDER_HOST,BLENDER_PORTyBLENDER_TOKENcoinciden con Blender. - En VS Code, inicia o reinicia el servidor MCP desde el editor de
mcp.jsono conMCP: List Servers. - Abre Copilot Chat en modo Agent.
- Comprueba que el servidor
blender-mcp-proaparece y tiene tools cargadas.
Si Copilot Agent mode no descubre tools:
- revisa la confianza del servidor MCP en VS Code
- abre la salida del servidor con
MCP: List Servers->Show Output - valida primero
python client/mcp_stdio_server.py - valida despues
python client/smoke_test.py
Smoke Test
El repositorio incluye client/smoke_test.py para validar rápidamente el backend TCP local sin depender de un cliente MCP externo.
Variables usadas:
$env:BLENDER_HOST = "127.0.0.1"
$env:BLENDER_PORT = "9876"
$env:BLENDER_TOKEN = "tu_token"
Ejecutar smoke test básico:
python client/smoke_test.py
Esto hace:
- auth contra el backend TCP de Blender
get_scene_infocreate_prop_blockout
Para incluir también un test de personaje:
python client/smoke_test.py --with-character
El script imprime PASS o FAIL por paso para que el primer diagnóstico local sea rápido.
Si este test pasa, el backend TCP, el token auth y las llamadas básicas funcionan.
How To Run From The Repository Root
Sitúate en la raíz del repositorio blender_mcp_pro y ejecuta los clientes desde ahí.
Ejemplos:
python client/smoke_test.py
python client/smoke_test.py --with-character
python client/agent_cli.py
python client/mcp_stdio_server.py
CLI interactiva:
helptoolsquitraw get_scene_info {}create punk character from referencescrea un personaje punkcreate shop scenecreate bedroom blockoutinfo de escenacrea una mesareview the character
End-to-End Test
Pasos exactos para validar el flujo completo cliente local -> client/ -> backend TCP de Blender -> cambio en escena:
- Inicia Blender.
- Activa el complemento
Blender MCP. - Abre el panel del complemento y pulsa
Start Server. - En una terminal PowerShell, sitúate en este repositorio.
- Define las variables de entorno que usa el cliente:
$env:BLENDER_HOST = "127.0.0.1"
$env:BLENDER_PORT = "9876"
$env:BLENDER_TOKEN = "tu_token"
- Lanza la CLI local:
python client/agent_cli.py
O lanza el bridge MCP stdio directamente:
python client/mcp_stdio_server.py
- Prueba prompts en inglés o español:
scene info
info de escena
create a chair
crea una mesa
create shop scene
review character
revisa el personaje
Si todo está bien:
- la CLI devolverá el routing y el resultado en JSON
- Blender mostrará los cambios creados
- el token seguirá siendo obligatorio
Para depuración, el cliente escribe logs en stderr. Puedes subir el detalle con:
$env:BLENDER_MCP_ADAPTER_LOG = "DEBUG"
Troubleshooting
python client/smoke_test.py pasa pero un prompt libre falla
- el backend TCP funciona
- el problema suele estar en
client/mcp_adapter.py - usa
toolsyraw <tool_name> <json_params>enpython client/agent_cli.pypara comprobar si el routing está enviando el tool correcto
python client/smoke_test.py pasa pero VS Code no ve tools MCP
- confirma que
.vscode/mcp.jsonapunta aclient/mcp_stdio_server.py - confirma que
BLENDER_HOST,BLENDER_PORTyBLENDER_TOKENen.vscode/mcp.jsoncoinciden con Blender - ejecuta
python client/mcp_stdio_server.pymanualmente para verificar que el proceso arranca sin errores de entorno - confirma que el servidor MCP fue marcado como confiable por VS Code
- usa
MCP: List Serverspara verificar queblender-mcp-proeste iniciado - si el bridge arranca pero
tools/callfalla, el problema suele estar en el backend TCP o en las variables de entorno
Un tool está declarado en client/ pero no existe en dispatcher.py
- el cliente ahora distingue entre:
serverunavailable
- el servidor MCP stdio solo expone tools
server - si un tool no existe realmente en el servidor, la CLI o el bridge devuelven
tool_not_implemented
Copilot ve el servidor pero no puede ejecutar tools
- revisa el Output del servidor MCP en VS Code
- confirma que el token en
.vscode/mcp.jsoncoincide exactamente con el configurado en Blender - confirma que el servidor TCP de Blender sigue iniciado en
127.0.0.1:<puerto> - valida con
raw get_scene_info {}enpython client/agent_cli.py
La carpeta client/ no aparece en GitHub pero existe localmente
client/sigue siendo parte del workspace local y del flujo MCP- no debe moverse dentro de
blender_mcp_pro/ - no debe instalarse en Blender
- si no esta en el remoto, puedes seguir validando localmente con
python client/smoke_test.pyypython client/mcp_stdio_server.py
La carpeta client/ no forma parte de la instalación de Blender
- instala solo
blender_mcp_pro/ - deja
client/en la raíz del repositorio - no copies
client/dentro del ZIP del add-on
Modelo de Comandos
characterpropsenvironment
Workflows
Personajes
Comandos:
load_character_referencescreate_character_blockoutapply_character_symmetrybuild_character_hairbuild_character_faceapply_character_materialscapture_character_reviewcompare_character_with_referencesapply_character_proportion_fixes
Soporta referencias, bloqueos cartoon, simetría, materiales base, capturas y comparaciones heurísticas.
Props
Comandos:
create_prop_blockoutapply_prop_symmetryapply_prop_materials
Tipos soportados: chair, table, crate, weapon.
Entornos
Comandos:
create_environment_layoutapply_environment_materials
Tipos: room, corridor, shop, kiosk.
Integraciones con Proveedores
- Poly Haven
- Sketchfab
- Hyper3D / Rodin
- Hunyuan
Limitaciones Actuales
No implementa aún:
- Visión avanzada o ML
- Orquestación autónoma
- Generación procedural avanzada
- Acceso público o sin autenticación
- Rate limiting, negociación de versión, etc.
Estado Actual
- Arquitectura compacta y segura
- Servidor local y whitelist LAN
- Puente MCP STDIO para compatibilidad con clientes MCP locales
- Workflows básicos de personajes, props y entornos
No es aún una plataforma autónoma de generación 3D.
Token de Autenticación
El servidor requiere un Auth Token compartido para aceptar comandos.
Cómo crear un token:
- Simple:
123456(solo pruebas) - Personalizado:
mcp_secure_token_2026_victor - Aleatorio (recomendado):
En PowerShell:[guid]::NewGuid()
Dónde configurarlo:
En Blender, ve al panel MCP → Preferencias del complemento → campo Auth Token.
Ejemplo de autenticación cliente:
{
"type": "auth",
"token": "mcp_secure_token_2026_victor"
}
Notas de seguridad:
- Nunca publiques tu token.
- Rótalo si habilitas modo LAN.
- Usa tokens fuertes para múltiples máquinas.
- El token es obligatorio incluso en modo local.