La couche d'intelligence qui rend la donnée publique française exploitable par vos agents IA — serveur MCP à réponses sourcées (communes, géocodage, risques, DPE).
Four tools with complete descriptions and basic schemas. Tool names lack action verbs (resolve_commune, geocode_address, risques_immobilier, dpe_logement are noun-heavy or French-specific). All tools have parameter descriptions and type definitions. Output is unstructured text rather than structured JSON, forcing LLM parsing. Error handling returns plain text messages but lacks recovery guidance or categorization. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all being read-only operations. Descriptions are adequate (100-200 chars) but could be more concise for LLM optimization.
Diagnostics de Performance Énergétique (DPE) de logements existants (ADEME). Renvoie étiquette énergie (A→G), étiquette GES, surface, consommation et date du diagnostic. Filtre par code postal, affinable par une adresse.
Géocode une adresse française via la Base Adresse Nationale (BAN). Renvoie l'adresse normalisée, les coordonnées, le code postal, la commune et le code INSEE — utile pour cibler ensuite risques/DPE à l'adresse exacte.
Résout une commune française par son nom. Renvoie code INSEE, département, région, coordonnées et population. À utiliser en PREMIER, comme ancre géographique, avant les autres outils (le code INSEE sert ensuite à interroger les risques, par exemple).
Risques naturels & technologiques d'une commune (Géorisques / Gaspar). Couvre inondation, retrait-gonflement des argiles, séisme, radon, mouvements de terrain, sites industriels (ICPE)… À consulter AVANT un achat immobilier. Accepte un code INSEE (5 chiffres) OU une adresse libre — dans ce dernier cas l'adresse est géocodée automatiquement pour retrouver la commune.
Tool names lack action verbs. 'resolve_commune', 'geocode_address', 'risques_immobilier', 'dpe_logement' are noun-heavy or domain-specific. LLMs infer intent from verb-first names (get_, search_, list_). Rename to 'search_commune', 'geocode_address' (acceptable), 'get_property_risks', 'search_energy_ratings'.
Output is unstructured plain text (e.g., 'Communes trouvées (la plus peuplée en tête) :\n- {nom}, INSEE {code}...'). LLMs must parse text to extract structured fields (code, department, region, coordinates). Return JSON objects with typed fields: {communes: [{name, insee_code, department, region, coordinates, population}]}.
No tool annotations despite all tools being read-only. Add readOnlyHint: true to all four tools. This signals to agents that these calls are safe to retry and have no side effects, enabling better planning and error recovery.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Error messages lack recovery guidance. 'Erreur : HTTP 404 (source : ...)' tells LLM nothing about next steps. Replace with: 'Commune not found. Try a partial name (e.g., "Lyon" instead of "Lyons") or check spelling. Available: search_commune with different spelling.'
Parameter 'adresse_ou_code_insee' in risques_immobilier is overloaded (accepts two different types: 5-digit INSEE code OR free-form address). Split into two parameters (code_insee: optional, adresse: optional) with clear mutual-exclusivity documentation, or provide separate tools. Current design forces LLM to guess which format to use.