Revit Python MCP conecta un asistente compatible con MCP, como Claude Desktop o Claude Code, con Autodesk Revit mediante Python, FastMCP y pyRevit Routes. Esta página trata exclusivamente del repositorio mcp-server-for-revit-python. Es un proyecto autónomo con su propia extensión pyRevit, su propio servidor y su propia lista de herramientas.
La cadena convierte una petición en una llamada de herramienta MCP, la transmite por HTTP a pyRevit Routes en el equipo local y ejecuta la operación mediante la API de Revit. Puede leer niveles y vistas, colocar determinadas familias, visualizar parámetros o gestionar documentos según las funciones realmente implementadas. Este proyecto open source de terceros no es un conector oficial de Autodesk y debe evaluarse a partir de sus propias fuentes.
Sumario
- Qué hace realmente Revit Python MCP
- Conectar Revit y Python con pyRevit Routes
- Herramientas disponibles y límites actuales
- Capacidades útiles para un estudio BIM
- Comparación con Dynamo
- Seguridad y gobernanza
- Posición de Educasium
- Fuentes y siguiente lectura
Qué hace realmente Revit Python MCP
En síntesis: Revit Python MCP ofrece al asistente una selección de acciones Revit definidas en Python. El cliente de IA no habla directamente con Revit. Inicia o contacta el servidor FastMCP, que convierte cada llamada en una petición para una extensión pyRevit cargada en la aplicación.
Un servidor Python y una extensión pyRevit
El repositorio contiene dos partes que deben funcionar juntas. main.py aloja el servidor MCP, gestiona los transportes stdio o HTTP y reenvía las peticiones. La extensión pyRevit registra los endpoints Routes ejecutados en el contexto de Revit, donde la API de Autodesk está disponible. Si Revit, pyRevit o Routes Server se detiene, el servidor MCP puede seguir visible para el asistente aunque fallen las acciones métier.
Esta separación facilita el prototipado para un equipo que ya conoce Python o pyRevit. También añade dos superficies de diagnóstico: la conexión del cliente con el servidor MCP y la conexión HTTP local entre ese servidor y Revit. Una respuesta de main.py no demuestra por sí sola que esté abierto el documento correcto ni que el resultado sea válido.
Un proyecto tercero que debe evaluarse por sí mismo
El repositorio se publica bajo licencia MIT por la organización mcp-servers-for-revit. Autodesk y pyRevitLabs no aparecen como mantenedores. Su documentación lo presenta como una implementación mínima destinada a prototipar y ampliar herramientas: el estudio debe verificar cada función sobre una maqueta testigo en lugar de atribuirle las garantías de un producto editor.
Conectar Revit y Python con pyRevit Routes
En síntesis: la vía Python utiliza dos servidores locales complementarios. El servidor MCP habla con el asistente; pyRevit Routes recibe las peticiones HTTP dentro de Revit y llama a la API de Revit. El flujo verificado es: cliente MCP hacia main.py por stdio o HTTP, petición local hacia pyRevit Routes en el puerto 48884 y finalmente API de Revit. El repositorio usa FastMCP del lado del servidor e incluye una extensión pyRevit separada para las rutas ejecutadas dentro de Revit.
Procedimiento de instalación documentado
Este procedimiento se ha comprobado en las fuentes del proyecto, pero Educasium todavía no lo ha ejecutado de extremo a extremo sobre una instancia real de Revit. Debe reproducirse en un equipo y una maqueta de prueba antes de adoptarlo.
- Instalar pyRevit y abrir Revit. La documentación oficial de pyRevit confirma que permite crear add-ons de Revit con IronPython o CPython. La pestaña pyRevit debe aparecer en Revit antes de seguir.
- Activar Routes Server. En los ajustes de pyRevit, abrir Routes y activar Routes Server. El README del proyecto indica una escucha local en http://localhost:48884/.
- Instalar la extensión MCP Python. La vía más simple utiliza la ventana Extensions de pyRevit. En modo manual, hay que clonar el repositorio, añadir el sufijo .extension al directorio raíz y registrarlo en Custom Extensions antes de recargar pyRevit.
- Comprobar el puente Revit. Revit debe permanecer abierto con un documento de prueba. La dirección http://localhost:48884/revit_mcp/status/ debe devolver un estado activo, el indicador revit_available y el título del documento.
- Configurar el cliente MCP. El repositorio propone uv y el paquete mcp[cli]. En stdio, el cliente lanza main.py localmente. En HTTP, main.py puede exponer /mcp en http://127.0.0.1:8000. La ruta a main.py debe ser absoluta.
- Crear un perfil de prueba realmente restringido. El servidor Python registra por defecto execute_revit_code y varias herramientas de escritura. En un fork controlado, elimine su registro MCP y el de las rutas de ejecución, escritura y gestión documental en el startup de la extensión. Antes de conectar el asistente, use MCP Inspector para confirmar que no aparecen en la lista de herramientas y compruebe que sus endpoints Routes son inaccesibles. Consulte después únicamente el estado de Revit, la información del modelo, los niveles y las vistas, y compare cada resultado con la maqueta testigo.
Configuración del cliente MCP
| Cliente | Ajuste verificado en el repositorio |
|---|---|
| Claude Desktop por stdio | command: uv; args: run, --with, mcp[cli], mcp, run, C:/ruta/absoluta/main.py |
| Claude Code por stdio | claude mcp add -s user "Revit-Connector" -- uv run --with "mcp[cli]" mcp run C:/ruta/absoluta/main.py |
| Cliente compatible con HTTP | ejecutar uv run --with "mcp[cli]" main.py --combined y declarar http://localhost:8000/mcp |
Después del cambio hay que reiniciar el cliente MCP. Revit y Routes Server deben seguir abiertos durante la prueba. Si /revit_mcp/status/ no responde, hay que reparar el puente pyRevit antes de diagnosticar el cliente de IA.
Qué está disponible realmente
El estado del repositorio Python, comprobado el 8 de octubre de 2026, marca como implementados la lectura del modelo, niveles, vistas y familias, la exportación de una vista, la colocación de una familia, la creación de un elemento puntual, color splash, apertura y guardado de documentos y sincronización con el archivo central. En cambio, la selección actual, creación de elementos lineales o superficiales, eliminación y modificación genérica siguen marcadas como pendientes. Una demostración en vídeo no prueba que una orden concreta esté entregada.
La herramienta execute_revit_code ya figura como implementada y puede ejecutar IronPython directamente en el contexto de Revit. Es la función más potente y también la más arriesgada: no debería estar disponible en un piloto de solo lectura. El propio repositorio advierte además que pyRevit Routes sigue siendo una API en borrador y no incluye autenticación integrada.
La vía oficial pyRevit Agent Runtime sigue siendo experimental
La documentación oficial describe ahora Agent Runtime, una vía independiente de Routes que utiliza el servidor stdio pyrevit mcp y un canal con nombre limitado al usuario actual de Windows. Añade políticas readonly, ask y auto, además de aprobación humana y rollback de los cambios. A 8 de octubre de 2026 sigue desactivada por defecto, la fase 0 solo está validada en Revit 2024 y 2025 y la fase CLI/MCP continúa en desarrollo: es una dirección más segura que conviene vigilar, no una recomendación de producción ya estable. Incluso su modo readonly no aísla los efectos de archivo, red o proceso de un script Python.
Herramientas disponibles y límites actuales
En síntesis: la tabla de estado del repositorio Python es la referencia para saber qué funciones están realmente disponibles. Cada herramienta de esta página procede del servidor FastMCP y de las rutas Python del mismo repositorio.
Lectura y visualización
Las funciones de lectura implementadas cubren el estado de la conexión, la información general del modelo, niveles, vistas exportables, vista actual, elementos visibles y familias disponibles. Son adecuadas para un primer piloto porque sus resultados pueden compararse rápidamente con la interfaz de Revit y las tablas existentes.
La exportación de vistas y color splash añaden una dimensión visual. Pueden ayudar a localizar una categoría o revisar la distribución de un parámetro, pero el resultado depende de los filtros, valores y documento activo. Una vista coloreada no es una validación BIM: debe estar vinculada a una regla de control explícita.
Escritura y gestión documental
El repositorio marca como disponibles la colocación de familias, la creación de elementos puntuales, apertura, guardado y cierre de documentos, y sincronización con el archivo central. Estas operaciones cambian el estado de Revit o del archivo y no deben activarse en el primer ensayo. La creación lineal o superficial, eliminación y modificación genérica siguen anunciadas como no implementadas en la fecha de revisión.
execute_revit_code es un caso aparte: puede ejecutar IronPython dentro del contexto Revit y supera los guardarraíles de una lista de comandos métier. Ocultarlo en la interfaz no basta. Un piloto restringido debe eliminar su registro MCP y su ruta en la extensión, y verificar su ausencia antes de conectarse a un modelo.
Capacidades útiles para un estudio BIM
En síntesis: los casos de uso más creíbles no son los más espectaculares, sino las operaciones repetitivas, verificables y reversibles. Revit MCP se vuelve interesante cuando el asistente manipula elementos que el equipo puede controlar rápidamente en la maqueta.
Lectura y control del modelo
Los usos más prudentes son las consultas que el BIM manager puede confirmar sin interpretación: documento activo, niveles, vistas, familias disponibles o elementos visibles en la vista actual. El asistente puede preparar una síntesis, pero la maqueta sigue siendo la fuente de verdad y cualquier divergencia debe registrarse.
Después de validar la lectura, puede probarse la colocación de una familia o la creación de un elemento puntual sobre una copia desechable. El protocolo debe fijar familia, tipo, nivel, coordenadas, unidad y resultado esperado. Una operación técnicamente correcta puede seguir siendo falsa para el proyecto si usa el nivel o tipo equivocado.
Extracción de datos y mediciones
La información de modelo, niveles, vistas, familias y elementos visibles puede alimentar un control preliminar o una extracción estructurada. Sin embargo, el servidor no convierte estos resultados en mediciones certificadas. Hay que definir los campos esperados, conservar el documento fuente y revisar las unidades antes de reutilizar los datos en una tabla, nota o estimación.
El dato extraído sigue dependiendo de la calidad de la maqueta. Si los recintos no están cerrados, si los materiales están mal asignados o si los parámetros internos son incoherentes, el asistente producirá una síntesis limpia sobre una base falsa. Es el mismo límite que las tablas de planificación clásicas de Revit: la automatización no arregla una estructura BIM débil.
Comparación con Dynamo
En síntesis: Revit MCP no ocupa el mismo lugar que Dynamo. Es más conversacional, pero menos maduro como entorno visual de scripts y validación.
| Opción | Uso natural | Principal fortaleza | Punto de atención |
|---|---|---|---|
| Revit Python MCP | Pilotar Revit desde un asistente local con Python y pyRevit | Prototipado rápido, herramientas explícitas, ampliación posible | Proyecto tercero, Routes sin autenticación, madurez variable |
| Dynamo | Automatizar Revit con grafos visuales y scripts | Ecosistema probado en estudios Revit | Curva de aprendizaje y mantenimiento de grafos |
| Script pyRevit interno | Ejecutar una orden Python conocida desde la cinta | Control del script e interacción clara | Menos conversacional, mantenimiento interno necesario |
| Add-in Revit interno | Desarrollar un workflow específico directamente con la API Revit | Control del código, permisos y ciclo de validación | Desarrollo, mantenimiento y pruebas que financiar |
Revit MCP frente a Dynamo
Dynamo sigue siendo la referencia cuando un estudio quiere construir workflows reproducibles, versionados y transmisibles al equipo BIM. Revit Python MCP encaja mejor con operaciones puntuales en lenguaje natural: consultar una vista, extraer una síntesis o probar una colocación en una copia del modelo. El buen uso no consiste en reemplazar todos los grafos Dynamo, sino en detectar tareas donde una interacción conversacional es más rápida que un script completo.
Para operaciones reglamentarias, tablas críticas o tratamientos de cientos de elementos, Dynamo o un script pyRevit versionado conservan la ventaja de la legibilidad y la validación previa. El MCP puede intervenir antes para explorar o preparar, y luego el equipo BIM formaliza lo que debe permanecer. Esta separación evita convertir el asistente en una caja negra de producción.
Seguridad, gobernanza y límites
En síntesis: la cadena corre en local, pero local no significa sin riesgo. Los comandos se aplican sobre una maqueta Revit real; el riesgo principal no es solo la confidencialidad, también es la integridad del modelo.
Confidencialidad y datos locales
La cadena ejecuta su puente Revit en el equipo local. El archivo Revit no se envía como tal a GitHub o PyPI. En cambio, los extractos enviados al asistente, nombres de elementos, parámetros o resultados pueden entrar en la conversación con el modelo utilizado. La política de datos depende también del cliente MCP y del proveedor del modelo.
Para un estudio sujeto a cláusulas de confidencialidad, la regla debe ser simple : prueba sobre maqueta interna o copia anonimizada, nunca sobre un archivo cliente sensible en el primer ensayo. Los datos enviados al modelo deben limitarse a lo necesario para la tarea. Esta disciplina vale también para Claude Desktop, Claude Code, Cline o cualquier otro cliente MCP compatible.
Lo que no conviene automatizar sin control
execute_revit_code, las operaciones documentales y las herramientas de escritura deben tratarse como capacidades de privilegio alto. No deberían estar disponibles por defecto para todo el equipo. La documentación actual de pyRevit indica que Routes no incorpora autenticación y puede escuchar en 0.0.0.0. La documentación Routes del proyecto Python precisa que la primera instancia de Revit suele usar el puerto 48884 y que las instancias simultáneas pasan a 48885, 48886 y sucesivos. Por tanto, hay que inventariar todos los listeners Routes activos, bloquear cada puerto afectado o todo el rango configurado en el firewall de Windows para los perfiles de red y no exponerlos a Internet, incluso detrás de una pasarela de autenticación simple.
El repositorio ofrece sobre todo una base de prototipado. No sustituye un protocolo de estudio: copia de seguridad, modelo testigo, revisión del BIM manager, inventario exacto de herramientas y rutas activas, registro de llamadas y validación antes de cualquier uso en producción.
Posición de Educasium
En síntesis: Educasium puede ayudar a un estudio a entender y encuadrar este tipo de herramienta, pero no debe venderla como una solución ya validada en producción sin prueba interna.
Experiencia disponible
Educasium forma a arquitectos y profesionales de la construcción en el uso operativo de la IA, con atención particular a workflows BIM, calidad de entregables y límites métier. Todavía no hemos desplegado este servidor Revit MCP preciso en un estudio cliente ni medido un ahorro de tiempo verificado sobre un proyecto real. Esta ausencia debe seguir visible: el artículo analiza una herramienta open source verificada, no un caso de estudio Educasium.
Esa prudencia aumenta el valor de la recomendación. En lugar de prometer una automatización general de Revit, conviene partir de un perímetro controlado: estado del documento, niveles, vistas o colocación de una familia sobre un modelo de prueba. El estudio puede decidir después si el conector merece entrar en su referencial BIM interno.
Implementación hipotética
Implementación hipotética. Para un piloto Python serio, Educasium recomendaría crear una copia de un modelo escuela, instalar pyRevit y la extensión en la versión Revit del equipo y verificar /revit_mcp/status/. El repositorio upstream no cumple este nivel de solo lectura sin modificaciones: un fork controlado eliminaría las herramientas de ejecución, escritura y gestión documental del registro MCP y las rutas correspondientes del startup de la extensión. MCP Inspector confirmaría que solo se anuncian get_revit_status, get_revit_model_info, list_levels y list_revit_views, y después unas peticiones directas comprobarían que los endpoints retirados son inaccesibles. El BIM manager documentaría las diferencias entre respuestas y maqueta, los datos enviados al proveedor del modelo, los errores y los escenarios donde Dynamo sigue siendo preferible.
Una vez validado ese protocolo, el equipo podría reactivar selectivamente una sola orden de escritura realmente disponible, por ejemplo place_family o create_point_based_element, únicamente sobre una copia desechable del modelo. La decisión final no debería ser "adoptar o rechazar la IA en Revit", sino "qué comandos de este servidor son lo bastante fiables para nuestra forma de producir". Es una metodología, no una demostración vistosa.
Fuentes y siguiente lectura
En síntesis: la información técnica de esta página viene de la documentación de pyRevit y del repositorio Python, no de una demostración comercial ni de otro MCP Revit. La arquitectura Routes, el estado de las herramientas, los comandos de instalación y los riesgos citados se verificaron en las fuentes del final.
Qué leer después
Si su estudio ya trabaja en Revit, empiece por nuestra guía sobre el mejor plugin IA Revit en 2026 para distinguir asistente de diseño, render y automatización BIM. Para una visión más amplia, consulte también IA y BIM: qué cambia para la maqueta digital y el comparativo de software IA para arquitectos.
Los equipos que quieren encuadrar estos usos desde las competencias pueden mirar después la formación Dominar la IA en arquitectura o el hub Skills para arquitectos. El buen objetivo no es añadir una herramienta más, sino decidir qué tareas Revit merecen realmente una automatización asistida por IA. Educasium cuenta con la certificación Qualiopi; una financiación OPCO/FIFPL puede ser posible según el estatus, los criterios del financiador, su aprobación y el presupuesto disponible, sin garantía. Contacte con nosotros para estudiar el marco adecuado.