addrbookFor publishers
← The evidence ledger

Evidence row 300584

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 4832ca15-911e-452f-a6f9-d264888b6773
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
424ee082b95fe43d5bd1427ed67ee0260e0ab1d9d749a467a206fa5e351a64da
Leaf
0x26e8fa4f76e3098889247d41a1a52c9b3526a1a357e89bb369009fc1c691861a

What was observed

{
  "count": 21,
  "tools": [
    {
      "description": "Record a time an employee cannot work (one-off, or recurring with an RFC 5545-style rule such as FREQ WEEKLY, INTERVAL 1, BYDAY MO). Auto-scheduling then skips them. Deputy: POST /api/v1/supervise/unavail.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "comment": {
            "description": "Note the manager sees. Default empty.",
            "type": "string"
          },
          "employee_id": {
            "description": "The employee id.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "end_time": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Unavailability end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
          },
          "recurrence": {
            "description": "Omit for a one-off block.",
            "properties": {
              "BYDAY": {
                "description": "Day code(s), e.g. MO.",
                "type": "string"
              },
              "FREQ": {
                "description": "e.g. WEEKLY.",
                "type": "string"
              },
              "INTERVAL": {
                "description": "Every N periods, e.g. 1 or 2.",
                "maximum": 9007199254740991,
                "minimum": 1,
                "type": "integer"
              }
            },
            "required": [
              "FREQ",
              "INTERVAL",
              "BYDAY"
            ],
            "type": "object"
          },
          "start_time": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Unavailability start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
          }
        },
        "required": [
          "employee_id",
          "start_time",
          "end_time"
        ],
        "type": "object"
      },
      "name": "deputy_add_unavailability"
    },
    {
      "description": "Approve one timesheet's times as a supervisor. Approved timesheets flow toward payroll export, so check it first with deputy_get_timesheet. Deputy: POST /api/v1/supervise/timesheet/approve.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "timesheet_id": {
            "description": "The timesheet id.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "timesheet_id"
        ],
        "type": "object"
      },
      "name": "deputy_approve_timesheet"
    },
    {
      "description": "Add a leave request for an employee. By default it waits for manager approval (status 0); pass status 1 only when your system is the source of truth and the leave is already approved. Deputy tracks leave in hours, so give exact start and end times. Find leave type ids with deputy_query_resource on LeaveRules. Deputy: POST /api/v1/resource/Leave.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "approval_comment": {
            "description": "Manager's comment, when status is 1.",
            "type": "string"
          },
          "comment": {
            "description": "The employee's note to the manager.",
            "type": "string"
          },
          "employee_id": {
            "description": "The employee id.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "end_date": {
            "description": "Last day, YYYY-MM-DD.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "end_time": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Leave end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
          },
          "leave_rule_id": {
            "description": "Leave type (LeaveRules id), e.g. annual leave.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "location_id": {
            "description": "Location (Company id) the leave is recorded against.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "start_date": {
            "description": "First day, YYYY-MM-DD.",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "start_time": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Leave start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
          },
          "status": {
            "anyOf": [
              {
                "const": 0,
                "type": "number"
              },
              {
                "const": 1,
                "type": "number"
              }
            ],
            "description": "0 awaiting approval (default), 1 already approved."
          }
        },
        "required": [
          "employee_id",
          "leave_rule_id",
          "location_id",
          "start_date",
          "start_time",
          "end_date",
          "end_time",
          "comment"
        ],
        "type": "object"
      },
      "name": "deputy_create_leave_request"
    },
    {
      "description": "Post a memo to a location's news feed, optionally requiring staff to confirm they read it, or targeted to specific locations or users. Visible to staff immediately. Deputy: PUT /api/v1/supervise/memo.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "content": {
            "description": "The memo text.",
            "minLength": 1,
            "type": "string"
          },
          "location_id": {
            "description": "Location (Company id) to post to.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "location_ids": {
            "description": "Also show at these locations.",
            "items": {
              "maximum": 9007199254740991,
              "minimum": 1,
              "type": "integer"
            },
            "type": "array"
          },
          "require_confirm": {
            "description": "Ask staff to confirm they have read it. Default false.",
            "type": "boolean"
          },
          "user_ids": {
            "description": "Only these USER ids (not employee ids) receive it.",
            "items": {
              "maximum": 9007199254740991,
              "minimum": 1,
              "type": "integer"
            },
            "type": "array"
          }
        },
        "required": [
          "content",
          "location_id"
        ],
        "type": "object"
      },
      "name": "deputy_create_memo"
    },
    {
      "description": "Add a shift to the roster, assigned to an employee or left open. Created as a DRAFT unless publish is true (publishing can notify the employee). Deputy returns an empty 200 on success — use deputy_list_shifts to find the new shift's id. Deputy: POST /api/v1/supervise/roster.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "area_id": {
            "description": "Area (OperationalUnit id) the shift is for.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "comment": {
            "description": "Comment shown on the shift.",
            "type": "string"
          },
          "confirmed": {
            "description": "Mark the shift as confirmed.",
            "type": "boolean"
          },
          "employee_id": {
            "description": "Employee to put on the shift. Omit (and set open: true) for an unfilled shift.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "end_time": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Shift end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
          },
          "force_overwrite": {
            "description": "Overwrite a clashing shift for the same employee. Default false.",
            "type": "boolean"
          },
          "mealbreak_minutes": {
            "description": "Unpaid meal break length in minutes.",
            "maximum": 600,
            "minimum": 0,
            "type": "integer"
          },
          "open": {
            "description": "Show the shift as open for employees to claim.",
            "type": "boolean"
          },
          "publish": {
            "description": "Publish now. Publishing can notify the employee. Default false (draft).",
            "type": "boolean"
          },
          "start_time": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Shift start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
          }
        },
        "required": [
          "start_time",
          "end_time",
          "area_id"
        ],
        "type": "object"
      },
      "name": "deputy_create_shift"
    },
    {
      "description": "Return a Resource API object's field list, field types and joinable associations — what deputy_query_resource can filter, sort and join on. Deputy: GET /api/v1/resource/{Object}/INFO.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "object": {
            "description": "Resource API object. Deputy names: Company = location, OperationalUnit = area, Roster = shift, LeaveRules = leave types, TimesheetPayReturn = approved pay lines.",
            "enum": [
              "Address",
              "Category",
              "Comment",
              "Company",
              "CompanyPeriod",
              "Contact",
              "Country",
              "CustomField",
              "CustomFieldData",
              "Employee",
              "EmployeeAgreement",
              "EmployeeAgreementHistory",
              "EmployeeAppraisal",
              "EmployeeAvailability",
              "EmployeeContractedHours",
              "EmployeeHistory",
              "EmployeePaycycle",
              "EmployeePaycycleReturn",
              "EmployeeRole",
              "EmployeeWorkplace",
              "EmploymentCondition",
              "EmploymentContract",
              "EmploymentContractLeaveRules",
              "Event",
              "Journal",
              "Leave",
              "LeaveAccrual",
              "LeavePayLine",
              "LeaveRules",
              "Memo",
              "OperationalUnit",
              "PayPeriod",
              "PayRules",
              "PublicHoliday",
              "Roster",
              "RosterOpen",
              "RosterSwap",
              "RosterTemplate",
              "SalesData",
              "Schedule",
              "ShiftTemplate",
              "State",
              "StressProfile",
              "Task",
              "TaskGroup",
              "TaskSetup",
              "Team",
              "Timesheet",
              "TimesheetExport",
              "TimesheetPayReturn",
              "TimesheetPayReturnDetail",
              "TrainingModule",
              "TrainingRecord"
            ],
            "type": "string"
          }
        },
        "required": [
          "object"
        ],
        "type": "object"
      },
      "name": "deputy_describe_resource"
    },
    {
      "description": "Fetch one employee's details as a supervisor sees them — contact, locations, role and employment. Deputy: GET /api/v1/supervise/employee/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "employee_id": {
            "description": "The employee id.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "employee_id"
        ],
        "type": "object"
      },
      "name": "deputy_get_employee"
    },
    {
      "description": "List the times one employee has marked themselves (or been marked) unavailable to work — check before rostering them. Deputy: GET /api/v1/supervise/unavail/{employeeId}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "employee_id": {
            "description": "The employee id.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "employee_id"
        ],
        "type": "object"
      },
      "name": "deputy_get_employee_unavailability"
    },
    {
      "description": "Fetch one shift (Roster record) by id. Deputy: GET /api/v1/resource/Roster/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "shift_id": {
            "description": "The shift (Roster) id.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "shift_id"
        ],
        "type": "object"
      },
      "name": "deputy_get_shift"
    },
    {
      "description": "Fetch one timesheet's full details, including breaks and approval state. Deputy: GET /api/v1/supervise/timesheet/{id}/details.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "timesheet_id": {
            "description": "The timesheet id.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "timesheet_id"
        ],
        "type": "object"
      },
      "name": "deputy_get_timesheet"
    },
    {
      "description": "List areas (Deputy OperationalUnits — the rosterable sections of a location, e.g. Kitchen, Front of house). Shifts and timesheets belong to an area. Optionally only one location's areas. Deputy: GET /api/v1/resource/OperationalUnit, or POST .../OperationalUnit/QUERY when filtered.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "active": {
            "description": "Only active (true) or inactive (false) areas.",
            "type": "boolean"
          },
          "location_id": {
            "description": "Only areas of this location (Company id).",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "max": {
            "description": "Page size, 1-500 (Deputy's cap). Default 100.",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "start": {
            "description": "Pagination offset (0-based). Pass the previous page's next_start.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "deputy_list_areas"
    },
    {
      "description": "Search employees by name, location or active status. Returns Id, DisplayName, Company (main location), Active, StartDate, Role and more. Deputy: POST /api/v1/resource/Employee/QUERY.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "active": {
            "description": "true = current staff only; false = terminated/inactive only.",
            "type": "boolean"
          },
          "location_id": {
            "description": "Only employees whose main location is this Company id.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "max": {
            "description": "Page size, 1-500 (Deputy's cap). Default 100.",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "name_contains": {
            "description": "Only employees whose DisplayName contains this text.",
            "type": "string"
          },
          "start": {
            "description": "Pagination offset (0-based). Pass the previous page's next_start.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "deputy_list_employees"
    },
    {
      "description": "Search leave requests by employee, location, status and time window. Status: 0 awaiting approval, 1 approved, 2 declined, 3 cancelled, 4 date approved without pay, 5 pay approved without date. Start/End are unix; LeaveRule is the leave type id. Deputy: POST /api/v1/resource/Leave/QUERY.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "employee_id": {
            "description": "Only this employee's leave.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "from": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Only leave starting at or after this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times)."
          },
          "location_id": {
            "description": "Only leave against this location (Company id).",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "max": {
            "description": "Page size, 1-500 (Deputy's cap). Default 100.",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "start": {
            "description": "Pagination offset (0-based). Pass the previous page's next_start.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "status": {
            "description": "Only this status (0-5, see description).",
            "maximum": 5,
            "minimum": 0,
            "type": "integer"
          },
          "to": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Only leave starting at or before this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times)."
          }
        },
        "type": "object"
      },
      "name": "deputy_list_leave"
    },
    {
      "description": "List the install's locations (workplaces). Deputy calls a location a Company; its Id is what other tools take as location_id. Deputy: GET /api/v1/resource/Company.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "deputy_list_locations"
    },
    {
      "description": "Search the roster (scheduled shifts) by time window, employee, area, and published/open state. Each record has StartTime/EndTime (unix), StartTimeLocalized, Employee (0 or null when open), OperationalUnit (area), Published, Open, Cost and _DPMetaData with names. Deputy: POST /api/v1/resource/Roster/QUERY.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "area_id": {
            "description": "Only shifts in this area (OperationalUnit id).",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "employee_id": {
            "description": "Only this employee's shifts.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "from": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Only shifts starting at or after this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times)."
          },
          "max": {
            "description": "Page size, 1-500 (Deputy's cap). Default 100.",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "open": {
            "description": "true = open (unfilled) shifts only.",
            "type": "boolean"
          },
          "published": {
            "description": "true = published only; false = drafts only.",
            "type": "boolean"
          },
          "start": {
            "description": "Pagination offset (0-based). Pass the previous page's next_start.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "to": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Only shifts starting at or before this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times)."
          }
        },
        "type": "object"
      },
      "name": "deputy_list_shifts"
    },
    {
      "description": "Search timesheets (actual worked time) by time window, employee, area and approval state. Each record has StartTime/EndTime (unix; EndTime null while in progress), TotalTime (hours), Cost, TimeApproved, PayRuleApproved, IsInProgress, IsLeave, Roster (linked shift) and Exported. Deputy: POST /api/v1/resource/Timesheet/QUERY.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "area_id": {
            "description": "Only timesheets in this area (OperationalUnit id).",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "employee_id": {
            "description": "Only this employee's timesheets.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "from": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Only timesheets starting at or after this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times)."
          },
          "in_progress": {
            "description": "true = only people currently on the clock.",
            "type": "boolean"
          },
          "max": {
            "description": "Page size, 1-500 (Deputy's cap). Default 100.",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "pay_approved": {
            "description": "Filter on PayRuleApproved (approved for payroll export).",
            "type": "boolean"
          },
          "start": {
            "description": "Pagination offset (0-based). Pass the previous page's next_start.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "time_approved": {
            "description": "Filter on TimeApproved (supervisor approved the times).",
            "type": "boolean"
          },
          "to": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Only timesheets starting at or before this time: a unix timestamp in seconds, or an ISO 8601 date/datetime (include an offset for local times)."
          }
        },
        "type": "object"
      },
      "name": "deputy_list_timesheets"
    },
    {
      "description": "Publish draft shifts so employees see them, choosing how they are notified: 1 SMS and email, 2 SMS, 3 email, 4 no notification, 5 confirmation required. Only the listed shift ids are published. Deputy: POST /api/v1/supervise/roster/publish.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "notify_mode": {
            "description": "1 SMS+email, 2 SMS, 3 email, 4 none, 5 confirmation required.",
            "maximum": 5,
            "minimum": 1,
            "type": "integer"
          },
          "shift_ids": {
            "description": "Roster ids to publish.",
            "items": {
              "maximum": 9007199254740991,
              "minimum": 1,
              "type": "integer"
            },
            "maxItems": 500,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "shift_ids",
          "notify_mode"
        ],
        "type": "object"
      },
      "name": "deputy_publish_shifts"
    },
    {
      "description": "Run a Resource API search on any business object (leave types, pay rules, public holidays, memos, events, shift templates, pay lines, availability, sales data, …). `search` is Deputy's clause map, e.g. {\"s1\":{\"field\":\"Employee\",\"data\":12,\"type\":\"eq\"}}; operators: eq ne gt lt ge le is 'is not' in 'not in' starts contains. Use deputy_describe_resource to see an object's fields and joins. Read-only. Deputy: POST /api/v1/resource/{Object}/QUERY.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "join": {
            "description": "Related objects to expand inline, e.g. [\"TimesheetObject\"] on TimesheetPayReturn.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "max": {
            "description": "Page size, 1-500 (Deputy's cap). Default 100.",
            "maximum": 500,
            "minimum": 1,
            "type": "integer"
          },
          "object": {
            "description": "Resource API object. Deputy names: Company = location, OperationalUnit = area, Roster = shift, LeaveRules = leave types, TimesheetPayReturn = approved pay lines.",
            "enum": [
              "Address",
              "Category",
              "Comment",
              "Company",
              "CompanyPeriod",
              "Contact",
              "Country",
              "CustomField",
              "CustomFieldData",
              "Employee",
              "EmployeeAgreement",
              "EmployeeAgreementHistory",
              "EmployeeAppraisal",
              "EmployeeAvailability",
              "EmployeeContractedHours",
              "EmployeeHistory",
              "EmployeePaycycle",
              "EmployeePaycycleReturn",
              "EmployeeRole",
              "EmployeeWorkplace",
              "EmploymentCondition",
              "EmploymentContract",
              "EmploymentContractLeaveRules",
              "Event",
              "Journal",
              "Leave",
              "LeaveAccrual",
              "LeavePayLine",
              "LeaveRules",
              "Memo",
              "OperationalUnit",
              "PayPeriod",
              "PayRules",
              "PublicHoliday",
              "Roster",
              "RosterOpen",
              "RosterSwap",
              "RosterTemplate",
              "SalesData",
              "Schedule",
              "ShiftTemplate",
              "State",
              "StressProfile",
              "Task",
              "TaskGroup",
              "TaskSetup",
              "Team",
              "Timesheet",
              "TimesheetExport",
              "TimesheetPayReturn",
              "TimesheetPayReturnDetail",
              "TrainingModule",
              "TrainingRecord"
            ],
            "type": "string"
          },
          "search": {
            "additionalProperties": {
              "properties": {
                "data": {
                  "description": "Comparison value; type depends on the field."
                },
                "field": {
                  "description": "Field name, e.g. Employee, Date, StartTime.",
                  "type": "string"
                },
                "type": {
                  "description": "Comparison operator.",
                  "enum": [
                    "eq",
                    "ne",
                    "gt",
                    "lt",
                    "ge",
                    "le",
                    "is",
                    "is not",
                    "in",
                    "not in",
                    "starts",
                    "contains"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "field",
                "data",
                "type"
              ],
              "type": "object"
            },
            "description": "Clauses keyed by any id (s1, s2, …). All must match.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "sort": {
            "additionalProperties": {
              "enum": [
                "asc",
                "desc"
              ],
              "type": "string"
            },
            "description": "Field → asc/desc, e.g. {\"Id\":\"desc\"}.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "start": {
            "description": "Pagination offset (0-based). Pass the previous page's next_start.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "object"
        ],
        "type": "object"
      },
      "name": "deputy_query_resource"
    },
    {
      "description": "Change an existing shift's times, area, employee, break or comment. Send the full intended shift (same fields as create) — Deputy's update is the add call with the shift id. Deputy: POST /api/v1/supervise/roster with intRosterId.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "area_id": {
            "description": "Area (OperationalUnit id) the shift is for.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "comment": {
            "description": "Comment shown on the shift.",
            "type": "string"
          },
          "confirmed": {
            "description": "Mark the shift as confirmed.",
            "type": "boolean"
          },
          "employee_id": {
            "description": "Employee to put on the shift. Omit (and set open: true) for an unfilled shift.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "end_time": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Shift end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
          },
          "force_overwrite": {
            "description": "Overwrite a clashing shift for the same employee. Default false.",
            "type": "boolean"
          },
          "mealbreak_minutes": {
            "description": "Unpaid meal break length in minutes.",
            "maximum": 600,
            "minimum": 0,
            "type": "integer"
          },
          "open": {
            "description": "Show the shift as open for employees to claim.",
            "type": "boolean"
          },
          "publish": {
            "description": "Publish now. Publishing can notify the employee. Default false (draft).",
            "type": "boolean"
          },
          "shift_id": {
            "description": "The shift (Roster) id.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "start_time": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Shift start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
          }
        },
        "required": [
          "shift_id",
          "start_time",
          "end_time",
          "area_id"
        ],
        "type": "object"
      },
      "name": "deputy_update_shift"
    },
    {
      "description": "Correct an existing timesheet's start/end time, area, meal break or supervisor comment. Times cannot be in the future. Deputy: POST /api/v1/supervise/timesheet/update.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "area_id": {
            "description": "Area (OperationalUnit id) the time was worked in.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "comment": {
            "description": "Comment attached to the timesheet.",
            "type": "string"
          },
          "end_time": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Timesheet end: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
          },
          "mealbreak_minutes": {
            "description": "Total unscheduled meal break, minutes.",
            "maximum": 600,
            "minimum": 0,
            "type": "integer"
          },
          "start_time": {
            "anyOf": [
              {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "description": "Timesheet start: a unix timestamp in seconds, or an ISO 8601 datetime (include an offset for local times)."
          },
          "timesheet_id": {
            "description": "The timesheet id.",
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "timesheet_id",
          "start_time",
          "end_time",
          "area_id"
        ],
        "type": "object"
      },
      "name": "deputy_update_timesheet"
    },
    {
      "description": "Return the Deputy user the token belongs to — name, employee id, company and permissions. A cheap way to confirm DEPUTY_INSTALL and the token are right. Deputy: GET /api/v1/me.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "deputy_whoami"
    }
  ]
}

