
Immo
io.github.benlibertePublished by GitHub account benlibertev0.1.2Updated Oct 24, 2026
InvestScore immobilier France (DPE, DVF, risques, INSEE), payé à la requête en USDC via x402.
Overview
Local MCP server that queries French energy-performance (DPE) data and enriches results with property values, natural risks and INSEE income indicators, paid in
- What you can do
- Search French DPE records by postcode, free address, street, number plus street, DPE identifier, BAN identifier or GPS coordinates, with automatic geocoding and relevance scoring, deduplication and ranking of results. Retrieve each result enriched with DVF market-value estimates, Géorisques natural and technological risk summaries, and INSEE FILOSOFI income and poverty indicators. Export results as JSON, CSV or XLSX. Payment for each query is handled through the x402 protocol on Base mainnet.
- When to use it
- Useful for property, insurance, banking or real-estate due-diligence work on French buildings, where an assistant needs DPE data combined with market values, hazard exposure and local socio-economic indicators. It suits autonomous agents that can pay per call in USDC rather than humans doing occasional lookups.
- Requirements
- Runs as a local npm package over stdio on a desktop machine. Requires a Base mainnet wallet holding USDC, supplied through the BDATAX_WALLET_KEY environment variable, which pays roughly 0.001 USDC per query via x402. Network access to the remote API is needed.
Installation
In SourceWeft
- Open Immo in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
DPE-X402
API française sur les diagnostics de performance énergétique (DPE), monétisée en USDC via le protocole x402 pour les agents IA autonomes.
[Live] [Network] [x402] [Version]
🌐 URL de production : https://dpe.bdatax.com 📄 Découverte automatique : https://dpe.bdatax.com/.well-known/x402.json
Ce que fait cette API
Interrogation intelligente de la base publique ADEME sur les DPE (Diagnostics de Performance Énergétique) en France, avec :
- 7 modes de recherche : adresse libre, code postal, GPS, numéro DPE, identifiant BAN, etc.
- Géocodage automatique via l'API BAN (avec sélection stricte pour éviter les faux positifs)
- Enrichissement DVF (v0.7.0) : chaque résultat est complété par une estimation de valeur marchande basée sur les transactions immobilières réelles publiées par la DGFiP (prix médian €/m², estimation totale, nombre de comparables, date de la dernière transaction du quartier)
- Enrichissement Géorisques (v0.7.1) : chaque résultat est enrichi de la synthèse des risques naturels et technologiques de la commune (inondation, séisme, radon, retrait-gonflement argile, mouvement de terrain, ICPE, canalisations matières dangereuses, pollution des sols…), servie par l'API officielle Géorisques (BRGM + Ministère Transition écologique)
- Enrichissement INSEE FILOSOFI (v0.7.2) : chaque résultat inclut les indicateurs socio-économiques de la commune — médiane du niveau de vie, taux de pauvreté, déciles D1/D9, rapport interdécile (indicateur d'inégalité), part des actifs et des retraités — issus du dispositif Fichier Localisé Social et Fiscal 2021 de l'INSEE
- Scoring intelligent de la pertinence de chaque résultat
- Déduplication et classement multi-critères (score, surface, date)
- 3 formats d'export : JSON (défaut), CSV, XLSX
- Paiement à la requête via le protocole x402 (HTTP 402) sur Base mainnet — ~0,001 USDC par appel
Conçu pour être utilisé par des agents IA autonomes qui payent en crypto sans intervention humaine (Machine Economy), mais aussi utilisable directement par un humain avec curl ou un navigateur.
Quick start
1. Voir ce que l'API expose (gratuit)
2. Interroger l'API sans payer (renvoie 402)
Réponse :
3. Payer et récupérer les DPE (avec un client x402)
Voir test-client.js pour un exemple complet en Node.js utilisant x402-fetch et viem.
Endpoints disponibles
Chaque appel /dpe renvoie un JSON structuré avec meilleurResultat, resultats (tableau classé), dpeLePlusRecent, et des métadonnées de recherche.
Enrichissement DVF (nouveau en v0.7.0)
Chaque DPE renvoyé est automatiquement enrichi (sans surcoût) avec des données de marché immobilier issues de la base publique DVF (Demandes de Valeurs Foncières, DGFiP) :
Méthode : pour chaque DPE géolocalisé, on cherche dans un rayon de 200 m les transactions immobilières récentes (2024-2025), du même type (appartement / maison), avec une surface comparable (±30 %). On calcule ensuite la médiane des prix au m² et on l'applique à la surface du DPE.
dvf vaut null si l'échantillon est trop faible (moins de 3 transactions comparables) ou si le département n'est pas encore indexé — le champ apparaît toujours pour que les consommateurs de l'API puissent tester sa présence de façon uniforme.
Couverture : France entière (métropole + DROM), transactions publiées jusqu'à la dernière mise à jour semestrielle DGFiP.
Mise à jour de l'index DVF : deux fois par an (avril et octobre), en lançant localement node build-dvf-index.js après avoir téléchargé le nouveau fichier full.csv.gz depuis data.gouv.fr, puis en pushant data/dvf/.
Enrichissement Géorisques (nouveau en v0.7.1)
Chaque DPE renvoyé est aussi enrichi (sans surcoût pour l'utilisateur) avec une synthèse des risques naturels et technologiques qui pèsent sur sa commune, via l'API officielle Géorisques maintenue par le BRGM et le Ministère de la Transition écologique :
Méthode : le code INSEE de la commune est dérivé du champ identifiantBAN du DPE, puis on interroge l'endpoint /api/v1/resultats_rapport_risque de Géorisques. La réponse est mise en cache 24 h en RAM par code INSEE — même 1000 DPE dans une même commune ne génèrent qu'un seul appel API par jour.
georisques vaut null si le codeInsee n'a pas pu être dérivé (DPE sans identifiantBAN), si l'API Géorisques répond en erreur, ou si le timeout de 5 s est dépassé. Comportement gracieux : les autres champs de la réponse (DPE + DVF) restent servis normalement.
Cas d'usage typique : assureurs (calcul de prime), banques (analyse de risque de crédit immobilier), plateformes de tokenisation immobilière (due diligence automatisée), agents IA immobiliers autonomes.
Utilisation avec un client Node.js
Installation :
Utilisation :
Un exemple complet et commenté est disponible dans test-client.js.
Pour tester, il faut :
- Un wallet EVM avec quelques centimes d'USDC sur Base mainnet (bridge depuis Arbitrum, Ethereum, ou achat direct sur Coinbase)
- Créer un fichier
client.envavecPRIVATE_KEY=...(jamais commit !) - Lancer :
node --env-file=client.env test-client.js
Architecture
Pipeline en 12 étapes pour chaque requête /dpe :
- Middleware x402 (paiement)
- Extraction des critères de recherche
- Analyse automatique de l'adresse (regex)
- Géocodage inverse BAN (GPS → adresse)
- Géocodage direct BAN (adresse → GPS, avec validation stricte CP/ville)
- Requêtes ADEME parallélisées (Promise.all)
- Scoring de chaque DPE (barème calibré)
- Déduplication et classement multi-critères
- Enrichissement DVF — pour chaque résultat, lookup local des transactions immobilières comparables (cache LRU en mémoire)
- Enrichissement Géorisques — appel API
/resultats_rapport_risquepar code INSEE (cache RAM 24 h) - Enrichissement INSEE FILOSOFI — lookup local des revenus/pauvreté/déciles par code INSEE (cache LRU)
- Sortie au format demandé (JSON/CSV/XLSX)
Temps de réponse typique : < 800 ms (l'appel Géorisques ajoute ~200-400 ms au premier appel par commune, ensuite servi depuis le cache ; DVF et INSEE sont locaux donc quelques ms).
Roadmap
- v0.7.0 ✅ Enrichissement DVF (transactions immobilières, prix médian €/m²)
- v0.7.1 ✅ Enrichissement Géorisques (inondation, sismique, radon, pollutions, ICPE, argile…)
- v0.7.2 ✅ Enrichissement INSEE FILOSOFI (revenu médian, taux de pauvreté, déciles)
- v0.8.x : Scores propriétaires (rénovation, confort d'été, attractivité globale)
- v0.9.x : Endpoint
/dpe/enrichià tarif différencié (~0,02 USDC) - v1.0 : Consolidation, SLA public, dashboards partenaires
Attribution
- Données DPE : ADEME — Open Data
- Données de valeurs foncières (DVF) : DGFiP / Etalab — Open Data
- Risques naturels et technologiques : Géorisques — BRGM et Ministère de la Transition écologique
- Revenus et pauvreté par commune : INSEE FILOSOFI 2021 — Licence Ouverte
- Géocodage : Base Adresse Nationale — Open Data
- Protocole de paiement : x402 — standard HTTP 402 poussé par Coinbase
Stack
- Runtime : Node.js + Express 5
- Paiement : x402-express sur Base
- Export Excel : SheetJS
- Hébergement : Render.com (Frankfurt)
- DNS : Cloudflare
Marque
BData X — Portfolio d'APIs françaises monétisées x402 sur données publiques.
Licence
Ce projet est distribué sous Business Source License 1.1 (BSL) — voir LICENSE.
En résumé :
- ✅ Tu peux étudier, forker, modifier le code librement
- ✅ Tu peux l'utiliser pour tes projets personnels ou internes
- ✅ Tu peux contribuer via des pull requests
- ❌ Tu ne peux PAS en faire une SaaS commercial concurrent de dpe.bdatax.com
Le 27 août 2030, cette licence bascule automatiquement en Apache 2.0 (totalement libre).
Pour un usage commercial concurrent avant cette date, contact via le repo.
Source: README.md at commit e9ab649
Tools
0Version history
1- v0.1.2LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.