Note · IA
Donner à un agent l'accès au foncier public français
La réponse courte : les assistants IA comme Claude ou ChatGPT savent rédiger et raisonner, mais ils ne consultent pas d'eux-mêmes les registres officiels. Interrogés sur un terrain précis, ils répondent souvent de mémoire, et se trompent avec assurance. foncier-mcp leur ouvre un accès direct aux données publiques du foncier français.
Concrètement, vous demandez à votre assistant : « Ce terrain est-il constructible, à quel prix se sont vendus les biens voisins, est-il exposé aux inondations ? » Il va chercher la réponse dans le cadastre, les ventes enregistrées par l'administration fiscale, le plan local d'urbanisme, les diagnostics énergétiques et la base des risques de l'État. Chaque chiffre revient avec sa source et la date à laquelle il a été lu. Quand une donnée manque, l'assistant le dit au lieu d'inventer.
MCP, c'est quoi ? Le Model Context Protocol est une norme ouverte qui joue, pour les assistants IA, le rôle d'une prise standard : un service écrit une fois selon cette norme se branche sur Claude, Codex et les autres outils compatibles, sans adaptation. foncier-mcp est un tel service.
À qui ça sert ? À quiconque veut qu'un assistant l'aide à étudier un terrain ou un logement en France sans passer une heure sur six sites publics : un acheteur qui compare, un professionnel qui prépare un dossier, un développeur qui construit son propre agent. Le service est gratuit et en ligne depuis le 12 octobre 2026. Il éclaire une décision ; il ne remplace ni le notaire ni le certificat d'urbanisme.
La suite est plus technique : comment le serveur est construit, comment sa fiabilité a été mesurée sur 40 parcelles, ce qu'il coûte et ce qui reste fragile.
Mon rôle, du besoin au déploiement
J’ai défini le besoin à partir des recherches faites pour mes projets immobiliers, conçu l’architecture, développé avec assistance IA, testé et déployé le service. Je suis responsable des choix et des corrections ; le code, les cas d’évaluation et leurs résultats sont publics.
Le problème
Un agent qui conseille sur un terrain ou un logement en France doit d'abord répondre à cinq questions : quelle parcelle, à quel prix se sont vendus les biens voisins, dans quelle zone du plan local d'urbanisme, avec quel diagnostic énergétique, sous quels risques. Les réponses sont publiques et gratuites, mais dispersées entre six services de l'État, et un modèle de langage livré à lui-même les invente avec aplomb.
Ce qui existait avant
Chaque source a son site : cadastre, demandes de valeurs foncières (DVF), Géoportail de l'urbanisme, observatoire DPE de l'ADEME, Géorisques. Un humain enchaîne cinq sites et recopie. Les API existent, sans socle commun : des champs renommés d'un service à l'autre, une API injoignable le jour de la lecture. Aucun serveur MCP public ne les réunissait avec une règle claire sur ce que l'agent a le droit d'affirmer.
Ce qui a été construit
Un serveur en Python : sept outils typés, en lecture seule, servis en local ou en HTTP avec une clé d'accès.
geocode_address --------> géocodeur Géoplateforme (IGN)
find_parcel ------------> API Carto cadastre (IGN)
get_parcel_sales -------> fichiers geo-dvf (data.gouv.fr)
get_zoning -------------> API Carto GPU (Géoportail de l'urbanisme)
get_energy_diagnostics -> ADEME, DPE existant et neuf
get_risks --------------> Géorisques
summarize_parcel -------> compose les six, chaque section indépendante Trois choix. Chaque valeur porte sa source et sa date de lecture ; une valeur
absente est un null accompagné de sa raison, jamais une estimation. Les
erreurs sont typées : entrée invalide, hors couverture, source indisponible, quota
dépassé. Ce projet personnel est mis à disposition gratuitement, avec une clé par
courriel et 200 appels par jour, sans activité commerciale.
Trois refus. Pas de prix au mètre carré interpolé : l'outil rend les ventes enregistrées. Pas de lien vers un règlement de zone tant que l'API le renvoie vide : le nom du fichier est donné, le lien reste vide et le dit. Pas de DPE sans numéro de voie : l'outil dit qu'il ne sait pas.
Comment j’ai évalué le service
Ces tests sont réalisés par moi, sur des données officielles et des références explicitées ci-dessous. Ils sont reproductibles, mais ne constituent pas une certification indépendante ni une garantie sur toutes les adresses.
Un jeu de 40 parcelles publiques dans 12 départements, urbaines, périurbaines et rurales : 24 avec au moins une vente, 14 sans vente, dont 6 dans des communes sans plan local d'urbanisme, 2 dans un département que DVF ne couvre pas. Aucune n'appartient à l'auteur ni à sa famille.
La vérité attendue vient d'un autre chemin que le serveur : les fichiers cadastraux d'Etalab pour la parcelle, le flux cartographique de la Géoplateforme pour le zonage. Pour les ventes, la vérité lit les mêmes fichiers que le serveur : cette partie mesure la lecture des données, pas un registre indépendant.
Mesures du 11 octobre 2026, en direct contre les API publiques :
| Mesure | Cas | Taux |
|---|---|---|
| Géocodage, bonne commune, moins de 150 m | 34 | 100 % |
| Parcelle trouvée depuis un point | 40 | 100 % |
| Parcelle trouvée depuis une adresse | 34 | 82 % |
| Rappel et précision des ventes | 31 | 100 % |
| Aucune vente rendue sur parcelle sans vente | 14 | 100 % |
| Refus hors de la couverture DVF | 2 | 100 % |
| Libellé de zone exact | 33 | 100 % |
| Commune sans plan annoncée comme telle | 6 | 100 % |
| Synthèse sans invention ni valeur sans source | 40 | 100 % |
Inventions détectées : 0. Temps médian d'une synthèse complète : 2,2 secondes. Les 6 échecs par adresse sont des points d'adresse tombés chez le voisin ou sur une place sans parcelle : le serveur rend ce que dit le point, avec les candidates en avertissement ou une absence motivée, sans deviner. Les 22 cas enregistrés rejouent hors ligne à chaque modification du code, les 40 en direct chaque semaine.
La première passe hebdomadaire, le 12 octobre 2026, a rendu les mêmes taux et aucune invention. Lancée depuis une machine de GitHub, cache vide, la synthèse y prend 4 secondes en médiane.
La première passe en direct a révélé deux défauts que les cas enregistrés, tous hors des grandes villes, cachaient : l'API cadastre code les arrondissements de Paris, Lyon et Marseille autrement que les identifiants de parcelle, et Géorisques ignore ceux de Lyon et de Marseille, d'où une zone sismique vide sans raison. Les taux publiés sont ceux de la passe rejouée après correction.
Limites : 40 cas, un seul jour ; vérité de zonage prise au point représentatif de la parcelle ; DPE et risques contrôlés seulement par l'absence d'invention.
Ce que ça a coûté
Première construction : une journée de développement avec un agent de code, sans achat. J’ai défini le besoin, piloté les choix, testé les résultats et déployé le service. Les sources sont sous Licence Ouverte 2.0.
Fonctionnement : un conteneur serverless chez Scaleway, à Paris, de 256 Mo, une instance au plus et zéro au repos. Prix lus le 11 octobre 2026, hors taxes : 0 € dans la franchise mensuelle ; au-delà, un abus continu sur tout le mois coûterait environ 2,30 €. Pour quelques clés à 200 appels par jour, la franchise suffit.
Ce qui reste faux ou fragile
- Sans disque persistant, le compteur journalier vaut par instance active : une borne, pas un compte exact par clé.
- Les liens vers les règlements d'urbanisme sont vides, l'API les renvoyait vides ; rien ne vérifie qu'ils reviennent.
- Le géocodeur inverse rend l'adresse la plus proche, pas celle de la parcelle : le DPE peut manquer un diagnostic réel.
- Les taux valent pour le 11 octobre 2026. Les API changent sans préavis, la mesure hebdomadaire est la seule protection.
Le code et le service
- Dépôt public, résultats détaillés par cas compris : github.com/1000vario/foncier-mcp.
- Service en ligne :
https://foncier.guillaume-couillard.com/mcp, clé gratuite sur demande, chemin décrit dans le README du dépôt. - Sans client MCP : la démo en ligne, un formulaire où l'on tape une adresse, et trois conversations enregistrées avec Claude.