addrbookFor publishers
← The evidence ledger

Evidence row 3938153

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint a7b7af03-eaa6-45dc-9745-5294693fc550
Recorded
Previous row
#2191121
Body SHA-256
97cfe127ad13c6d9ddf9b75d476960994b3433a7874f2d9bf09bcdb3fe89db0c
Leaf
0xa745f777b0b3b499e15119849285c497c238ab46bb30214e240bf6c13f4bc0e6

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. Safe to retry: if your connection drops, resend the identical form — an identical resubmission within 7 days is treated as the same job, returns the original request_id with duplicate: true, and creates no second lead. A request with any detail changed is treated as a new job.",
      "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":"97cfe127ad13c6d9ddf9b75d476960994b3433a7874f2d9bf09bcdb3fe89db0c","id":3938153,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1794024254176852,"prev":2191121,"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 (195826 rows).

  1. 0xa745236ed0c7503c5a9b6074cef3d432dd54b886daf011efd3e72d7d7ea011bc
  2. 0xb55a38fbf26ba5a6ce6bbaf7204972ca3942cd678b3dd7950876c7aeae04f8cd
  3. 0x6c824ee7e2950777edc37641d9a3e08bbcc1c80029ae280f84cfdc187e1f6f04
  4. 0x425a448394a82281b8618c8a2234b8e46f983b51708fb274243840bd5b04851a
  5. 0xff7aa24e8abd0076d4f8f3833aba6ffd64c1bd7e108c95387da3a07b4c337cdd
  6. 0xfddfa72d78195d3db3e185ff94afa0c9d9f28128bf8a49aaac204b2bac467c3e
  7. 0x67595bfb9409767f3ded2fc14d88f27d03e46cd930182a419cd72addd1e2db72
  8. 0x335ce31c00b205992a14107cba5eb30fe85408ad4b200b44cab1687bbb6f015c
  9. 0xf7e043f98f2a296588ac54677d9f01e6e209d1f0ac7043a9cf564b6d84d3ed59
  10. 0xb65f027236362ae9adf07893ae9109fe368648adf75b4f3dd7951595883d1005
  11. 0x98a952064febcf4d4db4baefba5c1520e7dd8d87d092a40c338a8f924d1160b5
  12. 0x0e05b8a1c171fcf7fcc00d4b079ae74b6c5874651adff202df41b849af527cc0
  13. 0xad78c00a716aabee544cc17bea66208d0f22b828b84f51b9fc6f8227d10367cc
  14. 0x48aed00eefc8f84d1248774dbdfabcbf6a8a32d07ba72d541c50e091461df992
  15. 0xd43f13f6774b4e9adf7a95c9811fb4fe9b9256ca73bc6f20577cb4cb147ba0eb
  16. 0x39ddab61a3a1eeffcb2f54acf6ff87eaec375674f3e77f00c342826d4e1bf071
  17. 0x3b69f6d98c91b21287021db092e52491474f0d08438393ac130d6a3c273bcd4a
  18. 0xff23fa8a9de3f957315ef0dfe7e8d8f6b1a51dae05fef7615c59794e019ff05c
Day root
0x17da9e85e1b138541355d33543ff34e3503cd3a49d37728fb53643e2a0416a2d
Chained
0xed34bd4af17282643de8cb9591c84d0aa1b39e1e9ae9864941e543f5a15718cb
Published
On Arc Testnet, block 71280839: 0xc3f6784179e0ca32236ba89472473e882a81d03fcc5ce27ca58ded2e01e112aa

How to check it · This row as JSON