← The evidence ledger
Evidence row 1474825
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 244cf130-b3a7-4074-8961-d32760ce7f2f
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 1ebed06e0c08ecaf3cf23c66fd125b7e432dc340356f661d728267c1a0ddd635
- Leaf
- 0xf933a4aa120e25de6ef93a3d571029a2b98907bb480b780308a0941c1aacd530
What was observed
{
"count": 11,
"tools": [
{
"description": "Generate LocalBusiness JSON-LD (schema.org) from business details and validate it against Google's rich result rules. Returns the JSON-LD, a ready-to-paste <script> tag and issues to fix. No API key needed.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"acceptsReservations": {
"type": "boolean"
},
"address": {
"additionalProperties": false,
"properties": {
"addressCountry": {
"description": "ISO 3166-1 alpha-2, e.g. NL or US",
"maxLength": 60,
"type": "string"
},
"addressLocality": {
"maxLength": 120,
"type": "string"
},
"addressRegion": {
"maxLength": 120,
"type": "string"
},
"postalCode": {
"maxLength": 20,
"type": "string"
},
"streetAddress": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"alternateName": {
"maxLength": 200,
"type": "string"
},
"areaServed": {
"items": {
"maxLength": 120,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"businessType": {
"default": "LocalBusiness",
"description": "schema.org type, e.g. Dentist, Plumber, Restaurant. See /business-types.",
"maxLength": 60,
"type": "string"
},
"currenciesAccepted": {
"items": {
"maxLength": 3,
"minLength": 3,
"type": "string"
},
"maxItems": 10,
"type": "array"
},
"description": {
"maxLength": 2000,
"type": "string"
},
"email": {
"maxLength": 200,
"type": "string"
},
"foundingDate": {
"pattern": "^\\d{4}(-\\d{2}-\\d{2})?$",
"type": "string"
},
"geo": {
"additionalProperties": false,
"properties": {
"latitude": {
"maximum": 90,
"minimum": -90,
"type": "number"
},
"longitude": {
"maximum": 180,
"minimum": -180,
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"hasMap": {
"$ref": "#/properties/url"
},
"images": {
"items": {
"$ref": "#/properties/url"
},
"maxItems": 20,
"type": "array"
},
"isAcceptingNewPatients": {
"type": "boolean"
},
"knowsLanguage": {
"items": {
"maxLength": 40,
"type": "string"
},
"maxItems": 20,
"type": "array"
},
"legalName": {
"maxLength": 200,
"type": "string"
},
"logo": {
"$ref": "#/properties/url"
},
"medicalSpecialty": {
"maxLength": 80,
"type": "string"
},
"menu": {
"$ref": "#/properties/url"
},
"name": {
"description": "Public business name",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"openingHours": {
"description": "Regular hours. Days not listed are closed. Use two entries for split hours.",
"items": {
"additionalProperties": false,
"properties": {
"allDay": {
"description": "Open 24 hours on these days",
"type": "boolean"
},
"closes": {
"$ref": "#/properties/openingHours/items/properties/opens"
},
"days": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"description": "Day names or ranges: \"Mo-Fr\", [\"Saturday\"]"
},
"opens": {
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"type": "string"
}
},
"required": [
"days"
],
"type": "object"
},
"maxItems": 21,
"type": "array"
},
"paymentAccepted": {
"items": {
"maxLength": 60,
"type": "string"
},
"maxItems": 20,
"type": "array"
},
"priceRange": {
"description": "e.g. €€ or €20-€80",
"maxLength": 30,
"type": "string"
},
"rating": {
"additionalProperties": false,
"description": "LocalSchema Pro — omitted from free output",
"properties": {
"bestRating": {
"exclusiveMinimum": 0,
"type": "number"
},
"ratingValue": {
"maximum": 100,
"minimum": 0,
"type": "number"
},
"reviewCount": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"ratingValue",
"reviewCount"
],
"type": "object"
},
"reviews": {
"description": "LocalSchema Pro — omitted from free output",
"items": {
"additionalProperties": false,
"properties": {
"author": {
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"body": {
"maxLength": 2000,
"type": "string"
},
"datePublished": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"rating": {
"maximum": 100,
"minimum": 0,
"type": "number"
}
},
"required": [
"author",
"rating"
],
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"sameAs": {
"description": "Google Business Profile, Yelp, Facebook, LinkedIn… profile URLs",
"items": {
"$ref": "#/properties/url"
},
"maxItems": 30,
"type": "array"
},
"servesCuisine": {
"items": {
"maxLength": 60,
"type": "string"
},
"maxItems": 20,
"type": "array"
},
"serviceAreaOnly": {
"description": "True for service-area businesses without a storefront (address is hidden)",
"type": "boolean"
},
"services": {
"items": {
"additionalProperties": false,
"properties": {
"description": {
"maxLength": 500,
"type": "string"
},
"name": {
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"price": {
"minimum": 0,
"type": "number"
},
"priceMax": {
"minimum": 0,
"type": "number"
},
"priceType": {
"enum": [
"fixed",
"from",
"range"
],
"type": "string"
},
"unitText": {
"maxLength": 40,
"type": "string"
},
"url": {
"$ref": "#/properties/url"
}
},
"required": [
"name"
],
"type": "object"
},
"maxItems": 50,
"type": "array"
},
"slogan": {
"maxLength": 200,
"type": "string"
},
"specialHours": {
"description": "Holiday exceptions (LocalSchema Pro — omitted from free output)",
"items": {
"additionalProperties": false,
"properties": {
"closed": {
"type": "boolean"
},
"closes": {
"$ref": "#/properties/openingHours/items/properties/opens"
},
"label": {
"maxLength": 80,
"type": "string"
},
"opens": {
"$ref": "#/properties/openingHours/items/properties/opens"
},
"validFrom": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"validThrough": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
}
},
"required": [
"validFrom"
],
"type": "object"
},
"maxItems": 30,
"type": "array"
},
"telephone": {
"description": "International format, e.g. +31 50 123 4567",
"maxLength": 40,
"type": "string"
},
"url": {
"description": "Website URL (https://…)",
"maxLength": 2000,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "generate_schema"
},
{
"description": "Get the install snippet and live status for a LocalSchema hosted embed key (loc_… for one location, org_… for a client with several). Paste the script tag once; published updates reach the site automatically.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"key": {
"description": "Hosted embed key",
"pattern": "^(?:loc|org)_[a-z0-9]{6,32}$",
"type": "string"
}
},
"required": [
"key"
],
"type": "object"
},
"name": "get_embed_snippet"
},
{
"description": "Get one saved location: its business fields (in the same shape save_location accepts), the current JSON-LD, the published JSON-LD, validation issues and embed details. Needs a LocalSchema Pro API key in the request headers.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"location_id": {
"description": "Location id from list_locations",
"format": "uuid",
"type": "string"
}
},
"required": [
"location_id"
],
"type": "object"
},
"name": "get_location"
},
{
"description": "List the schema.org LocalBusiness subtypes LocalSchema supports (Dentist, Plumber, Restaurant, …). Use the most specific one as businessType.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_business_types"
},
{
"description": "List the agency's clients (brands) with their location counts, client-wide embed script and white-label report link. Needs a LocalSchema Pro API key in the request headers.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_clients"
},
{
"description": "List the business locations saved in the LocalSchema account: publish state, hosted embed script, website and latest health check score. Needs a LocalSchema Pro API key in the request headers.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"client_id": {
"description": "Only this client's locations",
"format": "uuid",
"type": "string"
}
},
"type": "object"
},
"name": "list_locations"
},
{
"description": "Run a schema health check for a saved location: validates its markup, scans its website for the embed and conflicting hard-coded schema, detects unpublished changes and records the result in the dashboard and client reports. Needs a LocalSchema Pro API key in the request headers.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"location_id": {
"description": "Location id from list_locations",
"format": "uuid",
"type": "string"
}
},
"required": [
"location_id"
],
"type": "object"
},
"name": "run_health_check"
},
{
"description": "Create a client (brand) or update one by client_id, and optionally turn its white-label health report link on or off. Needs a LocalSchema Pro API key in the request headers.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"client_id": {
"description": "Update this client. Omit to create one.",
"format": "uuid",
"type": "string"
},
"contact_email": {
"description": "Contact email. When updating, omit to keep it or send \"\" to clear it.",
"maxLength": 255,
"type": "string"
},
"contact_name": {
"description": "Contact person. When updating, omit to keep it or send \"\" to clear it.",
"maxLength": 160,
"type": "string"
},
"name": {
"description": "Client (brand) name. Required when creating; omit to keep it when updating.",
"maxLength": 160,
"minLength": 1,
"type": "string"
},
"report": {
"description": "true turns the client's white-label health report link on, false turns it off. Omit to leave it.",
"type": "boolean"
},
"website": {
"description": "Brand website; links every branch to one Organization in the client embed. When updating, omit to keep it or send \"\" to clear it.",
"maxLength": 500,
"type": "string"
}
},
"type": "object"
},
"name": "save_client"
},
{
"description": "Save a business location to the LocalSchema account — create one, or update one by location_id (only the business fields you send change) — and optionally publish it to its hosted embed so the client's site updates without code changes. Needs a LocalSchema Pro API key in the request headers.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"business": {
"additionalProperties": {},
"description": "Business fields in the same shape as generate_schema (name, businessType, address, openingHours, services, …). When updating, only the fields you send change; address merges field by field, lists are replaced.",
"type": "object"
},
"client_id": {
"anyOf": [
{
"$ref": "#/properties/location_id"
},
{
"type": "null"
}
],
"description": "Assign to a client (see list_clients); null removes the assignment. Omit to keep the current client."
},
"location_id": {
"description": "Update this location. Omit to create a new one (counts toward the plan's location limit).",
"format": "uuid",
"type": "string"
},
"publish": {
"description": "Publish to the hosted embed now. Default false (saved as a draft).",
"type": "boolean"
},
"website_url": {
"anyOf": [
{
"maxLength": 500,
"type": "string"
},
{
"type": "null"
}
],
"description": "Page where the hosted embed is installed; health checks scan it. Defaults to business.url."
}
},
"required": [
"business"
],
"type": "object"
},
"name": "save_location"
},
{
"description": "Fetch a public web page and audit its structured data: every JSON-LD block and type, the LocalBusiness markup's errors and warnings, LocalSchema embeds on the page and concrete recommendations. No API key needed.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"url": {
"description": "Public http(s) address, e.g. https://example.com/contact",
"maxLength": 2000,
"minLength": 4,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "validate_page"
},
{
"description": "Validate existing LocalBusiness structured data: paste JSON-LD, a <script type=\"application/ld+json\"> tag or a whole HTML page. Reports errors, missing recommended fields and best-practice warnings. No API key needed.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"code": {
"description": "JSON-LD text, a script tag, or full page HTML",
"maxLength": 600000,
"minLength": 1,
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "validate_schema"
}
]
}What the leaf hashes
{"body":"1ebed06e0c08ecaf3cf23c66fd125b7e432dc340356f661d728267c1a0ddd635","id":1474825,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793410133840325,"prev":null,"subject":"244cf130-b3a7-4074-8961-d32760ce7f2f","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (246033 rows).
- 0xf9346469b46924cf5b5543a1a7f9f861561505f39db1afef5a5b4797f506b1a0
- 0xe669c56deab6759aba3ea271ba5f1b85712cfd9e14ec64180e973444ffbf4ccc
- 0xc5dfd99882c03fcd5db385f73f216166bdabdc8248b2d40bc7d61b323c6a5823
- 0xe1c15783dc94865def3ac1c12887bbc02f8920768c59cfe6a1a585c6f1031e5e
- 0xf1593ee8dee7ad30584855370ca9e876532665615526de46c6e747ca5660d88e
- 0x0176e6989dadb9ab645dcfa3f8dcd7b37071896b07faf3c588b32a3de6c5531f
- 0xb7ac04e2b353d15b0074b71a6ab4d258f3f04216734826765850de0069fd3c44
- 0xf09cefa7ba011693fc134c7e2636883ff51dd323ff8614708c62ff562be632f2
- 0x619e63d8b306ed5d2eaed442a16cca26c6b7b11958ebb6cea64be76aac7c58ac
- 0x29b4fe41ce5e9ef76617bd4342a86931181e437581d3407a408ac573b69d1e61
- 0x57d04e8c0dfbc48ed42709d97edd65eaa6f019b6e775d93d626d53b8f8c8fb39
- 0xe88490f2b8597b4ba31fe5cd2844c81e5da21890cc3a4b4c1dadbb6a939407e7
- 0x6c4324d3edf63f1c5818a600ecde74e6316cc337c4218b73b366a817b8e059b6
- 0xe2a6611300abdb7312e664a37fe7f1b470ff8ebe48733a7b7064c0db1f012dd5
- 0xe9e97d8cdaf19b6da06606a22b4eea548063df6bacb661abea4c37aa637b5c3b
- 0x4befbbd74452b2a3a89b7e1e809ba011f1be78aeb8153059503fda47c454d086
- 0xa1146af524f673843507e7427a575964580eef01bc0e0eae466a7920df017ab2
- 0x0504a25438f3c7932125463198ca74c5064f23f71a5c92763b3fc96a98cc8b57
- Day root
- 0x24463725d1c0d9894bd6123691d532547aaa79f0762c0e45aa6a68acf1fd71ab
- Chained
- 0x7d4824ff313dee7252a46f9d5c37b452851deb6c9f24a40c2f74ee0e53c82980
- Published
- On Arc Testnet, block 70093156: 0xedb7b832f4ebf6781b5ecd2ed241c435b862f4d3761541fa31adc1831b8c44a0