Outils MCP BDNB

Quatre outils pour enrichir les conversations Claude avec les données bâtimentaires de la Base de Données Nationale des Bâtiments (CSTB, 32 M bâtiments). Chaque transaction DVF peut être rattachée à son bâtiment par proximité spatiale (≤ 200 m).

La jointure DVF×BDNB couvre 16,8 M de transactions (millésime 2025-07-a). Les bâtiments sans transaction DVF sont interrogeables via get_bdnb_stats (stock total de 32 M bâtiments).

get_building_context 2 crédits

Retourne les caractéristiques du bâtiment BDNB correspondant à une transaction DVF : année de construction, matériaux des murs et du toit, nombre de logements et d'étages, usage, et distance de correspondance spatiale.

Paramètres

ParamètreTypeDéfautDescription
transaction_id*numberID de la transaction DVF (entier)

Exemple

// Demander à Claude :
// "Quel bâtiment correspond à cette transaction ?"

{
  "tool": "get_building_context",
  "arguments": {
    "transaction_id": 242
  }
}
{
  "building": {
    "batiment_groupe_id": "bdnb-bg-KXVS-CAJR-C7E2",
    "annee_construction": 1914,
    "nb_logements": 17,
    "nb_etages": 8,
    "materiaux_murs": "PIERRE",
    "materiaux_toit": "ARDOISES - ZINC ALUMINIUM",
    "usage_principal": "Résidentiel collectif",
    "usage_niveau_1": "Résidentiel collectif",
    "dvf_nb_mutations": 12,
    "dvf_prix_m2_median": 9337,
    "match_distance_m": 6
  },
  "_credits": { "used": 2, "remaining": 498 },
  "query_time_ms": 102
}

get_age_adjusted_stats 10 crédits

Prix médian/m² par tranche de construction (avant 1919, 1919–1945, 1946–1970, 1971–1990, 1991–2005, 2006+), avec écart à la médiane de la zone (vs_zone_pct). Permet de répondre à : "L'ancien Haussmannien vaut-il plus que l'immeuble des années 70 ?"

statistically_fragile: true signale les tranches avec moins de 30 transactions — à interpréter avec prudence.

Paramètres

ParamètreTypeDéfautDescription
code_postalstringCode postal (ex. '75015')
communestringCommune en majuscules (ex. 'LYON')
code_departementstringCode département (ex. '69')
type_localenumMaison | Appartement (défaut : tous)

Exemple

// Demander à Claude :
// "Les appartements des années 70 se vendent-ils moins cher que les Haussmanniens dans le 15e ?"

{
  "tool": "get_age_adjusted_stats",
  "arguments": {
    "code_postal": "75015",
    "type_local": "Appartement"
  }
}
{
  "tranches": [
    { "tranche": "avant_1919", "nb": 12648, "prix_m2_median": 9172, "vs_zone_pct": 0 },
    { "tranche": "1919_1945", "nb": 4012,  "prix_m2_median": 9165, "vs_zone_pct": 0 },
    { "tranche": "1946_1970", "nb": 3177,  "prix_m2_median": 8939, "vs_zone_pct": -2 },
    { "tranche": "1971_1990", "nb": 2236,  "prix_m2_median": 9199, "vs_zone_pct": 0 },
    { "tranche": "1991_2005", "nb": 1665,  "prix_m2_median": 9328, "vs_zone_pct": 2 },
    { "tranche": "2006_plus", "nb": 833,   "prix_m2_median": 10484, "vs_zone_pct": 14 }
  ],
  "prix_m2_median_zone": 9158,
  "nb_total": 24571,
  "_credits": { "used": 10, "remaining": 488 }
}

get_renovation_score 10 crédits

Score de potentiel de rénovation (0–100) pour une zone : identifie les bâtiments construits avant 1975 vendus en dessous de la médiane du marché. Un score élevé indique une décote mesurable sur l'ancien — typiquement des biens à rénover sous-valorisés par rapport à leur quartier.

Combinez avec get_dpe_stats pour cibler les zones où les passoires thermiques ont la décote la plus forte — double levier de valorisation.

Paramètres

ParamètreTypeDéfautDescription
code_postalstringCode postal (ex. '69001')
communestringCommune en majuscules
code_departementstringCode département
type_localenumMaison | Appartement (défaut : tous)

Exemple

// Demander à Claude :
// "Y a-t-il des opportunités de rénovation dans le 1er arrondissement de Lyon ?"

{
  "tool": "get_renovation_score",
  "arguments": {
    "code_postal": "69001",
    "type_local": "Appartement"
  }
}
{
  "score": 72,
  "nb_opportunites": 3471,
  "prix_m2_median_vieux": 4200,
  "prix_m2_median_zone": 5100,
  "decote_vs_zone_pct": 18,
  "annee_construction_moy": 1932,
  "materiaux_murs_principal": "PIERRE",
  "_credits": { "used": 10, "remaining": 478 }
}

get_bdnb_stats 5 crédits

Stock de bâtiments pour une commune ou un département : répartition par tranche de construction, par usage (résidentiel, tertiaire, mixte), nombre total de logements et médiane d'année de construction. Interroge les 32 M bâtiments BDNB directement — pas uniquement ceux avec des transactions DVF.

Pour une précision commune, passez code_commune_insee (ex. 75115pour Paris 15e). Avec code_postal, les stats sont au niveau département.

Paramètres

ParamètreTypeDéfautDescription
code_commune_inseestringCode INSEE commune (ex. '75115') — précision maximale
code_postalstringCode postal — stats au niveau département
communestringNom de commune en majuscules
code_departementstringCode département

Exemple

// Demander à Claude :
// "Quel est le profil du parc immobilier du 15e arrondissement de Paris ?"

{
  "tool": "get_bdnb_stats",
  "arguments": {
    "code_commune_insee": "75115"
  }
}
{
  "nb_batiments": 6172,
  "nb_logements_total": 153055,
  "annee_construction_median": 1914,
  "par_tranche": { "avant_1919": 2868, "1919_1945": 791, "1946_1970": 555, "1971_1990": 477, "1991_2005": 455, "2006_plus": 265 },
  "par_usage": { "residentiel": 4961, "tertiaire": 878, "mixte": 0, "autre": 20 },
  "pct_vieux": 80,
  "_credits": { "used": 5, "remaining": 473 }
}