{"id":301029,"recorded_at":"2026-10-26T22:29:50.443170Z","observed_at":"2026-10-26T22:29:50.443106Z","subject_kind":"endpoint","subject":"5a602987-2e55-410f-8ca0-d79dfe7f2081","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":21,"tools":[{"description":"Fetch a single customer by id, with visits, total spent and points balance. Loyverse: GET /customers/{customer_id}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"customer_id":{"description":"The customer id (UUID).","minLength":1,"type":"string"}},"required":["customer_id"],"type":"object"},"name":"loyverse_get_customer"},{"description":"Fetch a single catalog item by id, with its variants. Loyverse: GET /items/{item_id}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"item_id":{"description":"The item id (UUID).","minLength":1,"type":"string"}},"required":["item_id"],"type":"object"},"name":"loyverse_get_item"},{"description":"Fetch the merchant account this token belongs to — business name, email, country and currency. A cheap way to confirm the token works. Loyverse: GET /merchant/.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"name":"loyverse_get_merchant"},{"description":"Fetch a single receipt by its receipt number (e.g. 2-1008), with line items, modifiers, discounts, taxes and payments. Loyverse: GET /receipts/{receipt_number}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"receipt_number":{"description":"The receipt number, e.g. 2-1008.","minLength":1,"type":"string"}},"required":["receipt_number"],"type":"object"},"name":"loyverse_get_receipt"},{"description":"List item categories. Loyverse: GET /categories.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"categories_ids":{"description":"Comma-separated list of category ids to return.","type":"string"},"cursor":{"description":"The `cursor` from the previous page's response. Omit for the first page.","type":"string"},"limit":{"description":"Page size, 1-250 (Loyverse default 50).","maximum":250,"minimum":1,"type":"integer"},"show_deleted":{"description":"Also return soft-deleted records (they carry deleted_at).","type":"boolean"}},"type":"object"},"name":"loyverse_list_categories"},{"description":"List loyalty customers, newest first, with visits, total spent and points balance. Filter by email or ids. Loyverse: GET /customers.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"created_at_max":{"description":"Only records created at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"created_at_min":{"description":"Only records created at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"cursor":{"description":"The `cursor` from the previous page's response. Omit for the first page.","type":"string"},"customer_ids":{"description":"Comma-separated list of customer ids to return.","type":"string"},"email":{"description":"Only the customer with this email.","type":"string"},"limit":{"description":"Page size, 1-250 (Loyverse default 50).","maximum":250,"minimum":1,"type":"integer"},"updated_at_max":{"description":"Only records updated at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"updated_at_min":{"description":"Only records updated at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"}},"type":"object"},"name":"loyverse_list_customers"},{"description":"List configured discounts (fixed/variable percent or amount, discount-by-points) and where they apply. Loyverse: GET /discounts.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"created_at_max":{"description":"Only records created at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"created_at_min":{"description":"Only records created at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"discount_ids":{"description":"Comma-separated list of discount ids to return.","type":"string"},"show_deleted":{"description":"Also return soft-deleted records (they carry deleted_at).","type":"boolean"},"updated_at_max":{"description":"Only records updated at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"updated_at_min":{"description":"Only records updated at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"}},"type":"object"},"name":"loyverse_list_discounts"},{"description":"List employees, with the stores each can access and whether they are the owner. Loyverse: GET /employees.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"created_at_max":{"description":"Only records created at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"created_at_min":{"description":"Only records created at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"cursor":{"description":"The `cursor` from the previous page's response. Omit for the first page.","type":"string"},"employee_ids":{"description":"Comma-separated list of employee ids to return.","type":"string"},"limit":{"description":"Page size, 1-250 (Loyverse default 50).","maximum":250,"minimum":1,"type":"integer"},"show_deleted":{"description":"Also return soft-deleted records (they carry deleted_at).","type":"boolean"},"updated_at_max":{"description":"Only records updated at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"updated_at_min":{"description":"Only records updated at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"}},"type":"object"},"name":"loyverse_list_employees"},{"description":"List current stock (`in_stock`) per variant per store. Filter by stores and/or variants — the answer to 'what is running low?'. Loyverse: GET /inventory.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"cursor":{"description":"The `cursor` from the previous page's response. Omit for the first page.","type":"string"},"limit":{"description":"Page size, 1-250 (Loyverse default 50).","maximum":250,"minimum":1,"type":"integer"},"store_ids":{"description":"Comma-separated store ids.","type":"string"},"updated_at_max":{"description":"Only levels updated at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"updated_at_min":{"description":"Only levels updated at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"variant_ids":{"description":"Comma-separated variant ids.","type":"string"}},"type":"object"},"name":"loyverse_list_inventory"},{"description":"List catalog items with their variants (SKU, barcode, price, cost, per-store pricing), category, taxes and modifiers. Loyverse: GET /items.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"created_at_max":{"description":"Only records created at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"created_at_min":{"description":"Only records created at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"cursor":{"description":"The `cursor` from the previous page's response. Omit for the first page.","type":"string"},"items_ids":{"description":"Comma-separated list of item ids to return.","type":"string"},"limit":{"description":"Page size, 1-250 (Loyverse default 50).","maximum":250,"minimum":1,"type":"integer"},"show_deleted":{"description":"Also return soft-deleted records (they carry deleted_at).","type":"boolean"},"updated_at_max":{"description":"Only records updated at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"updated_at_min":{"description":"Only records updated at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"}},"type":"object"},"name":"loyverse_list_items"},{"description":"List the payment types (cash, card, integrated terminals…) and the stores where each is available. Receipt payments reference these ids. Loyverse: GET /payment_types.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"created_at_max":{"description":"Only records created at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"created_at_min":{"description":"Only records created at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"payment_type_ids":{"description":"Comma-separated list of payment type ids to return.","type":"string"},"show_deleted":{"description":"Also return soft-deleted records (they carry deleted_at).","type":"boolean"},"updated_at_max":{"description":"Only records updated at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"updated_at_min":{"description":"Only records updated at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"}},"type":"object"},"name":"loyverse_list_payment_types"},{"description":"List sales and refund receipts, newest first, with line items, payments, discounts and taxes. Filter by store, time range or receipt numbers — the core of any sales question. Loyverse: GET /receipts.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"before_receipt_number":{"description":"Only receipts created up to the receipt with this number.","type":"string"},"created_at_max":{"description":"Only records created at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"created_at_min":{"description":"Only records created at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"cursor":{"description":"The `cursor` from the previous page's response. Omit for the first page.","type":"string"},"limit":{"description":"Page size, 1-250 (Loyverse default 50).","maximum":250,"minimum":1,"type":"integer"},"order":{"description":"Only receipts with this order name/number.","type":"string"},"receipt_numbers":{"description":"Comma-separated receipt numbers to return, e.g. 2-1008,2-1009.","type":"string"},"since_receipt_number":{"description":"Only receipts created at or after the receipt with this number.","type":"string"},"source":{"description":"Only receipts from this source (e.g. an app name).","type":"string"},"store_id":{"description":"Only receipts from this store.","type":"string"},"updated_at_max":{"description":"Only records updated at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"updated_at_min":{"description":"Only records updated at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"}},"type":"object"},"name":"loyverse_list_receipts"},{"description":"List cash-register shifts with their cash, gross/net sales, refunds, discounts, taxes, per-payment-type totals and pay-in/pay-out movements — the end-of-day view. Loyverse: GET /shifts.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"created_at_max":{"description":"Only shifts opened at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"created_at_min":{"description":"Only shifts opened at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"cursor":{"description":"The `cursor` from the previous page's response. Omit for the first page.","type":"string"},"limit":{"description":"Page size, 1-250 (Loyverse default 50).","maximum":250,"minimum":1,"type":"integer"},"store_ids":{"description":"Comma-separated list of store ids to return.","type":"string"}},"type":"object"},"name":"loyverse_list_shifts"},{"description":"List the merchant's stores (locations) with their addresses. Store ids are what the receipt, shift and inventory filters take. Loyverse: GET /stores.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"created_at_max":{"description":"Only records created at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"created_at_min":{"description":"Only records created at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"show_deleted":{"description":"Also return soft-deleted records (they carry deleted_at).","type":"boolean"},"store_ids":{"description":"Comma-separated list of store ids to return.","type":"string"},"updated_at_max":{"description":"Only records updated at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"updated_at_min":{"description":"Only records updated at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"}},"type":"object"},"name":"loyverse_list_stores"},{"description":"List suppliers with their contact details. Loyverse: GET /suppliers/.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"cursor":{"description":"The `cursor` from the previous page's response. Omit for the first page.","type":"string"},"limit":{"description":"Page size, 1-250 (Loyverse default 50).","maximum":250,"minimum":1,"type":"integer"},"show_deleted":{"description":"Also return soft-deleted records (they carry deleted_at).","type":"boolean"},"suppliers_ids":{"description":"Comma-separated list of supplier ids to return.","type":"string"}},"type":"object"},"name":"loyverse_list_suppliers"},{"description":"List taxes with their rate, whether they are INCLUDED in or ADDED to the price, and the stores they apply in. Loyverse: GET /taxes.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"created_at_max":{"description":"Only records created at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"created_at_min":{"description":"Only records created at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"show_deleted":{"description":"Also return soft-deleted records (they carry deleted_at).","type":"boolean"},"tax_ids":{"description":"Comma-separated list of tax ids to return.","type":"string"},"updated_at_max":{"description":"Only records updated at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"updated_at_min":{"description":"Only records updated at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"}},"type":"object"},"name":"loyverse_list_taxes"},{"description":"List item variants — the sellable SKUs — optionally for given items or one SKU. Variant ids are what inventory levels are keyed on. Loyverse: GET /variants.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"created_at_max":{"description":"Only records created at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"created_at_min":{"description":"Only records created at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"cursor":{"description":"The `cursor` from the previous page's response. Omit for the first page.","type":"string"},"items_ids":{"description":"Comma-separated item ids whose variants to return.","type":"string"},"limit":{"description":"Page size, 1-250 (Loyverse default 50).","maximum":250,"minimum":1,"type":"integer"},"show_deleted":{"description":"Also return soft-deleted records (they carry deleted_at).","type":"boolean"},"sku":{"description":"Only the variant with this SKU.","type":"string"},"updated_at_max":{"description":"Only records updated at or before this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"updated_at_min":{"description":"Only records updated at or after this time (ISO 8601 UTC, e.g. 2026-03-30T18:30:00.000Z).","type":"string"},"variants_ids":{"description":"Comma-separated list of variant ids to return.","type":"string"}},"type":"object"},"name":"loyverse_list_variants"},{"description":"Set the ABSOLUTE stock (`stock_after`) of one or more variants at given stores — e.g. after a stock count. This overwrites the current level rather than adding to it; read the current levels with loyverse_list_inventory first so they can be restored. Loyverse: POST /inventory.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"inventory_levels":{"description":"The stock levels to set.","items":{"properties":{"stock_after":{"description":"The new stock level for that variant at that store.","type":"number"},"store_id":{"description":"The store id.","minLength":1,"type":"string"},"variant_id":{"description":"The item variant id.","minLength":1,"type":"string"}},"required":["variant_id","store_id","stock_after"],"type":"object"},"maxItems":250,"minItems":1,"type":"array"}},"required":["inventory_levels"],"type":"object"},"name":"loyverse_set_inventory_levels"},{"description":"Create an item category, or rename/recolor one by passing its `id`. Loyverse: POST /categories.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"color":{"description":"Display color on the POS.","enum":["GREY","RED","PINK","ORANGE","GREEN","BLUE","PURPLE"],"type":"string"},"id":{"description":"Existing category id to update. Omit to create.","type":"string"},"name":{"description":"The category name (required).","maxLength":64,"minLength":1,"type":"string"}},"required":["name"],"type":"object"},"name":"loyverse_upsert_category"},{"description":"Create a loyalty customer, or update one by passing its `id`. Loyverse does not document whether omitted fields survive an update, so on update fetch the customer first and send the full record. Loyverse: POST /customers.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"address":{"description":"Street address.","maxLength":192,"type":"string"},"city":{"description":"City, town or village.","maxLength":64,"type":"string"},"country_code":{"description":"Two-letter ISO 3166-1 alpha-2 country code, e.g. US.","pattern":"^[A-Za-z]{2}$","type":"string"},"customer_code":{"description":"Your own customer code (e.g. a loyalty card number).","maxLength":40,"type":"string"},"email":{"description":"Email address.","maxLength":100,"type":"string"},"id":{"description":"Existing customer id to update. Omit to create.","type":"string"},"name":{"description":"The customer's name (required).","maxLength":64,"minLength":1,"type":"string"},"note":{"description":"A note about the customer.","maxLength":255,"type":"string"},"phone_number":{"description":"Phone number.","maxLength":15,"type":"string"},"postal_code":{"description":"Postal / ZIP code.","maxLength":20,"type":"string"},"region":{"description":"Province, state or prefecture.","maxLength":64,"type":"string"}},"required":["name"],"type":"object"},"name":"loyverse_upsert_customer"},{"description":"Create a supplier, or update one by passing its `id`. Loyverse does not document whether omitted fields survive an update, so on update send the full record. Loyverse: POST /suppliers/.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"address_1":{"description":"Address line 1.","maxLength":192,"type":"string"},"address_2":{"description":"Address line 2.","maxLength":192,"type":"string"},"city":{"description":"City, town or village.","maxLength":64,"type":"string"},"contact":{"description":"Contact person's name.","maxLength":64,"type":"string"},"country_code":{"description":"Two-letter ISO 3166-1 alpha-2 country code, e.g. US.","pattern":"^[A-Za-z]{2}$","type":"string"},"email":{"description":"Email address.","maxLength":100,"type":"string"},"id":{"description":"Existing supplier id to update. Omit to create.","type":"string"},"name":{"description":"The supplier company name (required).","maxLength":64,"minLength":1,"type":"string"},"note":{"description":"A note about the supplier.","maxLength":500,"type":"string"},"phone_number":{"description":"Phone number.","maxLength":15,"type":"string"},"postal_code":{"description":"Postal / ZIP code.","maxLength":20,"type":"string"},"region":{"description":"Province, state or prefecture.","maxLength":64,"type":"string"},"website":{"description":"Website URL.","type":"string"}},"required":["name"],"type":"object"},"name":"loyverse_upsert_supplier"}]},"body_sha256":"7bd0108bd4d634676273a42a878b8cceedeb5d3d5e111e4237bb265f3d89d688","prev_id":null,"leaf":"0x987f84ea566e92133864e103ea19ac86d67710107237d7b7d87b4cf3830b7dca","leaf_text":"{\"body\":\"7bd0108bd4d634676273a42a878b8cceedeb5d3d5e111e4237bb265f3d89d688\",\"id\":301029,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793053790443106,\"prev\":null,\"subject\":\"5a602987-2e55-410f-8ca0-d79dfe7f2081\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-26","leaves":296695,"root":"0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8","chained":"0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a","anchor_chain":"eip155:5042002","anchor_tx":"0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae","anchor_block":69251483},"proof":["0x987f9ae081b9f9a4d045e4ce00802966f27e1329d2e404f56118421e458144dc","0xc1c211502727ffe8e0557053d0d922bacb0095c96cb5a2ba0b59934d89203a45","0x06844a5bdbb0e9bb3dcd9e26bc03827d1f67d6363cd0e70b6452462cf8d0a3c7","0x148bc1608bade199b69f9ea3406184d7e3328f0ce53d3b9ee86036f158e66d37","0x0877b56205a5111c08be5117d98624c038ff8238de726070df2bcb2410a51cb2","0x9f8aac80039044b63729cebbf2ef934378e73428bda975c0ac6ac46c06fb20bb","0xa78b5ac975fe8581a92f8aacf24396cbb66bcd041b3465d45ab2ff8500d4bb41","0x3ececa815be408dc33e8eeb8377470e8ca9c67899cd4ecfb2ffbcb274b4f5759","0x2c7a0024c244445480437f098e9186841ede0e8da210faa94f0d6ec5ec3b80f2","0x327a6439faefa2f0179481584b4dc13431843cd957e9758d56e5cb404f7b22ff","0xdc8fbefd31fb9903d70279fafdb3f8c1ade2281bea30bd73cec515e9ff4113ed","0x6ae9e6ee1b544d831982666bd3570457659e78fc0064894d7ec23f971a37ff2f","0x239fd39716710e7412bd120c373072b4c0d8b11bb9ee431dad62a2ce57b3d6f4","0x49062da782c4f73855ddd5fdd51840749f928b5f17d1ce75ac50f2d829104e72","0xf0bd63870f0bb378fa300bd33563050dcb7b3e02b44eb3ee550c1c534ec4b246","0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f","0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9","0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f","0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a"]}