Content
# revit-mcp
Serveur MCP pour piloter **Autodesk Revit (2024 → 2027)** depuis Claude Desktop, Cline ou Cursor, en langage naturel.
> Auteur : **Morel Zeulieu**
## Architecture
```
Claude → serveur MCP Python (stdio) → WebSocket 8765 → Add-in C# → Revit API
```
- **Serveur MCP** : Python + FastMCP (stdio) — `server/`
- **Add-in Revit** : C# multi-version 2024→2027 (net48 / net8 / net10, API Revit via NuGet Nice3point) — `addin/RevitMCPAddin/`
- **Transport** : WebSocket `ws://localhost:8765`
## Ce que ça couvre
Environ **150 outils en 19 groupes (A→S)** : modèle et projet, éléments et paramètres, GeoJSON/GIS, géoréférencement (LoGeoRef), IDS/QA, création, MEP, structure, vues et feuilles, familles, pièces, clash detection, worksets, phases 4D, export (IFC, DWG, NWC, GeoJSON...), code dynamique, BIMtoGIS, bSDD, et outils complémentaires (audit, annotation, nomenclatures/Excel, édition).
## Démarrage rapide
### 1. Add-in Revit
```bash
cd addin/RevitMCPAddin
dotnet build RevitMCPAddin.csproj -c R26 # Revit 2026 (R24 / R25 / R27 pour les autres versions)
```
Copier le contenu de `bin/R26/` dans `%AppData%\Autodesk\Revit\Addins\2026\RevitMCPAddin\`, et placer le manifeste `RevitMCPAddin.addin` à la racine du dossier `2026`.
> L'API Revit vient des packages NuGet `Nice3point.Revit.Api.*` : pas besoin de Revit installé pour compiler.
### 2. Serveur MCP Python
```bash
cd server
pip install -r requirements.txt
python server.py # ou MCP_REVIT_MODE=mock pour développer sans Revit
```
### 3. Claude Desktop
`%AppData%\Claude\claude_desktop_config.json` :
```json
{
"mcpServers": {
"revit-mcp": {
"command": "python",
"args": ["C:\\chemin\\vers\\server\\server.py"]
}
}
}
```
## Ordre de démarrage
1. Ouvrir Revit (2024, 2025, 2026 ou 2027) et un modèle `.rvt`
2. Lancer Claude Desktop et vérifier l'icône marteau (MCP actif)
## Variables d'environnement
| Variable | Défaut | Rôle |
|---|---|---|
| `REVIT_WS_URL` | `ws://localhost:8765` | URL WebSocket |
| `REVIT_WS_TIMEOUT` | `30` | Timeout (secondes) |
| `MCP_REVIT_MODE` | — | `mock` pour dev sans Revit |
Détail complet du projet dans [`CLAUDE.md`](CLAUDE.md).