Automatización MCP — Navisworks Manage 2025
README.md
<div align="center">




</div>
# Automatización MCP — Navisworks Manage 2026
Servidor **[Model Context Protocol](https://modelcontextprotocol.io)** que permite controlar
**Autodesk Navisworks Manage 2026** desde **Claude** en lenguaje natural: inspección de modelos
federados, árbol del modelo, búsqueda por propiedades, *selection sets*, detección de conflictos
(clash) y planificación **4D con TimeLiner**.
El plugin añade además su propia pestaña en el ribbon, con los botones de auditoría de atributos,
creación de conjuntos por atributo y estado de la conexión.
## Arquitectura
```
Claude
↕ stdio (MCP)
server.py ← FastMCP, define los @mcp.tool()
└─ tools/plugin_bridge.py ← cliente TCP → localhost:65434
↓
plugin/Navisworks_MCP_Plugin.dll ← plugin C# DENTRO de Navisworks
↓ API .NET de Navisworks
Navisworks Manage 2026
```
> **Diferencia clave con Civil 3D:** Navisworks **no** expone COM accesible desde Python. El plugin
> C# es el **único** camino — si no está cargado, las herramientas devuelven error. Verifica siempre
> con `navis_ping()` antes de ejecutar comandos.
## Estructura
```
server.py ← servidor MCP (punto de entrada)
app.py ← aplicación auxiliar
requirements.txt ← dependencias Python
tools/ ← model_info, model_tree, property_search, selection_sets, clash,
federated_inspector, timeliner
bim_tools/ ← utilidades BIM (property_search)
plugin/ ← plugin C# + botones + ribbon + bundle
Navisworks_MCP_Plugin.cs servidor TCP y despacho de comandos
Timeliner_MCP.cs tareas 4D: tipos, tareas, vínculo con los conjuntos
ZonasClash_MCP.cs conjuntos y pruebas de choque por zona de obra
RibbonBIM.cs / .xaml pestaña propia del ribbon
instalar_plugin.bat ← instalación del bundle
```
## Instalación
### Servidor MCP
```bash
pip install -r requirements.txt
python server.py
```
### Plugin C# (necesario)
```bash
cd plugin
dotnet build -c Release
```
Instala el bundle (auto-carga al abrir Navisworks) copiando `plugin/bundle/` a
`%AppData%\Autodesk\ApplicationPlugins\Navisworks_MCP_Plugin.bundle\`
(o usa [`instalar_plugin.bat`](instalar_plugin.bat)). También se puede cargar manualmente en
**Add-Ins → External → "MCP Server"**.
## Probar la conexión
```python
import socket, json
s = socket.socket(); s.connect(('127.0.0.1', 65434))
s.sendall(json.dumps({'command': 'PING', 'params': {}}).encode())
s.shutdown(socket.SHUT_WR) # imprescindible: sin esto el plugin espera más datos
print(s.recv(4096).decode()); s.close()
```
Si la conexión se abre pero no llega respuesta, casi siempre falta ese `shutdown`: el plugin no
está colgado, está esperando el resto de la petición.
## Añadir botones al ribbon
El plugin monta su propia pestaña, y añadir un botón obliga a tocar tres ficheros coordinados
(el `.cs`, el `.xaml` y, si el icono es nuevo, el `.csproj`). Un `Id` que no coincide hace que el
botón simplemente no aparezca, sin ningún error. El procedimiento y las trampas están en
[`docs/ribbon_y_botones.md`](docs/ribbon_y_botones.md).
## Licencia
Ver [`LICENSE`](LICENSE). Autodesk y Navisworks son marcas de Autodesk, Inc. Proyecto no afiliado a Autodesk.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues