addrbookFor publishers
← The evidence ledger

Evidence row 300781

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint efb0a3cf-77a0-409d-ac7f-2734ce6b854f
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
5e96d4940d59dd8d33f4e9ed7e365535a4b5dbadddd4ff3526e8c3e9e7f30087
Leaf
0xb5701baaa631a374cc9ec24f02076de723465eb7abcd2b2cf7cb2840a68b8900

What was observed

{
  "count": 11,
  "tools": [
    {
      "description": "WRITE: create a purchase order with status \"draft\" in Inventory Planner (POST /api/v1/purchase-orders). A draft is only a plan inside Inventory Planner: it is NOT sent to the vendor, NOT saved to any connected system and moves no stock or money. Purchase orders only (no transfers or assembly orders). Each line item is a variant id plus the quantity to order (replenishment).",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "currency": {
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "expected_date": {
            "description": "Expected delivery date, e.g. 2026-11-15 or 2026-11-15T10:00:00+01:00.",
            "maxLength": 40,
            "type": "string"
          },
          "items": {
            "items": {
              "properties": {
                "id": {
                  "description": "Variant id.",
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "quantity": {
                  "description": "Quantity to order.",
                  "exclusiveMinimum": 0,
                  "maximum": 10000000,
                  "type": "number"
                }
              },
              "required": [
                "id",
                "quantity"
              ],
              "type": "object"
            },
            "maxItems": 500,
            "minItems": 1,
            "type": "array"
          },
          "notes": {
            "maxLength": 2000,
            "type": "string"
          },
          "reference": {
            "description": "Your PO reference.",
            "maxLength": 200,
            "type": "string"
          },
          "vendor": {
            "description": "The vendor name, as it appears in Inventory Planner.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "warehouse": {
            "description": "The destination warehouse, as it appears in Inventory Planner.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "vendor",
          "warehouse",
          "items"
        ],
        "type": "object"
      },
      "name": "inventoryplanner_create_draft_purchase_order"
    },
    {
      "description": "One purchase order, transfer or assembly order by id, with its header fields (reference, status, vendor, warehouse, dates, addresses, totals, notes) and line items. GET /api/v1/purchase-orders/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "fields": {
            "maxLength": 2000,
            "pattern": "^[A-Za-z0-9_.,-]+$",
            "type": "string"
          },
          "purchase_order_id": {
            "description": "Inventory Planner id.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "purchase_order_id"
        ],
        "type": "object"
      },
      "name": "inventoryplanner_get_purchase_order"
    },
    {
      "description": "Whether and how a purchase order was saved to connected systems (ERP, accounting): per connection the status (success, error, run, queued), save_po flag and the PO's id and reference there. Read-only. GET /api/v1/purchase-orders/{id}/connections.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "purchase_order_id": {
            "description": "Inventory Planner id.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "purchase_order_id"
        ],
        "type": "object"
      },
      "name": "inventoryplanner_get_purchase_order_connections"
    },
    {
      "description": "The stock updates a purchase order has computed: per warehouse (wh) the items with stock_before, delta and error. for_destination false reads the source warehouse of a transfer. Read-only: nothing is pushed. GET /api/v1/purchase-orders/{id}/stock-update.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "for_destination": {
            "description": "true (default) = the destination warehouse; false = the source warehouse (transfers only).",
            "type": "boolean"
          },
          "purchase_order_id": {
            "description": "Inventory Planner id.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "purchase_order_id"
        ],
        "type": "object"
      },
      "name": "inventoryplanner_get_purchase_order_stock_update"
    },
    {
      "description": "One variant by its Inventory Planner id, with the metrics named in `fields` (default: id,sku,lead_time,review_period,replenishment,oos,under_value). GET /api/v1/variants/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "fields": {
            "maxLength": 2000,
            "pattern": "^[A-Za-z0-9_.,-]+$",
            "type": "string"
          },
          "variant_id": {
            "description": "Inventory Planner id.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "variant_id"
        ],
        "type": "object"
      },
      "name": "inventoryplanner_get_variant"
    },
    {
      "description": "One vendor's terms for a variant: cost_price, landing_cost_price, vendor_reference, vendor_name, vendor_packaging (MOQ), uom_ordering. vendor_id is the vendor name in lowercase. GET /api/v1/variants/{id}/vendors/{vendor_id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "variant_id": {
            "description": "Inventory Planner id.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "vendor_id": {
            "description": "The vendor name in lowercase, as listed by inventoryplanner_list_variant_vendors.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "variant_id",
          "vendor_id"
        ],
        "type": "object"
      },
      "name": "inventoryplanner_get_variant_vendor"
    },
    {
      "description": "The line items of a purchase order: variant id, sku, title, ordered quantity (replenishment), received quantity and received_history, cost price, tax, discount and stock snapshots. GET /api/v1/purchase-orders/{id}/items.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "fields": {
            "maxLength": 2000,
            "pattern": "^[A-Za-z0-9_.,-]+$",
            "type": "string"
          },
          "limit": {
            "description": "Results per page, 1-1000 (default 25).",
            "exclusiveMinimum": 0,
            "maximum": 1000,
            "type": "integer"
          },
          "page": {
            "description": "Page number, counting from 0 (default 0). Pass the previous reply's next_page.",
            "maximum": 1000000,
            "minimum": 0,
            "type": "integer"
          },
          "purchase_order_id": {
            "description": "Inventory Planner id.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "purchase_order_id"
        ],
        "type": "object"
      },
      "name": "inventoryplanner_list_purchase_order_items"
    },
    {
      "description": "List stock orders: purchase orders, transfers and assembly orders (the `type` field is \"po\"/empty, \"transfer\" or \"assembly\"). Filter with `filters`, e.g. {\"status\": \"OPEN\", \"vendor\": \"Acme\", \"expected_date_lt\": \"2026-11-01\"}. Default fields: id,reference,status,type,vendor,warehouse,source,created_date,expected_date,received_date,currency,total,total_ordered,total_received. GET /api/v1/purchase-orders.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "fields": {
            "maxLength": 2000,
            "pattern": "^[A-Za-z0-9_.,-]+$",
            "type": "string"
          },
          "filters": {
            "additionalProperties": {
              "anyOf": [
                {
                  "maxLength": 500,
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                }
              ]
            },
            "description": "Filters, as {\"<field>\": value} or {\"<field>_<operator>\": value}. Operators: eq (default), eqi (case-insensitive), ne, gt, gte, lt, lte, range (\"5-10\"), match (regex), in (comma-separated). Example: {\"replenishment_gt\": 0, \"sku_match\": \"^TSHIRT\"}.",
            "propertyNames": {
              "pattern": "^[A-Za-z0-9_]{1,80}$",
              "type": "string"
            },
            "type": "object"
          },
          "limit": {
            "description": "Results per page, 1-1000 (default 25).",
            "exclusiveMinimum": 0,
            "maximum": 1000,
            "type": "integer"
          },
          "page": {
            "description": "Page number, counting from 0 (default 0). Pass the previous reply's next_page.",
            "maximum": 1000000,
            "minimum": 0,
            "type": "integer"
          },
          "sort": {
            "description": "Sort by one field, e.g. {\"field\": \"under_value\", \"direction\": \"desc\"}.",
            "properties": {
              "direction": {
                "default": "asc",
                "enum": [
                  "asc",
                  "desc"
                ],
                "type": "string"
              },
              "field": {
                "pattern": "^[A-Za-z0-9_]{1,80}$",
                "type": "string"
              }
            },
            "required": [
              "field"
            ],
            "type": "object"
          }
        },
        "type": "object"
      },
      "name": "inventoryplanner_list_purchase_orders"
    },
    {
      "description": "The vendors a variant can be ordered from, with cost_price, landing_cost_price, vendor_reference (vendor SKU), vendor_name, vendor_packaging (MOQ) and uom_ordering. GET /api/v1/variants/{id}/vendors.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "variant_id": {
            "description": "Inventory Planner id.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "variant_id"
        ],
        "type": "object"
      },
      "name": "inventoryplanner_list_variant_vendors"
    },
    {
      "description": "List product variants with Inventory Planner's computed metrics (forecast, replenishment, days to sell out, lost revenue, lead time, review period and ~200 more). Always pass `fields` to pick the metrics you need (default: id,sku,lead_time,review_period,replenishment,oos,under_value; oos = forecasted days to sell out, under_value = forecasted lost revenue, replenishment = recommended order quantity). Use `filters` and `sort` for questions like \"which SKUs need reordering\". Removed variants are excluded unless include_removed. GET /api/v1/variants.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "fields": {
            "maxLength": 2000,
            "pattern": "^[A-Za-z0-9_.,-]+$",
            "type": "string"
          },
          "filters": {
            "additionalProperties": {
              "anyOf": [
                {
                  "maxLength": 500,
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                }
              ]
            },
            "description": "Filters, as {\"<field>\": value} or {\"<field>_<operator>\": value}. Operators: eq (default), eqi (case-insensitive), ne, gt, gte, lt, lte, range (\"5-10\"), match (regex), in (comma-separated). Example: {\"replenishment_gt\": 0, \"sku_match\": \"^TSHIRT\"}.",
            "propertyNames": {
              "pattern": "^[A-Za-z0-9_]{1,80}$",
              "type": "string"
            },
            "type": "object"
          },
          "include_removed": {
            "type": "boolean"
          },
          "limit": {
            "description": "Results per page, 1-1000 (default 25).",
            "exclusiveMinimum": 0,
            "maximum": 1000,
            "type": "integer"
          },
          "page": {
            "description": "Page number, counting from 0 (default 0). Pass the previous reply's next_page.",
            "maximum": 1000000,
            "minimum": 0,
            "type": "integer"
          },
          "sort": {
            "description": "Sort by one field, e.g. {\"field\": \"under_value\", \"direction\": \"desc\"}.",
            "properties": {
              "direction": {
                "default": "asc",
                "enum": [
                  "asc",
                  "desc"
                ],
                "type": "string"
              },
              "field": {
                "pattern": "^[A-Za-z0-9_]{1,80}$",
                "type": "string"
              }
            },
            "required": [
              "field"
            ],
            "type": "object"
          }
        },
        "type": "object"
      },
      "name": "inventoryplanner_list_variants"
    },
    {
      "description": "WRITE: change the reference, expected date or notes of a purchase order that is still a draft (PATCH /api/v1/purchase-orders/{id}). The order is read first and refused unless its status is \"draft\". It never changes the status, sends the order, or touches line items or received quantities.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "expected_date": {
            "description": "Expected delivery date, e.g. 2026-11-15 or 2026-11-15T10:00:00+01:00.",
            "maxLength": 40,
            "type": "string"
          },
          "notes": {
            "maxLength": 2000,
            "type": "string"
          },
          "purchase_order_id": {
            "description": "Inventory Planner id.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "reference": {
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "purchase_order_id"
        ],
        "type": "object"
      },
      "name": "inventoryplanner_update_draft_purchase_order"
    }
  ]
}