What the leaf hashes

{"body":"424ee082b95fe43d5bd1427ed67ee0260e0ab1d9d749a467a206fa5e351a64da","id":300584,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793053544345898,"prev":null,"subject":"4832ca15-911e-452f-a6f9-d264888b6773","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. 0x26e962960fc4a4f640d62f8563894f05f69979e82113bb852a08366669a8f0aa
  2. 0x2585cff17cebce774c50dfac1b8f6c2b8bf51bdb89acbd75681ccde650b91b1e
  3. 0x42b7acf1bcafabf6d78d0e4e846e7798242839df995520bd377928a5d873dbd5
  4. 0x1ff3f2b5b115086d05c249425b05b8a56dc23ba49eaf037171c04506293be672
  5. 0xc14fa78f6d45eac68e83716129799c396562fee8db9328b0f4cdf174233094b1
  6. 0xd3b1f87ab15dce36fde655823a678407d8891ca447b4f67afcdd4eefd964ed9e
  7. 0x6039c552594aa223af292f9d3cf3c4b57e56d01ce922684a260e211bb4b114fb
  8. 0x721a042ffb3804cb1d150619d7c41d4225e877650c98bba060485f43ad1e76d4
  9. 0x674938760b2a1f5ef84165bfad68f9f03daa720ff7669a68579f5807b0a6c6c4
  10. 0xad558df47956c7575e501c0b81dc4eb03d9b165e990657293028c04774a19b4c
  11. 0x90f2b3a28efa276421488834f526df2e5769ef8f14ee569439eea7b97f77a866
  12. 0x266d991b0a994042474d2789bd5d3ba2433a122ae3c1027e2ccd7c0f4cf63071
  13. 0x830b2c874449c7499489eba2baa67d49f991298225763c0161b471621038d0fb
  14. 0xd843afcced75dedd39194ff9bd12326b88099e6112686db2299392d022dc3146
  15. 0xc3a6a3ae44ec0da1848b16d40c45d7aac97a67352eea8df18e0f26edabea8a2f
  16. 0x06d71bfa7d8b41d62c8836efc2c601e1cc3772d9453596b2ae4950887f3310ca
  17. 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON