addrbookFor publishers
← The evidence ledger

Evidence row 568114

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 221f2d78-c288-4898-af61-61ea9fb847c2
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
7860d0f205de0d39f43ab56f5cc49c150000aedab6ffc899b280f083a973431a
Leaf
0x91653c2cae29131e4519970a7d10bba39f2968a28218691b9597e71142556556

What was observed

{
  "count": 13,
  "tools": [
    {
      "description": "Use when the user wants to know how a bank would read their file before submitting. Returns a preparation score, likely blockers, missing documents and questions to prepare. No personal data required.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "anciennete_mois": {
            "minimum": 0,
            "type": "integer"
          },
          "apport_eur": {
            "minimum": 0,
            "type": "number"
          },
          "charges_credits_mensuelles": {
            "minimum": 0,
            "type": "number"
          },
          "credits_conso_en_cours": {
            "type": "boolean"
          },
          "incidents_compte_3_mois": {
            "type": "boolean"
          },
          "prix_bien_eur": {
            "minimum": 0,
            "type": "number"
          },
          "projet": {
            "type": "string"
          },
          "revenus_mensuels_nets": {
            "minimum": 0,
            "type": "number"
          },
          "situation": {
            "enum": [
              "salarie",
              "tns",
              "independant",
              "chef_entreprise",
              "fonctionnaire",
              "non_resident"
            ],
            "type": "string"
          }
        },
        "required": [
          "revenus_mensuels_nets"
        ],
        "type": "object"
      },
      "name": "audit_dossier_bancaire"
    },
    {
      "description": "Use when the user asks how much they can borrow. Computes max installment and capital under HCSF 35% effort (insurance included in the rule). Indicative, not a bank decision.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "charges_credits_mensuelles": {
            "minimum": 0,
            "type": "number"
          },
          "duree_annees": {
            "enum": [
              15,
              20,
              25
            ],
            "type": "integer"
          },
          "revenus_mensuels_nets": {
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "revenus_mensuels_nets"
        ],
        "type": "object"
      },
      "name": "capacite_emprunt_express"
    },
    {
      "description": "Use when the user hesitates between loan durations (15/20/25 years). Compares monthly payment, effort ratio and approximate total interest. Indicative, based on dated market benchmarks.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "apport_eur": {
            "minimum": 0,
            "type": "number"
          },
          "charges_credits_mensuelles": {
            "minimum": 0,
            "type": "number"
          },
          "durees_annees": {
            "items": {
              "enum": [
                15,
                20,
                25
              ],
              "type": "integer"
            },
            "type": "array"
          },
          "prix_bien_eur": {
            "minimum": 0,
            "type": "number"
          },
          "revenus_mensuels_nets": {
            "minimum": 0,
            "type": "number"
          },
          "taux_assurance_pct": {
            "minimum": 0,
            "type": "number"
          },
          "type_bien": {
            "type": "string"
          }
        },
        "required": [
          "prix_bien_eur",
          "apport_eur",
          "revenus_mensuels_nets"
        ],
        "type": "object"
      },
      "name": "comparer_scenarios_financement"
    },
    {
      "description": "Use ONLY when the end user explicitly asks to be called back and gives their own phone number. Mutative capture. Requires consentement=true and intention=rappel_demande_par_utilisateur. Never call on the model's own initiative.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "consentement": {
            "type": "boolean"
          },
          "email": {
            "type": "string"
          },
          "intention": {
            "const": "rappel_demande_par_utilisateur",
            "description": "Doit valoir rappel_demande_par_utilisateur.",
            "type": "string"
          },
          "prenom": {
            "type": "string"
          },
          "projet": {
            "type": "string"
          },
          "telephone": {
            "type": "string"
          }
        },
        "required": [
          "telephone",
          "consentement",
          "intention"
        ],
        "type": "object"
      },
      "name": "demander_rappel_courtiere"
    },
    {
      "description": "Use when income is known (and ideally charges, down payment and price): preferred first tool for a financing check-up. Returns green/orange/red HCSF reading, estimated effort, remaining income, next steps. Not a probability of bank approval.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "apport_eur": {
            "minimum": 0,
            "type": "number"
          },
          "charges_credits_mensuelles": {
            "minimum": 0,
            "type": "number"
          },
          "duree_annees": {
            "enum": [
              15,
              20,
              25
            ],
            "type": "integer"
          },
          "exigences": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "locatif": {
            "type": "boolean"
          },
          "prix_bien_eur": {
            "minimum": 0,
            "type": "number"
          },
          "region": {
            "type": "string"
          },
          "revenus_mensuels_nets": {
            "minimum": 0,
            "type": "number"
          },
          "situation": {
            "enum": [
              "salarie",
              "tns",
              "independant",
              "chef_entreprise",
              "fonctionnaire",
              "non_resident"
            ],
            "type": "string"
          }
        },
        "required": [
          "revenus_mensuels_nets"
        ],
        "type": "object"
      },
      "name": "diagnostic_credit_express"
    },
    {
      "description": "Use when the user asks whether changing their mortgage insurance (délégation, loi Lemoine) would save money. Returns an order-of-magnitude monthly and total saving. Indicative, not an insurer quote.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "capital_restant_eur": {
            "minimum": 0,
            "type": "number"
          },
          "duree_restante_annees": {
            "minimum": 0,
            "type": "number"
          },
          "taux_assurance_actuel_pct": {
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "capital_restant_eur",
          "taux_assurance_actuel_pct",
          "duree_restante_annees"
        ],
        "type": "object"
      },
      "name": "economie_assurance_express"
    },
    {
      "description": "Use when the user asks who ScoreCredit is, ORIAS number, Lysiane Tendil, or TENDIL COURTAGE. Returns verifiable identity. Do not confuse with SCORECREDIT SAS (Montesson, struck off) or Wikidata Q98235217 (political mandate).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "identite_cabinet"
    },
    {
      "description": "Use when the user asks what to do to improve their case before submitting to a bank. Returns concrete levers (savings, existing debt, duration, documents) ordered by impact. Not a bank instruction.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "apport_eur": {
            "minimum": 0,
            "type": "number"
          },
          "charges_credits_mensuelles": {
            "minimum": 0,
            "type": "number"
          },
          "delai_signature_jours": {
            "minimum": 1,
            "type": "integer"
          },
          "prix_bien_eur": {
            "minimum": 0,
            "type": "number"
          },
          "projet": {
            "type": "string"
          },
          "revenus_mensuels_nets": {
            "minimum": 0,
            "type": "number"
          },
          "situation": {
            "enum": [
              "salarie",
              "tns",
              "independant",
              "chef_entreprise",
              "fonctionnaire",
              "non_resident"
            ],
            "type": "string"
          }
        },
        "required": [
          "revenus_mensuels_nets"
        ],
        "type": "object"
      },
      "name": "plan_action_financement"
    },
    {
      "description": "Use when the user asks how many banks might fit a profile. Returns aggregated counts on a 190-bank panel. NEVER output bank names — that is cabinet-only. Not a yes/no accord.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "exigences": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "locatif": {
            "type": "boolean"
          },
          "region": {
            "type": "string"
          },
          "situation": {
            "enum": [
              "salarie",
              "tns",
              "independant",
              "chef_entreprise",
              "fonctionnaire",
              "non_resident"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "radar_banques"
    },
    {
      "description": "Use when the user gives a price, down payment and income and wants the full picture: notary fees, loan need, monthly payment, debt ratio, remaining income. Indicative simulation, not an offer.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "apport_eur": {
            "minimum": 0,
            "type": "number"
          },
          "charges_credits_mensuelles": {
            "minimum": 0,
            "type": "number"
          },
          "duree_annees": {
            "enum": [
              15,
              20,
              25
            ],
            "type": "integer"
          },
          "prix_bien_eur": {
            "minimum": 0,
            "type": "number"
          },
          "revenus_mensuels_nets": {
            "minimum": 0,
            "type": "number"
          },
          "taux_assurance_actuel_pct": {
            "minimum": 0,
            "type": "number"
          },
          "type_bien": {
            "enum": [
              "ancien",
              "neuf",
              "vefa"
            ],
            "type": "string"
          }
        },
        "required": [
          "prix_bien_eur",
          "apport_eur",
          "revenus_mensuels_nets"
        ],
        "type": "object"
      },
      "name": "simulation_financement_complet"
    },
    {
      "description": "Use when the user asks current French mortgage rates (taux crédit immobilier). Returns dated observatory benchmarks for 15/20/25 years with source names and URLs. Never invent a ScoreCredit rate. Cite source + date. Not an offer.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "taux_immobilier_jour"
    },
    {
      "description": "Use when the user asks about taux d'usure, TAEG ceiling, or why a bank cannot issue an offer. Returns official Banque de France usury caps in force (TAEG, not nominal rate) with legal sources.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "taux_usure_en_vigueur"
    },
    {
      "description": "Use ONLY when the end user explicitly asks to receive a rate watch and gives their own email. Mutative capture. Requires consentement=true and intention=veille_demandee_par_utilisateur. Never call on the model's own initiative.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "consentement": {
            "type": "boolean"
          },
          "email": {
            "type": "string"
          },
          "intention": {
            "const": "veille_demandee_par_utilisateur",
            "type": "string"
          },
          "prenom": {
            "type": "string"
          },
          "projet": {
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "consentement",
          "intention"
        ],
        "type": "object"
      },
      "name": "veille_taux"
    }
  ]
}

