Skip to main content
Glama
Joseadobbato13

Automatización MCP — Navisworks Manage 2025

README.md
<div align="center">

![Navisworks](https://img.shields.io/badge/Autodesk_Navisworks-Manage_2025-006EB8?style=flat-square&logo=autodesk&logoColor=white)
![MCP](https://img.shields.io/badge/MCP-Claude-D97757?style=flat-square&logo=anthropic&logoColor=white)
![Python](https://img.shields.io/badge/Python-3.11+-3776AB?style=flat-square&logo=python&logoColor=white)
![.NET](https://img.shields.io/badge/.NET-C%23_plugin-512BD4?style=flat-square&logo=dotnet&logoColor=white)

</div>

# Automatización MCP — Navisworks Manage 2025

Servidor **[Model Context Protocol](https://modelcontextprotocol.io)** que permite controlar
**Autodesk Navisworks Manage 2025** desde **Claude** en lenguaje natural: inspección de modelos
federados, árbol del modelo, búsqueda por propiedades, *selection sets* y detección de conflictos
(clash).

## 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 2025
```

> **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
bim_tools/                 ← utilidades BIM (property_search)
plugin/                    ← plugin C# (Navisworks_MCP_Plugin.cs) + botones + bundle
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())
print(s.recv(4096).decode()); s.close()
```

## Licencia

Ver [`LICENSE`](LICENSE). Autodesk y Navisworks son marcas de Autodesk, Inc. Proyecto no afiliado a Autodesk.