addrbookFor publishers
← The evidence ledger

Evidence row 300335

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 30278ba6-f5d5-4208-86dc-259fcef08089
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
8b69a0578b36a55a2d641ae2cfa157fd3fcc5311d11d21e51d130e9546540952
Leaf
0xf1950f5361c516c60f357ab2a46c345ccecdf6d4b908d836f3128a7ee3f0d2cf

What was observed

{
  "count": 20,
  "tools": [
    {
      "description": "Rental availability for ONE product over a date range: arrays of quantity held, booked, unavailable, available, on sub-rent and quoted — one entry per availability period (hour, quarter day, half day or day depending on the range and system setting) — plus the opportunities that book it. Read-only, even though the API uses POST. Current RMS: POST /availability/product.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "days_period": {
            "description": "Number of days to report on.",
            "maximum": 366,
            "minimum": 1,
            "type": "integer"
          },
          "product_id": {
            "description": "The product id.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "starts_at": {
            "description": "Start date, ISO 8601, e.g. 2026-10-01.",
            "type": "string"
          },
          "store_ids": {
            "description": "Only these stores.",
            "items": {
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991,
              "type": "integer"
            },
            "type": "array"
          }
        },
        "required": [
          "product_id",
          "starts_at",
          "days_period"
        ],
        "type": "object"
      },
      "name": "current_rms_check_product_availability"
    },
    {
      "description": "Log an activity (call, meeting, task, note) against a member, opportunity or project, optionally with participants. Current RMS: POST /activities.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "completed": {
            "description": "Mark as already completed.",
            "type": "boolean"
          },
          "description": {
            "description": "Details.",
            "type": "string"
          },
          "ends_at": {
            "description": "End (UTC).",
            "type": "string"
          },
          "location": {
            "description": "Where it takes place.",
            "type": "string"
          },
          "owned_by": {
            "description": "User member id of the owner.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "participant_member_ids": {
            "description": "Member ids to add as participants.",
            "items": {
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991,
              "type": "integer"
            },
            "type": "array"
          },
          "priority": {
            "description": "Priority, 1-5.",
            "maximum": 5,
            "minimum": 1,
            "type": "integer"
          },
          "regarding_id": {
            "description": "The id of that record.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "regarding_type": {
            "description": "The kind of record it concerns, e.g. \"Opportunity\", \"Member\" or \"Project\".",
            "type": "string"
          },
          "starts_at": {
            "description": "Start (UTC).",
            "type": "string"
          },
          "status_id": {
            "description": "Activity status list-value id.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          },
          "subject": {
            "description": "The activity's subject.",
            "minLength": 1,
            "type": "string"
          },
          "time_status": {
            "anyOf": [
              {
                "const": 0,
                "type": "number"
              },
              {
                "const": 1,
                "type": "number"
              }
            ],
            "description": "0 = Free, 1 = Busy."
          },
          "type_id": {
            "description": "Activity type list-value id.",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "subject"
        ],
        "type": "object"
      },
      "name": "current_rms_create_activity"
    },
    {
      "description": "Create an Organisation, Contact or Venue. To link a new Contact to its Organisation, pass parent_member_id. Current RMS: POST /members.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "custom_fields": {
            "additionalProperties": {},
            "description": "Custom field values by field name.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "department": {
            "description": "Department (Contacts only).",
            "type": "string"
          },
          "description": {
            "description": "Notes about the member.",
            "type": "string"
          },
          "emails": {
            "description": "Email addresses to add.",
            "items": {
              "properties": {
                "address": {
                  "description": "Email address.",
                  "type": "string"
                },
                "type_id": {
                  "description": "Email type list-value id (4001 = Work in a default setup).",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                }
              },
              "required": [
                "address"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "membership_type": {
            "description": "The kind of member.",
            "enum": [
              "Organisation",
              "Contact",
              "Venue"
            ],
            "type": "string"
          },
          "name": {
            "description": "The member's name.",
            "minLength": 1,
            "type": "string"
          },
          "parent_member_id": {
            "description": "Organisation (or Venue) member id to link this Contact to.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "phones": {
            "description": "Phone numbers to add.",
            "items": {
              "properties": {
                "number": {
                  "description": "Phone number.",
                  "type": "string"
                },
                "type_id": {
                  "description": "Phone type list-value id (6001 = Work in a default setup).",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                }
              },
              "required": [
                "number"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "tag_list": {
            "description": "Tags.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "description": "Job title (Contacts only).",
            "type": "string"
          }
        },
        "required": [
          "name",
          "membership_type"
        ],
        "type": "object"
      },
      "name": "current_rms_create_member"
    },
    {
      "description": "Create an opportunity (a rental job) as an Enquiry, Draft or Quotation. store_id is required (see current_rms_list_stores); set member_id for the customer and starts_at/ends_at for the job dates. Line items are added in Current RMS. Current RMS: POST /opportunities.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "billing_address_id": {
            "description": "The member's address id used for billing.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "charge_ends_at": {
            "description": "Charging period end (UTC).",
            "type": "string"
          },
          "charge_starts_at": {
            "description": "Charging period start (UTC).",
            "type": "string"
          },
          "collection_instructions": {
            "description": "Collection instructions.",
            "type": "string"
          },
          "custom_fields": {
            "additionalProperties": {},
            "description": "Custom field values by field name.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "customer_collecting": {
            "description": "The customer collects the goods themselves.",
            "type": "boolean"
          },
          "customer_returning": {
            "description": "The customer returns the goods themselves.",
            "type": "boolean"
          },
          "delivery_instructions": {
            "description": "Delivery instructions.",
            "type": "string"
          },
          "description": {
            "description": "Internal description.",
            "type": "string"
          },
          "ends_at": {
            "description": "Overall end / collection date-time (UTC).",
            "type": "string"
          },
          "external_description": {
            "description": "Description shown on customer documents.",
            "type": "string"
          },
          "member_id": {
            "description": "The customer (Organisation/Contact member) id.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "owned_by": {
            "description": "User member id of the owner.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "project_id": {
            "description": "The project this opportunity belongs to.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "rating": {
            "description": "Rating, 0-5.",
            "maximum": 5,
            "minimum": 0,
            "type": "integer"
          },
          "reference": {
            "description": "Customer reference, e.g. their PO number.",
            "type": "string"
          },
          "starts_at": {
            "description": "Overall start / delivery date-time (UTC).",
            "type": "string"
          },
          "state": {
            "anyOf": [
              {
                "const": 0,
                "type": "number"
              },
              {
                "const": 1,
                "type": "number"
              },
              {
                "const": 2,
                "type": "number"
              }
            ],
            "description": "0 = Enquiry, 1 = Draft, 2 = Quotation. Converting to an Order is left to Current RMS."
          },
          "store_id": {
            "description": "The store the job is served from.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "subject": {
            "description": "The opportunity's subject (title).",
            "type": "string"
          },
          "tag_list": {
            "description": "Tags.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "venue_id": {
            "description": "The Venue member id.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "store_id"
        ],
        "type": "object"
      },
      "name": "current_rms_create_opportunity"
    },
    {
      "description": "Fetch one invoice or credit note with its status, due date and totals; include invoice_items for the lines. Current RMS: GET /invoices/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "include": {
            "description": "Associations to embed, e.g. [\"invoice_items\"].",
            "items": {
              "enum": [
                "owner",
                "member",
                "billing_address",
                "destination",
                "venue",
                "invoice_taxes",
                "tax_class",
                "invoice_items"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "invoice_id": {
            "description": "The invoice id.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "invoice_id"
        ],
        "type": "object"
      },
      "name": "current_rms_get_invoice"
    },
    {
      "description": "Fetch one member (organisation, contact, venue or user) with its addresses, emails, phones, links, linked parent/child members and custom fields. Current RMS: GET /members/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "member_id": {
            "description": "The member id.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "member_id"
        ],
        "type": "object"
      },
      "name": "current_rms_get_member"
    },
    {
      "description": "Fetch one opportunity with its dates, state (0 Enquiry, 1 Draft, 2 Quotation, 3 Order), status and charge/cost totals. Associations (customer, venue, line items, assets, participants) are only returned when named in include. Current RMS: GET /opportunities/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "include": {
            "description": "Associations to embed, e.g. [\"member\", \"venue\", \"opportunity_items\"].",
            "items": {
              "enum": [
                "owner",
                "member",
                "billing_address",
                "destination",
                "collection",
                "venue",
                "opportunity_surcharges",
                "participants",
                "opportunity_items",
                "item_assets",
                "return_item_assets"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "opportunity_id": {
            "description": "The opportunity id.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "opportunity_id"
        ],
        "type": "object"
      },
      "name": "current_rms_get_opportunity"
    },
    {
      "description": "Fetch one product with its rates, stock settings and custom fields. Current RMS: GET /products/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "include": {
            "description": "Associations to embed.",
            "items": {
              "enum": [
                "accessories",
                "icon",
                "product_group"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "product_id": {
            "description": "The product id.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "product_id"
        ],
        "type": "object"
      },
      "name": "current_rms_get_product"
    },
    {
      "description": "List activities — calls, meetings, tasks and notes logged against members, opportunities and projects. filtermode: pending, completed, all. Example filters for one person's busy time in a window: {\"time_status_eq\": 1, \"starts_at_lt\": \"2026-10-02T00:00:00.000Z\", \"ends_at_gteq\": \"2026-10-01T00:00:00.000Z\", \"participants_member_id_eq\": [123]}. Current RMS: GET /activities.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "filtermode": {
            "description": "Which activities to return.",
            "enum": [
              "pending",
              "completed",
              "all"
            ],
            "type": "string"
          },
          "filters": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "items": {
                    "type": [
                      "string",
                      "number"
                    ]
                  },
                  "type": "array"
                }
              ]
            },
            "description": "Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {\"updated_at_gt\": \"2026-01-01T00:00:00.000Z\"}, {\"number_eq\": \"003664\"}, {\"status_not_eq\": 40}, {\"work_email_address_eq\": \"abc@test.com\"}, {\"asset_number_eq\": \"ABC-1\"}. Unknown predicates are silently ignored by the API.",
            "propertyNames": {
              "pattern": "^[A-Za-z0-9_]+$",
              "type": "string"
            },
            "type": "object"
          },
          "include": {
            "description": "Associations to embed.",
            "items": {
              "enum": [
                "regarding",
                "owner",
                "opportunity_item_asset",
                "participants"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "page": {
            "description": "Page number, starting at 1.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "description": "Records per page, 1-100 (default 20).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "search": {
            "description": "Free-text search on subject, description, location or tags.",
            "type": "string"
          },
          "sort": {
            "description": "Sort order, e.g. [\"name asc\"] or [\"updated_at desc\", \"id asc\"]. Add \"id asc\" when paging so the order is deterministic.",
            "items": {
              "pattern": "^[A-Za-z0-9_]+ (asc|desc)$",
              "type": "string"
            },
            "type": "array"
          },
          "view_id": {
            "description": "Record id of a saved custom view to apply.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "current_rms_list_activities"
    },
    {
      "description": "List invoices and credit notes with number, dates, status and totals. Free-text search covers subject, number, description, customer name and tags. filtermode: live, inactive, all, invoices, credits. To find one opportunity's invoices pass filters {\"invoice_items_source_type_eq\": \"Opportunity\", \"invoice_items_source_id_eq\": <opportunity id>} with filtermode all. Current RMS: GET /invoices.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "filtermode": {
            "description": "Built-in filter: live, inactive, all, invoices, credits.",
            "type": "string"
          },
          "filters": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "items": {
                    "type": [
                      "string",
                      "number"
                    ]
                  },
                  "type": "array"
                }
              ]
            },
            "description": "Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {\"updated_at_gt\": \"2026-01-01T00:00:00.000Z\"}, {\"number_eq\": \"003664\"}, {\"status_not_eq\": 40}, {\"work_email_address_eq\": \"abc@test.com\"}, {\"asset_number_eq\": \"ABC-1\"}. Unknown predicates are silently ignored by the API.",
            "propertyNames": {
              "pattern": "^[A-Za-z0-9_]+$",
              "type": "string"
            },
            "type": "object"
          },
          "include": {
            "description": "Associations to embed.",
            "items": {
              "enum": [
                "owner",
                "member",
                "billing_address",
                "destination",
                "venue",
                "invoice_taxes",
                "tax_class",
                "invoice_items"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "page": {
            "description": "Page number, starting at 1.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "description": "Records per page, 1-100 (default 20).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "search": {
            "description": "Free-text search on subject, number, description, customer name or tags.",
            "type": "string"
          },
          "sort": {
            "description": "Sort order, e.g. [\"name asc\"] or [\"updated_at desc\", \"id asc\"]. Add \"id asc\" when paging so the order is deterministic.",
            "items": {
              "pattern": "^[A-Za-z0-9_]+ (asc|desc)$",
              "type": "string"
            },
            "type": "array"
          },
          "view_id": {
            "description": "Record id of a saved custom view to apply.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "current_rms_list_invoices"
    },
    {
      "description": "List members — Current RMS's single record type for Organisations, Contacts, Venues and Users. Free-text search covers name, street, work phone, work email and tags. Defaults to active records; filtermode can be active, inactive, all, organisation, contact, venue, user, with_pending_activities, with_live_opportunities, bookable. Current RMS: GET /members.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "filtermode": {
            "description": "Built-in filter, e.g. all, organisation, contact, venue, user, inactive.",
            "type": "string"
          },
          "filters": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "items": {
                    "type": [
                      "string",
                      "number"
                    ]
                  },
                  "type": "array"
                }
              ]
            },
            "description": "Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {\"updated_at_gt\": \"2026-01-01T00:00:00.000Z\"}, {\"number_eq\": \"003664\"}, {\"status_not_eq\": 40}, {\"work_email_address_eq\": \"abc@test.com\"}, {\"asset_number_eq\": \"ABC-1\"}. Unknown predicates are silently ignored by the API.",
            "propertyNames": {
              "pattern": "^[A-Za-z0-9_]+$",
              "type": "string"
            },
            "type": "object"
          },
          "page": {
            "description": "Page number, starting at 1.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "description": "Records per page, 1-100 (default 20).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "search": {
            "description": "Free-text search on name, street, work phone, work email, user email or tags.",
            "type": "string"
          },
          "sort": {
            "description": "Sort order, e.g. [\"name asc\"] or [\"updated_at desc\", \"id asc\"]. Add \"id asc\" when paging so the order is deterministic.",
            "items": {
              "pattern": "^[A-Za-z0-9_]+ (asc|desc)$",
              "type": "string"
            },
            "type": "array"
          },
          "view_id": {
            "description": "Record id of a saved custom view to apply.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "current_rms_list_members"
    },
    {
      "description": "List opportunities — the enquiries, drafts, quotations and orders for a rental job — with their dates, state and charge totals. Free-text search covers subject, description, number, customer name and tags. filtermode e.g. live, all, inactive, enquiries, drafts, quotations, orders, invoiced, not_invoiced, needing_prep. Line items are NOT included here: use current_rms_get_opportunity or current_rms_list_opportunity_items. Max 25 per page. Current RMS: GET /opportunities.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "filtermode": {
            "description": "Built-in filter, e.g. live, all, quotations, orders, not_invoiced.",
            "type": "string"
          },
          "filters": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "items": {
                    "type": [
                      "string",
                      "number"
                    ]
                  },
                  "type": "array"
                }
              ]
            },
            "description": "Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {\"updated_at_gt\": \"2026-01-01T00:00:00.000Z\"}, {\"number_eq\": \"003664\"}, {\"status_not_eq\": 40}, {\"work_email_address_eq\": \"abc@test.com\"}, {\"asset_number_eq\": \"ABC-1\"}. Unknown predicates are silently ignored by the API.",
            "propertyNames": {
              "pattern": "^[A-Za-z0-9_]+$",
              "type": "string"
            },
            "type": "object"
          },
          "include": {
            "description": "Associations to embed in each record.",
            "items": {
              "enum": [
                "owner",
                "member",
                "billing_address",
                "destination",
                "collection",
                "venue",
                "opportunity_surcharges"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "page": {
            "description": "Page number, starting at 1.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "description": "Records per page, 1-25.",
            "maximum": 25,
            "minimum": 1,
            "type": "integer"
          },
          "search": {
            "description": "Free-text search on subject, description, number, customer name or tags.",
            "type": "string"
          },
          "sort": {
            "description": "Sort order, e.g. [\"name asc\"] or [\"updated_at desc\", \"id asc\"]. Add \"id asc\" when paging so the order is deterministic.",
            "items": {
              "pattern": "^[A-Za-z0-9_]+ (asc|desc)$",
              "type": "string"
            },
            "type": "array"
          },
          "view_id": {
            "description": "Record id of a saved custom view to apply.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "current_rms_list_opportunities"
    },
    {
      "description": "List the line items on one opportunity — products, services and groups, with quantity, rate, discount, dates and charge totals. Current RMS: GET /opportunities/{opportunity_id}/opportunity_items.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "include": {
            "description": "Associations to embed on each line.",
            "items": {
              "enum": [
                "item",
                "item_assets",
                "rate_definition",
                "item_surcharges"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "opportunity_id": {
            "description": "The opportunity id.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "page": {
            "description": "Page number, starting at 1.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "description": "Records per page, 1-100 (default 20).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "opportunity_id"
        ],
        "type": "object"
      },
      "name": "current_rms_list_opportunity_items"
    },
    {
      "description": "Stock snapshot per product: rental quantity held, booked, unavailable, on sub-rent and AVAILABLE, plus sale stock and prices. Pass starts_at/ends_at to compute rental availability for a job's dates instead of today, and store_id to restrict to one store. filtermode: active, inactive, all, rental, sale. Current RMS: GET /product_inventories.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "ends_at": {
            "description": "End of the period to compute rental availability for (UTC).",
            "type": "string"
          },
          "filtermode": {
            "description": "Built-in filter, e.g. rental, sale, all.",
            "type": "string"
          },
          "filters": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "items": {
                    "type": [
                      "string",
                      "number"
                    ]
                  },
                  "type": "array"
                }
              ]
            },
            "description": "Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {\"updated_at_gt\": \"2026-01-01T00:00:00.000Z\"}, {\"number_eq\": \"003664\"}, {\"status_not_eq\": 40}, {\"work_email_address_eq\": \"abc@test.com\"}, {\"asset_number_eq\": \"ABC-1\"}. Unknown predicates are silently ignored by the API.",
            "propertyNames": {
              "pattern": "^[A-Za-z0-9_]+$",
              "type": "string"
            },
            "type": "object"
          },
          "page": {
            "description": "Page number, starting at 1.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "description": "Records per page, 1-100 (default 20).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "search": {
            "description": "Free-text search on name, product group name or tags.",
            "type": "string"
          },
          "sort": {
            "description": "Sort order, e.g. [\"name asc\"] or [\"updated_at desc\", \"id asc\"]. Add \"id asc\" when paging so the order is deterministic.",
            "items": {
              "pattern": "^[A-Za-z0-9_]+ (asc|desc)$",
              "type": "string"
            },
            "type": "array"
          },
          "starts_at": {
            "description": "Start of the period to compute rental availability for (UTC).",
            "type": "string"
          },
          "store_id": {
            "description": "Only this store.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "view_id": {
            "description": "Record id of a saved custom view to apply.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "current_rms_list_product_inventories"
    },
    {
      "description": "List products (rental and sale items) with their group, stock method, rates, weight and barcode. Free-text search covers name, product group name and tags. filtermode: active (default), inactive, all. Current RMS: GET /products.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "filtermode": {
            "description": "Which products to return.",
            "enum": [
              "active",
              "inactive",
              "all"
            ],
            "type": "string"
          },
          "filters": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "items": {
                    "type": [
                      "string",
                      "number"
                    ]
                  },
                  "type": "array"
                }
              ]
            },
            "description": "Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {\"updated_at_gt\": \"2026-01-01T00:00:00.000Z\"}, {\"number_eq\": \"003664\"}, {\"status_not_eq\": 40}, {\"work_email_address_eq\": \"abc@test.com\"}, {\"asset_number_eq\": \"ABC-1\"}. Unknown predicates are silently ignored by the API.",
            "propertyNames": {
              "pattern": "^[A-Za-z0-9_]+$",
              "type": "string"
            },
            "type": "object"
          },
          "include": {
            "description": "Associations to embed.",
            "items": {
              "enum": [
                "accessories"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "page": {
            "description": "Page number, starting at 1.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "description": "Records per page, 1-100 (default 20).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "search": {
            "description": "Free-text search on name, product group name or tags.",
            "type": "string"
          },
          "sort": {
            "description": "Sort order, e.g. [\"name asc\"] or [\"updated_at desc\", \"id asc\"]. Add \"id asc\" when paging so the order is deterministic.",
            "items": {
              "pattern": "^[A-Za-z0-9_]+ (asc|desc)$",
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "current_rms_list_products"
    },
    {
      "description": "List projects — groups of related opportunities for one customer or event. Free-text search covers name, customer name and tags. filtermode: active (default), inactive, all. Current RMS: GET /projects.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "filtermode": {
            "description": "Which projects to return.",
            "enum": [
              "active",
              "inactive",
              "all"
            ],
            "type": "string"
          },
          "filters": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "items": {
                    "type": [
                      "string",
                      "number"
                    ]
                  },
                  "type": "array"
                }
              ]
            },
            "description": "Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {\"updated_at_gt\": \"2026-01-01T00:00:00.000Z\"}, {\"number_eq\": \"003664\"}, {\"status_not_eq\": 40}, {\"work_email_address_eq\": \"abc@test.com\"}, {\"asset_number_eq\": \"ABC-1\"}. Unknown predicates are silently ignored by the API.",
            "propertyNames": {
              "pattern": "^[A-Za-z0-9_]+$",
              "type": "string"
            },
            "type": "object"
          },
          "page": {
            "description": "Page number, starting at 1.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "description": "Records per page, 1-100 (default 20).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "search": {
            "description": "Free-text search on name, customer name or tags.",
            "type": "string"
          },
          "sort": {
            "description": "Sort order, e.g. [\"name asc\"] or [\"updated_at desc\", \"id asc\"]. Add \"id asc\" when paging so the order is deterministic.",
            "items": {
              "pattern": "^[A-Za-z0-9_]+ (asc|desc)$",
              "type": "string"
            },
            "type": "array"
          },
          "view_id": {
            "description": "Record id of a saved custom view to apply.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "current_rms_list_projects"
    },
    {
      "description": "List stock levels — the individual serialised assets (asset number, serial number, location, store) or bulk stock quantities held. Pass product_id for one product's stock, or use filters such as {\"asset_number_eq\": \"ABC-1234\"} to find an asset. Current RMS: GET /stock_levels or GET /products/{product_id}/stock_levels.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "filters": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "items": {
                    "type": [
                      "string",
                      "number"
                    ]
                  },
                  "type": "array"
                }
              ]
            },
            "description": "Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {\"updated_at_gt\": \"2026-01-01T00:00:00.000Z\"}, {\"number_eq\": \"003664\"}, {\"status_not_eq\": 40}, {\"work_email_address_eq\": \"abc@test.com\"}, {\"asset_number_eq\": \"ABC-1\"}. Unknown predicates are silently ignored by the API.",
            "propertyNames": {
              "pattern": "^[A-Za-z0-9_]+$",
              "type": "string"
            },
            "type": "object"
          },
          "include": {
            "description": "Associations to embed.",
            "items": {
              "enum": [
                "item",
                "icon"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "page": {
            "description": "Page number, starting at 1.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "description": "Records per page, 1-100 (default 20).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "product_id": {
            "description": "Only this product's stock levels.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "sort": {
            "description": "Sort order, e.g. [\"name asc\"] or [\"updated_at desc\", \"id asc\"]. Add \"id asc\" when paging so the order is deterministic.",
            "items": {
              "pattern": "^[A-Za-z0-9_]+ (asc|desc)$",
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "current_rms_list_stock_levels"
    },
    {
      "description": "List the account's stores (warehouses/depots) with their ids and addresses — needed for store_id when creating an opportunity. Current RMS: GET /stores.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "current_rms_list_stores"
    },
    {
      "description": "Update fields on an existing member. Only the fields you pass are sent. Emails and phones passed here are ADDED (existing ones are kept). When updating custom_fields, also pass the member's membership_type. Current RMS: PUT /members/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "active": {
            "description": "Set false to make the member inactive (reversible).",
            "type": "boolean"
          },
          "custom_fields": {
            "additionalProperties": {},
            "description": "Custom field values by field name.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "description": {
            "description": "Notes about the member.",
            "type": "string"
          },
          "emails": {
            "description": "Email addresses to add.",
            "items": {
              "properties": {
                "address": {
                  "description": "Email address.",
                  "type": "string"
                },
                "type_id": {
                  "description": "Email type list-value id (4001 = Work in a default setup).",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                }
              },
              "required": [
                "address"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "member_id": {
            "description": "The member id.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "membership_type": {
            "description": "The member's EXISTING type — required by the API when updating custom_fields.",
            "enum": [
              "Organisation",
              "Contact",
              "Venue",
              "User"
            ],
            "type": "string"
          },
          "name": {
            "description": "New name.",
            "minLength": 1,
            "type": "string"
          },
          "phones": {
            "description": "Phone numbers to add.",
            "items": {
              "properties": {
                "number": {
                  "description": "Phone number.",
                  "type": "string"
                },
                "type_id": {
                  "description": "Phone type list-value id (6001 = Work in a default setup).",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                }
              },
              "required": [
                "number"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "tag_list": {
            "description": "Replacement tag list.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "member_id"
        ],
        "type": "object"
      },
      "name": "current_rms_update_member"
    },
    {
      "description": "Update header fields on an existing opportunity — subject, customer, venue, dates, reference, instructions, tags, custom fields. Only the fields you pass are sent. State changes (convert to quote/order, cancel, mark lost) are deliberately not available. Current RMS: PUT /opportunities/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "billing_address_id": {
            "description": "The member's address id used for billing.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "charge_ends_at": {
            "description": "Charging period end (UTC).",
            "type": "string"
          },
          "charge_starts_at": {
            "description": "Charging period start (UTC).",
            "type": "string"
          },
          "collection_instructions": {
            "description": "Collection instructions.",
            "type": "string"
          },
          "custom_fields": {
            "additionalProperties": {},
            "description": "Custom field values by field name.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "customer_collecting": {
            "description": "The customer collects the goods themselves.",
            "type": "boolean"
          },
          "customer_returning": {
            "description": "The customer returns the goods themselves.",
            "type": "boolean"
          },
          "delivery_instructions": {
            "description": "Delivery instructions.",
            "type": "string"
          },
          "description": {
            "description": "Internal description.",
            "type": "string"
          },
          "ends_at": {
            "description": "Overall end / collection date-time (UTC).",
            "type": "string"
          },
          "external_description": {
            "description": "Description shown on customer documents.",
            "type": "string"
          },
          "member_id": {
            "description": "The customer (Organisation/Contact member) id.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "opportunity_id": {
            "description": "The opportunity id.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "owned_by": {
            "description": "User member id of the owner.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "project_id": {
            "description": "The project this opportunity belongs to.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "rating": {
            "description": "Rating, 0-5.",
            "maximum": 5,
            "minimum": 0,
            "type": "integer"
          },
          "reference": {
            "description": "Customer reference, e.g. their PO number.",
            "type": "string"
          },
          "starts_at": {
            "description": "Overall start / delivery date-time (UTC).",
            "type": "string"
          },
          "store_id": {
            "description": "Move the job to another store.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "subject": {
            "description": "The opportunity's subject (title).",
            "type": "string"
          },
          "tag_list": {
            "description": "Tags.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "venue_id": {
            "description": "The Venue member id.",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "required": [
          "opportunity_id"
        ],
        "type": "object"
      },
      "name": "current_rms_update_opportunity"
    }
  ]
}

What the leaf hashes

{"body":"8b69a0578b36a55a2d641ae2cfa157fd3fcc5311d11d21e51d130e9546540952","id":300335,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793053405123388,"prev":null,"subject":"30278ba6-f5d5-4208-86dc-259fcef08089","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. 0xf1947dc3f172d7f486eb2b3e258380c5857b51bb9290a725041c14735a4f4980
  2. 0x404fae04078c59c34d9bfff5cee72cd8cc8ae06f847772ac4cb4ce938968ca75
  3. 0x834a8dd832a2ccb44cd9b1ff47be1fbe70d2e488b703d2cbec7b44f76c249f69
  4. 0x9eca3021fa3b3f0ff6af60dd7fc836ff4218537df19492db3aa78b5934948985
  5. 0x701f97c7ff6b704059ffa26483bff6c50757aeb77b70a2a60b588492fc74a3c6
  6. 0x5863b500b4479a8bbe4453ac1f4554271c577aa531838ddf80ddbb0d7cfa504c
  7. 0x540e0ee946357679a4a9390bf87aa41507d761819f291046a460d7033c7e2624
  8. 0xe7a82ebf289114aa570f01f736f531ace9402cc46f11dfde856c5a4d5ee9505b
  9. 0x9a479873ed84c0ad1f708dc60880fdd741ecd6c4698c984d55c1efab1b421e55
  10. 0x1374d43b83adaf6956b75a4ffa6be9b5d88f279b0e1f9aa9cb997253f28541e1
  11. 0x3fbb508bb3373d829808c4b964e49bf52f1a8877acba747d2b92b5eac81e6259
  12. 0x4d2e94451b5ffc570a23dee9d1525bc305f1009994ffe23d8e2e7d45c60f6209
  13. 0xa26f0437cba4d7d64f1cf98bf4f490e1ebb6f66a5e2331537b7ba8b3061084e0
  14. 0xd769d41500075835c3b2f9184d223699fb983fd05c29fbcb44d964abc7ee380d
  15. 0x68d296b1e00b4899fb83c3fba36fffaefa311eac2903067dbebfe776a12b4a9a
  16. 0x5fb5dda563336cd1bc1b9f44c52b76237ae72ed2145cb9290f39f304ca7dd678
  17. 0x74a0a08e4e7ab9aa5bfbead33dec7e1c7e8e364cff69a63720d764bbe987aadc
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON