addrbookFor publishers
← The evidence ledger

Evidence row 581579

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 90a4a58a-0486-47d4-bed5-fd012dc89722
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
90484a6a018e4e4895a0d8ef47fef372b60a9bda0097f536710110aaae131447
Leaf
0x75f3644b92c47de2d8918a015c1d18c9770608e951e149e3a48640a802cebc6f

What was observed

{
  "count": 4,
  "tools": [
    {
      "description": "Use this when the user wants to create and share an itemized bill for a restaurant meal or shared purchase, with a link where participants select their own items and calculate their shares. Accept items from a receipt photo, typed list or plain-language description; no receipt or separately supplied grand total is required. For a EUR 20 pizza and two beers at EUR 5 each, submit pizza 1 x 20 and beer 2 x 5, bill total EUR 30. If no total was supplied, calculate it exactly from the stated items; clarify missing currency or ambiguous amounts, and do not invent taxes or fees. Do not call merely to read a receipt, answer simple arithmetic, collect payments or book a restaurant. Use update_bill for changes to an existing bill. Anyone with the returned share_url can view it. Supply positive quantities, nonnegative prices and one currency; each item total_price must equal unit_price times quantity, and bill total_price must equal the sum of item totals. Include separate receipt taxes in the prices of eligible items under local rules, including different food and alcohol tax groups; never create standalone tax items or add included taxes twice. When a receipt or user-supplied final total is present, keep that control total fixed. If totals differ, recheck the source items and correct extraction or arithmetic; never change the control total or invent adjustments to pass validation. After reconciling the receipt, an explicitly requested extra tip adds its exact amount to the bill total; record the receipt total and addition in info, and never add an already included tip twice. Represent requested tips as one selectable item with quantity equal to the explicitly supplied participant count and unit_price equal to total tips divided by that count; ask for a missing count and never round away a remainder. Shared items may be split into selectable portions by dividing their unchanged line total by the requested count. Reconcile discounts and tips before calling; do not guess unclear receipt values. Returns the saved bill, share_url and bill UI. Requires OAuth; no profile lookup is needed. Creation is not idempotent: do not blindly retry after a timeout or an ambiguous server error.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "info": {
            "description": "Relevant bill notes, for example shared portions or an explicitly requested tip addition; omit receipt personal data",
            "type": "string"
          },
          "items": {
            "description": "Complete bill item list in one currency; updates delete omitted items and their selections",
            "items": {
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "Preserve the returned item ID when updating an existing item; use an empty string for a new item",
                  "type": "string"
                },
                "name": {
                  "description": "Item name",
                  "type": "string"
                },
                "quantity": {
                  "description": "Positive item quantity as numeric string. For requested shared portions or tips, use the explicit participant count; each unit is one selectable share",
                  "type": "string"
                },
                "total_price": {
                  "additionalProperties": false,
                  "description": "Final item total; must equal unit_price times quantity exactly and use the bill currency",
                  "properties": {
                    "currency_code": {
                      "description": "ISO 4217 currency code, for example USD, EUR, RUB",
                      "type": "string"
                    },
                    "number": {
                      "description": "Price numeric value as string, for example 12.50",
                      "type": "string"
                    }
                  },
                  "required": [
                    "number",
                    "currency_code"
                  ],
                  "type": "object"
                },
                "unit_price": {
                  "additionalProperties": false,
                  "description": "Nonnegative final unit price after discounts including all taxes applicable to this item. Allocate separate receipt tax rows only to eligible items under local rules; never create standalone tax items or add included taxes twice",
                  "properties": {
                    "currency_code": {
                      "description": "ISO 4217 currency code, for example USD, EUR, RUB",
                      "type": "string"
                    },
                    "number": {
                      "description": "Price numeric value as string, for example 12.50",
                      "type": "string"
                    }
                  },
                  "required": [
                    "number",
                    "currency_code"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "id",
                "name",
                "quantity",
                "unit_price",
                "total_price"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "title": {
            "description": "Short bill title based on the user's description, for example Dinner with friends",
            "type": "string"
          },
          "total_price": {
            "additionalProperties": false,
            "description": "Final printed receipt total or explicit user-supplied total; keep that control total fixed. For items described in chat without a supplied total, calculate the exact item sum. Only explicit user-requested additions or removals change a reconciled total by their exact amount; record them in info. Splitting items preserves the total. Never hide inconsistent inputs or invent balancing adjustments",
            "properties": {
              "currency_code": {
                "description": "ISO 4217 currency code, for example USD, EUR, RUB",
                "type": "string"
              },
              "number": {
                "description": "Price numeric value as string, for example 12.50",
                "type": "string"
              }
            },
            "required": [
              "number",
              "currency_code"
            ],
            "type": "object"
          }
        },
        "required": [
          "title",
          "info",
          "total_price",
          "items"
        ],
        "type": "object"
      },
      "name": "create_bill"
    },
    {
      "description": "Returns the authenticated user's id, full_name, email and created_at for the bill UI to identify their own item selections. Requires OAuth and uses the user identity from the bearer token. This read-only helper is intended for calls from the app UI.",
      "inputSchema": {
        "additionalProperties": false,
        "type": "object"
      },
      "name": "get_current_user_profile"
    },
    {
      "description": "Use this when the connected user asks to select, change or clear their own items on an existing shared bill, such as one pizza portion and one tip share, for calculating their personal share. Saves absolute item selection quantities for that user; it does not change bill items, prices or the total. Do not use to create or edit a bill, select for friends, or mark a payment as completed. Use actual bill_id and item IDs; quantity 0 clears a selection, and omitted selections remain unchanged. Selections and the user's display name are visible to anyone with the bill link. Cannot select on behalf of other people or collect payments. Requires OAuth; no profile lookup is needed.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "bill_id": {
            "description": "Bill ID to update selections for",
            "type": "string"
          },
          "selections": {
            "description": "Selections by item",
            "items": {
              "additionalProperties": false,
              "properties": {
                "item_id": {
                  "description": "Bill item ID",
                  "type": "string"
                },
                "quantity": {
                  "description": "Selected quantity as numeric string",
                  "type": "string"
                }
              },
              "required": [
                "item_id",
                "quantity"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "bill_id",
          "selections"
        ],
        "type": "object"
      },
      "name": "set_bill_selections_batch"
    },
    {
      "description": "Use this when the user asks to edit an existing shared bill: correct an item, rename it, add or remove purchases, add tips by participant count, or divide a shared dish into selectable portions. Replaces the complete content of a public bill owned by the connected user, whether created from a receipt or from words in chat. Do not use for a new bill, a hypothetical question or recording which items a participant chose; use create_bill or set_bill_selections_batch for those respective actions. Supply the existing bill_id and every item to keep, preserving existing item IDs; omitted items and their selections are deleted. New items use an empty ID. Do not send a partial list to correct one item. Each item total_price must equal unit_price times quantity and bill total_price must equal the sum of item totals in one currency. Include taxes in eligible item prices under local rules, never as standalone items. Keep the printed receipt total or an explicitly corrected user-supplied total fixed; resolve mismatches by rechecking extraction and arithmetic, never by balancing adjustments. Support requested edits in chat, including tips and shared portions. For total tips of EUR 50 for 5 people, add one selectable item with quantity 5 and unit_price EUR 10; ask if participant count is missing. Explicitly requested additions or removals change the total only by their exact amount; do not add included tips twice. To split a shared item, set quantity to the requested portion count and divide its existing tax-inclusive line total by that count, preserving line and bill totals. If division is not exact in currency minor units, clarify the allocation before writing. Retained item IDs preserve selected quantities without rescaling; clarify the effect before changing the meaning of units on an already selected item. Returns the updated bill and the same share_url. Requires OAuth; no profile lookup is needed.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "bill_id": {
            "description": "Bill ID to update",
            "type": "string"
          },
          "info": {
            "description": "Relevant bill notes, for example shared portions or an explicitly requested tip addition; omit receipt personal data",
            "type": "string"
          },
          "items": {
            "description": "Complete bill item list in one currency; updates delete omitted items and their selections",
            "items": {
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "Preserve the returned item ID when updating an existing item; use an empty string for a new item",
                  "type": "string"
                },
                "name": {
                  "description": "Item name",
                  "type": "string"
                },
                "quantity": {
                  "description": "Positive item quantity as numeric string. For requested shared portions or tips, use the explicit participant count; each unit is one selectable share",
                  "type": "string"
                },
                "total_price": {
                  "additionalProperties": false,
                  "description": "Final item total; must equal unit_price times quantity exactly and use the bill currency",
                  "properties": {
                    "currency_code": {
                      "description": "ISO 4217 currency code, for example USD, EUR, RUB",
                      "type": "string"
                    },
                    "number": {
                      "description": "Price numeric value as string, for example 12.50",
                      "type": "string"
                    }
                  },
                  "required": [
                    "number",
                    "currency_code"
                  ],
                  "type": "object"
                },
                "unit_price": {
                  "additionalProperties": false,
                  "description": "Nonnegative final unit price after discounts including all taxes applicable to this item. Allocate separate receipt tax rows only to eligible items under local rules; never create standalone tax items or add included taxes twice",
                  "properties": {
                    "currency_code": {
                      "description": "ISO 4217 currency code, for example USD, EUR, RUB",
                      "type": "string"
                    },
                    "number": {
                      "description": "Price numeric value as string, for example 12.50",
                      "type": "string"
                    }
                  },
                  "required": [
                    "number",
                    "currency_code"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "id",
                "name",
                "quantity",
                "unit_price",
                "total_price"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "title": {
            "description": "Short bill title based on the user's description, for example Dinner with friends",
            "type": "string"
          },
          "total_price": {
            "additionalProperties": false,
            "description": "Final printed receipt total or explicit user-supplied total; keep that control total fixed. For items described in chat without a supplied total, calculate the exact item sum. Only explicit user-requested additions or removals change a reconciled total by their exact amount; record them in info. Splitting items preserves the total. Never hide inconsistent inputs or invent balancing adjustments",
            "properties": {
              "currency_code": {
                "description": "ISO 4217 currency code, for example USD, EUR, RUB",
                "type": "string"
              },
              "number": {
                "description": "Price numeric value as string, for example 12.50",
                "type": "string"
              }
            },
            "required": [
              "number",
              "currency_code"
            ],
            "type": "object"
          }
        },
        "required": [
          "bill_id",
          "title",
          "info",
          "total_price",
          "items"
        ],
        "type": "object"
      },
      "name": "update_bill"
    }
  ]
}

