McpQualityAutocad
by mickael62800
README.md
# McpQualityAutocad
Serveur MCP (Model Context Protocol) de verification qualite pour les dessins AutoCAD VRD. Ce serveur expose des outils de controle qualite que Claude peut appeler directement pour valider vos fichiers AutoCAD selon la charte graphique VRD.
## Prerequis
- **Python 3.10+**
- **AutoCAD** installe sur la machine (necessaire pour `pyautocad`)
- **Claude Desktop** ou **Claude Code** pour utiliser le serveur MCP
## Installation
### 1. Cloner le depot
```bash
git clone https://github.com/mickael62800/Mcps.git
cd Mcps/McpQualityAutocad
```
### 2. Creer un environnement virtuel (recommande)
```bash
python -m venv venv
venv\Scripts\activate # Windows
```
### 3. Installer les dependances
```bash
pip install -r requirements.txt
```
## Configuration MCP avec Claude
### Option A : Claude Desktop
Editez le fichier de configuration Claude Desktop :
- **Windows** : `%APPDATA%\Claude\claude_desktop_config.json`
- **macOS** : `~/Library/Application Support/Claude/claude_desktop_config.json`
Ajoutez le serveur MCP dans la section `mcpServers` :
```json
{
"mcpServers": {
"quality-autocad": {
"command": "python",
"args": ["C:/chemin/vers/McpQualityAutocad/script.py"],
"env": {}
}
}
}
```
> Remplacez `C:/chemin/vers/McpQualityAutocad/script.py` par le chemin absolu vers votre fichier `script.py`.
Redemarrez Claude Desktop pour que le serveur soit detecte.
### Option B : Claude Code (CLI)
Ajoutez le serveur MCP via la commande :
```bash
claude mcp add quality-autocad -- python C:/chemin/vers/McpQualityAutocad/script.py
```
Ou editez manuellement le fichier `~/.claude/settings.json` :
```json
{
"mcpServers": {
"quality-autocad": {
"command": "python",
"args": ["C:/chemin/vers/McpQualityAutocad/script.py"]
}
}
}
```
## Utilisation
Une fois le serveur configure, Claude a acces aux outils suivants que vous pouvez invoquer en langage naturel :
### Outils disponibles
| Outil | Description |
|-------|-------------|
| `generate_quality_report` | Genere un rapport qualite complet en executant tous les controles |
| `check_layer_0_usage` | Verifie qu'aucun objet n'est dessine sur le Layer 0 |
| `check_layer_naming_convention` | Valide le nommage des calques selon la charte VRD |
| `check_block_naming_convention` | Valide le nommage des blocs (pas d'espaces) |
| `check_mnt_tn_file_naming` | Verifie le nommage des fichiers MNT TN |
| `check_visual_clutter` | Detecte l'encombrement visuel excessif |
| `check_title_block_completeness` | Verifie la completude du cartouche |
| `check_consistent_north_reference` | Verifie la coherence de l'orientation Nord |
| `check_standardized_symbols_blocks` | Verifie l'utilisation de symboles standards |
### Exemples de prompts
```
Peux-tu verifier la qualite de mon dessin AutoCAD ?
Verifie que les calques de mon fichier respectent la charte graphique VRD.
Genere un rapport qualite complet pour mon plan.
```
### Format des donnees attendu
Les outils attendent un dictionnaire `drawing_data` contenant :
```python
{
"layers_with_objects": ["Voirie-Axe", "Assainissement-Regard"],
"layer_names": ["Voirie-Axe", "Assainissement-Regard", "TN-Courbes"],
"block_names": ["Regard_EU", "Bouche_Incendie"],
"file_name": "MOA-12.34.5678-PHASE1-MonProjet-MNT_TN.dwg",
"has_excessive_clutter": false,
"title_block": {
"title": "Plan de masse",
"scale": "1/200",
"date": "2026-04-03",
"version": "A",
"author": "M. Verdin"
},
"north_reference_inconsistent": false,
"non_standard_assets_used": false
}
```
### Statuts de retour
Chaque controle retourne un statut :
- **PASS** : Le controle est conforme
- **FAIL** : Non-conformite detectee
- **WARN** : Avertissement (verification manuelle recommandee)
- **N/A** : Controle non applicable
## Structure du projet
```
McpQualityAutocad/
├── script.py # Point d'entree du serveur MCP
├── requirements.txt # Dependances Python
├── README.md
├── 03_production_graphique.md # Guide de production graphique VRD
├── 08_charte_graphique_vrd.md # Charte graphique VRD (reference)
└── tools/ # Modules de controle qualite
├── autocad_quality_report.py
├── check_layer_0_usage.py
├── check_layer_naming_convention.py
├── check_block_naming_convention.py
├── check_mnt_tn_file_naming.py
├── check_visual_clutter.py
├── check_title_block_completeness.py
├── check_consistent_north_reference.py
└── check_standardized_symbols_blocks.py
```
## Depannage
### Le serveur n'apparait pas dans Claude
1. Verifiez que le chemin vers `script.py` est correct et absolu
2. Verifiez que Python est accessible depuis le terminal (`python --version`)
3. Verifiez que les dependances sont installees (`pip list | grep fastmcp`)
4. Redemarrez Claude Desktop / Claude Code
### Erreur "pyautocad"
`pyautocad` necessite qu'AutoCAD soit installe sur la machine. Si vous n'avez pas AutoCAD, les outils fonctionneront quand meme avec des donnees fournies manuellement dans `drawing_data`.
### Tester le serveur manuellement
```bash
python script.py
```
Le serveur demarre et attend les connexions MCP sur stdin/stdout. Vous devriez voir `MCP server started...` dans stderr.
## Ameliorations prevues
### Filtrage des resultats cote serveur
**Probleme actuel** : Le systeme envoie l'integralite des donnees du dessin AutoCAD sous forme d'un JSON volumineux a Claude, qui doit ensuite analyser et traiter toutes ces donnees. Cela consomme beaucoup de tokens et ralentit le traitement, surtout sur des fichiers complexes avec de nombreux calques, blocs et objets.
**Objectif** : Deplacer la logique de filtrage cote serveur MCP afin de ne transmettre a Claude que les resultats pertinents : les **WARN** et **FAIL** uniquement.
**Approche envisagee** :
1. **Pre-traitement dans le serveur** : Executer les controles qualite directement dans le serveur MCP a partir des donnees brutes AutoCAD, au lieu de tout deleguer a Claude
2. **Filtrage des resultats** : Ne retourner que les non-conformites (FAIL) et avertissements (WARN), en excluant les controles passes (PASS) et non applicables (N/A)
3. **Resume synthetique** : Fournir un resume compact (ex: "6/8 controles OK, 1 FAIL, 1 WARN") avec le detail uniquement pour les problemes detectes
**Benefices attendus** :
- Reduction significative du volume de tokens consommes
- Reponses plus rapides de Claude
- Claude se concentre sur l'interpretation et les recommandations plutot que sur l'analyse brute des donnees
### Correction automatique via MCP complementaires
En combinant ce serveur de controle qualite avec d'autres serveurs MCP capables d'editer les fichiers AutoCAD, Claude pourrait non seulement detecter les erreurs mais aussi **les corriger ou les signaler directement dans le plan** :
- **Annotation des erreurs par nuages de revision** : Placer automatiquement des nuages de revision dans un calque dedie (ex: `QC-Erreurs`) pour signaler visuellement les anomalies detectees : lignes superposees sur un meme calque, trames incorrectes, objets mal places, etc.
- **Correction orthographique des calques** : Detecter et corriger automatiquement les fautes d'orthographe dans les noms de calques (ex: `Asainissement` -> `Assainissement`)
- **Detection des doublons geometriques** : Identifier les lignes, polylignes ou objets superposes sur un meme calque et proposer leur suppression
- **Ajout de trames de signalement** : Appliquer des hachures ou trames de couleur sur les zones problematiques pour faciliter la relecture
**Principe** : Ce serveur MCP reste dedie a l'analyse et au diagnostic. Les actions correctives seraient assurees par un ou plusieurs serveurs MCP complementaires disposant des droits d'ecriture sur les fichiers DWG, permettant une chaine complete : **detection -> signalement visuel -> correction**.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues