Skip to main content
Glama

Invio Xero MCP

get_xero_leave_balances

get_xero_leave_balances
Read-only

This organisation's employee leave balances (annual leave, personal/sick leave and any other leave types Xero has set up) - by name, in the units Xero tracks them in (usually Hours, or Dollars for some New Zealand leave types). Read-only, for Australian, New Zealand and United Kingdom organisations (this refuses plainly for any other country). Also requires Xero's own Payroll setup to be complete for the organisation, and the Xero user who connected to have held payroll administrator access at the time - if either is missing this refuses plainly rather than returning an empty list, so report that rather than implying the organisation has no payroll data. Pass employeeId to get one employee (from list_xero_payroll_employees); omit it for every active employee. For Australia that means up to 100, one page only - use employeeId for anyone beyond that. For New Zealand and the United Kingdom, "every employee" is capped at 25 (leave balances are a separate call per employee for those two regions, unlike Australia) - truncated: true on the result means more active employees exist than were fetched; say so and suggest employeeId for anyone missing rather than presenting the list as complete. Each balance carries negative: true when the employee has taken more of that leave type than they have accrued - point those out plainly, do not just report the raw number. This tool cannot say whether a leave request has been approved, paid, or reported to any tax authority - only the current balance Xero holds.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
employeeIdNoOne employee, by their Xero EmployeeID. Omit for every employee.
organisationNoThe Xero organisation to use, by its display name. Only needed if this connection reaches more than one organisation - omit it when there is only one.
includeInactiveNoInclude terminated employees too. Omit or false for active employees only (Xero's own EmployeeStatus: ACTIVE or TERMINATED).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=true, but the description adds substantial behavioral context beyond that: it refuses for non-supported countries, requires payroll configuration and admin access, has per-region limits, returns `truncated: true` when more employees exist, and flags negative balances with `negative: true`. It also explicitly states what the tool cannot tell (approval/payment/tax status). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence carries necessary operational detail. It's front-loaded with the core purpose before diving into regional rules and edge cases. There is some redundancy (e.g., mentioning both 'read-only' and the annotation), but overall it is efficiently structured for the complexity it covers.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must fully explain return values and interpretation. It covers units, negative balances, truncation, and what data is not provided. It also gives the agent authoritative instructions on how to report refusals and incomplete lists. Everything an agent needs to call and interpret the tool correctly is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful usage semantics: employeeId should come from list_xero_payroll_employees, omit for all employees, organisation only needed for multi-org connections, and includeInactive includes terminated employees. It also explains implications like regional caps tied to employeeId. This adds value above the schema, warranting a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource (employee leave balances), the verb (get), and the scope (by name, in Xero's tracking units). It distinguishes itself from other Xero tools by focusing on leave balances and explicitly listing what it does not do (e.g., cannot indicate approval/payment status). No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use conditions: only for AU/NZ/UK organisations, requires complete payroll setup and admin access. Gives clear guidance on parameter usage (pass employeeId for one, omit for all), regional caps (Australia 100, NZ/UK 25), and how to interpret the `truncated` flag. Also tells the agent how to respond to refusals and missing data, which is exceptional.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources