accueil / serveurs / Dev & Code / io.github.OlivierLAVAUD/mcp-immo
io.github.OlivierLAVAUD/mcp-immo
serveur MCP (Model Context Protocol)
Aucun comportement malveillant détecté au test comportemental.
Est-ce que io.github.OlivierLAVAUD/mcp-immo est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.OlivierLAVAUD/mcp-immo » est classé « Vérifié ». Aucun comportement malveillant détecté au test comportemental. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Versions auditées & empreintes
Vérifiez la version que vous utilisez : son empreinte doit correspondre à celle listée ici — sinon vous n'utilisez pas la version auditée.
Vous utilisez ce serveur ? Suivez-le (créez un compte) pour être alerté dès qu'une nouvelle version paraît ou que le verdict change.
Les 21 outils
- geocode_address≈ 146 tokens
Resolve a French address, street, or city to normalized candidates with coordinates, INSEE city code and BAN id (Base Adresse Nationale). Use this first if an address is ambiguous.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnel
Max candidates (default 5)query· string · requis
Free-form address, e.g. '10 rue de la Paix Paris'
Exemple d'appel{"name": "geocode_address", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - property_sales≈ 273 tokens
List actual notarized property sales (price, date, surface, rooms) recorded by the French tax administration (DVF) around an address, or for a whole commune if only a city is given. Data 2021-2025, no API key.
Paramètres, retour & exemple (7)
Paramètreslimit· integer · optionnel
Max sales returned (default 30)years· array · optionnel
DVF years to include (2021-2025). Defaults to all.address· string · requis
Address, street or city in Franceradius_m· number · optionnel
Search radius in meters around the address (default 300; ignored for city-wide queries)type_local· string · optionnel · Appartement | Maison
Filter by dwelling typemax_surface_m2· number · optionnelmin_surface_m2· number · optionnel
Exemple d'appel{"name": "property_sales", "arguments": {"address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - price_per_m2≈ 215 tokens
Compute price-per-m² statistics (median, mean, quartiles, per-year evolution) from actual notarized sales around a French address or across a commune. Data 2021-2025.
Paramètres, retour & exemple (4)
Paramètresyears· array · optionnel
DVF years to include (2021-2025). Defaults to all.address· string · requis
Address, street or city in Franceradius_m· number · optionnel
Search radius in meters around the address (default 500; ignored for city-wide queries)type_local· string · optionnel · Appartement | Maison
Filter by dwelling type
Exemple d'appel{"name": "price_per_m2", "arguments": {"address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - estimate_property≈ 233 tokens
Transparent comparables-based valuation of a flat or house at a precise French address: weighted median of nearby single-dwelling notarized sales, adjusted to current market level, with every comp and weight returned for audit. Also returns the official rent indicator and gross rental yield.
Paramètres, retour & exemple (4)
Paramètresrooms· integer · optionnel
Main rooms (pièces principales) — refines the rent indicatoraddress· string · requis
Precise address (street + number preferred)surface_m2· number · requis
Living surface in m²type_local· string · requis · Appartement | Maison
Exemple d'appel{"name": "estimate_property", "arguments": {"address": "texte", "surface_m2": 1, "type_local": "Appartement"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - rent_estimate≈ 147 tokens
Official modelled asking rents (€/m²/month, charges included) for any French commune: apartments overall, 1-2 rooms, 3+ rooms, and houses. Source: Carte des loyers, Ministère du Logement / ANIL.
Paramètres, retour & exemple (2)
Paramètreslocation· string · requis
Address, commune name or INSEE codesurface_m2· number · optionnel
If given, also returns the estimated monthly rent
Exemple d'appel{"name": "rent_estimate", "arguments": {"location": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - property_tax_estimate≈ 176 tokens
Returns the annual average charge per taxable REI article for taxe foncière on built properties, including published communal, intercommunal, syndicate, GEMAPI and TEOM components. It is an aggregate proxy, not an individual property's tax bill. Source: DGFiP REI via OFGL.
Paramètres, retour & exemple (2)
Paramètresyear· integer · optionnel
REI tax year; defaults to the latest available yearlocation· string · requis
Address, commune name or INSEE code
Exemple d'appel{"name": "property_tax_estimate", "arguments": {"location": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - property_report≈ 384 tokens
One call, full dossier for a French address: price-per-m² market stats, recent notarized sales, energy diagnostics (DPE), natural & technological risks, commune profile, official rent indicators and an aggregate taxe foncière proxy — plus a comparables-based valuation, gross yield and yield after average property tax when type_local and surface_m2 are provided. Ideal first call when a user asks about a specific property. Pass `addresses` (2 to 5) instead of `address` to dossier several neighbourhoods in one call; each report is isolated, so one bad address returns its own error without sinking the batch.
Paramètres, retour & exemple (6)
Paramètresrooms· integer · optionnelformat· string · optionnel · json | markdown
Answer shape: 'json' (default, structured dossier) or 'markdown' (same dossier rendered as shareable Markdown)address· string · optionnel
Address in France (mutually exclusive with `addresses`)addresses· array · optionnel
2 to 5 addresses to dossier in one call, for comparing neighbourhoods (mutually exclusive with `address`)surface_m2· number · optionneltype_local· string · optionnel · Appartement | Maison
Filter by dwelling type
Exemple d'appel{"name": "property_report", "arguments": {"rooms": 1, "format": "json", "address": "texte", "addresses": [], "surface_m2": 1, "type_local": "Appartement"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - dpe_lookup≈ 249 tokens
Find official energy performance certificates (DPE: energy label A-G, GES label, surface, construction year) filed for a French address, with the legal rental status at each label (décret n° 2024-501) and an estimated annual energy cost. Source: ADEME open data.
Paramètres, retour & exemple (4)
Paramètreslimit· integer · optionnel
Max diagnostics returned (default 10)address· string · requis
Address in Francedataset· string · optionnel · all | existant | neuf
DPE register: existing dwellings (dpe03existant), new dwellings (dpe02neuf), or both (default all)energy_price_eur_kwh· number · optionnel
Tariff assumption for the energy-cost estimate in €/kWh (default 0.2562)
Exemple d'appel{"name": "dpe_lookup", "arguments": {"address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - natural_risks≈ 126 tokens
Official risk report for a French address or point: flood, clay shrink-swell, radon, earthquake, industrial sites... Source: Géorisques (Ministère de la Transition écologique).
Paramètres, retour & exemple (3)
Paramètreslat· number · optionnellon· number · optionneladdress· string · optionnel
Address in France (alternative to lat/lon)
Exemple d'appel{"name": "natural_risks", "arguments": {"lat": 1, "lon": 1, "address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - commune_info≈ 106 tokens
Population, postcodes, département, région, surface and center coordinates of a French commune, by name or INSEE code.
Paramètres, retour & exemple (1)
Paramètresquery· string · requis
Commune name or 5-char INSEE code (e.g. 'Lyon' or '69123')
Exemple d'appel{"name": "commune_info", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - reverse_geocode≈ 79 tokens
Find the nearest French address for GPS coordinates.
Paramètres, retour & exemple (2)
Paramètreslat· number · requislon· number · requis
Exemple d'appel{"name": "reverse_geocode", "arguments": {"lat": 1, "lon": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - backtest_estimator≈ 306 tokens
Replay the comparable-sales estimator on the commune's own notarized sales: every historical sale is valued using only the sales recorded before it (no look-ahead, own deed excluded), then compared with the price actually paid. Returns MAPE, median and 90th-percentile absolute error, signed bias, P25–P75 range coverage and the same metrics by surface band and by year. Use it to say how reliable estimate_property is in this specific market.
Paramètres, retour & exemple (5)
Paramètresaddress· string · requis
Precise address (street or house number) in Franceto_year· integer · optionnel
Last sale year to evaluatefrom_year· integer · optionnel
First sale year to evaluate (default: every year available)max_points· integer · optionnel
Max sales evaluated, most recent first (default 250)type_local· string · requis · Appartement | Maison
Property type to backtest
Exemple d'appel{"name": "backtest_estimator", "arguments": {"address": "texte", "type_local": "Appartement"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - cadastral_parcel≈ 165 tokens
Official cadastral parcel(s) containing an address: unique cadastral id (idu) quoted on deeds, section, number and the official contenance in m². The contenance is the taxed area of the whole parcel, land included — not the dwelling's habitable surface — and the cadastre never records ownership. Source: IGN / DGFiP via API Carto.
Paramètres, retour & exemple (3)
Paramètreslat· number · optionnellon· number · optionneladdress· string · optionnel
Address in France (alternative to lat/lon)
Exemple d'appel{"name": "cadastral_parcel", "arguments": {"lat": 1, "lon": 1, "address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - urbanism_zoning≈ 184 tokens
Urbanism zoning and prescriptions applicable to an address, from the Géoportail de l'urbanisme: zoning area label and type (U urban, AU to be urbanised, A agricultural, N natural), the regulation document reference, and the surface / linear / point prescriptions (emplacements réservés, protected areas, alignments…). It states which rules apply, never whether a project is permitted. Source: GPU, DGALN / IGN.
Paramètres, retour & exemple (3)
Paramètreslat· number · optionnellon· number · optionneladdress· string · optionnel
Address in France (alternative to lat/lon)
Exemple d'appel{"name": "urbanism_zoning", "arguments": {"lat": 1, "lon": 1, "address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - iris_lookup≈ 150 tokens
Identify the IRIS — INSEE's infra-communal statistical unit, about 2 000 inhabitants — containing an address: 9-character IRIS code, name, type and commune. Join that code to INSEE's IRIS tables for population and Filosofi income. Boundaries from IGN ADMINEXPRESS; this layer carries identity only, no socio-demographic figures.
Paramètres, retour & exemple (1)
Paramètresaddress· string · requis
Address in France
Exemple d'appel{"name": "iris_lookup", "arguments": {"address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - nearby_amenities≈ 332 tokens
Nearby points of interest around a French address or point, from OpenStreetMap: public transport (train, metro, tram, bus stop), schools and higher education, everyday shops, health (pharmacy, doctor, hospital) and green/sport space — each with how many are within the radius and the closest ones, in metres as the crow flies. The transports category also breaks its count down by mode (train, metro, tram, bus), so a tram stop is answered in its own right rather than drowned in a single transport figure. Answers the neighbourhood question no official French dataset covers directly. When Overpass is unreachable, every count is UNKNOWN (null) rather than zero. Source: OpenStreetMap contributors (ODbL), via the Overpass API.
Paramètres, retour & exemple (5)
Paramètreslat· number · optionnellon· number · optionnellimit· integer · optionnel
How many closest POIs to list per category (default 3)address· string · optionnel
Address in France (alternative to lat/lon)radius_m· number · optionnel
Search radius in meters around the point (default 1000)
Exemple d'appel{"name": "nearby_amenities", "arguments": {"lat": 1, "lon": 1, "limit": 1, "address": "texte", "radius_m": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - rent_control≈ 251 tokens
Loyer de référence, loyer de référence majoré (the legal ceiling) and minoré, in €/m²/month, for a rent-controlled area — by number of rooms, construction period and furnished status. Covers only the areas whose authority publishes an open grid (Paris, Métropole de Lyon, Montpellier); the response states explicitly when an address is not covered instead of guessing. Sources: Ville de Paris, Métropole de Lyon, Montpellier Méditerranée Métropole.
Paramètres, retour & exemple (4)
Paramètresrooms· integer · optionnel
Number of rooms (pièces)period· string · optionnel
Construction period label, e.g. '1946-1970'address· string · requis
Address in Francefurnished· boolean · optionnel
Furnished (true) or unfurnished (false)
Exemple d'appel{"name": "rent_control", "arguments": {"address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - compare_properties≈ 356 tokens
Side-by-side comparison of 2 to 5 French addresses in one call: current market level (€/m²), comparables valuation with confidence, asking rents, DPE with legal rental status (décret n° 2024-501) and estimated energy cost, plus row-index rankings (cheapest market, best yield). Each section degrades independently, like property_report. Source: DVF, Carte des loyers, ADEME — official open data.
Paramètres, retour & exemple (2)
Paramètrestargets· array · requis
2 to 5 addresses to compare, in your orderradius_m· number · optionnel
Search radius in meters around the address (default 500; ignored for city-wide queries)
Exemple d'appel{"name": "compare_properties", "arguments": {"targets": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - acquisition_costs≈ 444 tokens
Simulate the costs of buying a French dwelling and its rental yield: droits de mutation (official 2026 scale, about 6.42 % for communes over 5 000 inhabitants), notary fees and publication, commune-average taxe foncière (REI), modelled asking rent (Carte des loyers), and gross / net yields. The price defaults to a comparables-based estimate (estimate_property) but can be replaced by an agreed or asking price. All figures are indicative — the taxe foncière is a commune average, never an individual tax notice, and rents are modelled asking rents, not regulated reference rents. Source: DVF, Carte des loyers, REI.
Paramètres, retour & exemple (7)
Paramètresrooms· integer · optionnel
Main rooms (pièces)address· string · requis
Address in Franceprice_eur· number · optionnel
Known price in € (negotiated or asking). Absent: use the comparables-based estimate.price_from· string · optionnel · estimate | agreed | asking
What price_eur means when provided; 'estimate' (default) lets the tool value the dwelling itselfsurface_m2· number · requis
Living surface in m²type_local· string · requis · Appartement | Maison
Dwelling typenotary_model· string · optionnel · standard | hands_off | aggressive
Notary fee assumption: standard (typical card), hands_off (about +250 €), aggressive (bare minimum, 750 €)
Exemple d'appel{"name": "acquisition_costs", "arguments": {"address": "texte", "surface_m2": 1, "type_local": "Appartement"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - search_by_budget≈ 353 tokens
The inverse of the estimator: 'with 300 k€, where can I buy?' For each commune of a département it computes the median €/m² from actual notarized sales (DVF, last 4 published years), divides the budget by it to get the surface the budget buys, and layers the modelled asking rent for the gross yield. Returns the qualifying communes ranked by surface, yield and price, plus the communes skipped for lack of data. The budget is the purchase price only — acquisition fees come on top (see acquisition_costs). Source: DVF, Carte des loyers, geo.api.gouv.fr.
Paramètres, retour & exemple (5)
Paramètreszone· string · requis
Commune name, INSEE code, address, or département code (e.g. '69', '13')budget_eur· number · requis
Purchase budget in €, fees excludedtype_local· string · optionnel · Appartement | Maison
Dwelling type; absent: all single-dwelling salesmax_communes· integer · optionnel
Communes to scan, most populous first (default 15, max 40)min_surface_m2· number · optionnel
Minimum surface the budget must buy (default 30)
Exemple d'appel{"name": "search_by_budget", "arguments": {"zone": "texte", "budget_eur": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - risk_summary≈ 179 tokens
Consumer-grade risk digest for a French address or point: one plain-language sentence each for flood, clay shrink-swell, radon, industrial sites (ICPE) and the DPE rental-ban schedule, plus a one-line headline and any other present risk named. Reuses Géorisques and ADEME. When Géorisques is unreachable every risk line reads UNKNOWN — never a clean bill of health. Source: Géorisques, ADEME.
Paramètres, retour & exemple (3)
Paramètreslat· number · optionnellon· number · optionneladdress· string · optionnel
Address in France (alternative to lat/lon)
Exemple d'appel{"name": "risk_summary", "arguments": {"lat": 1, "lon": 1, "address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
Badge pour votre README
Ce serveur a passé le pentest comportemental. Le badge porte son nom et renvoie à cette fiche — la preuve, c'est la fiche (verdict live qu'on contrôle), pas l'image.
[](https://dokore.fr/serveur/io.github.olivierlavaud--mcp-immo)
<a href="https://dokore.fr/serveur/io.github.olivierlavaud--mcp-immo"><img src="https://dokore.fr/badge/io.github.olivierlavaud--mcp-immo.svg" alt="Vérifié par MCP Hub" height="20"></a>
Réévalué en continu : si le comportement change, le verdict tombe et le badge disparaît. Un badge qui ne pointe pas vers une fiche dokore.fr ne prouve rien. Comment ça marche
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».
Source
mcp-immo-olv@1.12.0