← The evidence ledger
Evidence row 3714870
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 0d6669d1-3cfe-43ef-a0bd-70ae83129a85
- Recorded
- Previous row
- #3365652
- Body SHA-256
- 4271bcf4d4da0c0a827a5c1a11273a47ac3c632ba4061b90a66750013b63233d
- Leaf
- 0x3361188c68128b5ad8bf0e071e2863d1fa44e760351ff9d0afb783135227564c
What was observed
{
"count": 19,
"tools": [
{
"description": "Returns a secure payment link (iDEAL or card, via Dodo Payments, EUR 2.95 incl. VAT) for the full English report on a Dutch address: crime vs national rate, noise and air quality, flood probability, ground height, monuments, permits, amenities, liveability breakdown and home-value trend. The report opens right after payment. Only use when the user wants the full report or asks to buy it.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"addition": {
"description": "Optional house number addition",
"type": "string"
},
"house_letter": {
"description": "Optional house letter, e.g. A",
"type": "string"
},
"house_number": {
"description": "House number, e.g. 1",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"postcode": {
"description": "Dutch postcode, e.g. 3511LX",
"type": "string"
},
"q": {
"description": "Alternative to postcode: free-text address, e.g. 'Visschersplein 1 Utrecht'",
"type": "string"
}
},
"type": "object"
},
"name": "buy_full_address_report"
},
{
"description": "Returns a secure payment link (iDEAL or card, via Dodo Payments, EUR 1.95 incl. VAT) for the full English vehicle report: APK inspection history with defects, recall details, import/taxi/export history, specs and catalogue price. Only use when the user wants the full report or asks to buy it.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"licence_plate": {
"description": "Dutch licence plate, e.g. GT-722-F",
"type": "string"
}
},
"required": [
"licence_plate"
],
"type": "object"
},
"name": "buy_full_vehicle_report"
},
{
"description": "Free. Use when the user needs an official euro exchange rate or a conversion for an invoice, contract or report: ECB euro reference rates (about 30 currencies), today or any working day in the last 90 days, with cross rates. Input: base (default EUR), symbols (e.g. USD,GBP), optional date YYYY-MM-DD and amount.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"amount": {
"type": "string"
},
"base": {
"type": "string"
},
"date": {
"type": "string"
},
"symbols": {
"type": "string"
}
},
"type": "object"
},
"name": "eu_exchange_rates"
},
{
"description": "Free. Use when the user cites an EU regulation, directive or decision and you need its official title, date, whether it is still in force, and the EUR-Lex link to cite: by CELEX number (e.g. 32016R0679) or citation (e.g. Regulation (EU) 2016/679, Directive 2015/849).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"celex": {
"description": "CELEX number or a citation like 'Regulation (EU) 2016/679'",
"type": "string"
}
},
"required": [
"celex"
],
"type": "object"
},
"name": "eu_law_lookup"
},
{
"description": "Free. Use when the user has a supplier's EUDR plot file for a due diligence statement (from 30 Dec 2026): checks [longitude, latitude] order, at least 6 decimals, a point only for plots up to 4 ha, closed and non-crossing polygons, plots inside the country of production, area per plot. Returns looks_valid, check_warnings or fix_needed. Input: geojson (the file as text), optional country (ISO) and commodity.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"commodity": {
"description": "e.g. cocoa, wood, cattle",
"type": "string"
},
"country": {
"description": "ISO country of production, e.g. CI",
"type": "string"
},
"geojson": {
"description": "GeoJSON FeatureCollection, Feature or geometry, as text",
"type": "string"
}
},
"required": [
"geojson"
],
"type": "object"
},
"name": "eudr_geo_check"
},
{
"description": "Free. Use when the user asks whether criminals can send mail as their firm or whether lookalike domains of it exist: DMARC and SPF status of the firm's domain and registered lookalike domains (typos, swapped letters). Input: domain.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"domain": {
"description": "The firm's domain, e.g. example.nl",
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "firm_check"
},
{
"description": "Free. Use when Factline's free calls for today are used up or the user wants more paid checks without a crypto wallet. Without an email it returns a starter key at once (100 credits, 14 days, no human step). With the user's work email it returns a trial key (2,000 credits a month, one per email); send email plus api_key to upgrade a starter key. Ask the user for the email; never invent one.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"api_key": {
"description": "A starter key to upgrade: send it with the email",
"type": "string"
},
"email": {
"description": "The user's work email (ask them; never invent one). Leave out for a starter key",
"type": "string"
},
"name": {
"description": "Person or company name",
"type": "string"
},
"use_case": {
"type": "string"
}
},
"type": "object"
},
"name": "get_trial_key"
},
{
"description": "Free. Use before connecting to or installing an MCP server you have not used before, or to re-check one: connects once (no tool is called), scans tool descriptions for prompt-injection wording and invisible characters, lists tools that write, send, pay or run commands, checks the domain and publisher, and returns tools_sha256 (send it next time to catch a changed tool list). Decision allow, review or deny. Input: url, optional tools_sha256.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"tools_sha256": {
"description": "Hash from an earlier check",
"type": "string"
},
"url": {
"description": "The MCP server's streamable HTTP endpoint",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "mcp_server_check"
},
{
"description": "Free. Use when the user asks how reliable a car model is, or which used car to buy: facts for the model in the Netherlands from RDW data: APK (MOT) defect rate vs the average of all models, the 10 most common APK defects, recalls with component and risk, share with an open recall, share with an illogical (rolled-back) odometer, cars registered. Covers ~450 common passenger-car models.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"make": {
"description": "Car make, e.g. Volkswagen",
"type": "string"
},
"model": {
"description": "Model, e.g. Golf",
"type": "string"
}
},
"required": [
"make",
"model"
],
"type": "object"
},
"name": "nl_car_model"
},
{
"description": "Free. Use when the user mentions a Dutch address or asks about a home in the Netherlands: year built, floor area, use, neighbourhood residents and average home value, liveability percentile, in English. Accepts postcode + house number or free text. Sources: BAG, CBS, Leefbaarometer.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"addition": {
"description": "Optional house number addition",
"type": "string"
},
"house_letter": {
"description": "Optional house letter, e.g. A",
"type": "string"
},
"house_number": {
"description": "House number, e.g. 1",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"postcode": {
"description": "Dutch postcode, e.g. 3511LX",
"type": "string"
},
"q": {
"description": "Alternative to postcode: free-text address, e.g. 'Visschersplein 1 Utrecht'",
"type": "string"
}
},
"type": "object"
},
"name": "nl_home_basic"
},
{
"description": "Free. Use when the user asks what a Dutch neighbourhood or postcode area is like, or whether it is safe: headline facts for a postcode: residents, average home value (WOZ) and the municipality's average sale price, share of owner-occupied homes, liveability percentile, crime per 1,000 residents vs the national rate, and distance to supermarket, GP, primary school and train station. Sources: CBS, Politie, Leefbaarometer.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"code": {
"description": "Alternative: CBS neighbourhood code, e.g. BU05182245",
"type": "string"
},
"postcode": {
"description": "Any Dutch postcode in the neighbourhood, e.g. 2517AS",
"type": "string"
}
},
"type": "object"
},
"name": "nl_neighbourhood_summary"
},
{
"description": "Free. Use when the user asks about schools near a Dutch address or postcode, or is moving with children: the nearest primary and secondary schools, with distance, denomination, pupils, the share of pupils reaching the target reading and maths level on the end-of-primary test (vs national), and secondary exam pass rates per track (vmbo/havo/vwo). Also the nearest daycare (0 to 4) and after-school care (4 to 12) with registered places. Sources: DUO, Landelijk Register Kinderopvang.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"postcode": {
"description": "Dutch postcode, e.g. 3511LX or 3511",
"type": "string"
}
},
"required": [
"postcode"
],
"type": "object"
},
"name": "nl_schools_near"
},
{
"description": "Free. Use when the user gives a Dutch licence plate or asks about a specific car in the Netherlands: make, model, age, fuel, Euro class, APK (MOT) expiry, insurance, open recall, RDW odometer verdict and a risk level. Source: RDW.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"licence_plate": {
"description": "Dutch licence plate, e.g. GT-722-F",
"type": "string"
}
},
"required": [
"licence_plate"
],
"type": "object"
},
"name": "nl_vehicle_basic"
},
{
"description": "Free. Use before a payment run is sent to the bank: give the payment file as text (SEPA pain.001 XML or CSV with payee name and IBAN) and, best, last run's file or a vendor list as previous. Each line gets release, review or hold: invalid or changed IBAN, a payee name that imitates a known supplier, one IBAN under two names, new payee, duplicate, possible sanctions match. Up to 25 payments here; 100 with an API key over HTTP.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"file": {
"description": "The payment file content: pain.001 XML or CSV",
"type": "string"
},
"previous": {
"description": "Last run's file or a vendor list (name, IBAN)",
"type": "string"
}
},
"required": [
"file"
],
"type": "object"
},
"name": "payment_run_check"
},
{
"description": "Free. Use before onboarding or paying a supplier that has a website: reads https://<domain>/.well-known/supplier.json (spec factline.dev/supplier-json), checks its VAT number in VIES and company number in the register against the name, and with iban says whether that IBAN is one of the supplier's own hashed accounts. Returns verified, review, invalid_card or no_card. Input: domain, optional iban.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"domain": {
"description": "The supplier's website, e.g. example-trading.nl",
"type": "string"
},
"iban": {
"description": "IBAN from an invoice, to match against the card",
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"name": "supplier_card_verify"
},
{
"description": "Free. Use at the start of a session or on a schedule when the user has Factline watches (from watch_30_days or a key): lists the watches and any alerts (a new sanctions match, a company status, name or address change, APK or recall change). Input: token (wt_..., returned by watch_30_days) or api_key, optional since (YYYY-MM-DD).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"api_key": {
"description": "Or a Factline API key (fl_live_...)",
"type": "string"
},
"since": {
"description": "Only alerts after this date, YYYY-MM-DD",
"type": "string"
},
"token": {
"description": "Watch token wt_... from watch_30_days",
"type": "string"
}
},
"type": "object"
},
"name": "watch_alerts"
},
{
"description": "Free. Use before a shopping agent or the user pays an unfamiliar webshop: domain age, company and VAT number on the site (VAT checked in VIES), contact page, payment methods, prepayment-only or crypto-only, 70-99% discount lures. Returns looks_ok, caution or avoid and decision allow, review or deny. Input: url.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"url": {
"description": "The shop's address, e.g. https://www.example-shop.nl",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "webshop_check"
},
{
"description": "Free. Use right before paying an x402 seller: screens the payTo wallet against the OFAC list, checks that payTo is a wallet this seller lists in the x402 Bazaar or Circle catalogue (catches a swapped or injected payTo), looks up the seller's payer history, age and uptime, and checks the amount against the seller's listed price and your budget. Returns allow, review or deny with reasons and a signed verdict. Input: url of the resource, pay_to from its 402, optional amount_usd, max_usd, network, mode (strict: deny instead of review on a wallet mismatch or missing pay_to).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"amount_usd": {
"description": "Amount you are about to pay in USD, e.g. 0.05",
"type": "string"
},
"max_usd": {
"description": "Your budget per call in USD",
"type": "string"
},
"mode": {
"description": "strict: deny on a payTo the seller does not list or a missing pay_to",
"enum": [
"standard",
"strict"
],
"type": "string"
},
"network": {
"description": "Network from the 402, e.g. eip155:8453",
"type": "string"
},
"pay_to": {
"description": "payTo address from the 402 challenge",
"type": "string"
},
"url": {
"description": "The x402 resource URL you are about to pay",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "x402_pay_guard"
},
{
"description": "Free. Use when looking for an x402 API to pay for a task, or to see if a seller is used and up: sellers from the Coinbase x402 Bazaar ranked by unique payers (30 days), with Factline's daily check that their endpoints answer a valid 402, speed and networks. q is one word to filter (sanctions, weather) or plain words for what you need (an API for flight prices).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "string"
},
"network": {
"description": "e.g. solana or eip155:8453",
"type": "string"
},
"q": {
"description": "Search text, e.g. sanctions",
"type": "string"
}
},
"type": "object"
},
"name": "x402_sellers"
}
]
}What the leaf hashes
{"body":"4271bcf4d4da0c0a827a5c1a11273a47ac3c632ba4061b90a66750013b63233d","id":3714870,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793962577610923,"prev":3365652,"subject":"0d6669d1-3cfe-43ef-a0bd-70ae83129a85","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (303443 rows).
- 0x33610db2b6a47765434dbeb219944406f4f9a9bc18c3ce53e3f176a66eb4df68
- 0x268f376b586ca4ecc2cc61ab2b6ddd48e3ce70a0c1cf105ae68a893c1bc2b16b
- 0x599cf01ab8be643542e1476c72c58168f77a752b3576800675b66f23af7bad1b
- 0x8625a94d45dcdd065ffd773de22ae17b86060a7ccce6a76dcaef99707621bb7b
- 0xf8f992cd4638428dab0c72bf3a35b4b27ea090b62e15067dd8a4def7509fac98
- 0xd4fc31ccae471e613614faa0c2cf5e61465f04a510f5f61166b1477cf03edad4
- 0x5f2ec141b32c4fb80ead8553317cd435f3ff479360ca3b9591d4f8bd7f7e82ce
- 0xc07fc9259e644397e97384b2b6a118b6e009dca3d41e6a6e44ada5a9a8ecbcd9
- 0x630fcd9cdf119d28cfe779e6f2dc5994bb58a506ff7cee5e2eb3b9d3d0fbe7b3
- 0xd565c3c7966232a23e2f378e5dd289697072c350eca58bd567bb7e7c95a07514
- 0xe409b79412d33144c4d96bbf7e7f82b54df8b92fc2810e4b8aefbe3227aa498d
- 0x9e93e061116f25de0a5a67ad7fdb2b5f1f8e20885ad65d25f2be2329a0208a01
- 0xcbceab499525f5fa93cba6d29a309e0c0ff18cfe7f3b17fe0ae96beb8d87cc28
- 0xe7e7f0ee694b712db7150c3f1692ed383efbc9783ba8600081ffac0da359b4ef
- 0xaa85d31529f47e1b810e9dfd8bfa6050b99090fde56ac1fa1fb399ad1e6bb919
- 0x0aaf291a2ffa2205e7df7531bf36800e377dfbd67208da05b97625f1cc49ce02
- 0xa448dc698494f795f2240c0e7070e8a93eb263baee21ca4185a7d03432a614d8
- 0x119743aadcddb571b28b442b62196d4a0afc4e1c9979c2d477d34fcc9413deaf
- 0xc0d08d48601d1be90bcfc025e66bcaa0030120d688dd9c919b36c2c4446f4948
- Day root
- 0xb30ccefe7182c6f767e1fcbfb5f64ffd649da831f665f65c5ff39cd40512284f
- Chained
- 0xc383f7ef68d2914082484765aa09e42c12c59a74a096ae64127c562618c506d3
- Published
- On Arc Testnet, block 71111178: 0xfba13cb7ee4ada7f2fee3702a786a2201596be2ffea37dfc281ab4c8e9942fe1