What the leaf hashes

{"body":"5e96d4940d59dd8d33f4e9ed7e365535a4b5dbadddd4ff3526e8c3e9e7f30087","id":300781,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793053648426538,"prev":null,"subject":"efb0a3cf-77a0-409d-ac7f-2734ce6b854f","subject_kind":"endpoint"}

Proof

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

  1. 0xb57061519a38c6c4a100093ce0c49da1ee439e3678076f3d4098b39463031662
  2. 0x32172b87b74bbddac670fd33b921ea598aefa880a3c1915d59949e93bca83877
  3. 0x98cf3f8c4ce0ee9d1e0bcfce3e78a13609162d5608e5aff892ed85c95d05b709
  4. 0xd15dec09d84d91a5435e2a55f7802119c885a62442adf559ba1ad784e47f99a5
  5. 0x466e2e843fc6869fbe378780a24f06ee4f3f7da316e660850e3ce832c117e114
  6. 0x3eb93501ebe84bcbcd89aca2101e5fa6d23d095ecb938d003c9ab82fa4a44b2d
  7. 0xa8d7baed445e44745b9c498c750e6071c43b53bc201e461accd753053d55eb58
  8. 0x4f70df97b82c43afef4dd705029249c95dc129b13ba5931b2741df080a73e5b4
  9. 0x4a395832b96531e5dad890a69b905731226c55bcaecd7094b9976c1e1861cde9
  10. 0x29d8926a104518c165350885a541887278c9813fe33bc83e56dff05bb21358ce
  11. 0x0f199646652e20987f8f0e4e8bd21993538b0737cd758d5cbc6ebcaaa02763a3
  12. 0x7a0f1751de1946feff7d8c8afc737dcc4d35f110809c15aa0fdb8363a9e31b2b
  13. 0x0d86419ca1dd0b62fd8b22ea2e8c74d441312cec3116a467bea429b43e026565
  14. 0x083427e39db4dd470662401f6db5db8fadf084fc4274cf8621b368416952b78b
  15. 0x1a74ed3b3756b9cd946da49701bcec120ec88645013da99fa9eea60b39e1a570
  16. 0x123ec8bee20ddc55223eeef5a4f4d6c4b6416515adbb911c56759f5cde56e452
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON