Back to Browse

Immo Olv MCP Server

Developer ToolsUse Caution4.8MCP RegistryLocal
Free

Server data from the Official MCP Registry

French real-estate intelligence from official open data: DVF, valuations, rents, tax, DPE, risks.

About

French real-estate intelligence from official open data: DVF, valuations, rents, tax, DPE, risks.

Security Report

4.8
Use Caution4.8High Risk

mcp-immo-olv is a well-structured MCP server for French real estate data with thoughtful security design. It accesses only public open-data APIs, requires no API keys or credentials, and has proper input validation via Zod schemas. Minor code quality observations around error handling and network request timeouts do not materially affect security. Supply chain analysis found 8 known vulnerabilities in dependencies (2 critical, 2 high severity). Package verification found 1 issue.

6 files analyzed · 12 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-olivierlavaud-mcp-immo": {
      "args": [
        "-y",
        "mcp-immo-olv"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

mcp-immo-olv

Données immobilières françaises issues de l'open data public À partir d'une adresse, un client MCP peut consulter les ventes notariées (DVF), obtenir une estimation par comparables, les loyers d'annonce, une indication de la taxe foncière, les DPE, les risques Géorisques et le profil INSEE de la commune — sans clé API..

Pourquoi

Les portails affichent des prix demandés et des estimations opaques. Les données publiques françaises offrent mieux : actes notariés DVF, diagnostics ADEME, indicateurs de loyer, fiscalité locale REI, risques et référentiels d'adresses. mcp-immo-olv les relie dans des réponses auditables.

Chaque chiffre expose sa source, sa portée et ses limites. Une estimation reste une analyse d'open data, pas un avis de valeur professionnel ni un conseil financier.

Installation locale

Node.js 18 ou plus récent est requis.

npm install
npm run build
node dist/index.js

Installler avec la configuration générique :

{
  "mcpServers": {
    "immo-olv": {
      "command": "npx",
      "args": ["-y", "mcp-immo-olv"]
    }
  }
}

Installer depuis le registre MCP

Le serveur est référencé dans le registre officiel MCP sous le nom :

io.github.OlivierLAVAUD/mcp-immo

Un client capable de résoudre un serveur depuis le registre le trouve par ce nom, sans clé API ni compte à créer. Le registre ne stocke que les métadonnées : le serveur tourne en local, en stdio, et se lance depuis le paquet npm mcp-immo-olv. La configuration manuelle ci-dessus reste équivalente.

# Vérifier la fiche publiée
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.OlivierLAVAUD%2Fmcp-immo"

Installer en plugin Claude Code

Le dépôt est aussi un marketplace de plugins Claude Code. Deux commandes suffisent, sans clé API :

claude plugin marketplace add OlivierLAVAUD/mcp-immo-olv
claude plugin install immo-olv@mcp-immo-olv

Le plugin immo-olv lance le serveur MCP en stdio via npx -y mcp-immo-olv@latest, et ajoute trois commandes qui pré-câblent les appels d'outils :

CommandeCe qu'elle produit
/immo-olv:rapport <adresse>Dossier complet sur une adresse
/immo-olv:estimation <adresse> <type> <surface>Estimation par comparables et fiabilité mesurée du modèle
/immo-olv:risques <adresse>Risques, urbanisme et cadastre

Un skill de cadrage (immobilier-france) accompagne les outils : il impose de citer la source de chaque chiffre, de ne jamais inventer une donnée, et de traiter un risque available: false comme inconnu et non comme absent.

Sous Windows natif, si npx n'est pas résolu, déclare le serveur à la main :

claude mcp add immo-olv -- cmd /c npx -y mcp-immo-olv@latest

Outils

OutilRésultatSource
property_reportDossier complet : marché, ventes, estimation, loyers, taxe, DPE, risques, commune, cadastre, PLU, IRIS, encadrementToutes les sources ci-dessous
estimate_propertyEstimation pondérée par comparables, fourchette, échantillon effectif, loyer et rendementsDVF + Carte des loyers + REI pour la taxe moyenne
backtest_estimatorBacktest walk-forward du modèle : MAPE, biais, couverture des intervalles, par bande de surface et par annéeDVF (DGFiP / Etalab)
property_salesVentes notariées réelles autour d'une adresse ou dans une communeDVF (DGFiP / Etalab)
price_per_m2Médiane, quartiles, évolution annuelle et fenêtre 12 moisDVF (DGFiP / Etalab)
rent_estimateIndicateurs de loyer d'annonce par segmentCarte des loyers (Ministère du Logement / ANIL)
rent_controlLoyer de référence, plafond légal (majoré) et minoréEncadrement des loyers (Ville de Paris, Métropole de Lyon)
property_tax_estimateCharge annuelle moyenne par article taxable, ventilée par composanteREI (DGFiP), via API publique OFGL
dpe_lookupDiagnostics de performance énergétique à l'adresse, logements existants et neufsADEME (dpe03existant, dpe02neuf)
cadastral_parcelParcelle cadastrale : identifiant idu, section, numéro, contenance officiellePCI, IGN / DGFiP (API Carto)
urbanism_zoningZone PLU (U / AU / A / N), règlement et prescriptions d'urbanismeGéoportail de l'urbanisme (DGALN / IGN)
iris_lookupIRIS INSEE d'une adresse : code, nom, type, communeCONTOURS-IRIS / ADMINEXPRESS, IGN
natural_risksRisques naturels et technologiques officielsGéorisques
commune_infoPopulation, code postal, département, région, surface, centregeo.api.gouv.fr / INSEE
geocode_address / reverse_geocodeAdresse ↔ coordonnées, code INSEE et identifiant BANBase Adresse Nationale

Sortie structurée

Les 16 outils déclarent le schéma de leur résultat (outputSchema, spécification MCP 2025-06-18). Chaque appel renvoie donc la même charge utile deux fois : structuredContent, l'objet validé par le SDK avant envoi, et le bloc texte JSON historique, conservé pour les clients antérieurs à cette révision. Un client peut typer le résultat, le rendre sans le reparser, et faire confiance à la forme annoncée — estimate_property promet estimate.per_m2.estimate, estimate.confidence, estimate.top_comps[], et le serveur échoue plutôt que de livrer autre chose.

Les schémas sont volontairement ouverts (additionalProperties: true) : un champ ajouté par une source en amont ne peut pas invalider un outil. Ils sont vérifiés à deux niveaux — test/output-schemas.test.ts les confronte à un payload réel capturé (ui/fixtures/property-report-lyon.json), et npm run smoke valide les réponses live contre les mêmes schémas.

Taxe foncière et rendement « net »

property_tax_estimate ne prétend jamais connaître l'avis de taxe foncière d'un bien. Le REI publie des montants agrégés et nombres d'articles imposés par commune : le serveur calcule leur charge moyenne, avec les composantes publiées (part communale, intercommunale, syndicats, GEMAPI, TEOM). L'avis réel dépend de la valeur locative cadastrale, des exonérations, du propriétaire et de l'imposition : demandez-le avant tout achat.

Le rendement après taxe moyenne retire cette seule moyenne au loyer annuel. Il ne déduit ni charges de copropriété, assurance, gestion, vacance, travaux ni impôt sur les revenus : ce n'est pas un rendement net-net.

Méthodologie d'estimation

L'estimation est une médiane pondérée des ventes comparables : même type de bien, surface 40–250 % de la cible, un seul logement par acte, valeurs extrêmes écartées. Les prix anciens sont ramenés au niveau du dernier millésime de marché par commune (coefficient borné 0,7–1,6). Les poids combinent distance, similarité de surface et ancienneté ; les quartiles pondérés donnent la fourchette. Chaque comparable, son ajustement et son poids sont restitués.

Le moteur refuse une estimation sous trois comparables. Il ne connaît ni l'état, ni l'étage, ni la vue, ni les travaux, ni les contraintes juridiques.

Backtesting du moteur

backtest_estimator rejoue le moteur sur les ventes de la commune : chaque vente est estimée en n'utilisant que les ventes enregistrées avant sa propre date (découpe asOf, acte exclu), puis comparée au prix réellement payé. Aucun comparable futur, aucun niveau de marché futur ne peut fuiter.

Il publie la MAPE, l'erreur médiane et le 90ᵉ centile, le biais signé (positif = le modèle surestime) et la couverture de l'intervalle P25–P75 — à lire près de 50 %, pas 95 % : un intervalle P25–P75 bien calibré contient la moitié des ventes réalisées. Le tout est ventilé par bande de surface et par année, avec les dix plus grosses erreurs pour audit. Une exécution de contrôle sur Lyon donne une MAPE d'environ 21 %, un biais de +8 % et une couverture de 52,5 %.

Sources, licences et limites

JeuProducteurUsage dans le serveur
DVF géolocaliséesDGFiP / EtalabVentes 2021 → présent ; aucune source géolocalisée avant 2021 ; pas d'Alsace-Moselle ni Mayotte ; délai de publication
Carte des loyersMinistère du Logement / ANILLoyer d'annonce modélisé, charges comprises ; pas un loyer de référence réglementé
Encadrement des loyersVille de Paris, Métropole de LyonLoyers de référence des zones couvertes uniquement ; « non couvert » est renvoyé explicitement ailleurs
REIDGFiP, exposé par OFGLFiscalité locale agrégée ; moyenne par article, jamais taxe individuelle
DPE logements existants et neufsADEMEDiagnostics dpe03existant et dpe02neuf, chacun étiqueté par registre
Cadastre (PCI)IGN / DGFiPParcelle, idu et contenance ; jamais la propriété ni le droit de construire
Géoportail de l'urbanismeDGALN / IGNZonage et prescriptions opposables ; les communes sans PLU en sont absentes
CONTOURS-IRIS / ADMINEXPRESSIGN (source INSEE)Identité de l'IRIS ; aucune donnée socio-démographique dans cette couche
GéorisquesMinistère de la Transition écologiqueRapport de risques officiel ; si leur API ne répond pas, la réponse porte available: false et le dit explicitement au lieu de renvoyer une liste vide
BAN / geo.api.gouv.frIGN / DINUM / INSEEAdresses et unités administratives

Les jeux publics sont interrogés en direct, sans clé API. Le cache mémoire DVF réduit la latence et les appels répétés, mais est vidé au redémarrage.

Développement

npm install
npm run build
npm test          # tests unitaires, sans réseau
npm run smoke     # vérification live des API publiques

cd ui
npm install
npm run dev       # console avec hot reload : http://localhost:5173
npm run build
npm start         # console compilée + pont MCP : http://localhost:8787
npm run smoke     # test de rendu avec fixtures réelles

Depuis la racine, les mêmes commandes sont accessibles sans changer de dossier (npm run dev délègue à ui/) :

npm --prefix ui install
npm run dev       # console avec hot reload
npm run ui:build  # compile l'interface
npm run ui:start  # console compilée + pont MCP sur un seul port

Licence

MIT. Copyright © 2026 Olivier LAVAUD (voir LICENSE).

Reviews

No reviews yet

Be the first to review this server!