Xero
Client books, answerable — invoices, aging, and P&L without opening Xero.
Xero holds your clients' accounting truth, and the honest way to check it today is a separate login and a separate organisation switch for every client you bill for or bill through. Connect it here with one Xero sign-in and a session reads across every organisation you authorize in that consent: who owes money and how overdue, what the org owes and when it's due, the cash position across its bank accounts, and the P&L, balance sheet, and trial balance behind the numbers. Ten capabilities, every one of them a read — the Xero client this agent runs on has exactly one request method, and it isn't a write.
The story
What changes once it’s connected.
Xero is built for bookkeeping, not for the question an MSP owner actually asks first thing in the morning: who's overdue, and by how much. Getting that answer today means opening the right organisation, finding the right report, and doing it again for the next client. Connect Xero here and the question is asked once — receivables aging with the buckets and the biggest offenders named, payables aging the same way, and a cash position pulled straight from the Bank Summary report.
The rest of the accounting picture comes with it. Organisation details — legal name, base currency, financial year end — for whichever bound tenant the question is about. The contact roster, searchable by name or email. Invoices themselves, filterable by type and status, when the aging summary isn't enough and the underlying rows are what's needed. And the three standard reports: Profit and Loss over a date range, Balance Sheet and Trial Balance as of a date — each one pulled from Xero's own report engine and flattened into something readable rather than the nested Header/Section/Row structure Xero actually returns.
Xero has no organisation-wide aged-receivables endpoint — the report it does offer wants a single contact — so the AR and AP aging here is computed from outstanding AUTHORISED invoices instead: paged, bucketed by days past due, and honestly marked truncated on the rare estate with more than a thousand open invoices at once. Nothing here creates, approves, voids, or pays anything; the scope on every one of these ten tools is typed as read, which makes a write tool unrepresentable in the registry, and the boundary checks that scope again on every call.
Things you can ask
Ask it like you’d ask a teammate.
Skills included
Every skill, in the open.
10 skills across 4 areas
Read-only, and structurally so: the Xero client behind this agent implements a single method — GET — so no request that could create, approve, void, or pay anything can even be constructed, every skill is typed with a read-only scope that makes a write skill unrepresentable in the registry, and the MCP boundary checks that scope again before any call runs. The credential is an OAuth2 authorization-code grant from Xero's own consent screen, not a static key — one consent binds every organisation you authorize in that flow, tokens refresh themselves after that, and revoking access happens on Xero's side (Settings → Connected apps), not here.
Agent & session1What this connection is and whether it's answering — the first thing to check when a result looks wrong.⊘ Read-only, and it reports the connection rather than repairing it — it cannot re-grant consent or swap which organisations are bound. A revoked grant or an expired refresh token shows up here as a connection that has stopped validating.›
whoamiWhat this session is wired to: connection status, cached-token state, and the bound Xero tenant roster.
Organisation & contacts2The bound tenant itself, and who it does business with.⊘ Reading only — no contact is created, merged, or archived, and no organisation setting is changed from here.›
xero_org_infoA bound tenant's own record — legal name, base currency, financial year end, timezone.xero_contactsCustomers and suppliers for a bound tenant, searchable by name, email, or reference.
Invoices & AR/AP aging3What's owed and what's owing, both as the individual invoice rows and as an aging picture computed from them.⊘ No invoice is created, approved, voided, or paid from here. Xero has no organisation-wide aged-receivables endpoint, so aging is computed from outstanding AUTHORISED invoices — paged and bucketed here, and marked truncated rather than silently short past 1,000 open invoices.›
xero_invoicesInvoices for a bound tenant, filterable by type (receivable/payable) and status.xero_ar_agingReceivables bucketed by days past due, with total outstanding and the biggest overdue invoices named.xero_ap_agingThe same aging picture for what the org owes, rather than what it's owed.
Bank & financial reports4Xero's own report engine, flattened to something readable: cash position, P&L, balance sheet, trial balance.⊘ Reports as Xero computed them — nothing here recategorises a transaction or edits a report.›
xero_bank_summaryPer-account opening and closing balances and cash movement over a date range.xero_profit_and_lossProfit and Loss for a bound tenant over a date range you choose.xero_balance_sheetBalance Sheet for a bound tenant as of a date.xero_trial_balanceTrial Balance for a bound tenant as of a date.
Connecting
Wire it in, in an afternoon.
How to connect
- 01Click Connect — you'll land on Xero's own sign-in page.
- 02Pick the organisation(s) the agent may read.
- 03Xero sends you straight back here; tokens renew themselves after that.
Patch your stack in.
Start the Switchboard free trial against your own environment — read-only, traced answers, live in an afternoon. The apps are on the shelf when you want them.