What it does
This MCP server bridges Claude and Xero's accounting API, exposing contacts, accounts, invoices, payments, bank transactions, and financial reports through MCP-compliant tools. It supports two authentication modes: custom connections for development and testing, and bearer tokens for multi-tenant production use. The server handles OAuth2 flows and provides structured access to core Xero features including chart-of-accounts management, invoice creation, credit notes, and reporting (profit & loss, trial balance, aged receivables).
Who it's for
Accounting teams automating Xero workflows through Claude (e.g., finance analysts querying reports, accountants processing invoices via natural language). Developers building AI agents that need programmatic bookkeeping data access. Bookkeepers using Claude Code to pre-populate transactions or verify contact details without manual entry.
Common use cases
- Query invoice lists and generate summaries for client billing analysis
- Retrieve profit & loss or trial balance reports and have Claude analyze them
- Automate contact creation or updates from unstructured data
- Pull payment records for bank reconciliation workflows
- Create invoices from natural language descriptions
Setup pitfalls
- Xero OAuth2 scope requirements differ by custom connection creation date (before/after Apr 29, 2026); the server auto-detects but can be overridden with
XERO_SCOPESenv var - Node.js v18+ required; if using nvm, provide full path to
npxexecutable instead of the shorthand - Custom connections need
XERO_CLIENT_IDandXERO_CLIENT_SECRETset in environment or Claude Desktop config - Xero free trial limits you to demo company; payroll queries require NZ or UK region setting