← The evidence ledger
Evidence row 301756
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 2a04c4fb-deef-4d9a-bd08-1ff2a8315543
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- b4e5f162e44f12378ec04d9232178218638de358f3c94ed78c6bf9247cf1652e
- Leaf
- 0x4cfc73f48c3e0ed994f9a9df7ae53908ddddb07502b5ae5aa140a8f61ff24c30
What was observed
{
"count": 34,
"tools": [
{
"description": "WRITE: adds a new note to a vintrace stock item (visible to everyone in the winery, recorded under the token's user). Adding the same note twice creates two notes. POST /v6/mrp/stock/{id}/notes.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"detail": {
"description": "The note text.",
"maxLength": 4000,
"minLength": 1,
"type": "string"
},
"stock_item_id": {
"description": "vintrace stock item id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"subject": {
"description": "Optional subject line.",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"required": [
"stock_item_id",
"detail"
],
"type": "object"
},
"name": "vintrace_add_stock_item_note"
},
{
"description": "WRITE: assigns a work order to the token's own vintrace user (or to assign_operator_id), so it shows up in that operator's list. With reassign=true it takes over a work order already assigned to someone else. Check the work order first with vintrace_get_work_order. POST /v6/workorders/assign.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"assign_operator_id": {
"description": "vintrace user id to assign to (default: the token's user).",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"job_id": {
"description": "Only this job of the work order.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"reassign": {
"description": "Reassign even if it is already assigned to another operator (default false).",
"type": "boolean"
},
"work_order_id": {
"description": "vintrace work order id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"work_order_id"
],
"type": "object"
},
"name": "vintrace_assign_work_order"
},
{
"description": "WRITE: deactivates a fruit booking so it no longer counts as an active booking (the record is kept; it is not deleted). Use vintrace_list_bookings to find the booking id first. POST /v7/operation/bookings/{id}/deactivation.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"booking_id": {
"description": "vintrace booking id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"booking_id"
],
"type": "object"
},
"name": "vintrace_deactivate_booking"
},
{
"description": "One party (customer, grower, supplier, owner) by id, or by exact name. Give exactly one. GET /v6/party/{id} or /v6/party?name=.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"description": "Exact party name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"party_id": {
"description": "vintrace party id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"type": "object"
},
"name": "vintrace_get_party"
},
{
"description": "One wine product by id (or by vessel barcode) with its vessel, volume and metrics. GET /v6/products/{id}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"barcode": {
"description": "A vessel code or asset id.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"product_id": {
"description": "vintrace product id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"product_id"
],
"type": "object"
},
"name": "vintrace_get_product"
},
{
"description": "One purchase order with its lines, state and fulfilment. GET /v7/account/purchase-orders/{id}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"purchase_order_id": {
"description": "vintrace purchase order id.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"purchase_order_id"
],
"type": "object"
},
"name": "vintrace_get_purchase_order"
},
{
"description": "One sales order by id, or by order code (for example VSO20): customer, items, prices, taxes and status. Give exactly one. GET /v6/sales-order/{id} or /v6/sales-order?code=.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"code": {
"description": "Sales order code, e.g. VSO20.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"sales_order_id": {
"description": "vintrace sales order id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"type": "object"
},
"name": "vintrace_get_sales_order"
},
{
"description": "One stock item by id with optional detail parts: expand=fields,distributions,notes,historyItems,rawComponents,bulkInfo. GET /v6/mrp/stock/{id}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"expand": {
"description": "Comma-separated parts to expand: fields, distributions, notes, historyItems, rawComponents, bulkInfo.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"stock_item_id": {
"description": "vintrace stock item id (from vintrace_lookup_stock_item or vintrace_list_inventory).",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"stock_item_id"
],
"type": "object"
},
"name": "vintrace_get_stock_item"
},
{
"description": "One vessel by id: a tank, barrel, barrel group, tanker or bin, with its details, dimensions and contents. GET /v7/vessel/<tanks|barrels|barrel-groups|tankers|bins>/{id}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"vessel_id": {
"description": "vintrace vessel id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"vessel_type": {
"description": "What kind of vessel.",
"enum": [
"tank",
"barrel",
"barrel_group",
"tanker",
"bin"
],
"type": "string"
}
},
"required": [
"vessel_type",
"vessel_id"
],
"type": "object"
},
"name": "vintrace_get_vessel"
},
{
"description": "The bulk wine report: every vessel (tank, barrel, bin, press, tanker) with its contents, volume, batch, owner and winery as at a date. Use extra_fields=composition,allocations,liveMetrics to add them. Covers every winery the token's user may access unless wineryId/wineryName narrows it. GET /v7/report/vessel-details-report.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"as_at": {
"description": "Run the report as at this time (default now).",
"type": "string"
},
"batch": {
"description": "Only vessels holding this wine batch.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"business_unit": {
"description": "Only this winery business unit.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"extra_fields": {
"description": "Extra fields, comma-separated: composition, allocations, liveMetrics.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"owner": {
"description": "Only this owner.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"product_id": {
"description": "Only this wine/product id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"vessel": {
"description": "Only this vessel (by name/code).",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"vessel_id": {
"description": "Only this vessel id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"vessel_type": {
"description": "Vessel types, comma-separated: TANK, BIN, BARREL, BARREL_GROUP, BIN_GROUP, PRESS, TANKER.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"winery_id": {
"description": "Only this winery.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"winery_name": {
"description": "Only the winery with this exact name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "vintrace_get_vessel_details_report"
},
{
"description": "One work order by id: every job with its steps, summary text, status and assignee. Find the id with vintrace_list_work_orders or vintrace_list_work_orders_v6. GET /v6/workorders/{id}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"work_order_id": {
"description": "vintrace work order id (the number, not the TWL code).",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"work_order_id"
],
"type": "object"
},
"name": "vintrace_get_work_order"
},
{
"description": "Barrel move shipments / barrel treatments recorded in vintrace, with barrel states and treatment types. Reply: results plus next_offset. GET /v7/operation/barrel-treatments.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"modified_before": {
"description": "Only records modified before this time.",
"type": "string"
},
"modified_since": {
"description": "Only records modified after this time.",
"type": "string"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"treatment": {
"description": "Only this treatment.",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "vintrace_list_barrel_treatments"
},
{
"description": "List vineyard block assessments (vine and fruit assessments by the viticulture team). Reply: results plus next_offset. GET /v7/harvest/assessments.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"assessed_by": {
"description": "Filter by assessor: a vintrace user id (123), or ext:<external id>. Prefix ne: to exclude that user (ne:123); the default is an exact match (eq:).",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"created_before": {
"description": "Only assessments created before this time.",
"type": "string"
},
"created_since": {
"description": "Only assessments created after this time.",
"type": "string"
},
"extra_fields": {
"description": "Extra fields to include, comma-separated (see the BlockAssessment fields).",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"name": "vintrace_list_block_assessments"
},
{
"description": "List vineyard blocks (grower, vineyard, region, variety). To see fruit placements for a vintage pass include=fruitPlacements together with vintage. Reply: results plus next_offset. GET /v7/harvest/blocks.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"description": "Comma-separated block ids.",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"include": {
"description": "Extra parts to include, for example fruitPlacements (with vintage).",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"vintage": {
"description": "Vintage year (needed with include).",
"maxLength": 10,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "vintrace_list_blocks"
},
{
"description": "List active fruit bookings (grape deliveries planned for a vintage) for one or more wineries: grower, block, variety, expected pick time and quantity. vintage and winery_ids are required. Reply: results plus next_offset. GET /v7/operation/bookings.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"arrival_after": {
"description": "Arrival after this time.",
"type": "string"
},
"arrival_before": {
"description": "Arrival before this time.",
"type": "string"
},
"block_name": {
"description": "Only this block.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"booking_number": {
"description": "A vintrace booking number.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"grower_name": {
"description": "Only this grower.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"modified_since": {
"description": "Added, changed or deactivated since this time.",
"type": "string"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"vineyard_name": {
"description": "Only this vineyard.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"vintage": {
"description": "Vintage year, e.g. 2026.",
"maximum": 2200,
"minimum": 1900,
"type": "integer"
},
"winery_ids": {
"description": "vintrace winery ids (see vintrace_get_vessel_details_report for winery names/ids).",
"items": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
}
},
"required": [
"vintage",
"winery_ids"
],
"type": "object"
},
"name": "vintrace_list_bookings"
},
{
"description": "List brand allocations of bulk wine (how much of a wine is promised to which brand), by status and vintage. Reply: results plus next_offset. GET /v7/allocations/brand-allocations.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"modified_since": {
"description": "Only records modified after this time.",
"type": "string"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"status": {
"description": "Allocation status.",
"enum": [
"INCOMPLETE",
"COMPLETE",
"ARCHIVED"
],
"type": "string"
},
"vintage": {
"description": "Vintage year.",
"maximum": 2200,
"minimum": 1900,
"type": "integer"
}
},
"type": "object"
},
"name": "vintrace_list_brand_allocations"
},
{
"description": "List bulk wine/juice intakes (wine bought or received in bulk) with batch, volume, owner and cost. Reply: results plus next_offset. GET /v7/operation/bulk-intakes.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"modified_before": {
"description": "Only records modified before this time.",
"type": "string"
},
"modified_since": {
"description": "Only records modified after this time.",
"type": "string"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"purchase_reference": {
"description": "Exact purchase reference (sent to vintrace as eq:<reference>).",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "vintrace_list_bulk_intakes"
},
{
"description": "Bulk wine cost movements between two times (cost of wine moved between batches and wineries), optionally for one winery or business unit. Needs the vintrace permission to view costs. Reply: results plus next_offset. GET /v7/costs/business-unit-transactions.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"business_unit": {
"description": "Only this business unit.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"end": {
"description": "End of the period (required).",
"type": "string"
},
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"start": {
"description": "Start of the period (required).",
"type": "string"
},
"winery_id": {
"description": "Only this winery.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"winery_name": {
"description": "Only the winery with this exact name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"required": [
"start",
"end"
],
"type": "object"
},
"name": "vintrace_list_cost_transactions"
},
{
"description": "Stock on hand (bottled wine, dry goods, additives) up to a date: quantity, committed, on order and available per item, location, owner, tax class. breakout_costing needs the view-costs permission. GET /v6/inventory.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"breakout_costing": {
"description": "Break out each item's costs by category (needs the permission).",
"type": "boolean"
},
"date": {
"description": "Report stock up to this date, excluding later changes.",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"first": {
"description": "Start index of the page (default 0; vintrace \"first\").",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"max": {
"description": "Results per page, 1-200 (sent as vintrace's \"max\").",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"owner_name": {
"description": "Only this owner's stock.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"stock_type": {
"description": "Stock type, for example Wine batch, Additive, Closure, Glass/Container, Case x12.",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "vintrace_list_inventory"
},
{
"description": "The lab console: analysis tasks (samples to measure) with lab, template, vessel, batch, status and arrival. Completed tasks are left out unless status includes Completed. Reply: results plus next_offset. GET /v7/lab/lab-requests.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"analysis_template_name": {
"description": "Only tasks using these analysis templates. Several values match any of them.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
},
"arrival_status": {
"description": "Only samples with this arrival status.",
"enum": [
"Arrived",
"Not Arrived"
],
"type": "string"
},
"batch": {
"description": "Only tasks sampled from batches with these names. Several values match any of them.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
},
"date_after": {
"description": "Only tasks requested at or after this time.",
"type": "string"
},
"date_before": {
"description": "Only tasks requested at or before this time.",
"type": "string"
},
"lab_name": {
"description": "Only tasks assigned to labs with these names. Several values match any of them.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
},
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"modified_since": {
"description": "Only tasks modified at or after this time.",
"type": "string"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"status": {
"description": "Task statuses (for example Completed to include finished tasks). Several values match any of them.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
},
"vessel_name": {
"description": "Only tasks sampled from vessels with these names. Several values match any of them.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
},
"work_order_number": {
"description": "Only tasks requested by these work orders (TWL123 or 123). Several values match any of them.",
"items": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
}
},
"type": "object"
},
"name": "vintrace_list_lab_requests"
},
{
"description": "List parties: customers, growers, suppliers and owners, individuals or organisations, with address, phone and email. Filter by the start of the name and category. GET /v6/party/list.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"category": {
"description": "Party category (default All).",
"enum": [
"All",
"Individuals",
"Organisations"
],
"type": "string"
},
"first": {
"description": "Start index of the page (default 0; vintrace \"first\").",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"max": {
"description": "Results per page, 1-200 (sent as vintrace's \"max\").",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"starts_with": {
"description": "Surname (individuals) or company name starts with this.",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "vintrace_list_parties"
},
{
"description": "List wine products as they sit in vessels: batch code, vessel, volume, colour, state and the latest lab metrics (TSO2, pH, Brix...). skip_metrics=true makes it faster. barcode matches a vessel code or asset id. GET /v6/products/list.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"barcode": {
"description": "A vessel code or asset id.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"first": {
"description": "Start index of the page (default 0; vintrace \"first\").",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"max": {
"description": "Results per page, 1-200 (sent as vintrace's \"max\").",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"skip_metrics": {
"description": "Leave out the metric measurements.",
"type": "boolean"
}
},
"type": "object"
},
"name": "vintrace_list_products"
},
{
"description": "List sales orders with customer, status, price list, line items, totals and invoice date. Filter by status, customer, order date range or invoice date range. GET /v6/sales-order/list.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"customer_name": {
"description": "Customer name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"end_date": {
"description": "Orders on or before this date.",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"external_transaction_id": {
"description": "External transaction id linked to the order.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"first": {
"description": "Start index of the page (default 0; vintrace \"first\").",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"invoice_end_date": {
"description": "Invoiced on or before this date.",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"invoice_start_date": {
"description": "Invoiced on or after this date.",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"max": {
"description": "Results per page, 1-200 (sent as vintrace's \"max\").",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"start_date": {
"description": "Orders on or after this date.",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"starts_with": {
"description": "Order name starts with this.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"status": {
"description": "Sales order status.",
"enum": [
"New",
"Approved",
"Payment in Progress",
"Paid"
],
"type": "string"
}
},
"type": "object"
},
"name": "vintrace_list_sales_orders"
},
{
"description": "List shipments created by Bulk Dispatch and inter-winery dispatch operations, with destination and wine details. Reply: results plus next_offset. GET /v7/operation/shipments.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"dispatch_type": {
"description": "Dispatch type name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"freight_code": {
"description": "Freight code name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"include": {
"description": "Extra wine details to include: allocations, metrics, composition, cost (comma-separated).",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"modified_before": {
"description": "Only records modified before this time.",
"type": "string"
},
"modified_since": {
"description": "Only records modified after this time.",
"type": "string"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"type": {
"description": "Operation type.",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "vintrace_list_shipments"
},
{
"description": "List stock dispatch actions (bottled goods and dry goods sent out) with routes, items and shipping information. Reply: results plus next_offset. GET /v7/stock/dispatches.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"name": "vintrace_list_stock_dispatches"
},
{
"description": "The notes recorded on a stock item. GET /v6/mrp/stock/{id}/notes.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"first_result": {
"description": "Start index of the page (default 0; vintrace \"first\").",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"max_result": {
"description": "Notes per page, 1-200.",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"stock_item_id": {
"description": "vintrace stock item id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"stock_item_id"
],
"type": "object"
},
"name": "vintrace_list_stock_item_notes"
},
{
"description": "List trial blends (planned blend trials) with status and composition. Use composition_summary_by=variety,vintage to summarise. Reply: results plus next_offset. GET /v7/operation/trial-blends.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"composition_summary_by": {
"description": "Summarise composition by: variety, vintage, region, subRegion (comma-separated).",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"modified_before": {
"description": "Only records modified before this time.",
"type": "string"
},
"modified_since": {
"description": "Only records modified after this time.",
"type": "string"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"status": {
"description": "Trial blend status, or several separated by commas.",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "vintrace_list_trial_blends"
},
{
"description": "List wine batches (the named lots of wine) with volume, variety, vintage and owner. Use include=vessels,allocations to add where each batch sits. Reply: results plus next_offset. GET /v7/operation/wine-batches.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"description": "Comma-separated vintrace batch ids to fetch.",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"include": {
"description": "Extra parts to include, comma-separated: vessels, allocations.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"name": "vintrace_list_wine_batches"
},
{
"description": "List winery work orders (cellar jobs such as transfers, additions, bottling) with their jobs, assignee, status and scheduled time. Filter by scheduled time range, status and operation type. Reply: results plus next_offset. GET /v7/operation/work-orders.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"description": "Results per page, 1-200 (vintrace default 10).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"offset": {
"description": "Index of the first result (default 0). Pass the previous reply's offset + limit.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"operation_types": {
"description": "Winery job type, or several separated by commas (for example TIRAGE,TRANSFER).",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"scheduled_before": {
"description": "Only work orders scheduled at or before this time (inclusive).",
"type": "string"
},
"scheduled_since": {
"description": "Only work orders scheduled at or after this time (inclusive).",
"type": "string"
},
"status": {
"description": "Work order status, or several separated by commas (for example READY,IN_PROGRESS).",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "vintrace_list_work_orders"
},
{
"description": "Work orders from the operator's point of view (what is waiting for me / unassigned), with job counts, status and scheduled dates. Defaults to the last 7 days to 3 days ahead. GET /v6/workorders/list.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"assigned_to": {
"description": "Assignment filter (default AVAILABLE_TO_ME).",
"enum": [
"AVAILABLE_TO_ME",
"ANYONE",
"MINE_ONLY",
"UNASSIGNED"
],
"type": "string"
},
"first": {
"description": "Start index of the page (default 0; vintrace \"first\").",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"from_date": {
"description": "Scheduled on or after this date.",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"max": {
"description": "Results per page, 1-200 (sent as vintrace's \"max\").",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"starts_with": {
"description": "Work order name starts with this.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"state": {
"description": "Status filter (default ANY).",
"enum": [
"ANY",
"IN_PROGRESS",
"NOT_STARTED",
"SUBMITTED",
"INCOMPLETE"
],
"type": "string"
},
"to_date": {
"description": "Scheduled on or before this date.",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"winery_id": {
"description": "Only this winery.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"type": "object"
},
"name": "vintrace_list_work_orders_v6"
},
{
"description": "Find one stock item by code (matched against the start of the code) or by id: type, unit, owner, accounts, tax class and sub-components. Give code or id. GET /v6/stock/lookup.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"code": {
"description": "Stock item code (start of code).",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"id": {
"description": "Stock item id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"type": "object"
},
"name": "vintrace_lookup_stock_item"
},
{
"description": "Fruit intake operations (grape deliveries weighed in at the winery): weights, grower, block, vineyard, vintage, docket numbers and metrics. Filter by vintage, grower, vineyard, block or recorded time. Page with first_result and max_results. GET /v6/intake-operations/search.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"block_name": {
"description": "Block name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"delivery_docket": {
"description": "Delivery docket number.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"first_result": {
"description": "Start index of the page (default 0; vintrace \"first\").",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"grower_name": {
"description": "Grower name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"intake_docket": {
"description": "Intake docket number.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"max_results": {
"description": "Results per page, 1-200.",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"modified_since": {
"description": "Modified since this time.",
"type": "string"
},
"owner_name": {
"description": "Fruit owner name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"recorded_after": {
"description": "Recorded at or after this time.",
"type": "string"
},
"recorded_before": {
"description": "Recorded at or before this time.",
"type": "string"
},
"vineyard_name": {
"description": "Vineyard name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"vintage": {
"description": "Vintage year.",
"maxLength": 10,
"minLength": 1,
"type": "string"
},
"winery_name": {
"description": "Winery name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "vintrace_search_fruit_intakes"
},
{
"description": "Look up names and ids of one kind of item: growers, owners, blocks, varietals, vintages, regions, programs, batches, products, tanks, barrels, bins and more. Use it to find the id or exact name another tool needs. GET /v6/search/list.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"exact_match": {
"description": "True: the name must equal starts_with (default is a like match).",
"type": "boolean"
},
"first": {
"description": "Start index of the page (default 0; vintrace \"first\").",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"starts_with": {
"description": "Name starts with this.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"type": {
"description": "The kind of item to list.",
"enum": [
"grading",
"owner",
"program",
"varietal",
"vintage",
"productState",
"region",
"block",
"grower",
"productCategory",
"batch",
"product",
"tank",
"vessel",
"containerEquipment",
"barrel",
"bin"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"name": "vintrace_search_items"
},
{
"description": "Winemaking operations completed in a date range (transfers, additions, blends, racking...) with the from/to vessels and before/after volumes. Defaults to today when no dates are given. GET /v6/transaction/search.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"batch_name": {
"description": "Batch name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"date_from": {
"description": "Operations completed on or after this date.",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"date_to": {
"description": "Operations completed on or before this date.",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"owner_name": {
"description": "Owner name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"winery_name": {
"description": "Winery name.",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "vintrace_search_transactions"
}
]
}What the leaf hashes
{"body":"b4e5f162e44f12378ec04d9232178218638de358f3c94ed78c6bf9247cf1652e","id":301756,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793054269563806,"prev":null,"subject":"2a04c4fb-deef-4d9a-bd08-1ff2a8315543","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x4cfc39a6df596e78428fb3d3cfc51a7e1cae524ba988aa605621fdb7016dedee
- 0x5a1e5d6973a752c1c89bf265ff678ffd4947f96819d0c0b27daf0ec0353f2b90
- 0x76b61f3ddaa43a530c50a3dc0e58054018de5595a252e931091747e8a27821d9
- 0xbafe95757a64fbe53409171bd49fd9eec5aed35019ff78a728056d9793f4a40a
- 0x32d910ebfec75f5af6cef9f77195900b4d4b9c511cf6fd7b54dc8e9c61140578
- 0x39ec67c4f1dc51f3b460cf90cf79275113cac213faf3362fbbc69882c2fb1b47
- 0x03af86181f8bf350b8d6bef50f32e2d96392970a42fce423fd8f3baa6c53cd1b
- 0xb1547ef0f3fc2a4612f61bc7e12a01c9e0fbdbc7246f01dac8e50ed25b8fc3ff
- 0xe94d7f707d4adf6711a51bb9ab206051c7a08d643660328859f7a47b218ad643
- 0x4af637ad93b988fe64e96a6e50ca3aa29400b19cae5b542c13a7e49b02fec7a6
- 0x4a13cd2655a1d8b39528cfa63482483519544a5eb593623bd8ca3eb463e263b6
- 0x9c16024747eaca32d09963ccb001059f75dcd9bb8dfc221e5234d54d2b3388d9
- 0x1ffd24a0422348bb2305058cc138e276511e1c074bf8139af5b773941f0e5de2
- 0x88e326a39b26e2c125306c9d3805d14398ace088bba9a2a0aa376b811cfb201a
- 0x2be1e80e065dd6b2cc75a7142be22225acd144ac975d70bf24b4f01fd76dc497
- 0x2e6a32eb32761c210560e852405e2f865f958ddbe01027894f8b9c1b3433b9f0
- 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae