npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-immo-france

v0.2.0

Published

MCP server for French real-estate intelligence: real sale prices (DVF), transparent comparables-based valuations, official rent indicators & gross yield, energy ratings (DPE), natural risks and commune data for any French address. Zero API keys.

Downloads

205

Readme

mcp-immo-france

CI npm license node

French real-estate intelligence for AI assistants. Give Claude (or any MCP client) a French address and it can pull the actual notarized sale prices around it, produce a transparent comparables-based valuation with confidence bounds, compute the gross rental yield from official rent indicators, check the energy rating (DPE), list natural & technological risks, and profile the commune — all from official French open data, with zero API keys.

🇫🇷 Serveur MCP pour l'immobilier français : ventes réelles (DVF), estimation par comparables auditable, loyers officiels et rendement locatif, DPE, risques naturels — pour n'importe quelle adresse, sans clé API. Section française ↓

Why this exists

Real-estate portals show asking prices and sell black-box estimates. The French state publishes better raw material — every notarized sale (DVF), every energy diagnostic (ADEME), modelled rents for all 35 000 communes (Carte des loyers), and the official risk report for any parcel (Géorisques) — but scattered across five APIs with three different address keys.

mcp-immo-france joins them properly. One call gives an AI assistant a full due-diligence dossier:

You: I'm visiting a 60 m² flat at 12 rue de la République in Lyon, listed at 450 000 €. Worth it? Could I rent it out?

Claude: (calls property_report) Comparable notarized sales value it around 304 000 € (5 064 €/m², 200 weighted comps, high confidence) — the asking price is ~48 % above that. Median for flats within 500 m over the last 12 months: 4 848 €/m². The official rent indicator is 16.6 €/m²/month, so ≈ 1 000 €/month — a 3.9 % gross yield at the estimated value, much less at asking. Filed DPEs in the building are D. Géorisques flags flood and clay-shrinkage exposure. Recent comparable sales: …

Every number above is traceable: the tool returns its comps, weights, adjustments and sources.

What makes it different

  • A real valuation engine, not a wrapper. estimate_property computes a weighted-median comparables estimate (distance decay, surface similarity, recency, year-level market adjustment) and returns every comp with its weight so the figure can be audited. It reports a Kish effective sample size and refuses to answer below 3 comps rather than hallucinate precision.
  • Boundary-aware search. Commune-file-based DVF tools silently lose half the neighborhood when an address sits near a commune border. This server probes 8 compass points and fans out to every commune the radius touches.
  • Paris/Lyon/Marseille handled correctly. City-wide queries aggregate all municipal arrondissements (a naïve implementation returns zero sales for "Paris").
  • Honest statistics by default. €/m² only from single-dwelling deeds, outliers excluded, trailing-12-months view quoted separately from the all-period median, sources named in every response.
  • Zero configuration. No API key, no signup, no scraping — only official open-data endpoints.

Quickstart

Requires Node.js ≥ 18.

Claude Code

claude mcp add immo-france -- npx -y mcp-immo-france

Claude Desktop — add to claude_desktop_config.json:

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

Any other MCP client — run npx -y mcp-immo-france over stdio.

Tools

| Tool | What it does | Source | |---|---|---| | property_report | One call → full dossier: market stats, recent sales, valuation, rent & yield, DPE, risks, commune profile | all of the below | | estimate_property | Transparent comparables valuation with confidence bounds, auditable comps and gross rental yield | DVF + Carte des loyers | | property_sales | Actual notarized sales (price, date, surface, rooms) around an address or across a commune, 2021→today | DVF (DGFiP / Etalab) | | price_per_m2 | Median / quartiles €/m², all-period + trailing-12-months + per-year evolution | DVF (DGFiP / Etalab) | | rent_estimate | Official modelled asking rents (€/m²/month): apartments, 1-2 rooms, 3+ rooms, houses | Carte des loyers (Min. Logement / ANIL) | | dpe_lookup | Energy performance certificates filed for an address (labels A–G, GES, surface, year built) | ADEME | | natural_risks | Official risk report: flood, clay shrink-swell, radon, earthquake, industrial sites… | Géorisques | | commune_info | Population, postcodes, département, région, surface, center of any commune | geo.api.gouv.fr (INSEE) | | geocode_address / reverse_geocode | French address ↔ coordinates + INSEE code + BAN id | Base Adresse Nationale |

Example prompts

  • « Fais-moi le rapport complet sur le 8 rue Oberkampf à Paris, appartement de 45 m². »
  • « Estime un T3 de 65 m² au 25 cours Gambetta à Lyon. Rendement locatif ? »
  • « Prix au m² des maisons à Arcachon : évolution depuis 2021 ? »
  • "Is this address in a flood zone? What DPE ratings were filed there?"

Methodology (and its limits)

Valuation — weighted median over comparable sales: same dwelling type, surface within 40–250 % of the target, single-dwelling deeds only. Comps are re-expressed at the latest market level via commune-wide year medians (clamped ×0.7–1.6), then weighted by exp(-distance/500 m) × exp(-2·|ln(surface ratio)|) × exp(-0.25·age in years). The 25th–75th weighted percentiles give the range; the top 200 comps by weight are kept and the Kish effective sample size is reported.

What the model cannot see: condition, floor, elevator, view, renovation, legal issues. DVF also lags reality by ~6 months and does not cover Alsace-Moselle or Mayotte. Rent indicators are modelled asking rents (charges included), not regulated reference rents. This is public-data analysis, not a professional appraisal, and not financial advice.

| Dataset | Publisher | Notes | |---|---|---| | DVF géolocalisées | DGFiP / Etalab | Notarized sales, 2021→today | | Carte des loyers | Min. Logement / ANIL | Modelled asking rents, 2025 | | DPE logements existants | ADEME | All diagnostics since July 2021 | | Géorisques | Min. Transition écologique | Official risk reports | | Base Adresse Nationale / geo.api.gouv.fr | IGN / DINUM / INSEE | Addresses & administrative units |

Development

npm install
npm run build     # tsc
npm test          # 30+ unit tests, no network
npm run smoke     # end-to-end against the live public APIs
npm run smoke -- "5 avenue Anatole France Paris"

Dependency-light on purpose: the MCP SDK, zod, and the Node standard library. A weekly CI job runs the live smoke suite to catch upstream dataset changes early. PRs welcome — see CONTRIBUTING.md.

Roadmap

  • [ ] Cadastral parcel lookup (surface, geometry)
  • [ ] New-build DPE dataset (dpe02neuf)
  • [ ] Streamable HTTP transport for remote deployment
  • [ ] Per-quarter market trend detection

🇫🇷 En français

Serveur MCP qui branche Claude (ou tout client MCP) sur l'open data officiel de l'immobilier français : ventes notariées (DVF), estimation par comparables dont chaque comparable et chaque poids sont restitués (pas de boîte noire), loyers officiels (Carte des loyers) avec rendement brut, DPE (ADEME), rapport de risques (Géorisques) et données INSEE. Aucune clé API : npx -y mcp-immo-france et c'est en place.

L'outil property_report génère en un appel un dossier complet de due diligence pour n'importe quelle adresse — le genre d'analyse qu'on paie ailleurs, ici open source et auditable.

License

MIT