What the leaf hashes

{"body":"90484a6a018e4e4895a0d8ef47fef372b60a9bda0097f536710110aaae131447","id":581579,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793144447187855,"prev":null,"subject":"90a4a58a-0486-47d4-bed5-fd012dc89722","subject_kind":"endpoint"}

Proof

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

  1. 0x75f364626ca58ca0d30e2c511a2919559f32da574ca5b28f3962b7128a7a217a
  2. 0xfad389d905d2e4079d9bb3f3bd2e0450982064144eb1f3e90ce076eeefa83e4f
  3. 0xd9a0fb3d9f5ddb57d5b50b771a5e9c2bdcb10a214096ccf02869397d91744a53
  4. 0xc986ca50251fb61d8fad4777380013987e12691336727ec97f01e5de0bbea933
  5. 0x55ca2e4aca16a8a35492489a91e501c75fc7fc393a5f0d8392fb30c30b40ba65
  6. 0xf4ed3dd4c1da9b1e80c46d58a22f948da3e3629564519d1a83ffb3bed87aeb99
  7. 0xf44239017f5660803154d60fe1877f21401b6dd9383010fde3d2ba963f4ed7fb
  8. 0x7a6b08815371fd0bdd4093700102779fbfee49ac720ae3e38b5a8d1b54c7784c
  9. 0x7d4479630a8500bbbb9f42dfe0d3c661525d6ae3f569be2a5eddfcb21f75eea4
  10. 0x58a21ad77eb0f12e2700138a011395f72f29a249b03b15df913625a0119d05d6
  11. 0x5f257f988f0c8c8a45a1094d99dd8e8969da325eabed8aa44c6b668fac04f073
  12. 0x6834d22f4558c2279e3de3027a40f72cd350b3c4a2e54be57aff9ec2c9eaf01a
  13. 0x4094bd5bc2ab60e4518d1ee8a13455a69d7484ea62ecdca2618d0f39d3403503
  14. 0x9848c068b1371232529d2b5738fdc45b854c57da041b69ea7c9e112b14e2d9d1
  15. 0x275720ecabb68df33eee92ae4fd70572a8d952d6c61c061c2869cfc3217aa5c5
  16. 0x23cf9bb4337ee8be7fcae368fd69d24c62c11fb45882127b4cd919bb96a19996
  17. 0x0e01aa9525097570a6edaf32bfc959de57bf5c24317cf10c0716affea85ca60d
  18. 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON