Pillr
Server Details
Free, no-auth connector on French real estate public data: price per square meter by municipality (DVF), market summaries (rent, yield, price trend, ABC zoning), and urbanism/permit requirements for renovation projects.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 3 tools
Demarche_urbanisme_projet is clearly distinct (regulatory formalities), but marche_commune and prix_m2_commune overlap heavily since both return commune-level price per m². The descriptions do differentiate (broad market synthesis vs. a single reference value with provenance), which keeps confusion moderate rather than severe.
All three names use consistent snake_case noun phrases targeting a domain+scope. The only minor deviation is length/structure, with demarche_urbanisme_projet being a triple-noun compound while the other two are shorter, but the pattern remains predictable.
Three tools is on the thin side for a server whose descriptions imply a broader data surface (PLU, servitudes, Pillr score, full analysis). Each tool is a rich composite that earns its place, but the set feels minimal for the apparent scope.
The surface covers urbanism formalities, a commune market synthesis, and a reference price, which are coherent read-only operations. However, several adjacent capabilities are explicitly declared missing (PLU/servitudes reading, property-level estimation, Pillr score), leaving notable gaps for an agent reasoning about French property decisions.
Available Tools
3 toolsdemarche_urbanisme_projetFormalité d'urbanisme d'un projetARead-onlyIdempotentInspect
Quelle formalité d'urbanisme pour un projet de travaux (aucune, déclaration préalable, permis de construire, d'aménager ou de démolir), quel formulaire Cerfa, un architecte est-il obligatoire, quelles pièces, quel délai d'instruction. Chaque conclusion porte sa règle et sa source, et la base de règles porte sa date. Un fait manquant revient en question, jamais en supposition. Sans adresse : ce connecteur ne lit ni le PLU ni les servitudes, les protections du terrain sont à déclarer en paramètres. Information générale, ni conseil juridique ni décision de la mairie.
| Name | Required | Description | Default |
|---|---|---|---|
| spr | No | Le terrain est-il en site patrimonial remarquable ? | |
| bassin_m2 | No | Surface du bassin d'une piscine, en m². | |
| demandeur | No | Qui dépose la demande (compte pour l'obligation d'architecte). | |
| hauteur_m | No | Hauteur du projet, en mètres (hauteur du mur pour un mur). | |
| changement | No | Pour un changement de destination : porte-t-il sur la destination ou sur une sous-destination ? | |
| erp_ou_igh | No | S'agit-il d'un établissement recevant du public ou d'un immeuble de grande hauteur ? | |
| pac_visible | No | L'unité extérieure de la pompe à chaleur est-elle visible depuis l'espace public ? | |
| site_classe | No | Le terrain est-il en site classé ? | |
| site_inscrit | No | Le terrain est-il en site inscrit ? | |
| type_travaux | Yes | Nature du projet. Obligatoire. | |
| zone_urbaine | No | Le terrain est-il en zone urbaine du PLU, si connu ? | |
| modifie_volume | No | Les travaux modifient-ils le volume du bâtiment ? | |
| inclut_demolition | No | Le projet inclut-il une démolition ? | |
| reserve_naturelle | No | Le terrain est-il en réserve naturelle ? | |
| document_urbanisme | No | Document d'urbanisme de la commune, si connu. | |
| piscine_demontable | No | La piscine est-elle démontable ? | |
| coeur_parc_national | No | Le terrain est-il en cœur de parc national ? | |
| element_protege_plu | No | Le bâtiment est-il protégé par le PLU (art. L151-19 ou L151-23) ? | |
| equipements_communs | No | La division crée-t-elle des voies, espaces ou équipements communs ? | |
| maison_individuelle | No | S'agit-il d'une maison individuelle ? | |
| monument_historique | No | Les travaux portent-ils sur un monument historique ? | |
| hauteur_couverture_m | No | Hauteur de la couverture d'une piscine, en mètres (0 si non couverte). | |
| visible_espace_public | No | Le projet est-il visible depuis l'espace public ? | |
| duree_installation_mois | No | Mois par an d'installation d'une piscine démontable. | |
| emprise_au_sol_creee_m2 | No | Emprise au sol créée par le projet, en m². | |
| duree_installation_jours | No | Jours par an d'installation d'une piscine démontable en espace protégé. | |
| modifie_aspect_exterieur | No | Les travaux modifient-ils l'aspect extérieur ? | |
| reparation_a_l_identique | No | S'agit-il d'une réparation à l'identique (mêmes matériaux, mêmes couleurs) ? | |
| surface_plancher_creee_m2 | No | Surface de plancher créée, en m² (0 pour un carport ouvert). | |
| abords_monument_historique | No | Le terrain est-il dans les abords d'un monument historique ? | |
| ravalement_change_couleurs | No | Le ravalement change-t-il les couleurs de la façade ? | |
| emprise_au_sol_existante_m2 | No | Emprise au sol du bâtiment existant, en m². | |
| travaux_structure_ou_facade | No | Des travaux touchent-ils les structures porteuses ou la façade ? | |
| surface_plancher_existante_m2 | No | Surface de plancher du bâtiment existant, en m². |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/destructive annotations, the description adds valuable behavioral detail: missing facts come back as questions, never as assumptions; each conclusion carries its rule, source, and rule-base date; and the connector deliberately does not read PLU or servitudes without an address. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four compact sentences, front-loaded with the core output and followed by behavioral rules and limitations. Every sentence earns its place; there is no repetition of schema or annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 34-parameter schema with 100% individual descriptions and no output schema, the description still provides what the agent needs: output semantics (rule, source, date), handling of missing data, and the key invocation limitation (no address means no automatic PLU/servitude reading). This is sufficient for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds cross-cutting meaning by explaining why many protection-related parameters exist ('les protections du terrain sont à déclarer en paramètres') and by clarifying that missing facts will be asked as follow-up questions, which helps an agent decide which optional parameters matter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the exact question the tool answers—which urban-planning formality applies to a works project—and enumerates concrete outputs: formality type, Cerfa form, architect obligation, required documents, and review delay. It is clearly distinct from the sibling tools, which concern market prices and commune-level data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states important scope constraints: without an address, it does not read PLU or servitudes, and it provides general information, not legal advice or an official town-hall decision. It does not explicitly name alternative tools, but the siblings are in a different domain and the intended use is evident from the first sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marche_communeSynthèse de marché d'une communeARead-onlyIdempotentInspect
Synthèse publique du marché d'une commune : prix au m² appartement et maison, loyer médian au m² (DHUP), loyer par type de logement du T1 à la maison (Carte des loyers, à une surface d'exemple, avec sa fourchette à 95 %, les mêmes montants que la page /loyer de Pillr), rendement brut théorique (la maison sur le loyer des maisons), évolution des prix sur 1 et 3 ans, zone ABC de tension locative, et le marché en vente du dernier mois calculé, agrégé par commune à partir des annonces de vente collectées par Pillr (annonces en ligne en fin de mois, nouvelles annonces, prix affiché médian au m², part des annonces baissées, délai médian en ligne des annonces retirées, variation sur un mois ; un mois de mise à jour de la collecte ne rend que les nouvelles annonces et le prix affiché, et le dit), avec ses limites et sa date de calcul, non servi au-delà de 45 jours. Aucune annonce individuelle n'est rendue. C'est un aperçu : le score Pillr sur 100, ses sous-scores et l'analyse complète ne sont pas servis par ce connecteur, ils sont sur pillr.fr.
| Name | Required | Description | Default |
|---|---|---|---|
| commune | Yes | Nom de la commune (« Bordeaux », « Saint-Étienne ») ou code INSEE à 5 chiffres. Un arrondissement de Paris, Lyon ou Marseille s'écrit « Paris 11e », « Lyon 7e », « Marseille 8e » (ou « Lyon 7 », « Lyon 7ème », « 7e arrondissement de Lyon ») ; le nom seul (« Lyon ») rend l'agrégat de ses arrondissements. Un code postal est accepté en dernier recours : cinq chiffres désignent d'abord le code INSEE qui les porte. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, yet the description adds substantial behavior the annotations cannot carry: no individual listings are ever returned, the data has a calculation date and is not served beyond 45 days, and a collection-update month returns only new listings plus displayed price (and says so). It also discloses aggregation provenance (Pillr-collected sale listings, end-of-month).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the opening clause, which is good. But the remainder is a single sprawling sentence larded with nested parentheses and semicolon clauses, making it hard to parse and scan. Information density is high with little pure filler, yet structure and readability suffer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of explaining return content — and it does so exhaustively: every metric returned, the source and aggregation method, the calculation date, the staleness cutoff, the partial-month caveat, and what is explicitly excluded. An agent needs nothing further to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, and that schema text is already very rich (commune name, code INSEE, arrondissement formats, postal-code fallback). The description body adds no parameter-level detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely and enumerates the concrete payload (prix au m² appartement/maison, loyer médian DHUP, loyer par type T1→maison avec fourchette 95%, rendement brut, évolution 1/3 ans, zone ABC, marché vente du dernier mois). An agent knows exactly what comes back. It does not, however, name or differentiate itself from the sibling prix_m2_commune, which is the closest alternative, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: it is framed as an 'aperçu' and explicitly states that the Pillr score, sub-scores and full analysis are not served here but live on pillr.fr. That is a scope boundary rather than a routing rule. There is no explicit when-to-use-this-vs-prix_m2_commune guidance, though the 45-day staleness note is a usable operational constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prix_m2_communePrix au m² d'une communeARead-onlyIdempotentInspect
Prix de référence au mètre carré d'une commune française, appartement et maison, tel que Pillr le publie : valeur, provenance (mesurée sur les ventes DVF ou estimée ; pour Paris, Lyon et Marseille, le compte des arrondissements mesurés et estimés), millésime et date de reconstruction. Un prix absent est dit absent, jamais deviné. C'est un repère de marché communal, pas l'estimation d'un bien précis.
| Name | Required | Description | Default |
|---|---|---|---|
| commune | Yes | Nom de la commune (« Bordeaux », « Saint-Étienne ») ou code INSEE à 5 chiffres. Un arrondissement de Paris, Lyon ou Marseille s'écrit « Paris 11e », « Lyon 7e », « Marseille 8e » (ou « Lyon 7 », « Lyon 7ème », « 7e arrondissement de Lyon ») ; le nom seul (« Lyon ») rend l'agrégat de ses arrondissements. Un code postal est accepté en dernier recours : cinq chiffres désignent d'abord le code INSEE qui les porte. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds substantial non-obvious behavior: provenance is either measured from DVF sales or estimated, Paris/Lyon/Marseille returns counts of measured and estimated arrondissements, and missing prices are reported as absent and never guessed. This enriches the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but front-loaded, opening with the core purpose before diving into details. Each sentence earns its place: the first enumerates return fields and provenance nuances, the second clarifies the absent-price behavior, and the third scopes the tool. Minor redundancy in 'absent is said absent, never guessed' does not significantly hurt clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description enumerates the returned elements (value, provenance, millésime, reconstruction date) and the aggregation behavior for Paris, Lyon, and Marseille. It also describes the edge case for missing prices and the non-goal of property-specific valuation. With rich annotations and a fully documented single parameter, nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'commune' is fully documented in the schema with 100% coverage, including name formats, INSEE codes, arrondissement variants, and postal-code fallback. The description adds no additional parameter meaning beyond the schema, so the baseline of 3 applies. The description's mention of arrondissement counting pertains to return data rather than input semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description precisely states the resource: reference price per square meter for a French commune, covering apartment and house, as published by Pillr. It enumerates the returned data (value, provenance, vintage, reconstruction date) and explicitly distinguishes itself from a specific-property appraisal, which also differentiates it from the sibling tools. This is a clear, self-contained statement of what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the intended use context: a communal market benchmark, not an estimate for a specific property, which is an implicit exclusion. It does not name alternatives or give explicit when/when-not rules, but the stated scope makes the boundary clear. The sibling tools (demarche_urbanisme_projet, marche_commune) are sufficiently different that no routing ambiguity remains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
marche_commune1 field changed- changed
Input schema / properties / commune / descriptionPrevious value: -"Nom de la commune (« Bordeaux », « Lyon 7e », « Saint-Étienne ») ou code INSEE à 5 chiffres. Un code postal est accepté en dernier recours."New value: +"Nom de la commune (« Bordeaux », « Saint-Étienne ») ou code INSEE à 5 chiffres. Un arrondissement de Paris, Lyon ou Marseille s'écrit « Paris 11e », « Lyon 7e », « Marseille 8e » (ou « Lyon 7 », « Lyon 7ème », « 7e arrondissement de Lyon ») ; le nom seul (« Lyon ») rend l'agrégat de ses arrondissements. Un code postal est accepté en dernier recours : cinq chiffres désignent d'abord le code INSEE qui les porte."
- Changed
prix_m2_commune1 field changed- changed
Input schema / properties / commune / descriptionPrevious value: -"Nom de la commune (« Bordeaux », « Lyon 7e », « Saint-Étienne ») ou code INSEE à 5 chiffres. Un code postal est accepté en dernier recours."New value: +"Nom de la commune (« Bordeaux », « Saint-Étienne ») ou code INSEE à 5 chiffres. Un arrondissement de Paris, Lyon ou Marseille s'écrit « Paris 11e », « Lyon 7e », « Marseille 8e » (ou « Lyon 7 », « Lyon 7ème », « 7e arrondissement de Lyon ») ; le nom seul (« Lyon ») rend l'agrégat de ses arrondissements. Un code postal est accepté en dernier recours : cinq chiffres désignent d'abord le code INSEE qui les porte."
3 tool updates
- First observed
demarche_urbanisme_projet - First observed
marche_commune - First observed
prix_m2_commune
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1624 npm1MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs117 npmMIT
- AlicenseAqualityCmaintenanceRevnuvo Company Intelligence tells AI agents what changed at a company, with evidence. It observes company websites, technologies, and DNS over time and returns timestamped, confidence-aware changes, signals, and monitoring.9MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.