Revit Python MCP connecte un assistant compatible MCP, comme Claude Desktop ou Claude Code, à Autodesk Revit au moyen de Python, FastMCP et pyRevit Routes. Cette page porte exclusivement sur le dépôt mcp-server-for-revit-python. Il s'agit d'un projet autonome avec sa propre extension pyRevit, son propre serveur et sa propre liste d'outils.
La chaîne traduit une demande en appel d'outil MCP, la transmet par HTTP à pyRevit Routes sur le poste local, puis exécute l'opération via l'API Revit. Elle peut lire les niveaux et les vues, placer certaines familles, visualiser des paramètres ou gérer des documents selon les fonctions réellement implémentées. Ce projet open source tiers n'est pas un connecteur Autodesk officiel et doit être évalué à partir de ses propres sources.
Sommaire
- Ce que fait vraiment Revit Python MCP
- Connecter Revit et Python avec pyRevit Routes
- Outils disponibles et limites actuelles
- Capacités utiles pour une agence BIM
- Comparaison avec Dynamo
- Sécurité et gouvernance
- Position Educasium
- Sources et suite logique
Ce que fait vraiment Revit Python MCP
À retenir : Revit Python MCP expose à un assistant une sélection d'actions Revit définies en Python. Le client IA ne dialogue pas directement avec Revit. Il lance ou contacte le serveur FastMCP, qui transforme chaque appel en requête vers une extension pyRevit chargée dans l'application.
Un serveur Python et une extension pyRevit
Le dépôt contient deux parties qui doivent fonctionner ensemble. main.py héberge le serveur MCP, gère les transports stdio ou HTTP et transmet les requêtes. L'extension pyRevit enregistre les endpoints Routes exécutés dans le contexte Revit, là où l'API Autodesk est accessible. Si Revit, pyRevit ou Routes Server est arrêté, le serveur MCP peut rester visible côté assistant mais les actions métier échouent.
Cette séparation facilite le prototypage pour une équipe qui connaît déjà Python ou pyRevit. Elle ajoute aussi deux surfaces à diagnostiquer : la connexion du client au serveur MCP et la connexion HTTP locale entre ce serveur et Revit. Une réponse de main.py ne prouve donc pas à elle seule que le bon document Revit est ouvert ni que le résultat est correct.
Un projet tiers à évaluer pour lui-même
Le dépôt est publié sous licence MIT par l'organisation mcp-servers-for-revit. Autodesk et pyRevitLabs ne sont pas présentés comme ses mainteneurs. Sa documentation le décrit comme une implémentation minimale destinée à prototyper et étendre des outils : l'agence doit donc vérifier chaque fonction sur une maquette témoin au lieu de lui attribuer les garanties d'un produit éditeur.
Connecter Revit et Python avec pyRevit Routes
À retenir : la voie Python utilise deux serveurs locaux complémentaires. Le serveur MCP parle avec l'assistant ; pyRevit Routes reçoit ses requêtes HTTP dans Revit et appelle l'API Revit. Le flux vérifié est : client MCP vers main.py en stdio ou HTTP, puis requête locale vers pyRevit Routes sur le port 48884, puis API Revit. Le dépôt utilise FastMCP côté serveur et fournit une extension pyRevit distincte pour les routes exécutées dans Revit.
Procédure d'installation documentée
Cette procédure a été contrôlée dans les sources du projet, mais Educasium ne l'a pas encore exécutée de bout en bout sur une instance Revit réelle. Elle doit donc être reproduite sur un poste et une maquette de test avant toute adoption.
- Installer pyRevit et ouvrir Revit. La documentation officielle de pyRevit confirme qu'il permet de développer des add-ons Revit en IronPython ou CPython. L'onglet pyRevit doit apparaître dans Revit avant de continuer.
- Activer Routes Server. Dans les paramètres pyRevit, ouvrir Routes puis activer Routes Server. Le README du projet indique une écoute locale sur http://localhost:48884/.
- Installer l'extension MCP Python. La méthode la plus simple passe par la fenêtre Extensions de pyRevit. En installation manuelle, le dépôt doit être cloné, le dossier racine renommé avec le suffixe .extension, puis ajouté dans Custom Extensions avant de recharger pyRevit.
- Vérifier le pont Revit. Revit doit rester ouvert avec un document de test. L'adresse http://localhost:48884/revit_mcp/status/ doit alors retourner un état actif, un indicateur revit_available et le titre du document.
- Configurer le client MCP. Le dépôt propose uv et le paquet mcp[cli]. En mode stdio, le client lance main.py localement. En mode HTTP, main.py peut exposer /mcp sur http://127.0.0.1:8000. Le chemin vers main.py doit être absolu sur le poste.
- Construire un profil de test réellement restreint. Le serveur Python enregistre execute_revit_code et plusieurs outils d'écriture par défaut. Dans un fork contrôlé, retirer leur enregistrement MCP et celui des routes d'exécution, d'écriture et de gestion documentaire dans le startup de l'extension. Avant de connecter l'assistant, utiliser MCP Inspector pour vérifier qu'ils sont absents de la liste d'outils et contrôler que leurs endpoints Routes sont inaccessibles. Demander ensuite uniquement l'état de Revit, les informations du modèle, la liste des niveaux et les vues disponibles, puis comparer chaque résultat à la maquette témoin.
Configuration du client MCP
| Client | Réglage vérifié dans le dépôt |
|---|---|
| Claude Desktop en stdio | command : uv ; args : run, --with, mcp[cli], mcp, run, C:/chemin/absolu/main.py |
| Claude Code en stdio | claude mcp add -s user "Revit-Connector" -- uv run --with "mcp[cli]" mcp run C:/chemin/absolu/main.py |
| Client compatible HTTP | lancer uv run --with "mcp[cli]" main.py --combined, puis déclarer http://localhost:8000/mcp |
Après modification, il faut relancer le client MCP. Revit et Routes Server doivent rester ouverts pendant le test. Si /revit_mcp/status/ ne répond pas, il faut réparer le pont pyRevit avant de diagnostiquer le client IA.
Ce qui est réellement disponible
Le tableau d'état du dépôt Python, vérifié le 8 octobre 2026, marque comme implémentés la lecture du modèle, des niveaux, des vues et des familles, l'export d'une vue, le placement d'une famille, la création d'un élément ponctuel, le color splash, l'ouverture et la sauvegarde de documents ainsi que la synchronisation avec le fichier central. À l'inverse, la sélection courante, la création d'éléments linéaires ou surfaciques, la suppression et la modification générique sont encore indiquées comme en attente. Il ne faut donc pas reprendre une démonstration vidéo comme preuve qu'une commande particulière est livrée.
L'outil execute_revit_code est déjà marqué comme implémenté et peut exécuter directement de l'IronPython dans le contexte Revit. C'est la fonction la plus puissante, mais aussi la plus risquée : elle ne devrait pas être disponible dans un pilote en lecture seule. La documentation du dépôt précise en outre que pyRevit Routes est encore une API en brouillon et qu'elle ne fournit pas d'authentification intégrée.
La voie officielle pyRevit Agent Runtime reste expérimentale
La documentation officielle décrit désormais Agent Runtime, une voie distincte de Routes qui utilise le serveur stdio pyrevit mcp et un canal nommé limité à l'utilisateur Windows courant. Elle ajoute des politiques readonly, ask et auto, ainsi qu'une validation humaine et un retour arrière pour les modifications. Au 8 octobre 2026, elle reste toutefois désactivée par défaut, la phase 0 n'est validée que sur Revit 2024 et 2025, et la phase CLI/MCP est encore annoncée en cours : c'est une direction plus sûre à surveiller, pas une recommandation de production déjà stabilisée. Même son mode readonly n'isole pas les effets fichier, réseau ou processus d'un script Python.
Outils disponibles et limites actuelles
À retenir : le tableau d'état du dépôt Python est la référence pour savoir quelles fonctions sont réellement disponibles. Chaque outil de cette page vient du serveur FastMCP et des routes Python du même dépôt.
Lecture et visualisation
Les fonctions de lecture implémentées couvrent notamment l'état de la connexion, les informations générales du modèle, les niveaux, les vues exportables, la vue courante, ses éléments visibles et les familles disponibles. Elles conviennent à un premier pilote car leurs résultats peuvent être comparés rapidement avec l'interface Revit et les nomenclatures existantes.
L'export de vue et le color splash ajoutent une dimension visuelle. Ils peuvent aider à repérer une catégorie ou à contrôler la répartition d'un paramètre, mais le résultat dépend des filtres, des valeurs et du document actif. Une visualisation colorée n'est pas une validation BIM : elle doit rester reliée à une règle de contrôle explicite.
Écriture et gestion documentaire
Le dépôt indique comme disponibles le placement d'une famille, la création d'un élément ponctuel, l'ouverture, la sauvegarde et la fermeture de documents, ainsi que la synchronisation avec le fichier central. Ces opérations modifient l'état de Revit ou du fichier et ne doivent pas être activées lors du premier essai. Les créations linéaires ou surfaciques, la suppression et la modification générique restent annoncées comme non implémentées au moment de la vérification.
execute_revit_code est un cas à part : cet outil peut exécuter de l'IronPython dans le contexte Revit et dépasse les garde-fous d'une liste de commandes métier. Le masquer dans l'interface ne suffit pas. Un pilote restreint doit retirer son enregistrement côté MCP et sa route côté extension, puis vérifier leur absence avant toute connexion à un modèle.
Capacités utiles pour une agence BIM
À retenir : les cas d'usage les plus crédibles ne sont pas les effets spectaculaires, mais les opérations répétitives, vérifiables et réversibles. Revit MCP devient intéressant quand l'assistant manipule des éléments que l'équipe peut contrôler rapidement dans la maquette.
Lecture et contrôle du modèle
Les usages les plus prudents sont les requêtes que le BIM manager peut confirmer sans interprétation : document actif, liste de niveaux, inventaire des vues, familles disponibles ou éléments visibles dans la vue courante. L'assistant peut préparer une synthèse, mais la maquette reste la source de vérité et toute divergence doit être consignée.
Après validation de la lecture, le placement d'une famille ou la création d'un élément ponctuel peut être testé sur une copie jetable. Le protocole doit préciser la famille, le type, le niveau, les coordonnées, l'unité et le résultat attendu. Une opération techniquement réussie peut rester fausse pour le projet si le mauvais niveau ou le mauvais type est utilisé.
Extraction de données et quantitatifs
Les informations de modèle, de niveaux, de vues, de familles et d'éléments visibles peuvent alimenter un pré-contrôle ou une extraction structurée. Le serveur ne transforme toutefois pas ces retours en métrés certifiés. Il faut définir les champs attendus, conserver le document source et contrôler les unités avant de réutiliser les données dans un tableau, une note ou un chiffrage.
La donnée extraite reste dépendante de la qualité de la maquette. Si les pièces ne sont pas fermées, si les matériaux ne sont pas correctement affectés ou si les paramètres agence sont incohérents, l'assistant produira une synthèse propre sur une base fausse. C'est la même limite que pour les nomenclatures Revit classiques : l'automatisation ne corrige pas une structure BIM fragile.
Comparaison avec Dynamo
À retenir : Revit MCP n'occupe pas la même place que Dynamo. Il est plus conversationnel, mais moins mature comme environnement visuel de scripts et de validation.
| Option | Usage naturel | Force principale | Point de vigilance |
|---|---|---|---|
| Revit Python MCP | Piloter Revit depuis un assistant IA local avec Python et pyRevit | Prototypage rapide, outils explicites, extension possible | Projet tiers, Routes sans authentification, maturité variable |
| Dynamo | Automatiser Revit par graphes visuels et scripts | Écosystème éprouvé dans les agences Revit | Courbe d'apprentissage et maintenance des graphes |
| Script pyRevit interne | Exécuter une commande Python connue depuis le ruban | Contrôle du script et interaction claire | Moins conversationnel, maintenance interne nécessaire |
| Add-in Revit interne | Développer un workflow ciblé directement avec l'API Revit | Contrôle du code, des droits et du cycle de validation | Développement, maintenance et tests à financer |
Revit MCP face à Dynamo
Dynamo reste la référence quand une agence veut construire des workflows reproductibles, versionnés et transmis à une équipe BIM. Revit Python MCP est plus adapté à des opérations ponctuelles en langage naturel : interroger une vue, extraire une synthèse ou tester un placement sur un modèle de copie. Le bon usage n'est pas de remplacer tous les graphes Dynamo, mais de repérer les tâches où une interaction conversationnelle est plus rapide qu'un script complet.
Pour des opérations réglementaires, des nomenclatures critiques ou des traitements de centaines d'éléments, Dynamo ou un script pyRevit versionné gardent l'avantage de la lisibilité et de la validation préalable. Le MCP peut intervenir en amont pour explorer ou préparer, puis l'équipe BIM formalise ce qui doit devenir durable. Cette séparation évite de transformer l'assistant en boîte noire de production.
Sécurité, gouvernance et limites
À retenir : la chaîne tourne localement, mais local ne veut pas dire sans risque. Les commandes s'appliquent à une maquette Revit réelle ; le risque principal n'est pas seulement la confidentialité, c'est l'intégrité du modèle.
Confidentialité et données locales
La chaîne fait tourner son pont Revit sur le poste local. Le fichier Revit n'est pas envoyé tel quel à GitHub ou PyPI. En revanche, les extraits transmis à l'assistant, les noms d'éléments, paramètres ou résultats d'analyse peuvent entrer dans la conversation avec le modèle utilisé. La politique de données dépend donc aussi du client MCP et du fournisseur de modèle.
Pour une agence soumise à des clauses de confidentialité, la règle doit être simple : test sur maquette interne ou copie anonymisée, jamais sur un fichier client sensible lors du premier essai. Les données envoyées au modèle doivent être limitées à ce qui est nécessaire pour la tâche. Cette discipline vaut aussi pour Claude Desktop, Claude Code, Cline ou tout autre client MCP compatible.
Ce qu'il ne faut pas automatiser sans contrôle
execute_revit_code, les opérations documentaires et les outils d'écriture doivent être traités comme des capacités à privilèges élevés. Ils ne doivent pas être proposés par défaut à toute l'équipe. Point important : la documentation actuelle de pyRevit indique que Routes ne possède pas d'authentification et peut écouter sur 0.0.0.0. La documentation Routes du projet Python précise que la première instance Revit utilise normalement le port 48884, puis que les instances simultanées passent à 48885, 48886, etc. Il faut donc inventorier tous les listeners Routes actifs, bloquer chaque port concerné ou toute la plage configurée au pare-feu Windows pour les profils réseau, et ne jamais les exposer à Internet, même derrière une simple passerelle authentifiée.
Le dépôt fournit surtout une base de prototypage. Cela ne remplace pas un protocole agence : sauvegarde, modèle témoin, revue BIM manager, inventaire exact des outils et routes activés, journal des appels et validation avant toute utilisation en production.
Position Educasium
À retenir : Educasium peut aider une agence à comprendre et cadrer ce type d'outil, mais ne doit pas le vendre comme une solution déjà validée en production sans preuve interne.
Retour d'expérience disponible
Educasium forme les architectes et professionnels du bâtiment à l'usage opérationnel de l'IA, avec une attention particulière aux workflows BIM, à la qualité des livrables et aux limites métier. Nous n'avons pas encore déployé ce serveur Revit MCP précis dans une agence cliente ni mesuré un gain de temps vérifié sur un projet réel. Cette absence doit rester visible : l'article analyse un outil open source vérifié, pas une étude de cas Educasium.
Cette prudence renforce la valeur de la recommandation. Plutôt que d'annoncer une automatisation générale de Revit, il faut partir d'un périmètre maîtrisé : état du document, liste de niveaux, inventaire des vues ou placement d'une famille sur un modèle de test. Une agence peut ensuite décider si le connecteur mérite d'entrer dans son référentiel BIM interne.
Implémentation hypothétique
Implémentation hypothétique. Pour un pilote Python sérieux, Educasium recommanderait de créer une copie d'un modèle école, d'installer pyRevit et l'extension dans la version Revit de l'équipe, puis de vérifier le point /revit_mcp/status/. Le dépôt amont ne satisfait pas ce niveau de lecture seule sans modification : un fork contrôlé retirerait les outils d'exécution, d'écriture et de gestion documentaire du registre MCP et les routes correspondantes du startup de l'extension. MCP Inspector servirait à confirmer que seuls get_revit_status, get_revit_model_info, list_levels et list_revit_views sont annoncés, puis des requêtes directes vérifieraient que les endpoints retirés sont inaccessibles. Le BIM manager documenterait les écarts entre réponses et maquette, les données envoyées au fournisseur du modèle, les erreurs observées et les scénarios où Dynamo reste préférable.
Une fois ce protocole validé, l'équipe pourrait réactiver sélectivement une seule commande d'écriture réellement disponible, par exemple place_family ou create_point_based_element, uniquement sur une copie jetable du modèle. La décision finale ne devrait pas être "adopter ou rejeter l'IA dans Revit", mais "quelles commandes de ce serveur sont assez fiables pour notre façon de produire". C'est une démarche de méthode, pas un effet de démonstration.
Sources et suite logique
À retenir : les informations techniques de cette page viennent de la documentation pyRevit et du dépôt Python, pas d'une démonstration commerciale ni d'un autre MCP Revit. L'architecture Routes, l'état des outils, les commandes d'installation et les risques cités ont été vérifiés sur les sources listées en bas de page.
À lire ensuite
Si votre agence travaille déjà sur Revit, commencez par lire notre guide sur le meilleur plugin IA Revit en 2026 pour distinguer assistant de conception, rendu et automatisation BIM. Pour une vision plus large, consultez aussi IA et BIM : ce qui change pour la maquette numérique et le comparatif des logiciels IA pour architectes.
Les équipes qui veulent cadrer ces usages côté compétences peuvent ensuite regarder la formation Maîtriser l'IA en architecture ou le hub Skills pour architectes. Le bon objectif n'est pas d'ajouter un outil de plus, mais de décider quelles tâches Revit méritent vraiment une automatisation assistée par IA. Educasium est certifié Qualiopi ; une prise en charge OPCO/FIFPL peut être possible selon le statut, les critères du financeur, son accord et le budget disponible, sans garantie. Nous contacter pour étudier le cadre adapté.