← The evidence ledger
Evidence row 2939994
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 8a117092-71f9-43f2-b779-daaf5a0660f8
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- eae86497573f4cc6ca976a6d1934d16fde80e7c71a5b1bf392eb27345c132714
- Leaf
- 0x259a01c72d77134e0768ed3f270be8f6ae7acefcf14de7f1f8df76541b4a79bc
What was observed
{
"count": 10,
"tools": [
{
"description": "Close a group order early, as its organiser. Unpaid shares are left out; the shop gets the rest as one order.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"code": {
"maxLength": 12,
"minLength": 4,
"type": "string"
},
"organiser_key": {
"minLength": 8,
"type": "string"
},
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"required": [
"code",
"organiser_key"
],
"type": "object"
},
"name": "close_group_order"
},
{
"description": "Create an order to collect in person. Returns the order id and total; pay it with pay_order. The shop emails the pickup QR to `email` once it's paid.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"email": {
"description": "The user's email. The pickup QR goes here.",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"type": "string"
},
"items": {
"items": {
"properties": {
"id": {
"description": "Item id from get_shop",
"type": "string"
},
"qty": {
"maximum": 20,
"minimum": 1,
"type": "integer"
}
},
"required": [
"id",
"qty"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"name": {
"description": "Name for the order, shown to staff",
"maxLength": 100,
"type": "string"
},
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"required": [
"items",
"email"
],
"type": "object"
},
"name": "create_pickup_order"
},
{
"description": "Find agentPickup shops to order from: near a point (lat/lng), in a suburb or city (place), or selling something (query). Returns each shop's shop_url, pickup address, hours, whether it's open now, distance, and matching menu items.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"lat": {
"description": "Where the user is: latitude. Send with lng.",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"limit": {
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"lng": {
"description": "Where the user is: longitude. Send with lat.",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"open_now": {
"description": "Only shops open now (shops without listed hours stay in).",
"type": "boolean"
},
"place": {
"description": "A suburb, street or city to match against shop addresses, e.g. \"Surry Hills\".",
"maxLength": 100,
"type": "string"
},
"query": {
"description": "What the user wants, e.g. \"flat white\" or \"croissant\". Leave out to list everything.",
"maxLength": 100,
"type": "string"
},
"radius_km": {
"description": "With lat/lng: how far to look. Default 10.",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "number"
}
},
"type": "object"
},
"name": "find_shops"
},
{
"description": "The pass link, pickup code and QR content for an order this wallet paid, by signing in with the wallet (Sign-In-With-X).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"order_id": {
"type": "string"
},
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"required": [
"order_id"
],
"type": "object"
},
"name": "get_pickup_pass"
},
{
"description": "What the shop sells (item ids and prices), where to collect, and which payments it takes.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"type": "object"
},
"name": "get_shop"
},
{
"description": "Who's in a group order, what they ordered, who has paid, and whether it has closed and been collected.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"code": {
"maxLength": 12,
"minLength": 4,
"type": "string"
},
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "group_order_status"
},
{
"description": "Add the user's items to a group order with its code. Returns the order id; pay it with pay_order before the group closes. The organiser collects everything, so the user gets a receipt, not a QR.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"code": {
"description": "The group's code",
"maxLength": 12,
"minLength": 4,
"type": "string"
},
"email": {
"description": "The user's email, for their receipt",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"type": "string"
},
"items": {
"items": {
"properties": {
"id": {
"description": "Item id from get_shop",
"type": "string"
},
"qty": {
"maximum": 20,
"minimum": 1,
"type": "integer"
}
},
"required": [
"id",
"qty"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"name": {
"description": "The user's name, shown to staff on their items",
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"required": [
"code",
"items",
"email",
"name"
],
"type": "object"
},
"name": "join_group_order"
},
{
"description": "Whether an order is waiting for payment, paid, ready to collect, collected or expired.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"order_id": {
"type": "string"
},
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"required": [
"order_id"
],
"type": "object"
},
"name": "order_status"
},
{
"description": "Pay an order in USDC over x402 from wallet 0xd253e213cE143Aa0E1e1cAfc92f7AE82c98aB3bB. This spends money: confirm the items and total with the user first. Returns the pickup pass link.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"order_id": {
"type": "string"
},
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
}
},
"required": [
"order_id"
],
"type": "object"
},
"name": "pay_order"
},
{
"description": "Start a group order (a coffee run) at a shop. Returns a code to share: each person's agent joins with it and pays for their own items. When it closes, the shop gets one combined order and the organiser is emailed its pickup QR.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"closes_in_minutes": {
"description": "Default 15",
"maximum": 240,
"minimum": 5,
"type": "integer"
},
"organiser_email": {
"description": "Where the group's pickup QR goes",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"type": "string"
},
"organiser_name": {
"description": "Who collects, shown to staff",
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"shop_url": {
"description": "An agentPickup shop's URL, as find_shops returns it. Defaults to https://agentpickup.app.",
"type": "string"
},
"title": {
"description": "e.g. \"Friday coffee run\"",
"maxLength": 60,
"type": "string"
}
},
"required": [
"organiser_name",
"organiser_email"
],
"type": "object"
},
"name": "start_group_order"
}
]
}What the leaf hashes
{"body":"eae86497573f4cc6ca976a6d1934d16fde80e7c71a5b1bf392eb27345c132714","id":2939994,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793763274966092,"prev":null,"subject":"8a117092-71f9-43f2-b779-daaf5a0660f8","subject_kind":"endpoint"}Proof
Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.