← The evidence ledger
Evidence row 1022376
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 9d918dfa-4cbe-4668-8708-122579b05485
- Recorded
- Previous row
- #983118
- Body SHA-256
- 56e81ffd4a41cd76e17941e6b3effcf39be0cb89b6bf82b077c8979117d764ed
- Leaf
- 0x444ce754e186fe28005d21a6b2581badb7de80909d9df1be2eff7631ae47305e
What was observed
{
"count": 6,
"tools": [
{
"description": "Donne la zone ABC d'une commune française (A bis, A, B1, B2 ou C) et ce qu'elle change pour un investissement : Loc'Avantages et les plafonds de loyer de la commune, le logement locatif intermédiaire (LLI), le PTZ, la fin du Pinel. Prend le nom de la commune, son code INSEE ou l'adresse du logement. Quand plusieurs communes portent le nom donné, la réponse les liste avec leur zone. La réponse cite la liste officielle des communes et le jour où Miramo l'a relevée.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"description": "Adresse du logement : numéro, rue, code postal et ville, par exemple « 30 rue de Paris 93100 Montreuil ». Miramo la place avec la Base Adresse Nationale. Avec commune, la commune donnée l'emporte si l'adresse est placée dans une autre commune. Une commune seule suffit, sans adresse.",
"maxLength": 200,
"minLength": 3,
"type": "string"
},
"commune": {
"description": "Nom de la commune. Le code postal ou le département entre parenthèses (« Montreuil 93100 », « Montreuil (93) ») départage des communes du même nom. Avec une adresse, la commune sert à la vérifier, et de repli si elle n'est pas trouvée.",
"maxLength": 100,
"minLength": 2,
"type": "string"
},
"inseeCode": {
"description": "Code INSEE de la commune, cinq caractères (93048 pour Montreuil), à ne pas confondre avec le code postal. Vérifié avec commune et address quand elles sont données : un code qui ne correspond pas à la commune nommée ou à l'adresse placée est écarté.",
"pattern": "^(\\d{5}|2[AB]\\d{3})$",
"type": "string"
}
},
"type": "object"
},
"name": "check_abc_zone"
},
{
"description": "Dit si un logement est dans une zone d'un plan d'exposition au bruit d'un aéroport, et laquelle (de A, la plus exposée, à D), avec ce que ça change pour le bail : dans une zone, il faut joindre un diagnostic bruit. Prend l'adresse complète du logement. Miramo lit les plans publiés par l'aviation civile à ce point. Quand Miramo ne peut pas trancher (trop près de la limite d'une zone, plans qui ne répondent pas, territoire sans plan), la réponse le dit et dit où vérifier. La réponse cite les plans et le jour où Miramo les a lus.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"description": "Adresse complète du logement : numéro, rue, code postal et ville, par exemple « 12 rue Brulée 95190 Goussainville ». Miramo la place avec la Base Adresse Nationale, puis lit les plans d'exposition au bruit à ce point ; une adresse qu'elle ne place pas sur un bâtiment est renvoyée avec le statut address_not_found.",
"maxLength": 200,
"minLength": 3,
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "check_airport_noise_zone"
},
{
"description": "Dit si les loyers sont encadrés (encadrement du niveau des loyers, avec un loyer de référence) à une adresse ou dans une commune française : dans toute la commune, dans une partie seulement ou pas du tout, avec le territoire et l'arrêté préfectoral en vigueur aujourd'hui, ses dates et le jour où Miramo l'a vérifié. Prend l'adresse du logement, le nom de sa commune ou son code INSEE. La réponse dit aussi si Miramo tient le barème du territoire : quand il le tient, lookup_reference_rent donne le loyer de référence d'un logement.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"description": "Adresse du logement : numéro, rue, code postal et ville, par exemple « 30 rue de Paris 93100 Montreuil ». Miramo la place avec la Base Adresse Nationale. Avec commune, la commune donnée l'emporte si l'adresse est placée dans une autre commune. Une commune seule suffit, sans adresse.",
"maxLength": 200,
"minLength": 3,
"type": "string"
},
"commune": {
"description": "Nom de la commune. Le code postal ou le département entre parenthèses (« Montreuil 93100 », « Montreuil (93) ») départage des communes du même nom. Avec une adresse, la commune sert à la vérifier, et de repli si elle n'est pas trouvée.",
"maxLength": 100,
"minLength": 2,
"type": "string"
},
"inseeCode": {
"description": "Code INSEE de la commune, cinq caractères (93048 pour Montreuil), à ne pas confondre avec le code postal. Vérifié avec commune et address quand elles sont données : un code qui ne correspond pas à la commune nommée ou à l'adresse placée est écarté.",
"pattern": "^(\\d{5}|2[AB]\\d{3})$",
"type": "string"
}
},
"type": "object"
},
"name": "check_rent_control_perimeter"
},
{
"description": "Dit si une commune française est en zone tendue et dans quelle catégorie : 1 (zone tendue), 2 (zone touristique et tendue) ou hors zone, avec ce que ça change : le préavis du locataire d'un logement loué vide, la hausse du loyer entre deux locataires, la taxe sur les logements vacants. Prend l'adresse du logement, le nom de sa commune ou son code INSEE. Quand plusieurs communes portent le nom donné, la réponse les liste avec leur catégorie. La réponse cite la liste officielle des communes et sa dernière mise à jour.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"description": "Adresse du logement : numéro, rue, code postal et ville, par exemple « 30 rue de Paris 93100 Montreuil ». Miramo la place avec la Base Adresse Nationale. Avec commune, la commune donnée l'emporte si l'adresse est placée dans une autre commune. Une commune seule suffit, sans adresse.",
"maxLength": 200,
"minLength": 3,
"type": "string"
},
"commune": {
"description": "Nom de la commune. Le code postal ou le département entre parenthèses (« Montreuil 93100 », « Montreuil (93) ») départage des communes du même nom. Avec une adresse, la commune sert à la vérifier, et de repli si elle n'est pas trouvée.",
"maxLength": 100,
"minLength": 2,
"type": "string"
},
"inseeCode": {
"description": "Code INSEE de la commune, cinq caractères (93048 pour Montreuil), à ne pas confondre avec le code postal. Vérifié avec commune et address quand elles sont données : un code qui ne correspond pas à la commune nommée ou à l'adresse placée est écarté.",
"pattern": "^(\\d{5}|2[AB]\\d{3})$",
"type": "string"
}
},
"type": "object"
},
"name": "check_tense_zone"
},
{
"description": "Donne le loyer de référence d'un logement à une adresse où les loyers sont encadrés (Paris, Lille, Lyon et Villeurbanne, Bordeaux, Montpellier, Seine-Saint-Denis avec Est Ensemble et Plaine Commune), selon l'arrêté préfectoral en vigueur aujourd'hui : le loyer de référence, le majoré (le plafond) et le minoré, en euros par m² et par mois. Avec la surface habitable, la réponse donne aussi le loyer maximum hors charges du logement. La réponse nomme l'arrêté, ses dates et le jour où Miramo l'a vérifié. Quand isStale est vrai, les montants sont un ordre de grandeur, pas le plafond légal. Hors encadrement, la réponse le dit et renvoie vers l'outil zone tendue de miramo.fr.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"description": "Adresse complète du logement : numéro, rue, code postal et ville, par exemple « 14 rue Oberkampf 75011 Paris ». Miramo la place avec la Base Adresse Nationale ; une adresse qu'elle ne place pas sur un bâtiment est renvoyée avec le statut address_not_found.",
"maxLength": 200,
"minLength": 3,
"type": "string"
},
"constructionPeriod": {
"description": "Période de construction de l'immeuble, dans les tranches des arrêtés : after_1990 (après 1990), after_2005 (après 2005), before_1946 (avant 1946), 1946_1970 (entre 1946 et 1970), 1971_1990 (entre 1971 et 1990), 1991_2005 (entre 1991 et 2005). Paris, Lille, Bordeaux, Est Ensemble et Plaine Commune s'arrêtent à after_1990 ; Lyon et Montpellier coupent l'après 1990 en 1991_2005 et after_2005.",
"enum": [
"before_1946",
"1946_1970",
"1971_1990",
"after_1990",
"1991_2005",
"after_2005"
],
"type": "string"
},
"furnished": {
"description": "true si le logement est loué meublé, false s'il est loué vide.",
"type": "boolean"
},
"rooms": {
"description": "Nombre de pièces principales : séjour et chambres, sans la cuisine ni la salle de bains. 4+ à partir de quatre.",
"enum": [
"1",
"2",
"3",
"4+"
],
"type": "string"
},
"surface": {
"description": "Surface habitable du logement, en m². Facultative : avec elle, la réponse donne le loyer maximum hors charges du logement.",
"exclusiveMinimum": 0,
"maximum": 1000,
"type": "number"
}
},
"required": [
"address",
"rooms",
"furnished",
"constructionPeriod"
],
"type": "object"
},
"name": "lookup_reference_rent"
},
{
"description": "Prépare un brouillon de bail de location vide (non meublé) et renvoie un lien vers le générateur de bail de miramo.fr, où la personne le termine : noms des parties, email, PDF et signature. Prend ce que la personne a dit du logement (adresse complète, surface, pièces, période de construction et le reste), du loyer et des charges, des dates et des documents qu'elle joindra. Tout est facultatif ; le site demande ce qui manque. Le schéma refuse l'identité, l'email et le téléphone du locataire et du bailleur : la personne les saisit sur le site. Rien n'est enregistré : le brouillon est contenu dans le lien.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"annexes": {
"description": "Les documents que la personne joindra au bail : dpe (DPE), noise (Diagnostic bruit), crep (Diagnostic plomb (CREP)), gas_diagnostic (Diagnostic gaz), risk_statement (État des risques), co_ownership_rules (Règlement de copropriété), electrical_diagnostic (Diagnostic électricité). Elle les dépose en PDF sur le site.",
"items": {
"enum": [
"dpe",
"crep",
"gas_diagnostic",
"electrical_diagnostic",
"co_ownership_rules",
"risk_statement",
"noise"
],
"type": "string"
},
"maxItems": 7,
"type": "array"
},
"dates": {
"additionalProperties": false,
"description": "Les dates du bail.",
"properties": {
"plannedSignatureOn": {
"description": "Date de signature prévue, au format AAAA-MM-JJ.",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
},
"startsOn": {
"description": "Date de début du bail, au format AAAA-MM-JJ.",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"type": "string"
}
},
"type": "object"
},
"property": {
"additionalProperties": false,
"description": "Le logement loué, en location vide (non meublé). Jamais rien sur les personnes.",
"properties": {
"address": {
"description": "Adresse complète du logement : numéro, rue, code postal et ville, par exemple « 14 rue Oberkampf 75011 Paris ». Miramo la place avec la Base Adresse Nationale ; une adresse qu'elle ne place pas sur un bâtiment est renvoyée avec le statut address_not_found.",
"maxLength": 200,
"minLength": 3,
"type": "string"
},
"constructionPeriod": {
"description": "Période de construction de l'immeuble, selon le modèle officiel de bail : before_1949 (Avant 1949), after_2005 (Depuis 2005), from_1949_to_1974 (1949-1974), from_1975_to_1989 (1975-1989), from_1989_to_2005 (1989-2005).",
"enum": [
"before_1949",
"from_1949_to_1974",
"from_1975_to_1989",
"from_1989_to_2005",
"after_2005"
],
"type": "string"
},
"dpeClass": {
"description": "Classe énergie du DPE, de A à G.",
"enum": [
"A",
"B",
"C",
"D",
"E",
"F",
"G"
],
"type": "string"
},
"electricalInstallationOver15Years": {
"description": "Installation intérieure d'électricité de plus de 15 ans : elle rend le diagnostic électricité obligatoire.",
"type": "boolean"
},
"gasInstallationOver15Years": {
"description": "Installation intérieure de gaz de plus de 15 ans : elle rend le diagnostic gaz obligatoire. Le champ reste vide quand il n'y a pas de gaz ou que la personne ne sait pas.",
"type": "boolean"
},
"habitatType": {
"description": "Type d'habitat : collective (Immeuble collectif), individual (Immeuble individuel).",
"enum": [
"collective",
"individual"
],
"type": "string"
},
"heating": {
"description": "Chauffage : collective (Collectif), individual (Individuel).",
"enum": [
"collective",
"individual"
],
"type": "string"
},
"hotWater": {
"description": "Eau chaude : collective (Collective), individual (Individuelle).",
"enum": [
"collective",
"individual"
],
"type": "string"
},
"itEquipment": {
"description": "Équipements d'accès à internet : box (Box internet), fibre (Fibre optique), phone_socket (Prise téléphonique), collective_antenna (Antenne collective).",
"items": {
"enum": [
"collective_antenna",
"fibre",
"box",
"phone_socket"
],
"type": "string"
},
"maxItems": 5,
"type": "array"
},
"livingAreaSqm": {
"description": "Surface habitable du logement, en m².",
"exclusiveMinimum": 0,
"maximum": 1000,
"type": "number"
},
"mainRoomCount": {
"description": "Nombre de pièces principales : séjour et chambres, sans la cuisine ni la salle de bains.",
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"ownershipRegime": {
"description": "Régime de l'immeuble : co_ownership (Copropriété), sole_ownership (Monopropriété).",
"enum": [
"co_ownership",
"sole_ownership"
],
"type": "string"
},
"privateAccessories": {
"description": "Ce qui est loué avec le logement : cellar (Cave), garden (Jardin), balcony (Balcon), parking (Parking), terrace (Terrasse).",
"items": {
"enum": [
"cellar",
"garden",
"balcony",
"parking",
"terrace"
],
"type": "string"
},
"maxItems": 5,
"type": "array"
},
"sharedAmenities": {
"description": "Équipements communs de l'immeuble : lift (Ascenseur), courtyard (Cour), laundry_room (Laverie), bike_room (Local à vélos), green_space (Espaces verts).",
"items": {
"enum": [
"lift",
"courtyard",
"bike_room",
"green_space",
"laundry_room"
],
"type": "string"
},
"maxItems": 5,
"type": "array"
}
},
"type": "object"
},
"rent": {
"additionalProperties": false,
"description": "Le loyer et les charges.",
"properties": {
"chargesAmount": {
"description": "Montant mensuel des charges, en euros.",
"minimum": 0,
"type": "number"
},
"chargesMode": {
"description": "Mode des charges : provisions (Provisions sur charges avec régularisation annuelle), on_receipts (Paiement périodique des charges récupérables sans provision, sur présentation des justificatifs (décret n° 87-713 du 26 août 1987)), none (Sans objet : aucune charge récupérable pour ce logement, selon déclaration du bailleur (ni taxe d'enlèvement des ordures ménagères ni équipement collectif)).",
"enum": [
"provisions",
"on_receipts",
"none"
],
"type": "string"
},
"monthlyRentExcludingCharges": {
"description": "Loyer mensuel hors charges, en euros.",
"exclusiveMinimum": 0,
"type": "number"
}
},
"type": "object"
}
},
"type": "object"
},
"name": "prepare_lease_draft"
}
]
}What the leaf hashes
{"body":"56e81ffd4a41cd76e17941e6b3effcf39be0cb89b6bf82b077c8979117d764ed","id":1022376,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793277536319667,"prev":983118,"subject":"9d918dfa-4cbe-4668-8708-122579b05485","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (242798 rows).
- 0x444ce077489a33245585f020d4d1e0f7bc8cbb42cfe4473e286590bf17383cd4
- 0x71aafd0a44513370061ae8ac90594aee6f637c865b8c095f71945ec53da579a0
- 0xe9b63afa1e601f7e78a2149f2ecd9fda0a72921ad37403b1760e89dec4e46f41
- 0xcd11402bd40a869c8254058430050a4432dd9c1d14c218e7be9f570f546a7316
- 0xcd5543160d7b5d9a94cfdeb0686784cf74be100af2f18fe885cca60a8fae8263
- 0x8203f54c18ab8b67d2b6bcd4086fc88bad0a1bbf7a8aa8888cad56bfc0aea96e
- 0x2b219822e1c788c8e69ab20c40d0a626e387bd71252248a556632a54a3f24ad1
- 0x5d01f02d39a11bf8823698a2635f99bd53b3933e48062c329eba403460ca2884
- 0x6ee011a87f8f5261f50c9ac1a8b408e3ea89d2915a0545db50656ee8459abdd3
- 0x1c55f27496f40509c02d993d15c2b1c116771fc1bd956b2ed5bd06360c784190
- 0x97887c999d7dc42dbadbb565b6d4989706659cf21011e8691b8954593c15c62f
- 0xb02e983c27785c0571f73ef2bbc0c1322cdf6fac687898e8f1d1425c52e6de35
- 0xf16c67f95ffdfd6dd2607c7f45e2998cc3d8484d81e01ebd37215bcbf3f66112
- 0xfd10c7ee22418679d618a048206ccbf1219e97c4af44a5180884b0b3d02c18e8
- 0xa03bd318a195be3bd16f335c7e189443bea4f1f439087a7ac19afec9fa97f9be
- 0x1c3764b490d23b94e5ac838c89f8d3850dedb0819196f367da2479c7a88bf2c0
- 0xd76435ead496863d8b0bfab3434f54cd11da3c49d104fc4064b9cb3381567bbd
- 0xd56e61af23709ed9f460471e3c08400c0142ee83e1fd9057e46350d12edf9c07
- Day root
- 0xc050555c6b023f2aefb6536efb9f0760b92c30a0d06c572b7daf63db259ea17c
- Chained
- 0x4cde8bae2042512e1bec11650628f0293556311cc4ea74d99ffddf02b671a7d6
- Published
- On Arc Testnet, block 69753317: 0x9e85c340732f416e431b111fae72f7624870125f7f379af2732eb6c2ba8cf6a1