addrbookFor publishers
← The evidence ledger

Evidence row 2539332

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 8a0cc4ed-9a1d-44ae-9590-61d7dd08001c
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
5ec9bbfeda624d0a5dfedb097226bdafc18835e948bdbd7bebb01a4c7950db83
Leaf
0x2f19eedb1c486e9389c9b2b2b8b4467e4fb25fbba83ace4343b11df73970d7a9

What was observed

{
  "count": 11,
  "tools": [
    {
      "description": "Use this when someone asks how many units to order, given demand, lead time, stock on hand and on order, and supplier rules such as MOQ, case pack or a minimum order value. Sizes the line the way Forthcast sizes a purchase-order line and lists every rule that changed the quantity. Works without a connected store.",
      "inputSchema": {
        "properties": {
          "average_daily_demand": {
            "anyOf": [
              {
                "minimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Average units sold per day, if no daily history.",
            "title": "Average Daily Demand"
          },
          "case_pack": {
            "anyOf": [
              {
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Units per case; quantity is rounded up to whole cases.",
            "title": "Case Pack"
          },
          "cover_days_target": {
            "anyOf": [
              {
                "maximum": 3000,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional explicit days of cover to buy instead of the default weeks-of-supply target.",
            "title": "Cover Days Target"
          },
          "daily_demand": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "maxItems": 365,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Daily units sold, oldest first, 14 to 365 values.",
            "title": "Daily Demand"
          },
          "demand_std_daily": {
            "anyOf": [
              {
                "minimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Standard deviation of daily demand, if known.",
            "title": "Demand Std Daily"
          },
          "lead_time_days": {
            "description": "Supplier lead time in days.",
            "maximum": 730,
            "minimum": 1,
            "title": "Lead Time Days",
            "type": "integer"
          },
          "min_order_value": {
            "anyOf": [
              {
                "minimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Supplier minimum order value in currency; needs unit_cost.",
            "title": "Min Order Value"
          },
          "moq": {
            "anyOf": [
              {
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Supplier minimum order quantity for this item.",
            "title": "Moq"
          },
          "on_hand": {
            "description": "Units available now.",
            "title": "On Hand",
            "type": "number"
          },
          "on_order": {
            "default": 0,
            "description": "Units already on open purchase orders.",
            "minimum": 0,
            "title": "On Order",
            "type": "number"
          },
          "service_level": {
            "default": 0.95,
            "description": "Target in-stock probability, 0.50 to 0.99.",
            "maximum": 99,
            "minimum": 0.5,
            "title": "Service Level",
            "type": "number"
          },
          "unit_cost": {
            "anyOf": [
              {
                "minimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Purchase cost per unit.",
            "title": "Unit Cost"
          }
        },
        "required": [
          "lead_time_days",
          "on_hand"
        ],
        "title": "calculate_order_quantityArguments",
        "type": "object"
      },
      "name": "calculate_order_quantity"
    },
    {
      "description": "Use this when someone asks how much safety stock to hold or at what stock level to reorder a product. Give a daily demand history (best) or an average daily demand with its variability, plus the supplier lead time and a service level. Returns safety stock, lead-time demand and the reorder point with Forthcast's formula and assumptions. Works without a connected store.",
      "inputSchema": {
        "properties": {
          "average_daily_demand": {
            "anyOf": [
              {
                "minimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Average units sold per day, if no daily history.",
            "title": "Average Daily Demand"
          },
          "daily_demand": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "maxItems": 365,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Daily units sold, oldest first, 14 to 365 values.",
            "title": "Daily Demand"
          },
          "demand_std_daily": {
            "anyOf": [
              {
                "minimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Standard deviation of daily demand; assumed sqrt(average) when omitted.",
            "title": "Demand Std Daily"
          },
          "lead_time_days": {
            "description": "Supplier lead time in days.",
            "maximum": 730,
            "minimum": 1,
            "title": "Lead Time Days",
            "type": "integer"
          },
          "service_level": {
            "default": 0.95,
            "description": "Target in-stock probability, 0.50 to 0.99 (95 also accepted).",
            "maximum": 99,
            "minimum": 0.5,
            "title": "Service Level",
            "type": "number"
          }
        },
        "required": [
          "lead_time_days"
        ],
        "title": "calculate_reorder_pointArguments",
        "type": "object"
      },
      "name": "calculate_reorder_point"
    },
    {
      "description": "Use this when someone asks what an inventory planning term means or how Forthcast calculates it: safety stock, reorder point, days of cover, urgency bands, service level, ABC class, EOQ, order quantity, fill rate, on-time rate, lead time, intermittent demand. Works without a connected store.",
      "inputSchema": {
        "properties": {
          "metric": {
            "description": "Metric name, for example 'reorder point' or 'days of cover'.",
            "maxLength": 64,
            "minLength": 1,
            "title": "Metric",
            "type": "string"
          }
        },
        "required": [
          "metric"
        ],
        "title": "explain_inventory_metricArguments",
        "type": "object"
      },
      "name": "explain_inventory_metric"
    },
    {
      "description": "Use this when the merchant wants a bounded list of their items filtered by urgency, assigned supplier, or Shopify vendor, such as all excess items or a supplier's critical SKUs. Requires a connected Forthcast store; the assistant will prompt to sign in.",
      "inputSchema": {
        "properties": {
          "limit": {
            "default": 15,
            "description": "Maximum items to return.",
            "maximum": 30,
            "minimum": 1,
            "title": "Limit",
            "type": "integer"
          },
          "supplier": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional case-insensitive assigned supplier name.",
            "title": "Supplier"
          },
          "urgency": {
            "anyOf": [
              {
                "enum": [
                  "critical",
                  "warning",
                  "ok",
                  "excess",
                  "no-demand"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional Forthcast urgency bucket.",
            "title": "Urgency"
          },
          "vendor": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional case-insensitive Shopify vendor or brand.",
            "title": "Vendor"
          }
        },
        "title": "find_inventory_itemsArguments",
        "type": "object"
      },
      "name": "find_inventory_items"
    },
    {
      "description": "Use this when someone pastes past sales numbers and asks what to expect next month, next quarter or next season. Takes 3 to 365 monthly, weekly or daily totals (oldest first) and returns the next periods with an 80 percent range, the model used (Holt-Winters seasonal, damped trend, Croston for intermittent demand, or moving average) and why. Works without a connected store.",
      "inputSchema": {
        "properties": {
          "horizon": {
            "default": 6,
            "description": "Periods to forecast: up to 12 monthly, 26 weekly, 90 daily.",
            "maximum": 90,
            "minimum": 1,
            "title": "Horizon",
            "type": "integer"
          },
          "period": {
            "default": "monthly",
            "description": "Granularity of the sales list.",
            "enum": [
              "monthly",
              "weekly",
              "daily"
            ],
            "title": "Period",
            "type": "string"
          },
          "sales": {
            "description": "Past sales totals per period, oldest first.",
            "items": {
              "type": "number"
            },
            "maxItems": 365,
            "minItems": 3,
            "title": "Sales",
            "type": "array"
          }
        },
        "required": [
          "sales"
        ],
        "title": "forecast_demand_seriesArguments",
        "type": "object"
      },
      "name": "forecast_demand_series"
    },
    {
      "description": "Use this when the merchant names an exact SKU and needs its live stock, forecast demand, days of supply, reorder point, suggested quantity, supplier, or open-PO coverage. Requires a connected Forthcast store; the assistant will prompt to sign in.",
      "inputSchema": {
        "properties": {
          "sku": {
            "description": "Exact merchant SKU code.",
            "maxLength": 255,
            "minLength": 1,
            "title": "Sku",
            "type": "string"
          }
        },
        "required": [
          "sku"
        ],
        "title": "get_inventory_itemArguments",
        "type": "object"
      },
      "name": "get_inventory_item"
    },
    {
      "description": "Use this when the merchant asks for a broad inventory health check, an executive summary, their urgent/excess/no-demand counts, inventory valuation, or current PO workload. Requires a connected Forthcast store; the assistant will prompt to sign in.",
      "inputSchema": {
        "properties": {},
        "title": "get_inventory_overviewArguments",
        "type": "object"
      },
      "name": "get_inventory_overview"
    },
    {
      "description": "Use this when the merchant asks what to reorder, how much to buy, or which critical/warning items need action. Quantities reuse Forthcast's live lead-time, MOQ, case-pack, open-PO, location, and supplier minimum-order-value logic; this tool does not create a PO. Requires a connected Forthcast store; the assistant will prompt to sign in.",
      "inputSchema": {
        "properties": {
          "limit": {
            "default": 15,
            "description": "Maximum recommendations to return.",
            "maximum": 30,
            "minimum": 1,
            "title": "Limit",
            "type": "integer"
          },
          "priority": {
            "default": "all",
            "description": "Return order-now items, plan-ahead items, or both.",
            "enum": [
              "critical",
              "warning",
              "all"
            ],
            "title": "Priority",
            "type": "string"
          },
          "supplier": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional case-insensitive supplier name filter.",
            "title": "Supplier"
          }
        },
        "title": "get_reorder_recommendationsArguments",
        "type": "object"
      },
      "name": "get_reorder_recommendations"
    },
    {
      "description": "Use this when the merchant asks how suppliers are performing or wants rolling 24-month on-time rate, fill rate, actual versus promised lead time, spend, or invoice price accuracy, plus current open and overdue purchase-order counts. Requires a connected Forthcast store; the assistant will prompt to sign in.",
      "inputSchema": {
        "properties": {
          "limit": {
            "default": 20,
            "description": "Maximum suppliers to return.",
            "maximum": 50,
            "minimum": 1,
            "title": "Limit",
            "type": "integer"
          },
          "supplier": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional case-insensitive supplier name filter.",
            "title": "Supplier"
          }
        },
        "title": "get_supplier_performanceArguments",
        "type": "object"
      },
      "name": "get_supplier_performance"
    },
    {
      "description": "Use this when the merchant asks what is ordered, drafted, open, partially received, received, cancelled, overdue, expected, or associated with a named supplier. Results are grouped by PO; this tool does not approve, receive, cancel, or otherwise modify an order. Requires a connected Forthcast store; the assistant will prompt to sign in.",
      "inputSchema": {
        "properties": {
          "limit": {
            "default": 10,
            "description": "Maximum grouped purchase orders to return.",
            "maximum": 40,
            "minimum": 1,
            "title": "Limit",
            "type": "integer"
          },
          "status": {
            "anyOf": [
              {
                "enum": [
                  "draft",
                  "open",
                  "partial",
                  "received",
                  "cancelled"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional exact purchase-order status.",
            "title": "Status"
          },
          "supplier": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Optional case-insensitive supplier name filter.",
            "title": "Supplier"
          }
        },
        "title": "list_purchase_ordersArguments",
        "type": "object"
      },
      "name": "list_purchase_orders"
    },
    {
      "description": "Use this when someone shares a list or CSV of products with stock and sales rates and asks which need reordering, which are overstocked, or how healthy the inventory is. Up to 500 rows. Applies Forthcast's urgency bands (Order now, Plan ahead, On track, Excess, No demand), reorder points, suggested quantities and inventory value. Works without a connected store.",
      "inputSchema": {
        "$defs": {
          "InventoryRowInput": {
            "additionalProperties": false,
            "properties": {
              "demand_per_day": {
                "anyOf": [
                  {
                    "minimum": 0,
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Average units sold per day.",
                "title": "Demand Per Day"
              },
              "demand_per_month": {
                "anyOf": [
                  {
                    "minimum": 0,
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Average units sold per month (if no daily figure).",
                "title": "Demand Per Month"
              },
              "demand_std_daily": {
                "anyOf": [
                  {
                    "minimum": 0,
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Standard deviation of daily demand, if known.",
                "title": "Demand Std Daily"
              },
              "lead_time_days": {
                "anyOf": [
                  {
                    "maximum": 730,
                    "minimum": 1,
                    "type": "integer"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Supplier lead time in days.",
                "title": "Lead Time Days"
              },
              "on_hand": {
                "description": "Units available now.",
                "title": "On Hand",
                "type": "number"
              },
              "on_order": {
                "anyOf": [
                  {
                    "minimum": 0,
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Units on open purchase orders.",
                "title": "On Order"
              },
              "sku": {
                "description": "SKU or product name.",
                "maxLength": 64,
                "minLength": 1,
                "title": "Sku",
                "type": "string"
              },
              "unit_cost": {
                "anyOf": [
                  {
                    "minimum": 0,
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Cost per unit, for valuation.",
                "title": "Unit Cost"
              }
            },
            "required": [
              "sku",
              "on_hand"
            ],
            "title": "InventoryRowInput",
            "type": "object"
          }
        },
        "properties": {
          "default_lead_time_days": {
            "default": 14,
            "description": "Lead time for rows that give none.",
            "maximum": 730,
            "minimum": 1,
            "title": "Default Lead Time Days",
            "type": "integer"
          },
          "items": {
            "description": "Products to score.",
            "items": {
              "$ref": "#/$defs/InventoryRowInput"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Items",
            "type": "array"
          },
          "service_level": {
            "default": 0.95,
            "description": "Target in-stock probability, 0.50 to 0.99.",
            "maximum": 99,
            "minimum": 0.5,
            "title": "Service Level",
            "type": "number"
          }
        },
        "required": [
          "items"
        ],
        "title": "score_inventory_healthArguments",
        "type": "object"
      },
      "name": "score_inventory_health"
    }
  ]
}

What the leaf hashes

{"body":"5ec9bbfeda624d0a5dfedb097226bdafc18835e948bdbd7bebb01a4c7950db83","id":2539332,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793686715153040,"prev":null,"subject":"8a0cc4ed-9a1d-44ae-9590-61d7dd08001c","subject_kind":"endpoint"}

Proof

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

  1. 0x2f19672078a5bdd77c78c3c8a24475a5b3d5229d2da4812373023d5b116fbb55
  2. 0x5c2b7f0e13faee2b49b33229d41b0866ddea7978a614d11ea7ea46f58f9c2902
  3. 0xdc9d0b9b81fe4f97918c87685ad9e5da282cab22b58f1ab12fd20dd0799acaa1
  4. 0x0ef991e814177758be542bba2f254684c4266c0d1b1dc03b0b0e9df647e24adf
  5. 0xd304d08a0a33f1c327aba23cb5b817a79f42005b835c6fac99c03d821faba552
  6. 0xc433d1a470a981f44d7b16e942544b79eb4e5f34446136eb9f85bdf244b91071
  7. 0xd3814cda8d98d1c17bf0f5acdec602ede0b48785280b35c8f700975232cbd55a
  8. 0xfe3d10fb836321de6800026583d713f3d71105f648830a2f50934ae047ecf597
  9. 0xe052b932b82dd43a0f0d2283a817871c5c82efb65ae93f43439ffe58a487ee5a
  10. 0x16fb5d7a23dbf9c0d99c0ee437f6756f5ee120441b144781cb828e5ed580d807
  11. 0x2fd3997140d7e146c0667023f3289fd6130a4e689e7090ebd3cfab6a604861ad
  12. 0x8455b4b7e5ecaa70aa53da04470fe41e0e0365e4edfd954320849b1c24ce31af
  13. 0x2f64dbba88ce60f5cad9ef597b99adbf687838c05ce885ed581fa95aaf9b1a3f
  14. 0x2498d172c194baddb2b78ac926b7c8da79833909dc2801e4c25af0c0eeca0f3d
  15. 0x3553ea75bcf78135f26289b22fcb05dd562af750aceb74fae97aaa66ea2adb8b
  16. 0xb1804d44f1a591de3b8b8db8fe72e8ab6695e6d154862ee8ea77b6ac2b43b67d
  17. 0x87df2ed9052c264d606c076742aa7e54b69fc8344b21e972ebcb19d020b7ecf3
  18. 0x012ad914f3f945da3b6b48eddc7a1388613e4afc04339deb76c609611864e9b9
  19. 0xe35032d4b064b015fe60638756eeb0bc24e7c7943586468d33349341ee0ed3d6
Day root
0xb646ffa569e24bf8336b0a15a9d98d0a2f1239f58e10c2b18a9d22e43343566a
Chained
0x35e926359fd19031c6b5e08fb3b44f2524386a57c8fdd353336c185603f53d43
Published
On Arc Testnet, block 70601990: 0xa5f9dadba13cde129126b950e64b815e6833cb8ff53b75026c9dbe769c3768c7

How to check it · This row as JSON