WorkRight MCP Tool Catalog

The complete catalog of MCP tools the WorkRight server exposes to AI assistants such as Claude, Claude Code and Cursor. Generated directly from the live tool registry, so it stays accurate. New to the MCP server? Start with the MCP overview or the quickstart.

WorkRight exposes 114 MCP tools 87 read and 27 write — across 19 modules. Every tool is capability-gated and tenant-scoped: a token only sees the tools its capabilities allow, and every call is confined to the token's own company.

Showing 114 of 114 tools.

Accounting19 tools

  • create_contactwriteaccounting.journal

    Create a contact (customer / vendor / employee / other) in the company's accounting master data. Returns the new contact id. Kind is fixed at creation (corrections are done by archiving + recreating from the dashboard).

  • create_draft_billwriteaccounting.journal

    Create a DRAFT accounts-payable bill from a vendor. The bill is created in 'draft' status and is NOT posted to the ledger — posting stays a dashboard action. Money is in paise. Provide `lines` as a JSON array of {description, quantity, unit_price_minor, tax_rate_bps, account_id, optional item_id}; totals are computed for you.

  • create_draft_invoicewriteaccounting.journal

    Create a DRAFT accounts-receivable invoice for a customer. The invoice is created in 'draft' status and is NOT posted to the ledger — posting (which is the irreversible Companies Act act) stays a dashboard action. Money is in paise (₹1 = 100 paise). Provide `lines` as a JSON array of {description, quantity, unit_price_minor, tax_rate_bps, account_id, optional item_id}; line and document totals are computed for you.

  • create_draft_paymentwriteaccounting.journal

    Create a DRAFT payment to a vendor (an accounts-payable settlement). The payment is created in 'draft' status and is NOT posted to the ledger — posting stays a dashboard action. Allocations to specific bills are optional and can be added later from the dashboard. Money is in paise (₹1 = 100 paise).

  • create_draft_receiptwriteaccounting.journal

    Create a DRAFT receipt from a customer (an accounts-receivable settlement). The receipt is created in 'draft' status and is NOT posted to the ledger — posting stays a dashboard action. Allocations to specific invoices are optional and can be added later from the dashboard. Money is in paise (₹1 = 100 paise).

  • create_itemwriteaccounting.journal

    Create a goods/service item in the company's accounting master data. Returns the new item id. The code must be unique within the company; kind is fixed at creation.

  • get_billreadaccounting.view

    Get one AP bill by ID (number, vendor contact, dates, subtotal/tax/total/paid, TDS, status).

  • get_contactreadaccounting.view

    Get one accounting contact by ID (name, kind, email, phone, GSTIN, state). PAN/TAN are masked to a presence flag.

  • get_invoicereadaccounting.view

    Get one AR invoice by ID (number, contact, dates, subtotal/tax/total/paid, status).

  • get_itemreadaccounting.view

    Get one accounting item by ID (code, name, kind, HSN/SAC, default tax rate, default accounts).

  • get_period_lock_statusreadaccounting.view

    Get the accounting period-lock status: through which period-end the books are closed, and how many periods are locked. Read-only (does NOT lock periods).

  • list_accountsreadaccounting.view

    List the tenant's chart of accounts (code, name, type, Schedule III head). Optionally filter by account type.

  • list_billsreadaccounting.view

    List accounting bills (accounts payable). Optionally filter by status.

  • list_contactsreadaccounting.view

    List accounting contacts (customers/vendors/employees). Optionally filter by kind or search by name. PAN/TAN are not returned.

  • list_invoicesreadaccounting.view

    List accounting invoices (accounts receivable). Optionally filter by status.

  • list_itemsreadaccounting.view

    List accounting items (goods/services) with code, name, kind, HSN/SAC, and default tax rate.

  • list_journal_entriesreadaccounting.view

    List posted journal entries, newest first (entry no, date, narration, source, total). Optionally filter by source type.

  • list_paymentsreadaccounting.view

    List accounting payments made (accounts payable settlements). Optionally filter by status.

  • list_receiptsreadaccounting.view

    List accounting receipts received (accounts receivable settlements). Optionally filter by status.

Announcement1 tool

  • list_announcementsreadannouncement.view

    List the tenant's active company announcements (title, body, pinned flag, posted/expiry dates). Expired announcements are excluded.

Compliance6 tools

  • get_compliance_statusreadposh.view

    Get the tenant's POSH training compliance summary: how many employees are compliant, in-progress, or not started.

  • get_training_progressreadposh.view

    Get the calling user's own POSH training progress per module (status, current scene, completion timestamps). Scoped to the token's own user — it cannot read another employee's progress.

  • list_certificatesreadposh.view

    List the calling user's own POSH training certificates (number, issue/expiry dates, revocation status). Scoped to the token's own user.

  • list_posh_annual_reportsreadposh.view

    List the tenant's statutory POSH annual reports (POSH Act 2013 s.21) by year and status. Optionally filter by status. Report data is counts-only aggregate; no complainant identities are ever exposed.

  • list_posh_policiesreadposh.view

    List the tenant's POSH policy documents (title, version, status). Optionally filter by status (draft, published, archived). Does NOT return the full policy body.

  • list_training_modulesreadposh.view

    List the POSH training modules available in the platform (global content). Returns title, duration, mandatory flag and passing score.

Expense5 tools

  • get_expensereadexpense.view

    Get a single expense submission by ID, including amount, category, merchant, status, and approval decision.

  • list_expense_categoriesreadexpense.view

    List the tenant's expense categories (name, GL code, receipt requirement, per-claim cap).

  • list_expensesreadexpense.view

    List expense submissions. Optionally filter by employee, status, or category.

  • list_reimbursement_batchesreadexpense.view

    List expense reimbursement batches. Optionally filter by status.

  • submit_expensewriteexpense.submit

    Submit an expense claim on your own behalf (the caller's user). Files the claim and immediately submits it for approval. The amount is in paise (₹1 = 100 paise). The category must belong to your company and be active; categories that require a receipt cannot be submitted this way (create the draft from the dashboard and attach a receipt first). The actor is always the token's own user — you cannot file on behalf of someone else.

Helpdesk3 tools

  • create_helpdesk_ticketwritehelpdesk.write

    Raise a helpdesk / HR-query ticket on your own behalf (the caller's user). Priority is always 'normal' (only HR can escalate, from the dashboard). The actor is the token's own user — you cannot raise a ticket as someone else.

  • get_ticketreadhelpdesk.view

    Get a single helpdesk ticket (subject, description, status, priority, timestamps). Does NOT return HR-private internal notes.

  • list_ticketsreadhelpdesk.view

    List the tenant's helpdesk tickets (subject, category, status, priority). Optionally filter by status, category or priority.

Hiring12 tools

  • create_draft_candidatewritehiring.create

    Add a candidate to the talent pool (source 'manual'). If a candidate with the same email already exists in your tenant, the existing record is returned (idempotent — no duplicate is created). No résumé file is attached via this tool.

  • create_draft_offerwritehiring.create

    Create a DRAFT offer for an active application (CTC in paise + joining date). The offer is created in 'draft' status — SENDING it to the candidate stays a dashboard action. One offer per application.

  • create_draft_requisitionwritehiring.create

    Create a job requisition (open role) in DRAFT status. Opening it for applications / running the approval flow stays a dashboard action — this tool only drafts. employment_type is one of full_time, part_time, contract, intern.

  • get_candidatereadhiring.view

    Get a single candidate's profile (name, email, source). Does NOT return the resume file, phone number, or any other PII beyond what the role-filtered candidate list returns.

  • get_offerreadhiring.view

    Get a single offer's detail by offer ID. Never returns the accept token, candidate signature, or PDF storage key.

  • get_requisitionreadhiring.view

    Get a single job requisition's detail.

  • list_candidate_messagesreadhiring.view

    List the communication timeline (emails sent) for a single candidate.

  • list_candidatesreadhiring.view

    List candidates in the tenant's talent pool. Optionally filter by source. Returns name, email and source — never resume files or phone numbers.

  • list_interviewsreadhiring.view

    List scheduled interviews in the tenant. Optionally filter by status (scheduled, completed, cancelled, no_show). Never returns the private meeting/join URL.

  • list_offersreadhiring.view

    List offers in the tenant. Optionally filter by status (draft, sent, accepted, declined, withdrawn). Never returns the candidate's accept token or e-signature.

  • list_requisitionsreadhiring.view

    List job requisitions (open roles) in the tenant. Optionally filter by status (draft, open, on_hold, closed, cancelled).

  • move_candidate_stagewritehiring.edit

    Move a candidate's application to another pipeline stage in your tenant. Moving to a REJECTED stage requires a reject_reason. Moving to the HIRED stage is NOT supported here (hiring a candidate creates a new employee record and stays a reviewed dashboard action).

Leave7 tools

  • apply_leavewriteleave.request

    Apply for leave on your own behalf (the caller's user). Creates a leave request for the given leave type and date range; the request is auto-approved or sent for manager approval exactly as the leave type dictates. The actor is always the token's own user — you cannot apply on behalf of someone else.

  • cancel_leavewriteleave.request

    Cancel one of your OWN leave requests (the caller's user). Only a pending or approved request can be cancelled; the balance ledger is reversed automatically. You cannot cancel another person's request — the actor is always the token's own user.

  • get_leave_settingsreadleave.view

    Get the tenant's leave configuration: leave-year start month, comp-off expiry window, probation length, and comp-off auto-earn flag.

  • get_my_leave_balancereadleave.view

    Get the current leave balance per leave type for a given employee.

  • list_holidaysreadleave.view

    List the tenant's public holiday calendar. Optionally filter by year.

  • list_leave_requestsreadleave.view

    List leave requests. Optionally filter by employee, status, and date range.

  • list_leave_typesreadleave.view

    List the tenant's leave-type catalogue (CL/SL/PL/LOP and any custom types) with their default balance, paid flag, and approval requirement.

Loan2 tools

  • get_loan_emi_schedulereadloan.view

    Get the EMI installment schedule for a loan: per-installment due period, principal/interest split, amount, outstanding-after, and paid status. Read-only (no disburse/write-off).

  • list_loansreadloan.view

    List employee loans and advances, newest first. Optionally filter by employee or status.

Maternity3 tools

  • file_maternity_casewritematernity.write

    File a maternity benefit case (notice) for YOURSELF (the caller's user). Opens a case in 'notice_filed' status with the expected delivery date. The case subject is always the token's own user — you cannot file on behalf of another employee over this interface. This is sensitive personal data; only the minimum field is collected.

  • get_maternity_casereadmaternity.view

    Get a single maternity case (status, key dates, discharge-protection flag). Excludes free-text medical/eligibility notes.

  • list_maternity_casesreadmaternity.view

    List the tenant's maternity benefit cases (employee, status, expected delivery, leave window, discharge-protection flag). Optionally filter by employee or status. Excludes free-text medical/eligibility notes.

Offboarding2 tools

  • get_offboarding_cyclereadoffboarding.view

    Get one exit/offboarding cycle's status (read-only). Does NOT include the full & final money settlement or the exit-interview payload.

  • list_offboarding_cyclesreadoffboarding.view

    List exit/offboarding cycles in the tenant (read-only — does NOT advance or close cycles). Closed cycles are hidden unless include_closed is true. Does NOT include the full & final money settlement.

Payroll8 tools

  • get_filing_runreadpayroll.view

    Get one statutory filing run's header by ID (kind, period, revision, generated-at). The rendered file bytes are not returned.

  • get_payroll_runreadpayroll.view

    Get the latest LOCKED payroll run, optionally filtered by period (YYYY-MM). Only locked runs are returned (pre-lock drafts are excluded).

  • get_payroll_run_detailreadpayroll.view

    Get one payroll run's header detail by ID (period, lock state, employee count, gross/net totals). Per-employee PII is not included.

  • get_tds_challanreadpayroll.view

    Get one TDS deposit challan by ID (BSR code, challan serial, deposit date, TDS/interest/fee amounts, section).

  • list_filing_runsreadpayroll.view

    List statutory filing runs (Form-16 Part B / 24Q FVU / PF ECR / ESIC monthly). Optionally filter by kind and year.

  • list_my_payslipsreadpayroll.view

    List an employee's payslips from LOCKED payroll runs (period + net pay). Only locked runs are included.

  • list_payroll_runsreadpayroll.view

    List payroll runs (both draft and locked), newest first. Optionally filter by year.

  • list_tds_challansreadpayroll.view

    List TDS deposit challans for a given financial year and quarter (BSR code, challan serial, deposit date, amounts). No deductee PAN is exposed.

People10 tools

  • get_assetreademployee.view

    Get one asset-register row.

  • get_change_requestreadchangerequest.view

    Get one employee data change request's status. Does NOT return the new-value payload or supporting-document keys (these may contain bank/address PII).

  • get_employeereademployee.view

    Get a single employee's basic profile. Does NOT include bank account, PAN, or other PII financial fields.

  • get_hr_documentreademployee.view

    Get one HR document's metadata (file name, type, visibility, signed/expiry). NEVER returns the document contents or storage key — the file cannot be downloaded over MCP.

  • get_onboardingreademployee.view

    Get one employee onboarding instance with its task checklist and percent-complete.

  • list_assetsreademployee.view

    List the asset register. Optionally filter by status (available, assigned, retired, lost) or assigned employee.

  • list_change_requestsreadchangerequest.view

    List employee data change requests. Optionally filter by employee and status. Does NOT return the new-value payload or any supporting-document keys.

  • list_employeesreademployee.view

    List employees in the tenant. Optionally filter by department or role. Returns basic (non-PII) profile fields.

  • list_hr_documentsreademployee.view

    List an employee's HR documents (metadata only — file name, type, visibility, signed/expiry). NEVER returns the document contents or storage key.

  • list_onboardingreademployee.view

    List employee onboarding instances in the tenant. Optionally filter by status (not_started, in_progress, completed, cancelled).

Performance12 tools

  • close_goalwriteperformance.goal

    Mark a performance goal you own as completed. Only an 'active' goal can be completed (a draft must be activated first; a completed/cancelled goal is terminal). You can only close your own goals.

  • create_goalwriteperformance.goal

    Create a performance goal / OKR owned by you (the caller's user). The goal starts in 'draft' status. You cannot create a goal on behalf of someone else — the owner is always the token's own user.

  • get_goalreadperformance.view

    Get a single performance goal's detail.

  • get_reviewreadperformance.view

    Get a single review's summary (overall rating + summary text) by review ID. Respects subject-scoped visibility: the performance.view capability is HR-tier, which always sees submitted reviews.

  • get_review_cyclereadperformance.view

    Get a single review cycle's detail.

  • give_feedbackwriteperformance.feedback

    Give continuous feedback about a colleague (the caller is the author). Specify the subject employee, the feedback body, and an optional visibility (private | subject | managers; default 'subject'). The subject must be a user in your tenant.

  • list_1on1sreadperformance.view

    List 1:1 meetings in the tenant. Optionally filter by status (scheduled, completed, cancelled). PRIVATE manager notes are never included.

  • list_feedbackreadperformance.view

    List continuous-feedback entries in the tenant. Optionally filter to feedback ABOUT a specific subject employee.

  • list_goalsreadperformance.view

    List performance goals / OKRs in the tenant. Optionally filter by status (draft, active, completed, cancelled).

  • list_review_cyclesreadperformance.view

    List performance review cycles in the tenant. Optionally filter by status (draft, open, in_progress, calibration, closed).

  • list_reviewsreadperformance.view

    List reviews for a review cycle. Returns each roster assignment with its review status and overall rating (when submitted). Does NOT include private review bodies — use get_review for a single review's summary.

  • update_goalwriteperformance.goal

    Update a performance goal you own (title, description, period, dates). Editable only while the goal is in 'draft' or 'active' status. Only fields you supply are changed. You can only update your own goals.

Referral1 tool

  • list_referralsreadreferral.view

    List the tenant's employee referrals by coarse pipeline + bonus status only. Does NOT return the referred candidate's name, email, phone or resume.

Skills4 tools

  • add_employee_skillwriteskills.write

    Add a skill to your own profile (the caller's user) at a given proficiency. If the skill is already on your profile this updates it (idempotent upsert). The actor is the token's own user — you cannot edit another employee's skills.

  • list_employee_skillsreadskills.view

    List the skills recorded for one employee (proficiency and years of experience).

  • list_skillsreadskills.view

    List the tenant's active skill catalog (skill tags HR has defined).

  • update_employee_skillwriteskills.write

    Update an existing skill on your own profile (the caller's user) — proficiency, years of experience, last-used date or notes. Creates the row if absent (idempotent upsert). The actor is the token's own user — you cannot edit another employee's skills.

Survey3 tools

  • get_surveyreadsurvey.view

    Get a single survey's metadata (title, description, type, status, window). Does NOT return individual responses.

  • list_surveysreadsurvey.view

    List the tenant's surveys (title, type, status, open/close window). Optionally filter by status.

  • submit_survey_responsewritesurvey.write

    Submit your own response to an active survey (the caller's user). Provide an `answers` array, one object per question you answer: {question_id, and exactly one of answer_int (for nps/scale questions), answer_text (free_text), or answer_choices (single/multi choice)}. All required questions must be answered. One response per user; the answers are redacted from the audit log.

Time12 tools

  • get_attendance_dayreadtimetracking.view

    Get a single employee's derived attendance record for one date.

  • get_shiftreadtimetracking.view

    Get a single shift definition by ID.

  • get_timesheet_summaryreadtimetracking.view

    Get one employee's per-day logged-minutes summary over a date range (days with zero minutes are omitted).

  • get_wfh_balancereadtimetracking.view

    Get one employee's WFH usage summary: approved and pending request counts plus total approved WFH days. WFH is balance-free (no entitlement is debited).

  • list_attendancereadtimetracking.view

    List derived attendance-day records (status, worked/late/overtime minutes, LOP fraction). Optionally filter by employee and date range.

  • list_comp_off_balancesreadtimetracking.view

    List per-employee comp-off balances: the total still-drawable days across each employee's available, non-expired comp-off credits.

  • list_shiftsreadtimetracking.view

    List the tenant's shift definitions (start/end time in minutes-from-midnight, night-shift flag, grace and overtime thresholds).

  • list_timesheetsreadtimetracking.view

    List timesheet weeks (Monday-anchored) with their status and total/billable minutes. Optionally filter by employee and status.

  • list_wfh_requestsreadtimetracking.view

    List work-from-home requests with their date range, day count, and status. Optionally filter by employee and status.

  • record_punchwritetimetracking.write

    Record an attendance punch (clock in or out) for yourself (the caller's user). punch_type is 'in' or 'out'. punched_at defaults to now if omitted. Optional latitude/longitude are used for geofence resolution server-side. The actor is always the token's own user — you cannot punch for someone else.

  • request_shift_swapwritetimetracking.write

    Request a shift swap with another employee. You offer YOUR shift on requester_date in exchange for the counterparty's shift on counterparty_date; the counterparty must accept before a manager approves. The requester is always the token's own user — you cannot open a swap on someone else's behalf.

  • submit_timesheetwritetimetracking.write

    Submit YOUR timesheet for a given week (the caller's user). week_start must be the Monday of the week. The week must be in draft and contain at least one entry. The actor is always the token's own user.

Travel3 tools

  • create_travel_preapprovalwritetravel.write

    File a travel pre-approval (pre-trip budget request) on your own behalf (the caller's user); it is created in 'pending' status for a manager/HR to decide on the dashboard. The requester is the token's own user.

  • get_travel_preapprovalreadtravel.view

    Get a single travel pre-approval (purpose, destination, dates, estimated and approved budget, status).

  • list_travel_preapprovalsreadtravel.view

    List the tenant's travel pre-approval requests (title, destination, dates, budget, status). Optionally filter by status.

Wfh1 tool

  • request_wfhwritewfh.write

    Request work-from-home for a date range, for yourself (the caller's user). The request is created pending manager approval; weekends and holidays in the range are excluded from the working-day count. The actor is always the token's own user.

Connect these tools to your AI assistant

Create an API token in Settings → API Tokens, add the WorkRight MCP server to your client with WR_MCP_API_TOKEN, and the tools your token's capabilities allow appear automatically. See the quickstart for the exact config.