← The evidence ledger
Evidence row 299976
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint af5925cd-ca22-4618-ae13-8c5134777185
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- b2b9d3495d3e6a32bcebd48e662d2eed9f0b8fb13d8729de721920dd9599eb95
- Leaf
- 0xa07cf9abdd27cba308a4a2830a82e83bb0ea988af84d725e155bbe9a5872aa8d
What was observed
{
"count": 25,
"tools": [
{
"description": "WRITE: approve a pending leave request; it becomes an absence and is deducted from the allowance. Recorded as done by the \"API Employee\". POST /leave_requests/{id}/approve.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"leave_request_id": {
"description": "Breathe leave request id (from breathehr_list_leave_requests).",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"leave_request_id"
],
"type": "object"
},
"name": "breathehr_approve_leave_request"
},
{
"description": "WRITE: request leave for an employee (holiday by default, or other leave). It is created as a request, then follows the account's approval rules; the employee's approver is notified. Each call creates a new request. POST /employees/{id}/leave_requests.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"employee_id": {
"description": "Breathe employee id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"end_date": {
"description": "Last day of leave (yyyy-mm-dd), same as start_date for one day.",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"half_end": {
"description": "The last day is a half day (default false).",
"type": "boolean"
},
"half_end_am_pm": {
"description": "Which half of the last day: am or pm (with half_end).",
"enum": [
"am",
"pm"
],
"type": "string"
},
"half_start": {
"description": "The first day is a half day (default false).",
"type": "boolean"
},
"half_start_am_pm": {
"description": "Which half of the first day: am or pm (with half_start).",
"enum": [
"am",
"pm"
],
"type": "string"
},
"notes": {
"description": "Notes for the approver.",
"maxLength": 2000,
"type": "string"
},
"start_date": {
"description": "First day of leave (yyyy-mm-dd).",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"type": {
"description": "Holiday (default) or OtherLeave.",
"enum": [
"Holiday",
"OtherLeave"
],
"type": "string"
}
},
"required": [
"employee_id",
"start_date",
"end_date"
],
"type": "object"
},
"name": "breathehr_create_leave_request"
},
{
"description": "The Breathe HR account (company) this API key belongs to: id, name, domain and enabled modules. GET /account.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "breathehr_get_account"
},
{
"description": "One employee's record by id (personal and job details, contacts, manager, working pattern). Bank details and NI number are never returned. GET /employees/{id}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"employee_id": {
"description": "Breathe employee id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"employee_id"
],
"type": "object"
},
"name": "breathehr_get_employee"
},
{
"description": "An employee's holiday years: start/end, allowance, days or hours taken, booked and remaining. Pass for_date to get only the year that contains that date. GET /employees/{id}/employee_holiday_years.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"employee_id": {
"description": "Breathe employee id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"for_date": {
"description": "Only the holiday year that includes this date (yyyy-mm-dd), e.g. today.",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
}
},
"required": [
"employee_id"
],
"type": "object"
},
"name": "breathehr_get_holiday_years"
},
{
"description": "One leave request by id, with its status. GET /leave_requests/{id}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"leave_request_id": {
"description": "Breathe leave request id.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"leave_request_id"
],
"type": "object"
},
"name": "breathehr_get_leave_request"
},
{
"description": "List approved absences (holiday and other leave) with employee, dates, half days, days deducted and cancelled flag. Filter by employee, department, type, other-leave reason and dates. GET /absences.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"department_id": {
"description": "Only absences of employees in this department.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"employee_id": {
"description": "Only this employee's absences.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"end_date": {
"description": "Only absences up to this date (yyyy-mm-dd).",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"exclude_cancelled": {
"description": "Leave out cancelled absences.",
"type": "boolean"
},
"other_leave_reason_id": {
"description": "Only other leave with this reason (ids from breathehr_list_other_leave_reasons).",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
},
"start_date": {
"description": "Only absences on or after this date (yyyy-mm-dd).",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"type": {
"description": "Holiday or OtherLeave.",
"enum": [
"Holiday",
"OtherLeave"
],
"type": "string"
}
},
"type": "object"
},
"name": "breathehr_list_absences"
},
{
"description": "List employee benefits (type, value, start/end) for the whole company, one employee or one department. GET /benefits, /employees/{id}/benefits or /departments/{id}/benefits.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"department_id": {
"description": "Only records of employees in this department.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"employee_id": {
"description": "Only this employee's records.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
}
},
"type": "object"
},
"name": "breathehr_list_benefits"
},
{
"description": "List bonus records (amount, date, description) for the whole company, one employee or one department. GET /bonuses, /employees/{id}/bonuses or /departments/{id}/bonuses.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"department_id": {
"description": "Only records of employees in this department.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"employee_id": {
"description": "Only this employee's records.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
}
},
"type": "object"
},
"name": "breathehr_list_bonuses"
},
{
"description": "List employee self-service change requests (field, requested value, approval state) for all employees or one employee. Requested values of bank and NI fields are redacted. GET /change_requests or /employees/{id}/change_requests.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"employee_id": {
"description": "Only this employee's change requests.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
}
},
"type": "object"
},
"name": "breathehr_list_change_requests"
},
{
"description": "List the company's departments (id, name). Use the ids to filter absences, leave, sickness and pay. GET /departments.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
}
},
"type": "object"
},
"name": "breathehr_list_departments"
},
{
"description": "List the company's divisions (id, name). All of them are returned in one reply. GET /divisions.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "breathehr_list_divisions"
},
{
"description": "List job history records (job title, start/end dates, department, location) for all employees or one employee. GET /employee_jobs.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"employee_id": {
"description": "Only this employee's jobs.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
}
},
"type": "object"
},
"name": "breathehr_list_employee_jobs"
},
{
"description": "List employees with job title, department, division, location, line manager, holiday approver, working pattern, join/leaving dates and status. Bank details and National Insurance numbers are never returned. GET /employees.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"filter": {
"description": "Only employees with this role: hr (HR managers), line_manager, either, or neither.",
"enum": [
"hr",
"line_manager",
"either",
"neither"
],
"type": "string"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
}
},
"type": "object"
},
"name": "breathehr_list_employees"
},
{
"description": "List expense claims (employee, total, state, approver) filtered by employee and state. GET /employee_expense_claims.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"employee_id": {
"description": "Only this employee's claims.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
},
"state": {
"description": "Only claims in this state.",
"enum": [
"submitted",
"approved",
"completed",
"rejected"
],
"type": "string"
}
},
"type": "object"
},
"name": "breathehr_list_expense_claims"
},
{
"description": "List individual expense items (date, description, type, amount, VAT, project). By default only unclaimed items; set include_claimed to see all. GET /employee_expenses.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"employee_id": {
"description": "Only this employee's expenses.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"include_claimed": {
"description": "Also return expenses already part of a claim.",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
}
},
"type": "object"
},
"name": "breathehr_list_expenses"
},
{
"description": "List the holiday allowance schemes (id, default flag, year_1 to year_10 = the allowance for each year of service, created_at, updated_at). All of them are returned in one reply. GET /holiday_allowances.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "breathehr_list_holiday_allowances"
},
{
"description": "List leave requests (pending, approved, rejected and cancelling requests) with employee, dates, half days, type, status and notes. Filter by employee, department and start-date range. GET /leave_requests.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"department_id": {
"description": "Only requests of employees in this department.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"employee_id": {
"description": "Only this employee's requests.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"end_date": {
"description": "Only requests starting on or before this date (yyyy-mm-dd).",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"exclude_cancelled": {
"description": "Leave out cancelled requests.",
"type": "boolean"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
},
"start_date": {
"description": "Only requests starting on or after this date (yyyy-mm-dd).",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
}
},
"type": "object"
},
"name": "breathehr_list_leave_requests"
},
{
"description": "List the company's work locations (id, name). All of them are returned in one reply. GET /locations.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "breathehr_list_locations"
},
{
"description": "List the reasons for non-holiday leave (e.g. compassionate, jury service). Use the ids to filter absences. All of them are returned in one reply. GET /other_leave_reasons.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "breathehr_list_other_leave_reasons"
},
{
"description": "List salary records (amount, basis, payment schedule, start date) for the whole company, one employee or one department. GET /salaries, /employees/{id}/salaries or /departments/{id}/salaries.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"department_id": {
"description": "Only records of employees in this department.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"employee_id": {
"description": "Only this employee's records.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
}
},
"type": "object"
},
"name": "breathehr_list_salaries"
},
{
"description": "List sickness absence records (health data): employee, sickness type, dates, half days, days deducted, status (open, returned, closed…) and reason. Filter by employee, department and start-date range. GET /sicknesses.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"department_id": {
"description": "Only sickness of employees in this department.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"employee_id": {
"description": "Only this employee's sickness.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"end_date": {
"description": "Only sickness starting on or before this date (yyyy-mm-dd).",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
},
"start_date": {
"description": "Only sickness starting on or after this date (yyyy-mm-dd).",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"type": "string"
}
},
"type": "object"
},
"name": "breathehr_list_sicknesses"
},
{
"description": "List employee training records (course name, type, status, dates, cost) for all employees or one employee. GET /employee_training_courses.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"employee_id": {
"description": "Only this employee's training.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0,
"maximum": 100000,
"type": "integer"
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "integer"
}
},
"type": "object"
},
"name": "breathehr_list_training_courses"
},
{
"description": "List the working patterns (hours per weekday, total weekly hours, default flag). All of them are returned in one reply. GET /working_patterns.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "breathehr_list_working_patterns"
},
{
"description": "WRITE: reject a pending leave request with a reason the employee will see. Recorded as done by the \"API Employee\". POST /leave_requests/{id}/reject.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"leave_request_id": {
"description": "Breathe leave request id (from breathehr_list_leave_requests).",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"rejection_reason": {
"description": "Why the request is rejected (shown to the employee).",
"maxLength": 2000,
"minLength": 1,
"type": "string"
}
},
"required": [
"leave_request_id",
"rejection_reason"
],
"type": "object"
},
"name": "breathehr_reject_leave_request"
}
]
}What the leaf hashes
{"body":"b2b9d3495d3e6a32bcebd48e662d2eed9f0b8fb13d8729de721920dd9599eb95","id":299976,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793053202983674,"prev":null,"subject":"af5925cd-ca22-4618-ae13-8c5134777185","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0xa07d3fdbc4c0dc0c65bdd59ceb5d0236921951df5d62fe5f11b38208034a54df
- 0x8bf8962932231e612da2527bf4257d99163e12eb235e03a9eaa8746043ac3b85
- 0xe8543bf6d29240142eea5117642a9fb32c203fb0de930c3d6670d876997d01e5
- 0x22d2b572bbf06e2d2cc5afc04bccb1fe810d30748ffd44a0fa770cd64982caf2
- 0xb5acb2299c59563a9b7ee643704fa4592f86ac6bdc288475d36e35d30679ffdb
- 0x24dc93d647a859398c0698f39639506c9c64d8787b45f8414c198e67f1fa8168
- 0xd491caf19fec480eb7a0f4595bcbbb924fda332225ff742321bd3dbe9c70fe24
- 0x924cb223023ed5a7a8e51c93e16beb3ace20245eada6544982a134582e3b1b97
- 0x9aace6008a443ba750b03c0c28d93d0189196c609db59107298363e8229ec54c
- 0xfc1c15deb00c4c3458cd5fe1ee472da303593b7fe5af49038ad8aa811e480c14
- 0x201e001c6e19ae71acc15269442af8d1874e41df9926feb22cbf8a2b7fd3180b
- 0x6367dad81ab5c2e6f424ad3e06310c9b75079293d62a08dfbde98ef993c35229
- 0xf8d3e004d9a208d2c5e82ab676956d80f8a3c78387c61dad15a3a8269efee0d8
- 0x6713795704ddd9c528d421fadd9cc96b0200a4ddbba84f88e718d4968dde888b
- 0x62a900133713919f4eed33d8336876b7a6d538233b8a4f3ed03b29aa44f5bad0
- 0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f
- 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
- 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae