Créer un serveur MCP avec Claude
1- Créer un dossier sur votre poste :
mkdir pbix-mcp-server
cd pbix-mcp-server
2- Y placer ces deux fichiers :
3- Installer les “requis” :
pip install -r requirements.txt
4- Saisir dans Windows + R :
%APPDATA%\Claude\claude_desktop_config.json
5- Dans le fichier JSON, coller
{
"mcpServers": {
"pbix-server": {
"command": "python",
"args": ["C:\\pbix-mcp-server\\pbix_server.py"]
}
}
}
6- Redémarrer Claude
7- Vérifier dans Fichier > Paramètres > Développeur :
Je mets ici le “Guide” produit par Claude, lors du passage du projet PBIX vers PBIP :
📊 Guide du serveur MCP PBIP
🎯 Qu'est-ce que PBIP ?
PBIP (Power BI Project) est le nouveau format de fichier pour Power BI Desktop qui remplace progressivement PBIX.
Différences PBIX vs PBIP
🚀 Avantages du serveur MCP PBIP
✅ Modification directe des mesures DAX sans outils externes ✅ Lecture simple du modèle de données ✅ Import/Export de mesures en JSON ✅ Sauvegardes automatiques avant modifications ✅ Compatible Git - idéal pour le contrôle de version ✅ Pas besoin de Power BI Desktop pour les modifications simples 📋 Structure d'un projet PBIP
MonProjet.pbip/ # Dossier du projet
├── MonProjet.pbip # Fichier principal (métadonnées)
├── MonProjet.Report/ # Dossier du rapport
│ ├── report.pbir # Définition du rapport
│ └── definition/ # Visuels et pages
│ ├── pages/
│ └── ...
└── MonProjet.SemanticModel/ # Dossier du modèle sémantique
├── definition.pbidataset # 🎯 Modèle de données (Tables, Mesures)
├── model.bim # Modèle Analysis Services
└── ...
Fichier clé : definition.pbidataset contient toutes les tables, colonnes et mesures DAX en JSON !
🔧 Outils disponibles
Le serveur MCP PBIP offre 12 outils :
📂 Gestion de projet
load_pbip - Charge un projet PBIP list_pbip_structure - Liste la structure du projet backup_pbip - Crée une sauvegarde 📊 Lecture du modèle
read_datamodel_definition - Lit le modèle de données list_tables - Liste toutes les tables list_dax_measures - Liste les mesures DAX (avec filtre optionnel) read_report_definition - Lit la définition du rapport ✏️ Modification des mesures DAX
add_dax_measure - Ajoute une nouvelle mesure update_dax_measure - Modifie une mesure existante delete_dax_measure - Supprime une mesure 📥📤 Import/Export
export_measures_to_json - Exporte toutes les mesures en JSON import_measures_from_json - Importe des mesures depuis JSON 💡 Exemples d'utilisation
Charger un projet
load_pbip C:\Projets\MonProjet.pbip
Ou charger le dossier directement :
load_pbip C:\Projets\MonProjet.pbip\
Lister les mesures DAX
Filtrer par table :
list_dax_measures table_filter="Ventes"
Ajouter une mesure DAX
add_dax_measure
measure_name="Total Ventes"
dax_expression="SUM(Ventes[Montant])"
table_name="Mesures"
description="Somme totale des ventes"
format_string="#,##0.00 €"
display_folder="KPI Ventes"
Modifier une mesure
update_dax_measure
measure_name="Total Ventes"
table_name="Mesures"
new_expression="SUMX(Ventes, Ventes[Quantité] * Ventes[PrixUnitaire])"
new_description="Calcul actualisé du total"
Supprimer une mesure
delete_dax_measure
measure_name="Mesure Obsolete"
table_name="Mesures"
Exporter les mesures
export_measures_to_json C:\Projets\mes_mesures.json
Importer des mesures
import_measures_from_json C:\Projets\mes_mesures.json
📝 Format JSON pour l'import/export
{
"measures": [
{
"table": "Mesures",
"name": "Total Ventes",
"expression": ["SUM(Ventes[Montant])"],
"description": "Somme totale des ventes",
"formatString": "#,##0.00 €",
"displayFolder": "KPI Ventes"
},
{
"table": "Mesures",
"name": "Nombre Clients",
"expression": ["DISTINCTCOUNT(Ventes[ClientID])"],
"description": "Nombre de clients uniques",
"formatString": "#,##0",
"displayFolder": "KPI Clients"
}
]
}
🔄 Workflow recommandé
1. Développement collaboratif avec Git
# Clone du projet
git clone https://github.com/team/powerbi-project.git
cd powerbi-project
# Charger le projet
load_pbip MonProjet.pbip
# Ajouter des mesures
add_dax_measure ...
# Commit et push
git add .
git commit -m "Ajout de nouvelles mesures DAX"
git push
2. Réutilisation de mesures entre projets
# Exporter depuis le projet source
load_pbip ProjetSource.pbip
export_measures_to_json mesures_communes.json
# Importer dans le projet cible
load_pbip ProjetCible.pbip
import_measures_from_json mesures_communes.json
3. Sauvegarde avant modifications
# Charger le projet
load_pbip MonProjet.pbip
# Créer une sauvegarde manuelle
backup_pbip
# Faire des modifications
add_dax_measure ...
update_dax_measure ...
# Une sauvegarde auto est créée avant chaque modification
🎓 Bonnes pratiques
Organisation des mesures
✅ Créer une table dédiée "Mesures" pour toutes les mesures ✅ Utiliser display_folder pour organiser par catégorie ✅ Toujours ajouter une description claire ✅ Définir le format d'affichage approprié Nommage des mesures
// ✅ BON
Total Ventes
CA par Client
Croissance % YoY
// ❌ MAUVAIS
tv
chiffre_affaires_divise_par_nombre_clients
croissance
Gestion de version
✅ Utiliser Git pour versionner le projet PBIP ✅ Exporter les mesures en JSON pour la documentation ✅ Créer des branches pour tester de nouvelles mesures ✅ Faire des commits atomiques par fonctionnalité ⚠️ Limitations et précautions
Limitations
❌ Format PBIP uniquement - Ne fonctionne pas avec PBIX ⚠️ Pas de validation DAX - Le serveur ne vérifie pas la syntaxe ⚠️ Modification manuelle - Power BI doit recharger le fichier ⚠️ Pas de gestion des relations - Seulement les mesures DAX Précautions
Toujours créer une sauvegarde avant modifications importantes Tester les mesures dans Power BI après ajout Fermer Power BI avant de modifier le fichier manuellement Rouvrir Power BI après les modifications pour recharger 🔧 Configuration du serveur
Installation
Configuration Claude Desktop
Windows : %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"pbip-server": {
"command": "python",
"args": ["C:\\chemin\\vers\\pbip_server.py"]
}
}
}
Mac : ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"pbip-server": {
"command": "python3",
"args": ["/chemin/vers/pbip_server.py"]
}
}
}
🆚 Comparaison avec PBIX
🎯 Cas d'usage avancés
1. Migration PBIX → PBIP
# 1. Ouvrir le PBIX dans Power BI Desktop
# 2. Fichier > Enregistrer sous > Format PBIP
# 3. Charger le PBIP avec le serveur MCP
load_pbip MonProjet.pbip
2. Templates de mesures
Créer un fichier template_mesures.json :
{
"measures": [
{
"table": "Mesures",
"name": "Total {METRIC}",
"expression": ["SUM({TABLE}[{COLUMN}])"],
"formatString": "#,##0.00 €"
}
]
}
Utiliser pour créer rapidement des mesures similaires.
3. Tests automatisés
# Script de test des mesures
import json
# Exporter les mesures
export_measures_to_json("measures.json")