addrbookFor publishers
← 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).

  1. 0xdca26c27eb061d69b823ea2ff56d7892171c75894c44d9eb4c8e31f883c856b7
  2. 0xa489e8542d158298eafedde281396d4ca17571641ba34893e5f9e86cfc8a1e04
  3. 0xcd72905d2fd44a169ef30b2d362e95d6da1115c7630785b3e0864814a6cc7468
  4. 0x64145243cb9db67f08e224a80bf21899d87e4bdf334676031af9710902657a5c
  5. 0xc13e9c54d558d722ebb502fe08eb036b4ab6750cc3315f988184b9d36c661c5c
  6. 0x43d5595c4862a0c6ebf5aa8bc3430b67615b566f483e5d534d25e3127929fbef
  7. 0xa2942c995f6c00df37940e040997bed9de7224bfff48248850d525c086870597
  8. 0xcbb0b164ff9f5885912ab19aaada9a0d66d8d3aa00f54c8fbcf67d9964a2cc30
  9. 0x4743e4a3f104bc9e378da74819156b8fdd1215cd0164c5ee264c3ae9894dae95
  10. 0x2395f0e36eb43dba7bc42dba256a5667e6054198ba75bebdf99ef8f9f43954d0
  11. 0xca294ce0f50d6846844820d7c7821b58e97713a6b9b072bb6a5bbaffef4f2708
  12. 0x01a0fcfad157f65c9dfed12bdf21e0b3759daa967023093e05700338fea51d1c
  13. 0x4d734793ac74750cbdf1c30c6305a901fe0ac2ddf5819c226b382460e68290cd
  14. 0xaed7c1080b4ff0b1fc4f851df0f2b8b4ef86b106015aa3aaf8da39a641c41a3d
  15. 0xa370e8e015a32408a8112e54e5f40a8a65e871bd52bbc6f25fbd1139f2ba5b11
  16. 0x7ddefa7d79e7640c3fed21ee4472689415182c41a0258ab04a81d60495f4c40a
  17. 0xdb8bd933619a267f9790faac9839143d202be46af284371cc369cdf683f897ba
  18. 0x98cbbf2c68ab4c0b4db782aeb88bea1f30b02178cf8b5d3d24a931d19492ea6d
  19. 0x252cce55f1a3d5391c16f82d7f62494429a5f69b03486d4cfcfb7b2c96d6c884
Day root
0x78fecaabbe319e56f5c4b80fc02e2052e198ad24781da8832a475ff65f2002d1
Chained
0xdc35957db5d1371ca382b9152878ffece28ec7c5cb4f98fd71ddb367f8b999b2
Published
On Arc Testnet, block 70432815: 0x56b814612eb2e3e544153df3e91e1f7199106d1e430c7d8c6b653feeb9ebe9af

How to check it · This row as JSON