addrbookFor publishers
← The evidence ledger

Evidence row 1731407

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 768aaf57-7fee-4768-a5d5-1e56918c3b03
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
3ea79ae314b8003f4c3bdb6df929fa7af1010766a29c79335e95d67d72b10e30
Leaf
0x7820e4d6a82b01ff6e27d84d6df18c28fd50cfe206ed905dfac3e6623f62c943

What was observed

{
  "count": 8,
  "tools": [
    {
      "description": "Returns facts about Portaur LLC, the company behind portaur.com: who it is, its mission, its founder, how to reach it, and the public pages that say more. Read only. The facts are the ones Portaur publishes on its own site. It never returns prices, client names or anything private.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "about_portaur"
    },
    {
      "description": "Asks Portaur's own assistant one question about Portaur and returns its answer, written from the same facts as the website. Read only: the question is answered once and not kept. Use it for a question the other read tools do not answer. It answers only about Portaur, never gives prices, and has a daily limit; once the limit is reached it says so.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "question": {
            "description": "One question about Portaur.",
            "maxLength": 1000,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "question"
        ],
        "type": "object"
      },
      "name": "ask_portaur"
    },
    {
      "description": "Explains the ways to reach a person at Portaur and what each needs: a written message, a request for a phone call back, or an email. It also explains the confirmation email that follows a request. Read only. Call it before send_message or request_callback to learn what to ask the person for.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "contact_options"
    },
    {
      "description": "Lists the services Portaur offers, each with its name, a plain language summary and a fuller description, exactly as portaur.com states them. Read only. It never returns prices; pricing_approach explains how pricing works.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "list_services"
    },
    {
      "description": "Explains how Portaur prices its work. Read only. It returns no figures: Portaur never quotes a price through an assistant, and every project is scoped with a person.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "pricing_approach"
    },
    {
      "description": "Asks a person at Portaur to telephone the person you are helping. Needs their name, email address, phone number and the reason for the call; a preferred time window is optional. Use it only when the person asked to be called. It stores the request in Portaur's inbox and sends one email to the address given, asking the person to confirm; Portaur's phone is alerted only after they do. A person makes the call by hand: nothing ever dials or texts the number. Returns a handle for request_status. It never sends anything to anyone else and never quotes a price.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "email": {
            "description": "Their email address. Portaur sends one confirmation email here.",
            "maxLength": 255,
            "minLength": 3,
            "type": "string"
          },
          "name": {
            "description": "The name of the person who wants a call.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "phone": {
            "description": "The number to call: 7 to 15 digits, with spaces and + ( ) . allowed.",
            "maxLength": 40,
            "minLength": 7,
            "type": "string"
          },
          "reason": {
            "description": "What the call is about.",
            "maxLength": 10000,
            "minLength": 1,
            "type": "string"
          },
          "window": {
            "description": "When they would like the call, with their time zone. Optional.",
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "name",
          "email",
          "phone",
          "reason"
        ],
        "type": "object"
      },
      "name": "request_callback"
    },
    {
      "description": "Says how a request made with send_message or request_callback is doing, given the handle that tool returned: waiting for the person to confirm their email, confirmed and the owner has been told, or not found. Read only. It never returns the message or the address.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "handle": {
            "description": "The handle send_message or request_callback returned.",
            "maxLength": 32,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_-]+$",
            "type": "string"
          }
        },
        "required": [
          "handle"
        ],
        "type": "object"
      },
      "name": "request_status"
    },
    {
      "description": "Leaves a written message for a person at Portaur on behalf of the person you are helping. Needs their name, their email address and the message; a subject is optional. Use it only when the person asked you to contact Portaur. It stores the message in Portaur's inbox and sends one email to the address given, asking the person to confirm; nothing reaches a person's phone until they do. Returns a handle for request_status. It never sends anything to anyone else, never calls or texts anyone, and never quotes a price.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "description": "The message, in their words.",
            "maxLength": 10000,
            "minLength": 1,
            "type": "string"
          },
          "email": {
            "description": "Their email address. Portaur sends one confirmation email here.",
            "maxLength": 255,
            "minLength": 3,
            "type": "string"
          },
          "name": {
            "description": "The name of the person you are writing for.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "subject": {
            "description": "A short subject line. Optional.",
            "maxLength": 300,
            "type": "string"
          }
        },
        "required": [
          "name",
          "email",
          "body"
        ],
        "type": "object"
      },
      "name": "send_message"
    }
  ]
}

What the leaf hashes

{"body":"3ea79ae314b8003f4c3bdb6df929fa7af1010766a29c79335e95d67d72b10e30","id":1731407,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793501257230861,"prev":null,"subject":"768aaf57-7fee-4768-a5d5-1e56918c3b03","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (302406 rows).

  1. 0x7821daeeabc6c9f31b71bdbdc89965ecaf303141436d7a8eb113e6223a83b719
  2. 0xa7123b01c8a933fcb4ef56097e16c258abba191fb07104f0bf909512e81d3e2f
  3. 0xa6105b3c12b49f48e6dcbc2779c3f8d0a2979c9bd006ad45e7e4840a7afd33ad
  4. 0x44d9c483f3c9d3581ad5fbd9a2901a11fc95ba29db1275b568fb59610aea525e
  5. 0x042c92fab6ff20d0b24c92b54a535cfcbde04c1366b368244a2e25063209f6d9
  6. 0x6156cb6339bf85c267d1f96efc97ac74ca28d27aa3f72faea18b63e7ae4e4a41
  7. 0x3b604ab7a267b31208e97d71657b83e457e82e4c28951fda8c5e1433dc89e7e3
  8. 0x317bb6e1d6eeea6568054e7912834aec68a84e61cd9b818c2dec6be2f46b45d7
  9. 0x6efc9e3971a97541c25da65eaf409f1f5777f459ee21c58a9782e45b9a1fadc6
  10. 0x18a9fe4a84252769a1b45e45dfdaad1d4c31fd73e3427c04831273d71c55c7d1
  11. 0xe03e3d14c1f904e7d1eb74ab52589df7e9efeb3d89b2bc4c44dcd173996b9417
  12. 0x922a48efb43b08095a30ef6daed1c6435642500c842a9a7064ef609c7b17fa99
  13. 0x158885233a7e31127e2842e667a258b12d4e1809863fa73786d7994cec474080
  14. 0x7e26f771e19135838a4922e6feed7314ff3896114424cf5c9fb3c97de3545c5c
  15. 0x614dbc600bca0766e288d2a5ebb7709ac565230ac6acdc88a5e4a7a5ff53c58e
  16. 0xe329dbfb0db2c7f35334e66970a8ee37ee2d3356d34d692c10f84b6f7de65a35
  17. 0x0c618c42b286ad61acd8204aa6dcf024b8b041d3759aa585bf4e221abc39cb5d
  18. 0x6142ac48fda269c17791c79da99c2456ac6acfe98268f4d168a404fd6040c703
  19. 0x3315fd2757fdd435852cc277377234a3f3909a6d2a089d0e36f6d59aacfda910
Day root
0x7fa2cba1cf3d6b35630896f5fe1a650adb307ea2c376e80a5f2d9276b7cb5ab3
Chained
0x577ff89ba012beeff3197bcff7fa86752074bdf54205a24359cc437be2a952a4
Published
On Arc Testnet, block 70262758: 0x435bc1b9331471d72e1998f2e420983b5189d4da65ffbd6f27ef40daf5e1ea90

How to check it · This row as JSON