Skip to main content
Glama
XeroAPI

Xero MCP Server

Official

list-payroll-leave-types

Retrieve all configured leave types from Xero Payroll, including statutory and organization-specific categories, to manage employee leave policies.

Instructions

Lists all available leave types in Xero Payroll. This provides information about all the leave categories configured in your Xero system, including statutory and organization-specific leave types.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Main tool handler: defines the 'list-payroll-leave-types' tool using CreateXeroTool. Includes empty input schema, description, and async executor that calls the Xero handler, handles errors, and formats leave types as text blocks.
    const ListPayrollLeaveTypesTool = CreateXeroTool( "list-payroll-leave-types", "Lists all available leave types in Xero Payroll. This provides information about all the leave categories configured in your Xero system, including statutory and organization-specific leave types.", {}, async () => { const response = await listXeroPayrollLeaveTypes(); if (response.isError) { return { content: [ { type: "text" as const, text: `Error listing payroll leave types: ${response.error}`, }, ], }; } const leaveTypes = response.result; return { content: [ { type: "text" as const, text: `Found ${leaveTypes?.length || 0} payroll leave types:`, }, ...(leaveTypes?.map((leaveType: LeaveType) => ({ type: "text" as const, text: [ `Leave Type: ${leaveType.name || "Unnamed"}`, `Leave Type ID: ${leaveType.leaveTypeID || "Unknown"}`, leaveType.isPaidLeave !== undefined ? `Is Paid Leave: ${leaveType.isPaidLeave ? 'Yes' : 'No'}` : null, leaveType.showOnPayslip !== undefined ? `Show On Payslip: ${leaveType.showOnPayslip ? 'Yes' : 'No'}` : null, leaveType.isActive !== undefined ? `Is Active: ${leaveType.isActive ? 'Yes' : 'No'}` : null, leaveType.typeOfUnits ? `Type Of Units: ${leaveType.typeOfUnits}` : null, leaveType.typeOfUnitsToAccrue ? `Type Of Units To Accrue: ${leaveType.typeOfUnitsToAccrue}` : null, leaveType.updatedDateUTC ? `Last Updated: ${leaveType.updatedDateUTC}` : null, ] .filter(Boolean) .join("\n"), })) || []), ], }; }, );
  • Core helper function listXeroPayrollLeaveTypes that fetches leave types from Xero Payroll API via xeroClient.payrollNZApi.getLeaveTypes, handles errors, and returns structured response.
    export async function listXeroPayrollLeaveTypes(): Promise< XeroClientResponse<LeaveType[]> > { try { const leaveTypes = await fetchLeaveTypes(); if (!leaveTypes) { return { result: [], isError: false, error: null, }; } return { result: leaveTypes, isError: false, error: null, }; } catch (error) { return { result: null, isError: true, error: formatError(error), }; } }
  • Internal helper to perform the actual Xero API call to retrieve leave types.
    async function fetchLeaveTypes(): Promise<LeaveType[] | null> { await xeroClient.authenticate(); const response = await xeroClient.payrollNZApi.getLeaveTypes( xeroClient.tenantId, undefined, // page undefined, // pageSize getClientHeaders(), ); return response.body.leaveTypes ?? null; }
  • Registration: ListPayrollLeaveTypesTool is included in the ListTools array export (line 52). This array is likely imported and registered in the MCP server.
    export const ListTools = [ ListAccountsTool, ListContactsTool, ListCreditNotesTool, ListInvoicesTool, ListItemsTool, ListManualJournalsTool, ListQuotesTool, ListTaxRatesTool, ListTrialBalanceTool, ListPaymentsTool, ListProfitAndLossTool, ListBankTransactionsTool, ListPayrollEmployeesTool, ListReportBalanceSheetTool, ListOrganisationDetailsTool, ListPayrollEmployeeLeaveTool, ListPayrollLeavePeriodsToolTool, ListPayrollEmployeeLeaveTypesTool, ListPayrollEmployeeLeaveBalancesTool, ListPayrollLeaveTypesTool, ListAgedReceivablesByContact, ListAgedPayablesByContact, ListPayrollTimesheetsTool, ListContactGroupsTool, ListTrackingCategoriesTool ];
  • Import statement for the ListPayrollLeaveTypesTool in the tools index.
    import ListPayrollLeaveTypesTool from "./list-payroll-leave-types.tool.js";

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/XeroAPI/xero-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server