blender-mcp : piloter Blender depuis un client MCP, sans quitter la scène
Community plugin to control Blender 3D with any LLM of your choice
En bref
- De quoi s’agit-il ?
- Le projet ahujasid/blender-mcp relie un client MCP à Blender via une socket locale et un addon. Voici comment fonctionne ce montage, ce qu'il permet et où il coince.
- À qui s’adresse-t-il ?
- Adoptez blender-mcp si vous voulez déjà scripter Blender en Python et que vous préférez dicter des opérations dans un client MCP plutôt que de les écrire à la main. Passez votre chemin si vous avez besoin d'une génération de modèles 3D hors ligne, ou si votre pipeline exige un contrôle déterministe et versionné de chaque modification de scène : l'exécution de code Python arbitraire dans Blender n'offre aucune barrière de ce type.
- Puis-je l’utiliser commercialement ?
- Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 1 jour.
- En quel langage est-il écrit ?
- Principalement Python, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Ce que le projet cherche à supprimer : l'aller-retour entre l'éditeur et le viewport
Le problème visé est simple à énoncer. Blender s'utilise avec une souris et des raccourcis, mais tout ce qu'on y fait est exposé en Python. Un utilisateur qui veut une scène paramétrique finit par écrire des scripts, les relancer, corriger une valeur, relancer encore. blender-mcp propose de remplacer cette boucle par une conversation : on décrit l'opération, le client MCP l'envoie, l'addon l'exécute dans Blender. Le public visé est donc celui qui connaît déjà Blender et accepte de passer par un client compatible MCP (Claude Desktop, Claude Code, Codex, Cursor, VS Code, OpenCode, Antigravity). Le README précise d'emblée qu'il s'agit d'une intégration tierce, non réalisée par Blender. Ce n'est pas un détail juridique : cela signifie que le projet suit son propre calendrier et que les ruptures d'API de Blender seront absorbées, ou non, par un mainteneur unique.
Deux processus, une socket : le trajet réel d'une commande
Le dépôt décrit deux composants. D'un côté l'addon Blender (`addon.py`), qui ouvre un serveur socket à l'intérieur de Blender et exécute les commandes reçues. De l'autre le serveur MCP (`src/blender_mcp/server.py`), un programme Python qui implémente le Model Context Protocol et se connecte à cet addon. Le client MCP parle au serveur MCP, le serveur MCP parle à la socket, l'addon exécute dans Blender. Cette séparation a une conséquence pratique : le serveur MCP ne connaît pas Blender, il relaie. C'est l'addon qui a besoin que Blender tourne et que la connexion soit démarrée depuis le panneau N du viewport. Le README insiste sur un point d'exploitation : une seule instance du serveur MCP doit tourner à la fois, pas Cursor et Claude Desktop en parallèle. Rien dans la documentation ne décrit de multiplexage des connexions entrantes, et cette consigne va dans ce sens.
Ce que l'addon sait faire une fois connecté
La liste des capacités donnée par le README couvre la création, la modification et la suppression d'objets 3D, l'application et la modification de matériaux et de couleurs, l'inspection détaillée de la scène courante, et l'exécution de code Python arbitraire dans Blender. S'y ajoute la génération d'assets et de modèles : Poly Haven, Sketchfab, Poly Pizza pour le low-poly, et des modèles générés par IA via Hyper3D Rodin et Hunyuan3D. L'inspection de scène est la fonction la moins spectaculaire et probablement la plus utile : sans elle, un assistant travaille à l'aveugle sur une scène qu'il ne voit pas. L'exécution de code arbitraire est la fonction la plus puissante et la plus risquée, et le README la présente comme telle dans sa section sur la sécurité. Il faut noter que le dépôt ne publie pas de liste d'outils MCP exposés, seulement ces catégories de capacités. La granularité exacte des appels reste à vérifier dans le code du serveur.
Mise en route : uv, uvx blender-mcp, puis l'addon
Le README impose un prérequis avant tout le reste : installer uv, avec l'avertissement explicite de ne pas utiliser `pip install uv`, qui peut ne pas créer la commande `uvx` ou l'enfermer dans un environnement invisible pour le client. Sur macOS, `brew install uv`. Sous Linux, `curl -LsSf https://astral.sh/uv/install.sh | sh`. Sous Windows, `powershell -c "irm https://astral.sh/uv/install.ps1 | iex"`, suivi de l'ajout de `$env:USERPROFILE\.local\bin` au PATH utilisateur. Vient ensuite la déclaration du serveur dans le client. Pour Claude Desktop, un bloc JSON avec `"command": "uvx"` et `"args": ["blender-mcp"]`. Pour Claude Code, `claude mcp add blender uvx blender-mcp`. Pour Codex, `codex mcp add blender -- uvx blender-mcp`. L'addon s'installe par `uvx blender-mcp install-addon`, puis s'active dans Blender via Edit, Preferences, Add-ons, en cochant Interface: MCP for Blender. La connexion se lance dans le viewport avec la touche N, onglet MCP for Blender, bouton Start MCP Server. Les versions minimales annoncées sont Blender 3.0 et Python 3.10. Le README documente aussi un piège classique : un client lancé depuis une interface graphique n'hérite pas du PATH du terminal, d'où l'erreur `spawn uvx ENOENT`, qu'on contourne en mettant le chemin complet de uvx dans `"command"`.
Le point de friction : du code Python arbitraire dans un processus de rendu
C'est la limite la plus sérieuse et elle est assumée. Donner à un modèle de langage la possibilité d'exécuter du Python dans Blender revient à lui donner les droits du processus Blender : accès au système de fichiers, au réseau, à tout ce que l'interpréteur embarqué peut atteindre. Le README consacre une section aux considérations de sécurité, ce qui indique que le sujet est identifié, mais aucune sandbox n'est décrite dans le matériel fourni. Deuxième limite, plus prosaïque : le montage dépend d'une socket locale et d'un addon activé manuellement. Si Blender est fermé, si l'addon est désactivé après une mise à jour, ou si le bouton Start MCP Server n'a pas été cliqué, le serveur MCP n'a rien à piloter. Troisième limite : le projet est tiers et le README le rappelle. Une évolution de l'API Python de Blender peut casser l'addon sans préavis. Enfin, l'absence de releases publiées dans les métadonnées du dépôt signifie que le suivi des versions passe par PyPI et par l'historique de commits, pas par des notes de version formelles.
Face à un script Python classique ou à un pipeline headless
L'alternative la plus directe n'est pas un autre outil MCP, c'est le script. Blender expose une API Python complète, et `blender --background --python script.py` exécute une scène sans interface graphique. La différence d'approche est nette : un script est déterministe, versionnable dans Git, rejouable à l'identique, et ne dépend ni d'une socket ni d'un client. blender-mcp mise sur l'inverse : l'itération conversationnelle, où l'on ajuste une intention plutôt qu'une ligne. Pour une scène produite une fois, explorer par dialogue est plus rapide. Pour un asset à régénérer à chaque build, ou pour un rendu en CI, le script reste la bonne réponse et blender-mcp n'apporte rien. Il faut aussi distinguer ce projet des générateurs de modèles 3D proprement dits : ici la génération passe par des services externes (Hyper3D Rodin, Hunyuan3D), le coeur du projet étant le canal de contrôle vers Blender, pas la synthèse de géométrie.
Coût de maintenance et cadre de licence
Le projet est sous licence MIT, ce qui autorise la réutilisation, la modification et la redistribution, y compris dans un contexte commercial, à condition de conserver l'avis de licence. Le README ne formule aucune restriction supplémentaire sur l'usage de l'addon lui-même. En revanche, les ressources tierces citées (Poly Haven, Sketchfab, Poly Pizza, Hyper3D Rodin, Hunyuan3D) ont leurs propres conditions, et rien dans le matériel fourni ne précise comment les identifiants d'API sont gérés au-delà d'une section intitulée Persistent API Credentials. Sur la maintenance, le dépôt a reçu une poussée en septembre 2026 et n'est pas archivé. La charge réelle pour un utilisateur tient à trois choses : suivre les versions de Blender, réinstaller l'addon après certaines mises à jour, et surveiller les évolutions du protocole MCP côté client. Le README prévoit d'ailleurs une section Upgrading (existing users), signe que la mise à jour n'est pas un non-événement.
Conclusion éditoriale
Adoptez blender-mcp si vous voulez déjà scripter Blender en Python et que vous préférez dicter des opérations dans un client MCP plutôt que de les écrire à la main. Passez votre chemin si vous avez besoin d'une génération de modèles 3D hors ligne, ou si votre pipeline exige un contrôle déterministe et versionné de chaque modification de scène : l'exécution de code Python arbitraire dans Blender n'offre aucune barrière de ce type. Avant d'installer quoi que ce soit, vérifiez deux points : que votre client MCP voit bien uvx (le README documente l'erreur spawn uvx ENOENT quand le client est lancé depuis une interface graphique), et que vous n'avez qu'une seule instance du serveur active à la fois.
Notes de la communauté