← The evidence ledger
Evidence row 2191121
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint a7b7af03-eaa6-45dc-9745-5294693fc550
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 5ef65d7205dd16550da243df110121910a91a10efac9960acea1f8e92347702e
- Leaf
- 0xdca2b460cd9b99369e2a48abebc02c765aaedb00c41a74b9c0d3c99b7d58c91b
What was observed
{
"count": 7,
"tools": [
{
"description": "For a pro's agent: read the job requests stored in the listing's hosted inbox. Requires the listing_id and the listing_key issued at registration. A wrong key is rejected.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"listing_id": {
"type": "string"
},
"listing_key": {
"description": "The secret key returned by register_business.",
"type": "string"
}
},
"required": [
"listing_id",
"listing_key"
],
"type": "object"
},
"name": "check_inbox"
},
{
"description": "Get the full public details of one listing by listing_id (no key needed; keys and personal contacts are never exposed).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"listing_id": {
"description": "The listing_id returned by register_business or search_pros.",
"type": "string"
}
},
"required": [
"listing_id"
],
"type": "object"
},
"name": "get_listing"
},
{
"description": "Counts only, no personal data: total listings (verified/unverified), total searches, total job requests by status, and the most recent search/request timestamps. Use this to check whether the network is being used.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "network_stats"
},
{
"description": "Register a local home-services business in the network so homeowner agents can find it and send job requests. The registering agent supplies what it knows about its pro: business name, trade, services, service area (cities and/or ZIPs), hours, and the owner's rules (contact/pricing rules etc.). If the business has its own agent endpoint (e.g. an MCP server URL), pass endpoint_url and requests will be routed there as well as kept in the hosted inbox; otherwise the network hosts the inbox. Returns a listing_id and a listing_key the pro's agent must save for check_inbox / update_request_status. New listings start unverified. This network carries no prices — never put prices in any field.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"business_name": {
"description": "Public business name.",
"type": "string"
},
"endpoint_url": {
"description": "Optional: the business's own agent endpoint URL for request routing.",
"type": "string"
},
"hours": {
"description": "Hours, e.g. '24/7' or 'Mon-Fri 8am-6pm'.",
"type": "string"
},
"rules": {
"description": "The owner's rules for requests: how to qualify, what contact info to collect, pricing policy, etc.",
"type": "string"
},
"service_area": {
"description": "Cities and/or ZIP codes served.",
"items": {
"type": "string"
},
"type": "array"
},
"services": {
"description": "Services offered, plain words.",
"items": {
"type": "string"
},
"type": "array"
},
"trade": {
"description": "Trade, e.g. 'plumbing', 'electrical', 'hvac', 'handyman'.",
"type": "string"
},
"website": {
"description": "Optional public website URL.",
"type": "string"
}
},
"required": [
"business_name",
"trade",
"services",
"service_area"
],
"type": "object"
},
"name": "register_business"
},
{
"description": "Search the network registry for local home-services pros by trade and location (city or ZIP), with an optional service keyword. Verified listings come first. Read each listing's rules before sending a request, and respect them. This network carries no prices.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"location": {
"description": "City name or ZIP code where the work is.",
"type": "string"
},
"service": {
"description": "Optional service keyword, e.g. 'water heaters'.",
"type": "string"
},
"trade": {
"description": "Trade to find, e.g. 'plumbing'.",
"type": "string"
}
},
"required": [
"trade",
"location"
],
"type": "object"
},
"name": "search_pros"
},
{
"description": "Send a structured job request to a pro using the network's standard form. Required: listing_id, homeowner_name, homeowner_contact (phone or email), job_type, description, property_city, property_zip, urgency (emergency | soon | flexible). Optional: access_notes. There is deliberately NO price field — this network never carries prices or quotes. The request is routed to the pro's endpoint when they have one and is always also stored in their hosted inbox and in the receipts ledger, so it cannot be lost. Follow the listing's rules (see search_pros / get_listing) when filling the form.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"access_notes": {
"description": "Optional: gate codes, dogs, parking, access constraints.",
"type": "string"
},
"description": {
"description": "Plain-language description of the problem / work.",
"type": "string"
},
"homeowner_contact": {
"description": "Phone number or email the pro can reach the homeowner at.",
"type": "string"
},
"homeowner_name": {
"type": "string"
},
"job_type": {
"description": "Short job type, e.g. 'water heater leaking'.",
"type": "string"
},
"listing_id": {
"type": "string"
},
"property_city": {
"type": "string"
},
"property_zip": {
"type": "string"
},
"urgency": {
"enum": [
"emergency",
"soon",
"flexible"
],
"type": "string"
}
},
"required": [
"listing_id",
"homeowner_name",
"homeowner_contact",
"job_type",
"description",
"property_city",
"property_zip",
"urgency"
],
"type": "object"
},
"name": "send_job_request"
},
{
"description": "For a pro's agent: update a job request's status (received | booked | needs_info | declined | completed). Requires listing_id + listing_key. Every change is appended to the receipts ledger.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"listing_id": {
"type": "string"
},
"listing_key": {
"type": "string"
},
"new_status": {
"enum": [
"received",
"booked",
"needs_info",
"declined",
"completed"
],
"type": "string"
},
"request_id": {
"type": "string"
}
},
"required": [
"listing_id",
"listing_key",
"request_id",
"new_status"
],
"type": "object"
},
"name": "update_request_status"
}
]
}What the leaf hashes
{"body":"5ef65d7205dd16550da243df110121910a91a10efac9960acea1f8e92347702e","id":2191121,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793643964493738,"prev":null,"subject":"a7b7af03-eaa6-45dc-9745-5294693fc550","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (444186 rows).
- 0xdca26c27eb061d69b823ea2ff56d7892171c75894c44d9eb4c8e31f883c856b7
- 0xa489e8542d158298eafedde281396d4ca17571641ba34893e5f9e86cfc8a1e04
- 0xcd72905d2fd44a169ef30b2d362e95d6da1115c7630785b3e0864814a6cc7468
- 0x64145243cb9db67f08e224a80bf21899d87e4bdf334676031af9710902657a5c
- 0xc13e9c54d558d722ebb502fe08eb036b4ab6750cc3315f988184b9d36c661c5c
- 0x43d5595c4862a0c6ebf5aa8bc3430b67615b566f483e5d534d25e3127929fbef
- 0xa2942c995f6c00df37940e040997bed9de7224bfff48248850d525c086870597
- 0xcbb0b164ff9f5885912ab19aaada9a0d66d8d3aa00f54c8fbcf67d9964a2cc30
- 0x4743e4a3f104bc9e378da74819156b8fdd1215cd0164c5ee264c3ae9894dae95
- 0x2395f0e36eb43dba7bc42dba256a5667e6054198ba75bebdf99ef8f9f43954d0
- 0xca294ce0f50d6846844820d7c7821b58e97713a6b9b072bb6a5bbaffef4f2708
- 0x01a0fcfad157f65c9dfed12bdf21e0b3759daa967023093e05700338fea51d1c
- 0x4d734793ac74750cbdf1c30c6305a901fe0ac2ddf5819c226b382460e68290cd
- 0xaed7c1080b4ff0b1fc4f851df0f2b8b4ef86b106015aa3aaf8da39a641c41a3d
- 0xa370e8e015a32408a8112e54e5f40a8a65e871bd52bbc6f25fbd1139f2ba5b11
- 0x7ddefa7d79e7640c3fed21ee4472689415182c41a0258ab04a81d60495f4c40a
- 0xdb8bd933619a267f9790faac9839143d202be46af284371cc369cdf683f897ba
- 0x98cbbf2c68ab4c0b4db782aeb88bea1f30b02178cf8b5d3d24a931d19492ea6d
- 0x252cce55f1a3d5391c16f82d7f62494429a5f69b03486d4cfcfb7b2c96d6c884
- Day root
- 0x78fecaabbe319e56f5c4b80fc02e2052e198ad24781da8832a475ff65f2002d1
- Chained
- 0xdc35957db5d1371ca382b9152878ffece28ec7c5cb4f98fd71ddb367f8b999b2
- Published
- On Arc Testnet, block 70432815: 0x56b814612eb2e3e544153df3e91e1f7199106d1e430c7d8c6b653feeb9ebe9af