Skip to main content
Glama

Invio Xero MCP

get_xero_pay_run_summary

get_xero_pay_run_summary
Read-only

What one pay run cost all-in, its status (DRAFT or POSTED), and a comparison against the PREVIOUS pay run of the SAME payroll calendar: each employee paid in both runs, with their net pay and net change; everyone flagged with largeChange: true when that change is 20% or more either way (this connector's own threshold, not Xero's); anyone paid in this run but not the previous one (newThisRun); anyone paid in the previous run but not this one (notPaidThisRun - could mean terminated, on unpaid leave, or simply not rostered this cycle; this tool cannot tell which). Omit payRunId for the most recent pay run. Read-only, for Australian, New Zealand and United Kingdom organisations (this refuses plainly for any other country - see list_xero_payroll_employees for the same gate). 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. wages/tax/super on the pay run itself are Australia only; New Zealand and the United Kingdom instead report totalCost - see list_xero_pay_runs for why. A large swing in net pay often reflects a change in hours worked, but can equally be a bonus, an allowance, leave taken or a tax change - say that it moved, not why. THIS TOOL CANNOT SAY WHETHER A PAY RUN HAS ACTUALLY BEEN PAID OUT OR REPORTED TO ANY TAX AUTHORITY (there is no ATO/IRD/HMRC filing status in any of the three regions' Payroll APIs, and never will be) - only what Xero itself has recorded for the pay run.

Input Schema

NameRequiredDescriptionDefault
payRunIdNoOne pay run, by its Xero PayRunID. Omit for the most recent pay run.
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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / payRunId / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
  2. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only cover readOnly/openWorld, so the description carries the real behavioral load and does: region gating, the Payroll-setup and payroll-admin prerequisites, the fact that failure is a hard refusal not an empty result, and the important disclosure that largeChange is the connector's own 20% threshold rather than Xero's. It also draws explicit epistemic boundaries (cannot distinguish terminated vs unpaid leave vs not rostered; cannot report payment or ATO/IRD/HMRC filing status), which prevents confidently wrong answers.

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

Conciseness3/5

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

The lead clause is well front-loaded (cost, status, comparison), but the rest is a single dense paragraph of ~250 words where region field differences, prerequisite failures, and interpretation caveats run together without segmentation. Nearly every sentence is useful, but the lack of structure makes it harder to scan than the content warrants.

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 describe the return shape and does so thoroughly: per-employee net pay and net change, largeChange flagging, newThisRun/notPaidThisRun sets, and the wages/tax/super versus totalCost split by region. Combined with the refusal semantics, an agent has everything needed to call it and interpret or explain the result correctly.

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

Parameters3/5

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

Schema coverage is 100%, and both parameters are already documented in-schema (payRunId omit-for-latest, organisation only when multi-org). The description's 'Omit payRunId for the most recent pay run' largely restates the schema rather than adding syntax, defaults, or edge cases beyond it, so the baseline 3 applies.

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?

States a very specific verb+resource: the all-in cost of one pay run, its DRAFT/POSTED status, and a per-employee comparison against the previous run of the same calendar. It is unmistakable against siblings like list_xero_pay_runs (enumeration) and create_xero_pay_run/post_xero_pay_run (mutation), and it even names the comparison sets (newThisRun, notPaidThisRun) it returns.

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

Usage Guidelines4/5

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

Gives concrete selection rules: omit payRunId for the most recent run, only pass organisation when the connection spans multiple orgs, and it plainly states the tool refuses outside AU/NZ/UK and when Payroll setup or admin access is missing, instructing the agent to report the refusal rather than imply empty data. It points to list_xero_pay_runs and list_xero_payroll_employees for related context, though it never explicitly says 'use list_xero_pay_runs to enumerate runs first' — the sibling routing is implied rather than stated.

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