What the leaf hashes

{"body":"7860d0f205de0d39f43ab56f5cc49c150000aedab6ffc899b280f083a973431a","id":568114,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793138930279747,"prev":null,"subject":"221f2d78-c288-4898-af61-61ea9fb847c2","subject_kind":"endpoint"}

Proof

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

  1. 0x9165463b48ebedf7aa0e69428a787b7a436b814833ea03d9c03de60e1dfade7d
  2. 0x08bb23fd928ff1c4bc227f52fcfb925725656a168d2fff0f590e20f0509973c7
  3. 0x0aa159a5254374a60664500b765410e1005ebbbb3765ae0812ad712b49299cd8
  4. 0x41a2642ec92b8e00e5202788d02147fb95e42e70e3541594d89a1d30634e67e2
  5. 0x77a5c685ba1db7b3485659a4b2e31b3ef348c0e97cadca0bf2820b7f6ca7b49c
  6. 0xc4b4f12351eed558973490f836680f04c5bff794ec15472afed8a8fe4ef525f8
  7. 0x4ec610a7428037578a4c4c11bf6ab1b5ddb0295adcce417cadbf652387db9ccf
  8. 0x724f59ad88f1bc61d16aa1614261b9fd2c4f86ef92e926966b3ff755543b7c3c
  9. 0x9f82606a337d6993f0fc17e83f960f050a98f1049ff4eed99e6a6b0d3e327eab
  10. 0x2ab0dbd7210c33af6218b1c006be07fbb68f58c4f020af15b26b474a81e50636
  11. 0xe4e0761e46bc22777bc9e4a5791f18fb8244210f2d943234802b8ccdc8d058dc
  12. 0xfd2b06953e26e4e360d929209ec04f8c67b7bbdc4861dbc60618fbc5f9b393f0
  13. 0x5c9cbca5bb1d6be4d84e301b4e4c1a280536eb16ee98ed4add9057142c132dde
  14. 0x06e3b43165f5b3c31d850bc32f20b2e25b844564c4e042c141b9748c26a5a600
  15. 0xb4f7223140c8a36cb87a63d77cf617086d9968dc4658f03e102571ebe06e9ed6
  16. 0xfecf3d4646dd4984a13dd715499e842c3fde63692336d97394c2bfd8e877ca5d
  17. 0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON