addrbookFor publishers
← The evidence ledger

Evidence row 258941

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint d0467745-8ac8-4d53-985a-381500bb8df9
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
e8e430ebcaf8e1186400b6b3ec8d9c5257df2d6e3bcda7f81278e1cb0dc3f393
Leaf
0x1b6559a15bea93c24ec490b3fd4b7157ec2af4fab86b1bf6c181d041aaa70f5b

What was observed

{
  "count": 7,
  "tools": [
    {
      "description": "Classe les communes d'UN département selon un critère public : meilleur rendement locatif brut des appartements (rendement_locatif), prix au m² des appartements les plus bas (prix_bas) ou les plus élevés (prix_eleve). Mêmes communes, mêmes seuils et même ordre que les classements publiés sur pillr.fr : communes de 2 000 habitants et plus comptant au moins 10 ventes, prix mesurés sur les ventes DVF pour les classements de prix, 30 communes au plus, avec le nombre total de communes classées. À utiliser pour trouver des communes sans les nommer (« où investir en Gironde », « les communes les moins chères du Nord »). Pour comparer des communes déjà nommées, utiliser comparaison_communes. Paris, les Bouches-du-Rhône et le Rhône ne sont pas classés : leurs arrondissements faussent le classement. Aucun score Pillr.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "critere": {
            "description": "rendement_locatif : rendement brut des appartements, du plus haut au plus bas ; prix_bas : prix au m² des appartements, du moins cher au plus cher ; prix_eleve : l'inverse.",
            "enum": [
              "rendement_locatif",
              "prix_bas",
              "prix_eleve"
            ],
            "type": "string"
          },
          "departement": {
            "description": "Code du département (« 33 », « 2A », « 974 ») ou son nom (« Gironde », « Côtes-d'Armor »).",
            "type": "string"
          }
        },
        "required": [
          "departement",
          "critere"
        ],
        "type": "object"
      },
      "name": "classement_departement"
    },
    {
      "description": "Compare de 2 à 5 communes françaises côte à côte, sur les mêmes indicateurs publics : prix au m² appartement et maison avec leur provenance, loyer médian au m², rendement brut théorique appartement et maison, évolution des prix sur 1 et 3 ans, zone ABC de tension locative, population. À utiliser dès que la question met plusieurs communes en balance (« Rennes ou Nantes pour investir ? »). Pour le détail d'une seule commune, utiliser marche_commune ; pour trouver des communes sans les nommer, classement_departement. Aucun score Pillr.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "communes": {
            "description": "De 2 à 5 communes, chacune écrite comme le paramètre commune des autres outils (nom, « Lyon 7e » ou code INSEE).",
            "items": {
              "description": "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.",
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 2,
            "type": "array"
          }
        },
        "required": [
          "communes"
        ],
        "type": "object"
      },
      "name": "comparaison_communes"
    },
    {
      "description": "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. Aucune donnée de marché : pour les prix et les loyers, les autres outils. Information générale, ni conseil juridique ni décision de la mairie.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "abords_monument_historique": {
            "description": "Le terrain est-il dans les abords d'un monument historique ?",
            "type": "boolean"
          },
          "bassin_m2": {
            "description": "Surface du bassin d'une piscine, en m².",
            "minimum": 0,
            "type": "number"
          },
          "changement": {
            "description": "Pour un changement de destination : porte-t-il sur la destination ou sur une sous-destination ?",
            "enum": [
              "destination",
              "sous_destination"
            ],
            "type": "string"
          },
          "coeur_parc_national": {
            "description": "Le terrain est-il en cœur de parc national ?",
            "type": "boolean"
          },
          "demandeur": {
            "description": "Qui dépose la demande (compte pour l'obligation d'architecte).",
            "enum": [
              "personne_physique",
              "exploitation_agricole",
              "societe"
            ],
            "type": "string"
          },
          "document_urbanisme": {
            "description": "Document d'urbanisme de la commune, si connu.",
            "enum": [
              "plu",
              "carte_communale",
              "rnu"
            ],
            "type": "string"
          },
          "duree_installation_jours": {
            "description": "Jours par an d'installation d'une piscine démontable en espace protégé.",
            "minimum": 0,
            "type": "number"
          },
          "duree_installation_mois": {
            "description": "Mois par an d'installation d'une piscine démontable.",
            "minimum": 0,
            "type": "number"
          },
          "element_protege_plu": {
            "description": "Le bâtiment est-il protégé par le PLU (art. L151-19 ou L151-23) ?",
            "type": "boolean"
          },
          "emprise_au_sol_creee_m2": {
            "description": "Emprise au sol créée par le projet, en m².",
            "minimum": 0,
            "type": "number"
          },
          "emprise_au_sol_existante_m2": {
            "description": "Emprise au sol du bâtiment existant, en m².",
            "minimum": 0,
            "type": "number"
          },
          "equipements_communs": {
            "description": "La division crée-t-elle des voies, espaces ou équipements communs ?",
            "type": "boolean"
          },
          "erp_ou_igh": {
            "description": "S'agit-il d'un établissement recevant du public ou d'un immeuble de grande hauteur ?",
            "type": "boolean"
          },
          "hauteur_couverture_m": {
            "description": "Hauteur de la couverture d'une piscine, en mètres (0 si non couverte).",
            "minimum": 0,
            "type": "number"
          },
          "hauteur_m": {
            "description": "Hauteur du projet, en mètres (hauteur du mur pour un mur).",
            "minimum": 0,
            "type": "number"
          },
          "inclut_demolition": {
            "description": "Le projet inclut-il une démolition ?",
            "type": "boolean"
          },
          "maison_individuelle": {
            "description": "S'agit-il d'une maison individuelle ?",
            "type": "boolean"
          },
          "modifie_aspect_exterieur": {
            "description": "Les travaux modifient-ils l'aspect extérieur ?",
            "type": "boolean"
          },
          "modifie_volume": {
            "description": "Les travaux modifient-ils le volume du bâtiment ?",
            "type": "boolean"
          },
          "monument_historique": {
            "description": "Les travaux portent-ils sur un monument historique ?",
            "type": "boolean"
          },
          "pac_visible": {
            "description": "L'unité extérieure de la pompe à chaleur est-elle visible depuis l'espace public ?",
            "type": "boolean"
          },
          "piscine_demontable": {
            "description": "La piscine est-elle démontable ?",
            "type": "boolean"
          },
          "ravalement_change_couleurs": {
            "description": "Le ravalement change-t-il les couleurs de la façade ?",
            "type": "boolean"
          },
          "reparation_a_l_identique": {
            "description": "S'agit-il d'une réparation à l'identique (mêmes matériaux, mêmes couleurs) ?",
            "type": "boolean"
          },
          "reserve_naturelle": {
            "description": "Le terrain est-il en réserve naturelle ?",
            "type": "boolean"
          },
          "site_classe": {
            "description": "Le terrain est-il en site classé ?",
            "type": "boolean"
          },
          "site_inscrit": {
            "description": "Le terrain est-il en site inscrit ?",
            "type": "boolean"
          },
          "spr": {
            "description": "Le terrain est-il en site patrimonial remarquable ?",
            "type": "boolean"
          },
          "surface_plancher_creee_m2": {
            "description": "Surface de plancher créée, en m² (0 pour un carport ouvert).",
            "minimum": 0,
            "type": "number"
          },
          "surface_plancher_existante_m2": {
            "description": "Surface de plancher du bâtiment existant, en m².",
            "minimum": 0,
            "type": "number"
          },
          "travaux_structure_ou_facade": {
            "description": "Des travaux touchent-ils les structures porteuses ou la façade ?",
            "type": "boolean"
          },
          "type_travaux": {
            "description": "Nature du projet. Obligatoire.",
            "enum": [
              "construction_nouvelle",
              "travaux_existant",
              "transformation_garage",
              "piscine",
              "cloture",
              "mur",
              "aspect_exterieur",
              "pompe_a_chaleur",
              "ravalement",
              "changement_destination",
              "division",
              "demolition"
            ],
            "type": "string"
          },
          "visible_espace_public": {
            "description": "Le projet est-il visible depuis l'espace public ?",
            "type": "boolean"
          },
          "zone_urbaine": {
            "description": "Le terrain est-il en zone urbaine du PLU, si connu ?",
            "type": "boolean"
          }
        },
        "required": [
          "type_travaux"
        ],
        "type": "object"
      },
      "name": "demarche_urbanisme_projet"
    },
    {
      "description": "Loyer mensuel estimé d'UN logement décrit par sa commune, sa typologie (T1 à T5, ou maison) et sa surface : loyer hors charges, fourchette à 95 %, loyer au m² et segment de la Carte des loyers (ANIL et DHUP) utilisé, les mêmes montants que la page /loyer de Pillr. Avec un prix d'achat, ajoute le rendement brut de ce logement. À utiliser pour « combien louer un T2 de 40 m² à Nantes » ou « quel rendement pour ce T3 à 180 000 € ». Pour le loyer médian et le rendement de marché de la commune entière, utiliser marche_commune. C'est un loyer d'annonce modélisé, ni un loyer constaté ni un plafond légal : l'encadrement des loyers n'est pas servi.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "commune": {
            "description": "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.",
            "type": "string"
          },
          "prix_achat": {
            "description": "Prix d'achat du logement, en euros, frais compris ou non : sert au seul rendement brut.",
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "surface_m2": {
            "description": "Surface habitable, en m². Absente : la surface d'exemple de la typologie, dite dans la réponse.",
            "exclusiveMinimum": 0,
            "maximum": 1000,
            "type": "number"
          },
          "typologie": {
            "description": "Typologie du logement : T1 (studio) à T5 (T5 et plus), ou maison.",
            "enum": [
              "T1",
              "T2",
              "T3",
              "T4",
              "T5",
              "maison"
            ],
            "type": "string"
          }
        },
        "required": [
          "commune",
          "typologie"
        ],
        "type": "object"
      },
      "name": "loyer_logement"
    },
    {
      "description": "Synthèse complète du marché d'UNE commune, pour juger s'il faut y acheter ou y investir : 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. Pour le seul prix au m², prix_m2_commune répond plus court ; pour le loyer d'un logement précis, loyer_logement ; pour comparer des communes, comparaison_communes. 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.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "commune": {
            "description": "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.",
            "type": "string"
          }
        },
        "required": [
          "commune"
        ],
        "type": "object"
      },
      "name": "marche_commune"
    },
    {
      "description": "Prix de référence au mètre carré d'UNE commune française, appartement et maison, et rien d'autre : 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. À utiliser quand la question porte seulement sur le prix d'une commune. Pour son loyer, son rendement, l'évolution de ses prix ou sa tension locative, utiliser marche_commune ; pour les prix quartier par quartier, prix_m2_quartiers ; pour plusieurs communes, comparaison_communes. Un prix absent est dit absent, jamais deviné. C'est un repère de marché communal, pas l'estimation d'un bien précis.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "commune": {
            "description": "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.",
            "type": "string"
          }
        },
        "required": [
          "commune"
        ],
        "type": "object"
      },
      "name": "prix_m2_commune"
    },
    {
      "description": "Prix au m² des appartements et des maisons quartier par quartier (IRIS de l'INSEE) dans UNE commune, du plus cher au moins cher : prix, nombre de ventes DVF, provenance (mesuré sur les ventes du quartier ou rapproché du prix de la commune) et part portée par les ventes du quartier. Seuls les quartiers d'au moins 5 ventes sont publiés, 40 au plus par type de bien. À utiliser pour « quel quartier est le moins cher à Lille » ou pour situer un quartier dans sa commune. Pour le prix de la commune entière, utiliser prix_m2_commune. Une commune que l'INSEE ne découpe pas en quartiers n'a pas de prix de quartier ; Paris, Lyon et Marseille se lisent mieux par arrondissement (« Lyon 3e »).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "commune": {
            "description": "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.",
            "type": "string"
          },
          "type_bien": {
            "description": "Ne lister qu'un type de bien. Absent : les deux.",
            "enum": [
              "appartement",
              "maison"
            ],
            "type": "string"
          }
        },
        "required": [
          "commune"
        ],
        "type": "object"
      },
      "name": "prix_m2_quartiers"
    }
  ]
}

What the leaf hashes

{"body":"e8e430ebcaf8e1186400b6b3ec8d9c5257df2d6e3bcda7f81278e1cb0dc3f393","id":258941,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793030486601813,"prev":null,"subject":"d0467745-8ac8-4d53-985a-381500bb8df9","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x1b6542aa14fc411d84e0f7ef545e1d36673deb4d0e72a03dbec62b433a1d7325
  2. 0xaeb3414ddeccdf1f05ff84f3e884f3cdfd616deeaba7aaa0b45f5eb2b2862e81
  3. 0xb7c392d17e1153b0df44e3f7621ee4655bec5f62dfa25b87f844979ae1dab99a
  4. 0x71fd11a79d23333ab3e006ab2e7a8c7232649fc115882f9d194843aac483a601
  5. 0xcc3144abe0ae2d05e156ccf0ef3f72676ad57440db0620db64134d3cd888671a
  6. 0x99d654505117949c84756907c5d22e1d1e27345e3ed6fb1c049bdc4da0d01e06
  7. 0xd0209d10b51663ad3d9b9e67ea0127fe1a73df3e77ee9041cc3cb4240e89897b
  8. 0x54ea5b264914041d141e7ea7240f244ab5bf85f419447192e6cfbdfabc1aeb9e
  9. 0x446db60ab162f3a366dec6ef2c3546bed38d915c11a8c5c26bb495d5ec3c252a
  10. 0xc9368fba7f6c13346c8b2c9c7a63691d3d68f63c71d1ec0d7a4decd43fb3e8c4
  11. 0x3f914e3a1f6c506299e42b0c551da50ec7ac2c0f0e69260eab2262111b4eb14b
  12. 0x7ab2e7902b312a74cfdbc32b2906ced29b1fb9dc4280b5378e8eb181ad88686e
  13. 0xe00c7829e46541e49a308807d357db902e06eff941a833217a8f0dbccd3964f1
  14. 0x770e4376196188c7fc9ec40f8e218dc0d1cb92bba5fe0425a0edce27ca9a997f
  15. 0x60582ab4b41e72eb70eb0bce07fbf0fb4d2b62a8bad5be50f5d16d511adc746c
  16. 0xc6a4d7899a0f442958e26505011190b7cff2483611c1b94eba9043e0ba9ac36e
  17. 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON