Tools Reference
BookYourPTO MCP exposes 346 tools across 19 categories. Every tool is listed below with its parameters and behaviour. This page is generated from the live tool registry, so it matches what your AI client actually sees.
Authentication
Authentication is handled automatically via OAuth 2.0 with PKCE. When you first connect, your browser opens a BookYourPTO login page; after you sign in, your AI client receives a short-lived access token — no credentials are ever shared with the AI. Every tool runs with your own identity and role-based permissions.
How to read this page
Each tool shows MCP annotations and a risk level that the host uses to decide when to prompt you for confirmation:
- Read-only — does not change any data (
readOnlyHint). Safe to call freely. - Write — creates or updates data. The AI should confirm intent before calling.
- Destructive — deletes data or performs an irreversible action (
destructiveHint). Hosts typically require explicit confirmation. - Risk: medium / high — surfaced to the client; high-risk tools (offboarding, deletes, payouts, publishing) should only be called after you explicitly confirm the specific record by ID.
Tool Categories
| Category | Tools | Jump to |
|---|---|---|
| Leaves | 9 | Leaves |
| Time Tracking | 10 | Time Tracking |
| Expenses | 22 | Expenses |
| Users | 21 | Users |
| Schedules | 11 | Schedules |
| Projects | 15 | Projects |
| Organization | 14 | Organization |
| Reports | 2 | Reports |
| HR | 64 | HR |
| Clients | 5 | Clients |
| Notifications | 5 | Notifications |
| Calendar | 8 | Calendar |
| Performance | 31 | Performance |
| Training | 14 | Training |
| Benefits | 8 | Benefits |
| Documents | 16 | Documents |
| Admin | 89 | Admin |
| System | 1 | System |
| Auth | 1 | Auth |
Leaves
9 tools.
query_leaves
List leave requests. Filters by user, year, and status. Employees see their own; managers/admins see others.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | No | User ID to query (defaults to authenticated user) |
year | number | No | Year to query (defaults to current year) |
status | string | No | Filter by status: PENDING, APPROVED, REJECTED, CANCELLED |
get_leave_balance
Get leave balance breakdown (annual, sick, carried over) for a user and year.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | No | User ID (defaults to authenticated user) |
year | number | No | Fiscal year (defaults to current year) |
get_pending_leave_approvals
List pending leave requests awaiting approval. Requires DEPARTMENT_HEAD, ADMINISTRATOR, or EXECUTIVE role.
Read-only
No parameters.
create_leave_request
Submit a new leave request. Provide the user ID, leave type ID, dates, and optional half-day settings. Use get_leave_balance first to check availability.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | User ID for whom to create the leave |
leaveTypeId | string | Yes | Leave type ID (use bypto://leave-types resource to look up) |
startDate | string | Yes | Start date (YYYY-MM-DD) |
endDate | string | Yes | End date (YYYY-MM-DD) |
startHalf | enum: FULL_DAY, FIRST_HALF, SECOND_HALF | No | Half-day setting: FULL_DAY, FIRST_HALF, or SECOND_HALF (default: "FULL_DAY") |
endHalf | enum: FULL_DAY, FIRST_HALF, SECOND_HALF | No | Half-day setting: FULL_DAY, FIRST_HALF, or SECOND_HALF (default: "FULL_DAY") |
reason | string | No | Reason for leave |
approve_or_reject_leave
Approve or reject a pending leave request. Requires DEPARTMENT_HEAD, ADMINISTRATOR, or EXECUTIVE role.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
leaveId | string | Yes | ID of the leave request |
action | enum: approve, reject | Yes | Action to take |
reason | string | No | Rejection reason (required if rejecting) |
update_leave
Update an existing leave request. Only the fields you provide are changed. Cannot change a leave that has been approved unless you are an ADMIN/EXEC.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
leaveId | string | Yes | Resource ID |
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
startHalf | enum: FULL_DAY, FIRST_HALF, SECOND_HALF | No | Half-day setting: FULL_DAY, FIRST_HALF, or SECOND_HALF (default: "FULL_DAY") |
endHalf | enum: FULL_DAY, FIRST_HALF, SECOND_HALF | No | Half-day setting: FULL_DAY, FIRST_HALF, or SECOND_HALF (default: "FULL_DAY") |
reason | string | No | |
notes | string | No |
delete_leave
Delete a leave request. The dates are returned to the user balance. Cannot delete approved leaves unless ADMIN/EXEC.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
leaveId | string | Yes | Resource ID |
query_leave_schedule
Get the leave schedule (combined view) across all users for a date range. Useful for planning team capacity and spotting staffing gaps.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | Yes | Start date (YYYY-MM-DD) |
endDate | string | Yes | End date (YYYY-MM-DD) |
departmentId | string | No | Filter to a department |
group_book_leaves
Book the same leave for multiple users at once (e.g. company shutdown, all-hands offsite). Each user gets their own leave record. Requires ADMIN/EXEC.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userIds | string | Yes | List of user IDs to book leave for |
leaveTypeId | string | Yes | Leave type ID |
startDate | string | Yes | Start date (YYYY-MM-DD) |
endDate | string | Yes | End date (YYYY-MM-DD) |
reason | string | No |
Time Tracking
10 tools.
get_time_tracking_status
Get current clock status (clocked in / out / on break) and today's summary for a user.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | No | User ID (defaults to authenticated user) |
clock_action
Clock in, clock out, start break, or end break. For clock_in, optionally specify project and description.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
action | enum: clock_in, clock_out, start_break, end_break | Yes | The clock action to perform |
projectId | string | No | Project ID (for clock_in, if required by org settings) |
taskId | string | No | Task ID (for clock_in) |
description | string | No | Work description (for clock_in) |
query_time_entries
List time entries filtered by user, date range, and project. Supports pagination.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | No | User ID (defaults to authenticated user for employees) |
startDate | string | No | Start date filter (YYYY-MM-DD) |
endDate | string | No | End date filter (YYYY-MM-DD) |
projectId | string | No | Filter by project ID |
page | number | No | Page number (default: 1) |
limit | number | No | Results per page (max 50) (default: 20) |
create_time_entry
Create a manual time entry (e.g. for forgotten clock-in or admin entry on behalf of a user).
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | No | User ID — defaults to current user |
clockIn | string | Yes | Clock-in datetime (ISO 8601) |
clockOut | string | No | Clock-out datetime (ISO 8601) |
breakDurationMinutes | number | No | Default: 0 |
projectId | string | No | |
taskId | string | No | |
description | string | No |
update_time_entry
Update a time entry. Cannot edit entries that have been approved.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
entryId | string | Yes | Resource ID |
clockIn | string | No | |
clockOut | string | No | |
breakDurationMinutes | number | No | |
projectId | string | No | |
taskId | string | No | |
description | string | No |
delete_time_entry
Delete a time entry. Cannot delete entries that have been approved.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
entryId | string | Yes | Resource ID |
query_time_approvals
List pending time entry approvals (DEPT_HEAD+ only).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
departmentId | string | No |
approve_time_entry
Approve or reject a single time entry.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
entryId | string | Yes | Resource ID |
approved | boolean | Yes | |
reason | string | No | Reason for rejection |
bulk_approve_time
Bulk approve or reject many time entries at once.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
entryIds | string | Yes | |
approved | boolean | Yes | |
reason | string | No |
get_billing_report
Get the time-tracking billing report (hours grouped by client/project).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | Yes | YYYY-MM-DD |
endDate | string | Yes | YYYY-MM-DD |
clientId | string | No | |
projectId | string | No |
Expenses
22 tools.
query_expenses
List expense reports. Filters by user, status, report type, and date range. Employees see own; managers/admins see others.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | No | User ID to filter by |
status | string | No | Filter by status: DRAFT, SUBMITTED, PENDING_APPROVAL, APPROVED, REJECTED, PAID, CANCELLED |
reportType | enum: REIMBURSEMENT, COMPANY_CARD | No | Filter by report type |
startDate | string | No | Start date (YYYY-MM-DD) |
endDate | string | No | End date (YYYY-MM-DD) |
page | number | No | Default: 1 |
limit | number | No | Default: 20 |
get_expense_details
Get full details of an expense report including line items, per diems, and mileage entries.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
expenseId | string | Yes | Expense report ID |
get_expense_approvals
List expense reports pending your approval. Requires manager, DEPARTMENT_HEAD, ADMINISTRATOR, or EXECUTIVE role.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
page | number | No | Default: 1 |
limit | number | No | Default: 20 |
approve_or_reject_expense
Approve or reject a submitted/pending expense report. Requires appropriate manager or admin role.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
expenseId | string | Yes | Expense report ID |
action | enum: approve, reject | Yes | Action to take |
notes | string | No | Approver notes or rejection reason |
create_expense
Create a new expense report. Supports REIMBURSEMENT (default) and COMPANY_CARD types. Company card requires org setting enabled.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Report title |
departureDate | string | Yes | Start/departure date (YYYY-MM-DD) |
returnDate | string | Yes | End/return date (YYYY-MM-DD) |
reportType | enum: REIMBURSEMENT, COMPANY_CARD | No | Report type (default: "REIMBURSEMENT") |
description | string | No | Report description |
tripPurpose | string | No | Trip purpose |
currency | string | No | Currency code (e.g. CAD, USD) |
departmentId | string | No | Department ID |
projectId | string | No | Project ID |
payableToId | string | No | User ID to pay (for reimbursements to another user) |
submit_expense
Submit an expense report for approval. Must be in DRAFT status with at least one item. Company card expenses require the companyCardRequiresApproval setting.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
expenseId | string | Yes | Expense report ID |
mark_expense_paid
Mark an approved expense report as paid. Requires ADMINISTRATOR or EXECUTIVE role. Optionally records payment reference and method. Triggers QuickBooks sync if configured.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
expenseId | string | Yes | Expense report ID |
paymentReference | string | No | Payment reference (e.g. cheque number, transfer ID) |
paymentMethod | string | No | Payment method: DIRECT_DEPOSIT, CHEQUE, WIRE_TRANSFER, CASH, CREDIT_CARD, OTHER |
get_expense_settings
Get organization expense settings including approval rules, receipt requirements, company card configuration, and per diem/mileage rates.
Read-only
No parameters.
analyze_receipt
AI-powered receipt analysis. Provide a base64 image or a URL — returns vendor, date, amount, currency, and category suggestion. Useful for automating expense entry.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
imageBase64 | string | No | Base64-encoded image data |
imageUrl | string | No | Public URL to fetch the image |
get_receipt_quota
Get the current month receipt quota usage and remaining count.
Write
No parameters.
delete_receipt
Delete a receipt from an expense report.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
reportId | string | Yes | Resource ID |
receiptId | string | Yes | Resource ID |
add_expense_line_item
Add a line item to an expense report.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
reportId | string | Yes | Resource ID |
date | string | Yes | Date of expense (YYYY-MM-DD) |
vendor | string | No | |
category | string | No | |
description | string | No | |
amount | number | Yes | |
currency | string | No | Default: "USD" |
receiptId | string | No |
update_line_item
Update an expense line item.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
reportId | string | Yes | Resource ID |
itemId | string | Yes | Resource ID |
date | string | No | |
vendor | string | No | |
category | string | No | |
description | string | No | |
amount | number | No | |
currency | string | No |
delete_line_item
Delete an expense line item.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
reportId | string | Yes | Resource ID |
itemId | string | Yes | Resource ID |
add_per_diem
Add a per-diem (meal allowance) to an expense report.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
reportId | string | Yes | Resource ID |
date | string | Yes | |
mealType | string | Yes | BREAKFAST, LUNCH, DINNER, INCIDENTAL |
amount | number | Yes | |
currency | string | No | Default: "USD" |
location | string | No |
delete_per_diem
Delete a per-diem entry.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
reportId | string | Yes | Resource ID |
itemId | string | Yes | Resource ID |
add_mileage
Add a mileage entry to an expense report.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
reportId | string | Yes | Resource ID |
date | string | Yes | |
origin | string | Yes | |
destination | string | Yes | |
distance | number | Yes | Distance in miles or km |
unit | enum: MILES, KM | No | Default: "MILES" |
ratePerUnit | number | No | Override the org default rate |
purpose | string | No |
delete_mileage
Delete a mileage entry.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
reportId | string | Yes | Resource ID |
itemId | string | Yes | Resource ID |
cancel_expense
Cancel an expense report (sets status to CANCELLED).
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
reportId | string | Yes | Resource ID |
reason | string | No |
delete_expense
Delete an expense report. Cannot delete approved/paid reports.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
reportId | string | Yes | Resource ID |
bulk_mark_expenses_paid
Mark many approved expense reports as paid in one call (e.g. after running payroll).
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
reportIds | string | Yes | |
paidDate | string | No | Date in YYYY-MM-DD format |
paymentReference | string | No |
update_expense_settings
Update the org-wide expense settings.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
defaultCurrency | string | No | |
mileageRate | number | No | |
perDiemRates | object (map) | No | |
maxClaimAmount | number | No | |
requireReceipts | boolean | No | |
requireApproval | boolean | No |
Users
21 tools.
get_team_members
List all users in the organization with their role, department, and manager info.
Read-only
No parameters.
get_user_profile
Get detailed profile for a specific user by ID.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | User ID |
get_departments
List all departments in the organization.
Read-only
No parameters.
search_directory
Search the people directory by name, job title, email, or employee number. Returns a paginated list of users with their department and role. Use this to find people by partial name when you only have a fragment.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search query — matches name, title, email, employee # |
departmentId | string | No | Filter to a specific department |
includeInactive | boolean | No | Include offboarded / deactivated users (default: false) |
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
get_org_chart
Get the organization reporting hierarchy as a tree. Each node lists a person, their job title, and their direct reports. Use this for "who reports to whom?" questions and to render organizational charts.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
rootUserId | string | No | User ID to root the tree at — defaults to org-wide top-level managers |
includeInactive | boolean | No | Include offboarded users in the tree (default: false) |
update_user_profile
Update an employee profile. Supports basic info, contact details, address, social links, employment, and emergency contact. Only the fields you provide are changed; everything else is preserved. Requires ADMIN/EXEC for users other than yourself.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
firstName | string | No | First name |
lastName | string | No | Last name |
preferredName | string | No | Preferred / display name |
jobTitle | string | No | Job title |
employeeNumber | string | No | Employee number / ID |
phoneMobile | string | No | Mobile phone |
phoneWork | string | No | Work phone |
phoneHome | string | No | Home phone |
phoneExt | string | No | Phone extension |
homeEmail | string | No | Personal/home email |
addressLine1 | string | No | |
addressLine2 | string | No | |
city | string | No | |
stateProvince | string | No | |
postalCode | string | No | |
country | string | No | |
dateOfBirth | string | No | Date of birth (YYYY-MM-DD) |
gender | string | No | |
maritalStatus | string | No | |
nationality | string | No | |
shirtSize | string | No | |
linkedIn | string | No | |
github | string | No | |
twitter | string | No | |
facebook | string | No | |
hireDate | string | No | Hire date (YYYY-MM-DD) |
managerId | string | No | Manager's user ID |
departmentId | string | No | |
divisionId | string | No | |
workLocation | string | No | |
emergencyContactName | string | No | |
emergencyContactRelationship | string | No | |
emergencyContactPhone | string | No | |
emergencyContactEmail | string | No |
create_user
Create a new employee. Triggers the default onboarding template if one exists. Sends welcome email if requested. Requires ADMIN/EXEC.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
firstName | string | Yes | First name |
lastName | string | Yes | Last name |
email | string | Yes | Work email — used for login |
role | enum: EMPLOYEE, DEPARTMENT_HEAD, ADMINISTRATOR, EXECUTIVE | No | Role (default EMPLOYEE) |
jobTitle | string | No | Job title |
departmentId | string | No | Department ID |
managerId | string | No | Manager's user ID |
hireDate | string | No | Hire date — drives onboarding due dates |
employeeNumber | string | No | |
sendWelcomeEmail | boolean | No | Send welcome email with credentials (default: true) |
offboard_preview
Preview what will happen if a user is offboarded. Returns counts of leaves, time entries, expenses, document assignments, direct reports, department head assignments, 1:1 series, onboarding instances, projects, tasks, benefit enrollments, and future shifts that will be cleaned up. Always run this before offboard_user so you can show the operator a 'what will happen' summary.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
offboard_user
Offboard an employee with structured cleanup. Cancels future leaves and shifts, reassigns department head if applicable, archives 1:1 series, completes onboarding, etc. Run offboard_preview FIRST and confirm with the operator. Requires end date and termination code. Writes an OFFBOARD audit log entry.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
endDate | string | Yes | Last day of employment (YYYY-MM-DD) |
terminationCode | string | Yes | Termination code (e.g. VOLUNTARY, INVOLUNTARY, RETIREMENT, END_OF_CONTRACT) |
noticeDate | string | No | Date notice was given |
roeCompletedDate | string | No | Date ROE/SAT was completed |
notes | string | No | Internal notes about the offboarding |
replacementDeptHeadId | string | No | User ID to take over as department head if this user was one |
reactivate_user
Restore login access for a previously offboarded user. Subject to seat limits on the org plan. Does NOT undo the offboarding cleanup (cancelled leaves, archived 1:1s, etc).
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
change_user_role
Change a user role to EMPLOYEE, DEPARTMENT_HEAD, ADMINISTRATOR, or EXECUTIVE. ADMIN/EXEC only. Writes an audit log entry with the previous and new role.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
role | enum: EMPLOYEE, DEPARTMENT_HEAD, ADMINISTRATOR, EXECUTIVE | Yes | User role |
create_department
Create a new department. Requires ADMIN/EXEC.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Department name |
code | string | No | Short code |
color | string | No | Hex color (#RRGGBB) |
headOfDeptId | string | No | User ID of department head |
update_department
Update a department. Only the fields you provide are changed.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
departmentId | string | Yes | Resource ID |
name | string | No | |
code | string | No | |
color | string | No | |
headOfDeptId | string | No | User ID of new department head — note: a user can only head one department at a time |
delete_department
Delete a department. Fails if there are users still assigned to it.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
departmentId | string | Yes | Resource ID |
query_teams
List teams in the organization.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
create_team
Create a new team.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Team name |
description | string | No | |
color | string | No | Hex color (#RRGGBB) |
update_team
Update a team.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
teamId | string | Yes | Resource ID |
name | string | No | |
description | string | No | |
color | string | No |
delete_team
Delete a team.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
teamId | string | Yes | Resource ID |
query_team_members
List members of a team.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
teamId | string | Yes | Resource ID |
add_team_member
Add a user to a team.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
teamId | string | Yes | Resource ID |
userId | string | Yes | User ID to add |
remove_team_member
Remove a user from a team.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
teamId | string | Yes | Resource ID |
userId | string | Yes | User ID to remove |
Schedules
11 tools.
query_schedules
List scheduled shifts for a date range. Returns shifts, leaves, and public holidays. Admins see all; dept heads see their dept.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | No | Start date (YYYY-MM-DD, defaults to today) |
endDate | string | No | End date (YYYY-MM-DD, defaults to +7 days) |
userId | string | No | Filter by user ID |
departmentId | string | No | Filter by department ID |
create_shift
Create a new scheduled shift. Requires ADMINISTRATOR, EXECUTIVE, or DEPARTMENT_HEAD role. Omit userId to create an open shift.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
date | string | Yes | Shift date (YYYY-MM-DD) |
startTime | string | Yes | Start time (HH:MM, e.g. "09:00") |
endTime | string | Yes | End time (HH:MM, e.g. "17:00") |
userId | string | No | User ID (omit for open shift) |
departmentId | string | No | Department ID |
shiftType | string | No | Shift type: REGULAR, MORNING, AFTERNOON, NIGHT, CUSTOM (default: "REGULAR") |
breakDuration | number | No | Break duration in minutes (default: 30) |
notes | string | No | Notes |
publish_schedule
Publish schedules for a week, making them visible to employees. Requires ADMINISTRATOR or EXECUTIVE role.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
weekStart | string | Yes | Monday of the week to publish (YYYY-MM-DD) |
numberOfWeeks | number | No | Number of weeks to publish (1-4) (default: 1) |
sendNotification | boolean | No | Send email notification to employees (default: true) |
update_shift
Update an existing shift. Only the fields you provide are changed.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
shiftId | string | Yes | Resource ID |
startTime | string | No | HH:mm format |
endTime | string | No | HH:mm format |
shiftType | string | No | |
notes | string | No |
delete_shift
Delete a shift.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
shiftId | string | Yes | Resource ID |
claim_shift
Claim an open/unassigned shift for the current user.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
shiftId | string | Yes | Resource ID |
copy_week
Copy a week of shifts to another week. Useful for repeating schedules.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
fromWeekStart | string | Yes | Source week start (YYYY-MM-DD, Monday) |
toWeekStart | string | Yes | Destination week start (YYYY-MM-DD, Monday) |
departmentId | string | No |
clear_week
Delete every shift in a week. Cannot be undone.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
weekStart | string | Yes | Week start (YYYY-MM-DD, Monday) |
departmentId | string | No |
unpublish_schedule
Move a published week back to draft status.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
weekStart | string | Yes | Week start (YYYY-MM-DD, Monday) |
departmentId | string | No |
submit_schedule_for_review
Submit a draft schedule for review by a supervisor before publishing.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
weekStart | string | Yes | Date in YYYY-MM-DD format |
departmentId | string | No |
email_schedule
Email a published schedule to all assigned users for a given week.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
weekStart | string | Yes | Date in YYYY-MM-DD format |
departmentId | string | No |
Projects
15 tools.
list_projects
List projects visible to the authenticated user. Admins see all; others see their department + org-wide.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No | Filter by status: ACTIVE, COMPLETED, ARCHIVED, ON_HOLD |
includeStats | boolean | No | Include time tracking stats (default: false) |
get_project
Get full project details including tasks, client info, and time stats.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Project ID |
create_task
Create a new task within a project.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Project ID |
name | string | Yes | Task name |
description | string | No | Task description |
budgetHours | number | No | Budget hours for this task |
isBillable | boolean | No | Whether the task is billable (default: true) |
query_project_tasks
List tasks in a project. Optionally filter by status or assignee.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Resource ID |
status | string | No | |
assigneeId | string | No |
update_task
Update a project task. Use this to change status (e.g. mark as done), reassign, or update due date.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Resource ID |
taskId | string | Yes | Resource ID |
title | string | No | |
description | string | No | |
status | string | No | TODO, IN_PROGRESS, DONE, etc. |
assigneeId | string | No | |
dueDate | string | No | Date in YYYY-MM-DD format |
priority | string | No | LOW, MEDIUM, HIGH, CRITICAL |
delete_task
Delete a project task.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Resource ID |
taskId | string | Yes | Resource ID |
get_project_board
Get the Kanban board view of a project (tasks grouped by status).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Resource ID |
add_project_comment
Post a comment on a project.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Resource ID |
content | string | Yes | Comment text |
query_project_comments
List comments on a project.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Resource ID |
query_project_issues
List issues for a project (bugs, blockers, etc.)
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Resource ID |
status | string | No |
create_issue
Create an issue on a project (bug, blocker, idea).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Resource ID |
title | string | Yes | |
description | string | No | |
severity | string | No | LOW, MEDIUM, HIGH, CRITICAL |
assigneeId | string | No |
update_issue
Update a project issue.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Resource ID |
issueId | string | Yes | Resource ID |
title | string | No | |
description | string | No | |
status | string | No | |
severity | string | No | |
assigneeId | string | No |
delete_issue
Delete a project issue.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Resource ID |
issueId | string | Yes | Resource ID |
update_project
Update a project (name, dates, status, color, client).
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Resource ID |
name | string | No | |
code | string | No | |
status | string | No | |
color | string | No | |
clientId | string | No | |
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
delete_project
Delete a project. Cannot be undone.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId | string | Yes | Resource ID |
Organization
14 tools.
get_org_info
Get organization settings: name, timezone, currency, leave allowances, fiscal year, etc.
Read-only
No parameters.
get_public_holidays
List public holidays configured for the organization.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
year | number | No | Filter by year |
get_dashboard_stats
Get organization-level stats: total users, departments, leave types, leaves. Requires EXECUTIVE role.
Read-only
No parameters.
get_notifications
Get the authenticated user's notifications. Supports filtering by read status.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
filter | enum: all, unread, read | No | Filter: all, unread, or read (default: "all") |
page | number | No | Default: 1 |
limit | number | No | Default: 20 |
add_public_holiday
Add a public holiday to the organization calendar. Optionally limited to a country/region. Requires ADMIN/EXEC.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Holiday name (e.g. "Canada Day") |
date | string | Yes | Holiday date (YYYY-MM-DD) |
countryCode | string | No | ISO country code (e.g. "CA"). Leave blank for global |
subdivisionCode | string | No | Region/state code (e.g. "ON" for Ontario) |
isPaid | boolean | No | Is this a paid holiday (default: true) |
delete_public_holiday
Remove a public holiday. Cannot be undone.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
holidayId | string | Yes | Resource ID |
query_holiday_countries
List all available countries for public holiday lookups.
Write
No parameters.
query_holiday_subdivisions
List subdivisions (states/provinces) for a country.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
countryCode | string | Yes | ISO country code (e.g. "CA", "US") |
query_asset_categories
List the asset categories defined for the organization (Laptop, Phone, Badge, etc.). Used by add_asset and update_asset.
Write
No parameters.
create_asset_category
Create a new asset category.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Category name (e.g. "MacBook Pro") |
icon | string | No | |
color | string | No |
delete_asset_category
Delete an asset category.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
categoryId | string | Yes | Resource ID |
query_certification_types
List the certification types defined for the organization (AWS Solutions Architect, PMP, etc.). Used by add_certification.
Write
No parameters.
create_certification_type
Create a new certification type.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Certification name (e.g. "AWS Solutions Architect Associate") |
issuingBody | string | No | |
defaultValidityMonths | number | No | How long this cert is valid (months) — used to compute expiry |
delete_certification_type
Delete a certification type.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
typeId | string | Yes | Resource ID |
Reports
2 tools.
generate_leave_report
Generate a leave report for a date range. Requires ADMINISTRATOR or EXECUTIVE role.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | No | Report start date (YYYY-MM-DD) |
endDate | string | No | Report end date (YYYY-MM-DD) |
departmentId | string | No | Filter by department |
userId | string | No | Filter by user |
generate_timesheet_report
Generate a timesheet report for a date range. Requires ADMINISTRATOR or EXECUTIVE role.
Read-only
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | No | Report start date (YYYY-MM-DD) |
endDate | string | No | Report end date (YYYY-MM-DD) |
userId | string | No | Filter by user |
projectId | string | No | Filter by project |
HR
64 tools.
query_employee_notes
List HR notes attached to an employee. Notes have three visibility levels: HR_ONLY (only HR can see), MANAGERS (HR + the user manager), SHARED_WITH_EMPLOYEE (also visible to the employee themselves). Caller will only see notes they have permission to view.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
add_employee_note
Add an HR note to an employee. Choose the visibility level carefully — SHARED_WITH_EMPLOYEE notes are visible to the employee themselves.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
content | string | Yes | The note text |
visibility | enum: HR_ONLY, MANAGERS, SHARED_WITH_EMPLOYEE | Yes | Note visibility level |
delete_employee_note
Delete an HR note. Cannot be undone.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
noteId | string | Yes | Resource ID |
query_education
List education records (degrees, certifications) for a user.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
add_education_entry
Add an education record for a user (institution, degree, major, GPA, dates).
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
institution | string | Yes | School name |
degree | string | Yes | Degree type (e.g. BACHELORS, MASTERS, PHD, ASSOCIATES, DIPLOMA, etc.) |
major | string | No | |
gpa | number | No | |
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
notes | string | No |
delete_education_entry
Delete an education record.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
educationId | string | Yes | Resource ID |
query_languages
List language proficiencies for a user, with separate reading/writing and speaking levels.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
add_language
Add a language proficiency record for a user.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
language | string | Yes | Language name (e.g. "Spanish", "Mandarin") |
readingWritingLevel | enum: BEGINNER, INTERMEDIATE, ADVANCED, NATIVE | Yes | Reading & writing proficiency |
speakingLevel | enum: BEGINNER, INTERMEDIATE, ADVANCED, NATIVE | Yes | Speaking proficiency |
isPrimary | boolean | No | Default: false |
delete_language
Delete a language record.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
languageId | string | Yes | Resource ID |
query_certifications
List certifications for a user. Each cert has an issuance date, expiry date, credential ID, and is auto-marked as expired when past expiry.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
add_certification
Add a certification for a user. Provide name, issuing body, credential ID, issued date, and expiry date.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
name | string | Yes | Certification name |
issuingBody | string | Yes | Organization that issued the cert |
credentialId | string | No | Credential / serial number |
credentialUrl | string | No | Verification URL |
issuedDate | string | No | Date in YYYY-MM-DD format |
expiryDate | string | No | Date in YYYY-MM-DD format |
delete_certification
Delete a certification record.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
certId | string | Yes | Resource ID |
query_visa
List visa / work authorization records for a user. Each entry has a type, country, status, dates, and notes. Auto-expires past-due visas.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
add_visa_entry
Add a visa / work authorization record for a user.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
visaType | string | Yes | Visa type (e.g. "H-1B", "TN", "Permanent Resident") |
country | string | Yes | Country code |
status | string | Yes | Status (e.g. "ACTIVE", "PENDING", "EXPIRED") |
issuedDate | string | No | Date in YYYY-MM-DD format |
expiryDate | string | No | Date in YYYY-MM-DD format |
notes | string | No |
delete_visa_entry
Delete a visa record.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
visaId | string | Yes | Resource ID |
query_assets
List company assets assigned to a user (laptop, badge, phone, etc.) with category, serial number, condition, and assigned/return dates.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
assign_asset
Assign a company asset to a user. The category should match an asset_category from query_asset_categories — or pass a custom category name.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
categoryId | string | No | Asset category ID |
categoryName | string | No | Or a free-form category name if no matching category exists |
name | string | Yes | Asset name (e.g. "MacBook Pro 14" 2024") |
serialNumber | string | No | |
assignedDate | string | No | Date in YYYY-MM-DD format |
condition | string | No | NEW, GOOD, FAIR, POOR |
notes | string | No |
update_asset
Update an assigned asset (e.g. record return date, change condition, add notes).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
assetId | string | Yes | Resource ID |
name | string | No | |
serialNumber | string | No | |
condition | string | No | |
returnDate | string | No | Date in YYYY-MM-DD format |
notes | string | No |
return_asset
Mark an asset as returned (sets return date to today).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
assetId | string | Yes | Resource ID |
condition | string | No | Condition at return |
notes | string | No |
delete_asset
Delete an asset record (use return_asset to mark as returned without losing history).
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
assetId | string | Yes | Resource ID |
query_compensation_history
List compensation history (salary changes over time) for a user. ADMIN/EXEC and the user themselves only.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
add_compensation_entry
Add a compensation change record. Use this when an employee gets a raise, changes to a different pay rate, or moves between salaried/hourly.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
effectiveDate | string | Yes | Date this rate took effect (YYYY-MM-DD) |
type | string | Yes | Type (e.g. SALARY_INCREASE, PROMOTION, PAY_RATE_CHANGE, INITIAL) |
amount | number | Yes | Annual amount |
currency | string | No | Default: "USD" |
payFrequency | enum: ANNUAL, MONTHLY, BIWEEKLY, WEEKLY, HOURLY | No | |
reason | string | No |
delete_compensation_entry
Delete a compensation history entry.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
compId | string | Yes | Resource ID |
query_bonuses
List one-off bonus records for a user.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
add_bonus
Add a one-off bonus record for a user.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
date | string | Yes | Bonus date (YYYY-MM-DD) |
amount | number | Yes | |
currency | string | No | Default: "USD" |
type | string | No | e.g. PERFORMANCE, SIGNING, REFERRAL, SPOT, RETENTION |
notes | string | No |
delete_bonus
Delete a bonus record.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
bonusId | string | Yes | Resource ID |
query_job_history
List position changes (title, department, manager) over time for a user.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
add_job_history_entry
Add a job history record (e.g. promotion, transfer, title change).
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
effectiveDate | string | Yes | YYYY-MM-DD |
jobTitle | string | Yes | |
departmentId | string | No | |
managerId | string | No | |
type | string | No | e.g. PROMOTION, LATERAL, TRANSFER, INITIAL |
reason | string | No |
delete_job_history_entry
Delete a job history entry.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
historyId | string | Yes | Resource ID |
query_employment_status_history
List employment status changes (FT/PT/Contract/etc.) over time.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
add_employment_status_change
Record an employment status change (e.g. FT → PT, Contract → FT).
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
effectiveDate | string | Yes | Date in YYYY-MM-DD format |
status | enum: FULL_TIME, PART_TIME, CONTRACT, INTERN, TEMPORARY, SEASONAL | Yes | |
reason | string | No |
delete_employment_status_change
Delete an employment status history entry.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
historyId | string | Yes | Resource ID |
query_equity
List equity grants (stock options, RSUs, etc.) for a user.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
add_equity_grant
Record an equity grant (options, RSUs, ESPP, etc.).
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
grantDate | string | Yes | Date in YYYY-MM-DD format |
type | string | Yes | OPTIONS, RSU, ESPP, etc. |
shares | number | Yes | |
strikePrice | number | No | |
vestingStartDate | string | No | Date in YYYY-MM-DD format |
vestingMonths | number | No | Total vesting period in months |
cliffMonths | number | No | Cliff period in months |
notes | string | No |
delete_equity_grant
Delete an equity grant record.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
equityId | string | Yes | Resource ID |
query_commissions
List commission records for a user.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
add_commission
Record a commission payment.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
date | string | Yes | Date in YYYY-MM-DD format |
amount | number | Yes | |
currency | string | No | Default: "USD" |
basis | string | No | What the commission was earned on |
notes | string | No |
delete_commission
Delete a commission record.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
commissionId | string | Yes | Resource ID |
query_dependents
List dependents on file for a user (children, spouse, etc.).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
add_dependent
Add a dependent to a user record.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
firstName | string | Yes | |
lastName | string | Yes | |
relationship | string | Yes | SPOUSE, CHILD, PARENT, OTHER |
dateOfBirth | string | No | Date in YYYY-MM-DD format |
gender | string | No |
update_dependent
Update a dependent record.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
depId | string | Yes | Resource ID |
firstName | string | No | |
lastName | string | No | |
relationship | string | No | |
dateOfBirth | string | No | Date in YYYY-MM-DD format |
gender | string | No |
delete_dependent
Remove a dependent record.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
depId | string | Yes | Resource ID |
query_onboarding_instances
List onboarding instances. Filter by user, template, or status (ACTIVE / COMPLETED).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | No | |
templateId | string | No | |
status | enum: ACTIVE, COMPLETED, CANCELLED | No | |
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
create_onboarding_instance
Create an onboarding instance for an employee from a template. All template tasks are copied to the instance with computed due dates from the user hire date.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
templateId | string | Yes | Onboarding template ID |
startDate | string | No | Override the start date — defaults to user hire date |
update_onboarding_instance
Update an onboarding instance (e.g. mark as completed, change start date).
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
instanceId | string | Yes | Resource ID |
status | enum: ACTIVE, COMPLETED, CANCELLED | No | |
startDate | string | No | Date in YYYY-MM-DD format |
delete_onboarding_instance
Delete an onboarding instance and all its tasks.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
instanceId | string | Yes | Resource ID |
query_onboarding_tasks
List the tasks in an onboarding instance with their status, assignee, and due date.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
instanceId | string | Yes | Resource ID |
add_onboarding_task
Add an ad-hoc task to an onboarding instance.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
instanceId | string | Yes | Resource ID |
title | string | Yes | Task title |
description | string | No | |
assignedToId | string | No | |
dueDate | string | No | Date in YYYY-MM-DD format |
category | enum: DOCUMENTS, EQUIPMENT, ACCESS, TRAINING, OTHER | No |
update_onboarding_task
Update an onboarding task (status, assignee, due date, etc.)
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
instanceId | string | Yes | Resource ID |
taskId | string | Yes | Resource ID |
status | enum: PENDING, IN_PROGRESS, COMPLETED, DISMISSED | No | |
title | string | No | |
description | string | No | |
assignedToId | string | No | |
dueDate | string | No | Date in YYYY-MM-DD format |
category | string | No |
complete_onboarding_task
Mark an onboarding task as complete. If the task has a signature-required document attached, the signature must be on file first.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
instanceId | string | Yes | Resource ID |
taskId | string | Yes | Resource ID |
delete_onboarding_task
Delete a task from an onboarding instance.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
instanceId | string | Yes | Resource ID |
taskId | string | Yes | Resource ID |
query_onboarding_templates
List onboarding templates available in the organization.
Write
No parameters.
create_onboarding_template
Create a new onboarding template.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
description | string | No | |
isDefault | boolean | No | Default: false |
update_onboarding_template
Update an onboarding template.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Resource ID |
name | string | No | |
description | string | No | |
isDefault | boolean | No |
delete_onboarding_template
Delete an onboarding template. Existing instances are NOT deleted.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Resource ID |
query_onboarding_template_tasks
List the task definitions inside an onboarding template.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Resource ID |
add_onboarding_template_task
Add a task definition to an onboarding template. Optionally apply retroactively to all existing instances.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Resource ID |
title | string | Yes | |
description | string | No | |
assigneeUserId | string | No | |
assigneeRole | string | No | Role-based assignee (e.g. HR, MANAGER) |
category | string | No | |
dueDateType | enum: NONE, ON_HIRE, CUSTOM | No | Default: "NONE" |
dueDaysFromHire | number | No | Days from hire date when CUSTOM |
dueDaysDirection | enum: BEFORE, AFTER | No | |
documentId | string | No | Attach a document that must be signed |
requiresSignature | boolean | No | Default: false |
applyToExisting | boolean | No | Apply this new task to all active instances of this template (default: false) |
update_onboarding_template_task
Update a task definition in an onboarding template.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Resource ID |
taskDefId | string | Yes | Resource ID |
title | string | No | |
description | string | No | |
assigneeUserId | string | No | |
assigneeRole | string | No | |
category | string | No | |
dueDateType | enum: NONE, ON_HIRE, CUSTOM | No | |
dueDaysFromHire | number | No | |
dueDaysDirection | enum: BEFORE, AFTER | No | |
documentId | string | No | |
requiresSignature | boolean | No |
delete_onboarding_template_task
Delete a task definition from an onboarding template.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Resource ID |
taskDefId | string | Yes | Resource ID |
query_onboarding_packets
List new hire welcome packets.
Write
No parameters.
get_onboarding_packet
Get full details of a new hire packet (questions, tasks, contact, instructions).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
packetId | string | Yes | Resource ID |
create_onboarding_packet
Create a new hire welcome packet. Configure arrival time, location, contact, instructions, and "Get to Know You" questions.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
arrivalTime | string | No | Arrival time (e.g. "9:00 AM") |
location | string | No | |
contactPersonId | string | No | |
instructions | string | No | |
taskListId | string | No | Linked onboarding template ID |
questions | string | No | Array of "Get to Know You" questions |
update_onboarding_packet
Update a new hire packet.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
packetId | string | Yes | Resource ID |
name | string | No | |
arrivalTime | string | No | |
location | string | No | |
contactPersonId | string | No | |
instructions | string | No | |
taskListId | string | No | |
questions | string | No |
delete_onboarding_packet
Delete a new hire packet.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
packetId | string | Yes | Resource ID |
Clients
5 tools.
query_clients
List CRM clients in the organization. Filter by search query or active status.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
search | string | No | Filter by name, email, or company |
isActive | boolean | No | Filter by active status |
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
get_client
Get full details for a single client.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
clientId | string | Yes | Resource ID |
create_client
Create a new CRM client.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Client name |
email | string | No | |
phone | string | No | |
company | string | No | |
address | string | No | |
city | string | No | |
stateProvince | string | No | |
postalCode | string | No | |
country | string | No | |
website | string | No | |
notes | string | No |
update_client
Update an existing client. Only the fields you provide are changed.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
clientId | string | Yes | Resource ID |
name | string | No | |
email | string | No | |
phone | string | No | |
company | string | No | |
address | string | No | |
city | string | No | |
stateProvince | string | No | |
postalCode | string | No | |
country | string | No | |
website | string | No | |
notes | string | No | |
isActive | boolean | No |
delete_client
Delete a client. Cannot be undone.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
clientId | string | Yes | Resource ID |
Notifications
5 tools.
get_unread_notification_count
Get the number of unread notifications for the current user.
Write
No parameters.
mark_notification_read
Mark a single notification as read.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
notificationId | string | Yes | Resource ID |
mark_all_notifications_read
Mark every notification as read for the current user.
Write
No parameters.
delete_notification
Delete (dismiss) a single notification.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
notificationId | string | Yes | Resource ID |
clear_all_notifications
Delete every notification for the current user. Cannot be undone.
Write · Risk: medium
No parameters.
Calendar
8 tools.
get_calendar_status
Check whether Google/Outlook calendar is connected for the current user.
Write
No parameters.
query_calendar_feeds
List the calendar feeds (iCal subscription URLs) created for this user.
Write
No parameters.
create_calendar_feed
Create an iCal subscription URL for the current user. The URL can be added to Google Calendar / Outlook / Apple Calendar to see leaves, holidays, and shifts.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Friendly name for the feed |
includeLeaves | boolean | No | Default: true |
includeShifts | boolean | No | Default: true |
includeHolidays | boolean | No | Default: true |
includeBirthdays | boolean | No | Default: false |
delete_calendar_feed
Delete a calendar feed. The iCal URL stops working immediately.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
feedId | string | Yes | Resource ID |
connect_google_calendar
Start the Google Calendar OAuth flow. Returns the authorization URL — open it in a browser to grant access.
Write
No parameters.
disconnect_google_calendar
Disconnect Google Calendar integration.
Write · Risk: medium
No parameters.
connect_outlook_calendar
Start the Outlook Calendar OAuth flow. Returns the authorization URL.
Write
No parameters.
disconnect_outlook_calendar
Disconnect Outlook Calendar integration.
Write · Risk: medium
No parameters.
Performance
31 tools.
query_goals
List goals for a user. Optionally filter by status or category.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
status | string | No | NOT_STARTED, IN_PROGRESS, COMPLETED, CANCELLED |
category | string | No |
create_goal
Create a goal for a user.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
title | string | Yes | |
description | string | No | |
category | string | No | e.g. Engineering, Sales, Personal |
dueDate | string | No | Date in YYYY-MM-DD format |
progressPercent | number | No | Default: 0 |
update_goal
Update a goal — title, description, status, progress slider (0-100), due date, category.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
goalId | string | Yes | Resource ID |
title | string | No | |
description | string | No | |
status | string | No | |
category | string | No | |
dueDate | string | No | Date in YYYY-MM-DD format |
progressPercent | number | No |
delete_goal
Delete a goal and all its comments.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
goalId | string | Yes | Resource ID |
query_goal_comments
List comments on a goal.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
goalId | string | Yes | Resource ID |
add_goal_comment
Post a comment on a goal (collaboration thread).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
goalId | string | Yes | Resource ID |
content | string | Yes | Comment text |
delete_goal_comment
Delete a goal comment.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
goalId | string | Yes | Resource ID |
commentId | string | Yes | Resource ID |
query_one_on_one_series
List recurring 1:1 series. Filter by participants if needed.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
managerId | string | No | |
reportId | string | No |
create_one_on_one_series
Create a recurring 1:1 series between a manager and a direct report. Sends creation email to participants.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
managerId | string | Yes | Manager user ID |
reportId | string | Yes | Report user ID |
frequency | enum: WEEKLY, BIWEEKLY, MONTHLY, ONE_TIME | Yes | Meeting cadence |
firstMeetingDate | string | Yes | Date in YYYY-MM-DD format |
durationMinutes | number | No | Default: 30 |
title | string | No |
update_one_on_one_series
Update a 1:1 series (e.g. change cadence).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
seriesId | string | Yes | Resource ID |
frequency | enum: WEEKLY, BIWEEKLY, MONTHLY, ONE_TIME | No | |
durationMinutes | number | No | |
title | string | No |
cancel_one_on_one_series
Cancel a 1:1 series. Future meetings are removed and participants are notified.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
seriesId | string | Yes | Resource ID |
query_one_on_one_meetings
List meetings inside a 1:1 series.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
seriesId | string | Yes | Resource ID |
schedule_one_on_one_meeting
Schedule an additional meeting in an existing 1:1 series.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
seriesId | string | Yes | Resource ID |
meetingDate | string | Yes | Date in YYYY-MM-DD format |
durationMinutes | number | No |
update_one_on_one_meeting
Update a 1:1 meeting (reschedule, change duration).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
seriesId | string | Yes | Resource ID |
meetingId | string | Yes | Resource ID |
meetingDate | string | No | Date in YYYY-MM-DD format |
durationMinutes | number | No | |
status | enum: SCHEDULED, COMPLETED, CANCELLED, RESCHEDULED | No |
query_meeting_agenda
List the agenda items for a 1:1 meeting.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
meetingId | string | Yes | Resource ID |
add_agenda_item
Add an agenda item to a 1:1 meeting.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
meetingId | string | Yes | Resource ID |
title | string | Yes | |
description | string | No | |
addedByUserId | string | No | Who added this item |
update_agenda_item
Update an agenda item (e.g. mark as discussed).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
meetingId | string | Yes | Resource ID |
itemId | string | Yes | Resource ID |
title | string | No | |
description | string | No | |
discussed | boolean | No |
delete_agenda_item
Delete an agenda item.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
meetingId | string | Yes | Resource ID |
itemId | string | Yes | Resource ID |
query_meeting_notes
List notes from a 1:1 meeting. Notes can be private (only visible to the author) or shared with the other participant.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
meetingId | string | Yes | Resource ID |
add_meeting_note
Add a note to a 1:1 meeting. Mark as private to keep it from the other participant.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
meetingId | string | Yes | Resource ID |
content | string | Yes | |
isPrivate | boolean | No | Private notes are only visible to the author (default: false) |
update_meeting_note
Update a meeting note.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
meetingId | string | Yes | Resource ID |
noteId | string | Yes | Resource ID |
content | string | No | |
isPrivate | boolean | No |
delete_meeting_note
Delete a meeting note.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
meetingId | string | Yes | Resource ID |
noteId | string | Yes | Resource ID |
query_performance_cycles
List performance review cycles (e.g. Q1 2026 review, Annual 2025).
Write
No parameters.
create_performance_cycle
Create a new performance review cycle.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
startDate | string | Yes | Date in YYYY-MM-DD format |
endDate | string | Yes | Date in YYYY-MM-DD format |
templateId | string | No | |
participantUserIds | string | No |
duplicate_performance_cycle
Duplicate an existing performance cycle (e.g. clone Q1 to make Q2). Useful for recurring reviews.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
cycleId | string | Yes | Resource ID |
newName | string | Yes | |
newStartDate | string | Yes | Date in YYYY-MM-DD format |
newEndDate | string | Yes | Date in YYYY-MM-DD format |
query_performance_templates
List performance review templates.
Write
No parameters.
create_performance_template
Create a performance review template (questions + ratings).
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
description | string | No | |
questions | string | No |
update_performance_template
Update a performance review template.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Resource ID |
name | string | No | |
description | string | No | |
questions | string | No |
delete_performance_template
Delete a performance template.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Resource ID |
get_performance_settings
Get the org-wide performance settings (who can use goals, cascading goals toggle, 1:1 enablement).
Write
No parameters.
update_performance_settings
Update org-wide performance settings.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
goalUsers | enum: NONE, ALL, SPECIFIC | No | |
cascadingGoalsEnabled | boolean | No | |
oneOnOnesEnabled | boolean | No | |
specificGoalUserIds | string | No |
Training
14 tools.
query_user_training
List training assignments for a user, including status (PENDING / COMPLETED / OVERDUE) and due dates.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
assign_training
Assign a training course to a user.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
courseId | string | Yes | Resource ID |
dueDate | string | No | Date in YYYY-MM-DD format |
update_training_assignment
Update a training assignment — change due date or completion status. Use mark_training_complete for the common case.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
assignmentId | string | Yes | Resource ID |
status | enum: PENDING, IN_PROGRESS, COMPLETED, OVERDUE | No | |
dueDate | string | No | Date in YYYY-MM-DD format |
completedDate | string | No | Date in YYYY-MM-DD format |
score | number | No | |
notes | string | No |
mark_training_complete
Mark a training assignment as complete.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
assignmentId | string | Yes | Resource ID |
score | number | No | |
notes | string | No |
dismiss_training
Dismiss an optional training assignment (only valid if "allow self-complete / dismiss" is set on the requirement).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
assignmentId | string | Yes | Resource ID |
query_training_courses
List training courses defined in the organization.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
categoryId | string | No |
create_training_course
Create a new training course definition. Configure frequency, due-from-hire, required-for filter, and signature requirements.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
description | string | No | |
categoryId | string | No | |
frequency | enum: ONE_TIME, ANNUAL, EVERY_2_YEARS, EVERY_3_YEARS, EVERY_5_YEARS | No | |
dueDaysFromHire | number | No | |
requiredFor | enum: ALL, DEPARTMENT, ROLE, SPECIFIC_EMPLOYEES | No | |
requiredDepartmentId | string | No | |
requiredRole | string | No | |
requiredEmployeeIds | string | No | |
url | string | No | Training material URL |
allowSelfComplete | boolean | No | Default: false |
update_training_course
Update a training course definition.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
courseId | string | Yes | Resource ID |
name | string | No | |
description | string | No | |
categoryId | string | No | |
frequency | string | No | |
dueDaysFromHire | number | No | |
url | string | No | |
allowSelfComplete | boolean | No |
delete_training_course
Delete a training course definition. Existing user assignments are preserved.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
courseId | string | Yes | Resource ID |
bulk_assign_training
Assign a training course to many users at once.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
courseId | string | Yes | Resource ID |
userIds | string | Yes | |
dueDate | string | No | Date in YYYY-MM-DD format |
query_training_categories
List training categories.
Write
No parameters.
create_training_category
Create a new training category.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
color | string | No | |
icon | string | No |
update_training_category
Update a training category.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
categoryId | string | Yes | Resource ID |
name | string | No | |
color | string | No | |
icon | string | No |
delete_training_category
Delete a training category.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
categoryId | string | Yes | Resource ID |
Benefits
8 tools.
query_benefit_plans
List benefit plans (medical, dental, vision, life, disability, retirement, etc.) defined for the org.
Write
No parameters.
create_benefit_plan
Create a new benefit plan.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
type | enum: MEDICAL, DENTAL, VISION, LIFE, DISABILITY, RETIREMENT, HSA, FSA, OTHER | Yes | Plan type |
provider | string | No | |
policyNumber | string | No | |
coverage | string | No | Description of coverage |
premium | number | No | Monthly premium |
effectiveStart | string | No | Date in YYYY-MM-DD format |
effectiveEnd | string | No | Date in YYYY-MM-DD format |
update_benefit_plan
Update a benefit plan.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
planId | string | Yes | Resource ID |
name | string | No | |
provider | string | No | |
policyNumber | string | No | |
coverage | string | No | |
premium | number | No | |
effectiveStart | string | No | Date in YYYY-MM-DD format |
effectiveEnd | string | No | Date in YYYY-MM-DD format |
delete_benefit_plan
Delete a benefit plan. Existing enrollments are NOT deleted.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
planId | string | Yes | Resource ID |
query_user_benefits
List benefit enrollments for a user (with dependents, premiums, effective dates).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
enroll_user_in_benefit
Enroll a user in a benefit plan.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
planId | string | Yes | Resource ID |
effectiveStart | string | No | Date in YYYY-MM-DD format |
effectiveEnd | string | No | Date in YYYY-MM-DD format |
employeePremium | number | No | |
employerPremium | number | No | |
coverageLevel | enum: EMPLOYEE_ONLY, EMPLOYEE_SPOUSE, EMPLOYEE_CHILDREN, FAMILY | No | |
dependentIds | string | No | |
notes | string | No |
update_user_benefit_enrollment
Update a benefit enrollment.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
enrollmentId | string | Yes | Resource ID |
effectiveStart | string | No | Date in YYYY-MM-DD format |
effectiveEnd | string | No | Date in YYYY-MM-DD format |
employeePremium | number | No | |
employerPremium | number | No | |
coverageLevel | string | No | |
dependentIds | string | No | |
notes | string | No |
unenroll_user_from_benefit
Unenroll a user from a benefit plan.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
enrollmentId | string | Yes | Resource ID |
Documents
16 tools.
query_documents
List documents in the org. Filter by category, owner, or signature status.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
categoryId | string | No | |
uploadedById | string | No | |
signatureStatus | string | No | |
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
delete_document
Delete a document. All assignments are also deleted.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
documentId | string | Yes | Resource ID |
get_document_audit_trail
Get the full audit trail for a document — every view, download, signature event, etc.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
documentId | string | Yes | Resource ID |
query_document_assignments
List document signing assignments. Filter by status (PENDING / SIGNED / DECLINED / EXPIRED).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No | |
assignedToId | string | No | |
documentId | string | No | |
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
get_assignment_stats
Get aggregate stats on document assignments (signed/pending/declined counts).
Write
No parameters.
assign_document
Assign a document to one or more users for signature. Use bulk_send_document to assign to many at once with a single API call.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
documentId | string | Yes | Resource ID |
assignedToIds | string | Yes | User IDs to assign |
requireSignature | boolean | No | Default: true |
dueDate | string | No | |
message | string | No | |
sendEmail | boolean | No | Default: true |
decline_document_assignment
Decline a document signing assignment.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
assignmentId | string | Yes | Resource ID |
reason | string | No |
query_document_templates
List document templates.
Write
No parameters.
update_document_template
Update a document template.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Resource ID |
name | string | No | |
description | string | No |
delete_document_template
Delete a document template.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Resource ID |
send_document_from_template
Send a document from a template to one or more recipients.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Resource ID |
assignedToIds | string | Yes | |
message | string | No | |
dueDate | string | No |
query_bulk_send_jobs
List bulk document send jobs (batched signing).
Write
No parameters.
create_bulk_send
Create a bulk send job — assign one document to many users in a single batch operation.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
documentId | string | Yes | Resource ID |
recipientUserIds | string | Yes | |
message | string | No | |
dueDate | string | No | |
requireSignature | boolean | No | Default: true |
query_document_webhooks
List webhooks subscribed to document signing events.
Write
No parameters.
create_document_webhook
Create a webhook to receive document signing event notifications.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | |
events | string | Yes | Event types to subscribe to |
secret | string | No | HMAC secret for signature verification |
delete_document_webhook
Delete a document webhook.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
webhookId | string | Yes | Resource ID |
Admin
89 tools.
get_org_settings
Get the org-wide settings (timezone, currency, locale, etc.).
Write
No parameters.
update_org_settings
Update org-wide settings. ADMIN/EXEC only.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | No | |
timezone | string | No | |
currency | string | No | |
country | string | No | |
defaultLeaveAllowance | number | No | |
leaveYearStartMonth | number | No | |
dateFormat | string | No | |
timeFormat | string | No | |
weekStartDay | string | No |
get_branding
Get the org branding settings (logo, colors, custom CSS).
Write
No parameters.
update_branding
Update org branding settings. Requires the white-label add-on for custom branding.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
logoUrl | string | No | |
primaryColor | string | No | |
secondaryColor | string | No | |
customCss | string | No |
get_email_settings
Get the org email/SMTP settings.
Write
No parameters.
update_email_settings
Update SMTP / email settings. Requires ADMIN/EXEC.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
fromName | string | No | |
fromEmail | string | No | |
smtpHost | string | No | |
smtpPort | number | No | |
smtpUser | string | No | |
smtpPassword | string | No | |
smtpSecure | boolean | No |
delete_email_settings
Reset email/SMTP settings to defaults (use platform email).
Destructive · Risk: high
No parameters.
get_notification_defaults
Get the org-wide notification defaults.
Write
No parameters.
update_notification_defaults
Update org-wide notification defaults (which events trigger emails by default).
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
defaults | object (map) | Yes | Map of event-name → enabled |
get_personal_notifications
Get the current user notification preferences.
Write
No parameters.
update_personal_notifications
Update the current user notification preferences.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
preferences | object (map) | Yes | Map of event-name → enabled |
get_sso_settings
Get the org SSO/Auth0 configuration.
Write
No parameters.
update_sso_settings
Update SSO / Auth0 settings. Misconfiguration can lock users out — be careful.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
enabled | boolean | No | |
auth0Domain | string | No | |
auth0ClientId | string | No | |
auth0ClientSecret | string | No | |
allowLocalLogin | boolean | No | |
enforceSSO | boolean | No | |
autoCreateUsers | boolean | No | |
defaultRole | string | No |
query_sso_domains
List SSO-allowed domains for the org.
Write
No parameters.
add_sso_domain
Add a domain to the SSO allow-list.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes |
verify_sso_domain
Trigger DNS verification for an SSO domain.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
domainId | string | Yes | Resource ID |
delete_sso_domain
Remove a domain from the SSO allow-list.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
domainId | string | Yes | Resource ID |
get_slack_integration
Get the Slack integration settings.
Write
No parameters.
update_slack_integration
Update Slack integration settings.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
webhookUrl | string | No | |
enabled | boolean | No | |
events | string | No |
get_teams_integration
Get the Microsoft Teams integration settings.
Write
No parameters.
update_teams_integration
Update Microsoft Teams integration settings.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
webhookUrl | string | No | |
enabled | boolean | No | |
events | string | No |
query_audit_logs
Query the org-wide audit log. Filter by action, entity type, user, or date range. Use this for "who changed X?" / "what happened on Y?" investigations.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
action | string | No | e.g. CREATE, UPDATE, DELETE, OFFBOARD, REACTIVATE, SIGN, LOGIN, EXPORT |
entityType | string | No | e.g. USER, ORGANIZATION, LEAVE, EXPENSE_REPORT, DOCUMENT, EMPLOYEE_NOTE |
userId | string | No | |
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
export_audit_logs
Get a download URL for the audit log export (CSV). Use date range filters to limit the export size.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
action | string | No | |
entityType | string | No |
query_signin_logs
Query sign-in logs. Useful for security investigations and detecting suspicious access patterns.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | No | |
success | boolean | No | Filter by successful or failed sign-ins |
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
export_signin_logs
Export sign-in logs to CSV.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
query_leave_transactions
Query the leave balance transaction log — every grant, deduction, accrual, adjustment.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | No | |
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
query_time_tracking_transactions
Query time tracking edit history (audit log of clock adjustments).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | No | |
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
query_security_violations
List flagged security violations (suspicious sign-ins, brute-force attempts, etc.).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No | OPEN, ACKNOWLEDGED, RESOLVED, FALSE_POSITIVE |
severity | string | No | LOW, MEDIUM, HIGH, CRITICAL |
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
flag_security_violation
Manually flag a security violation for investigation.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Violation type |
severity | enum: LOW, MEDIUM, HIGH, CRITICAL | Yes | |
userId | string | No | |
description | string | Yes |
update_security_violation
Update the status of a security violation.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
violationId | string | Yes | Resource ID |
status | enum: OPEN, ACKNOWLEDGED, RESOLVED, FALSE_POSITIVE | Yes | |
notes | string | No |
query_phi_access_log
Query the PHI (Protected Health Information) access log — required for HIPAA compliance. Tracks every read of medical/health-related fields.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | No | Filter by accessor user ID |
resourceType | string | No | |
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
get_subscription
Get the current subscription status (plan, seats, billing period, trial info).
Write
No parameters.
change_plan
Change the subscription plan (e.g. upgrade from Pro to Business).
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
newPlan | enum: free, pro, business, enterprise | Yes | |
billingInterval | enum: monthly, annual | No | |
currency | enum: USD, CAD | No |
cancel_subscription
Cancel the active subscription. Sets cancel-at-period-end by default.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
reason | string | No | |
cancelImmediately | boolean | No | Default: false |
reactivate_subscription
Reactivate a previously cancelled subscription (before period end).
Destructive · Risk: high
No parameters.
sync_subscription
Force-sync the subscription state from Stripe (admin recovery tool).
Write · Risk: medium
No parameters.
get_usage
Get current resource usage (users, documents, receipts, projects, expense claims) vs plan limits.
Write
No parameters.
get_usage_breakdown
Get usage attribution per user (who uploaded what, who signed what, etc.).
Write
No parameters.
query_invoices
List Stripe invoices for the org.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
page | number | No | Page number (1-indexed) (default: 1) |
limit | number | No | Page size (max 100) (default: 25) |
get_invoice_line_items
Get line items for a specific invoice.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
invoiceId | string | Yes | Resource ID |
request_refund
Request a refund. Goes through human review.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
invoiceId | string | No | |
amount | number | No | |
reason | string | Yes |
query_refund_requests
List the org refund requests with status.
Write
No parameters.
get_billing_alerts
Get active billing alerts (overdue invoice, near limit, etc.).
Write
No parameters.
query_addons
List available add-ons (e.g. white-label branding) and their status.
Write
No parameters.
toggle_addon
Turn an add-on on or off (e.g. white-label branding). Removing creates a grace period until period end.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
addon | enum: whiteLabelBranding | Yes | |
enabled | boolean | Yes |
create_checkout_session
Create a Stripe checkout session for subscribing or upgrading.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
plan | enum: pro, business, enterprise | Yes | |
billingInterval | enum: monthly, annual | Yes | |
currency | enum: USD, CAD | No | |
seats | number | No | |
couponCode | string | No |
create_billing_portal_session
Create a Stripe customer portal session for self-service billing.
Write
No parameters.
validate_coupon
Validate a coupon code without applying it.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | Yes |
get_quickbooks_status
Check whether QuickBooks Online is connected for the org.
Write
No parameters.
connect_quickbooks
Get the QuickBooks Online OAuth URL to start the connection flow.
Write
No parameters.
disconnect_quickbooks
Disconnect QuickBooks Online integration.
Destructive · Risk: high
No parameters.
get_quickbooks_settings
Get the QuickBooks integration settings.
Write
No parameters.
update_quickbooks_settings
Update QuickBooks integration settings.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
autoSyncExpenses | boolean | No | |
autoSyncTimeEntries | boolean | No | |
autoSyncEmployees | boolean | No | |
defaultExpenseAccountId | string | No | |
defaultBankAccountId | string | No |
query_quickbooks_accounts
List Chart of Accounts from QuickBooks.
Write
No parameters.
get_qb_account_mappings
Get the BookYourPTO category → QuickBooks account mappings.
Write
No parameters.
update_qb_account_mappings
Update the QuickBooks account mappings.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
mappings | object (map) | Yes | Map of BookYourPTO category → QuickBooks account ID |
query_quickbooks_customers
List customers from QuickBooks.
Write
No parameters.
sync_qb_customers
Sync clients from BookYourPTO → QuickBooks customers.
Write · Risk: medium
No parameters.
sync_employees_to_quickbooks
Sync BookYourPTO users → QuickBooks employees.
Write · Risk: medium
No parameters.
get_qb_employee_mappings
Get the BookYourPTO user → QuickBooks employee ID mappings.
Write
No parameters.
sync_expenses_to_quickbooks
Sync approved expense reports → QuickBooks bills. Optionally limit by date range.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
get_expense_sync_status
Check sync status for expenses (which are synced, which failed).
Write
No parameters.
sync_time_to_quickbooks
Sync approved time entries → QuickBooks time activities.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
preview_leave_liability
Preview the leave liability journal entry that would be posted to QuickBooks.
Write
No parameters.
sync_leave_liability
Post the leave liability journal entry to QuickBooks.
Destructive · Risk: high
No parameters.
get_quickbooks_payroll_summary
Get the payroll summary report from QuickBooks.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | No | Date in YYYY-MM-DD format |
endDate | string | No | Date in YYYY-MM-DD format |
get_quickbooks_sync_history
List recent QuickBooks sync events.
Write
No parameters.
change_password
Change the current user password. Requires current password.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
currentPassword | string | Yes | |
newPassword | string | Yes |
check_password_breach
Check if a password has appeared in known data breaches (uses k-anonymity, full password is never sent).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
password | string | Yes |
setup_totp
Begin TOTP 2FA setup. Returns a QR code URL and secret to register in an authenticator app.
Write
No parameters.
confirm_totp
Confirm TOTP 2FA setup with the first 6-digit code.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | Yes |
verify_totp
Verify a TOTP 2FA code (used during sign-in).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
code | string | Yes |
disable_totp
Disable TOTP 2FA on the current user account. Requires current password.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
password | string | Yes |
query_trusted_devices
List devices trusted for 2FA bypass on the current account.
Write
No parameters.
revoke_trusted_device
Revoke a single trusted device.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
deviceId | string | Yes | Resource ID |
revoke_all_trusted_devices
Revoke ALL trusted devices on the current account. Forces 2FA on next sign-in everywhere.
Destructive · Risk: high
No parameters.
reset_user_2fa
Reset another user's 2FA — clears their TOTP secret, backup codes, and trusted devices. Use when an employee loses access to their authenticator app.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
resend_credentials
Resend welcome / login credentials email to a user.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
request_data_export
Request a GDPR data export. Returns a download URL once processing completes (delivered via email).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | No | User to export — defaults to current user |
request_data_deletion
Request GDPR right-to-erasure. Anonymizes the user account while preserving audit log integrity. Cannot be undone.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | BookYourPTO user ID |
reason | string | No | |
confirmDeletion | literal: true | Yes | Must be true — guards against accidental deletion |
opt_out_of_processing
Opt the current user out of non-essential data processing (analytics, marketing, etc.).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
categories | string | Yes | Categories to opt out of |
query_domains
List custom domains configured for the org (white-label feature).
Write
No parameters.
get_domain
Get details for a single custom domain (status, DNS records, SSL).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
domainId | string | Yes | Resource ID |
add_custom_domain
Add a custom domain to the org (e.g. hr.acme.com). Requires the white-label add-on. Returns the DNS records to configure.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
hostname | string | Yes | Fully qualified domain (e.g. hr.acme.com) |
verify_domain
Trigger DNS verification for a custom domain.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
domainId | string | Yes | Resource ID |
request_domain_ssl
Request a Let’s Encrypt SSL cert for a verified domain.
Write · Risk: medium
| Parameter | Type | Required | Description |
|---|---|---|---|
domainId | string | Yes | Resource ID |
get_domain_dns_provider
Detect the DNS provider for a domain (Cloudflare, Route 53, etc.).
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
domainId | string | Yes | Resource ID |
delete_custom_domain
Remove a custom domain from the org.
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
domainId | string | Yes | Resource ID |
create_support_ticket
Create a support ticket. Routed to the BookYourPTO support team.
Write
| Parameter | Type | Required | Description |
|---|---|---|---|
subject | string | Yes | |
message | string | Yes | |
category | enum: BUG, FEATURE_REQUEST, BILLING, INTEGRATION, OTHER | No | |
priority | enum: LOW, MEDIUM, HIGH, URGENT | No |
System
1 tool.
get_health
Check the MCP server health: API connectivity, auth status, cache size, and uptime.
Write
No parameters.
Auth
1 tool.
login
Exchange BookYourPTO email + password for an access token on this connection. Required only when running in per-user mode (no OAuth, no shared credentials).
Destructive · Risk: high
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | BookYourPTO account email |
password | string | Yes | BookYourPTO account password |