It is not a read-only viewer: an invoice or a bank transaction can be fixed where you noticed the problem, and the balance sheet is one call from the detail underneath it.
A Xero client authorized through an OAuth app you create yourself. It lists organisations, contacts, accounts, invoices, payments and quotes, reads and updates individual invoices and bank transactions, and returns the balance sheet.
- Organisations, contacts and the chart of accounts listed
- Invoices listed, read in detail and updated, and new contacts created
- Bank transactions listed, read, created and updated
- Payments and quotes listed
- The balance sheet pulled as a report
Node, and your own OAuth app in the Xero developer centre: client ID, client secret, and a localhost redirect URI with an explicit port and path, set as XERO_CLIENT_ID, XERO_CLIENT_SECRET and XERO_REDIRECT_URI. The first tool call opens a Xero consent page which has to be closed by hand afterwards, and whatever it reads from Xero passes through the model you are using.
One command plus a key — npx -y xero-mcp@latest, then supply credentials
