
Xero MCP Server
Official Xero MCP server for accounting, invoicing, contacts, and payroll via the Xero API.
Add to your client
Copy the config for your MCP client and paste it into its config file.
npx -y @xeroapi/xero-mcp-server@latestPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"xero-mcp-server": {
"command": "npx",
"args": [
"-y",
"@xeroapi/xero-mcp-server@latest"
],
"env": {
"XERO_CLIENT_ID": "your_client_id_here",
"XERO_CLIENT_SECRET": "your_client_secret_here",
"XERO_SCOPES": "accounting.invoices accounting.contacts accounting.settings"
}
}
}
}Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- Node.js (v18 or higher)
- npm or pnpm
- A Xero developer account with API credentials
- A Xero account/organisation (a Demo Company is recommended for getting started)
- A configured Xero Custom Connection (client ID/secret) or a Bearer token with the appropriate OAuth scopes
About Xero MCP Server
An official MCP server from Xero (XeroAPI) that provides a bridge between the MCP protocol and Xero's API, allowing standardized access to Xero's accounting and business features including contacts, chart of accounts, invoices, financial reports, and payroll. It supports two authentication modes: Custom Connections (client ID/secret, recommended for 3rd-party MCP clients like Claude Desktop) and Bearer Token (for supporting multiple Xero accounts at runtime with client-driven auth flows such as PKCE).
Tools & capabilities (51)
list-accountsRetrieve a list of accounts
list-contactsRetrieve a list of contacts from Xero
list-credit-notesRetrieve a list of credit notes
list-invoicesRetrieve a list of invoices
list-itemsRetrieve a list of items
list-manual-journalsRetrieve a list of manual journals
list-organisation-detailsRetrieve details about an organisation
list-profit-and-lossRetrieve a profit and loss report
list-quotesRetrieve a list of quotes
list-tax-ratesRetrieve a list of tax rates
list-paymentsRetrieve a list of payments
list-trial-balanceRetrieve a trial balance report
list-bank-transactionsRetrieve a list of bank account transactions
list-payroll-employeesRetrieve a list of Payroll Employees
list-report-balance-sheetRetrieve a balance sheet report
list-payroll-employee-leaveRetrieve a Payroll Employee's leave records
list-payroll-employee-leave-balancesRetrieve a Payroll Employee's leave balances
list-payroll-employee-leave-typesRetrieve a list of Payroll leave types
list-payroll-leave-periodsRetrieve a list of a Payroll Employee's leave periods
list-payroll-leave-typesRetrieve a list of all available leave types in Xero Payroll
list-timesheetsRetrieve a list of Payroll Timesheets
list-aged-receivables-by-contactRetrieves aged receivables for a contact
list-aged-payables-by-contactRetrieves aged payables for a contact
list-contact-groupsRetrieve a list of contact groups
list-tracking-categoriesRetrieve a list of tracking categories
create-bank-transactionCreate a new bank transaction
create-contactCreate a new contact
create-credit-noteCreate a new credit note
create-invoiceCreate a new invoice
create-itemCreate a new item
create-manual-journalCreate a new manual journal
create-paymentCreate a new payment
create-quoteCreate a new quote
create-payroll-timesheetCreate a new Payroll Timesheet
create-tracking-categoryCreate a new tracking category
create-tracking-optionCreate a new tracking option
update-bank-transactionUpdate an existing bank transaction
update-contactUpdate an existing contact
update-invoiceUpdate an existing draft invoice
update-itemUpdate an existing item
update-manual-journalUpdate an existing manual journal
update-quoteUpdate an existing draft quote
update-credit-noteUpdate an existing draft credit note
update-tracking-categoryUpdate an existing tracking category
update-tracking-optionsUpdate tracking options
update-payroll-timesheet-lineUpdate a line on an existing Payroll Timesheet
approve-payroll-timesheetApprove a Payroll Timesheet
revert-payroll-timesheetRevert an approved Payroll Timesheet
add-payroll-timesheet-lineAdd new line on an existing Payroll Timesheet
delete-payroll-timesheetDelete an existing Payroll Timesheet
get-payroll-timesheetRetrieve an existing Payroll Timesheet
What this server can do
Xero MCP Server provides tools for these capabilities — tap one to see every MCP server that does the same:
When to use it
- Ask an AI assistant to create, update, and list invoices, quotes, and credit notes in Xero
- Manage contacts and the chart of accounts conversationally
- Generate financial reports such as profit and loss, balance sheet, trial balance, and aged receivables/payables
- Record and reconcile bank transactions, payments, and manual journals
- Run Xero Payroll workflows: manage employees, leave, and timesheets (NZ/UK regions)
Security notes
Do not commit your .env file or any sensitive credentials to version control (it is included in .gitignore as a safe default). Authentication requires Xero Custom Connection client ID/secret or a Bearer token; configure the minimum required OAuth scopes for your use case. To use Payroll-specific queries, the organisation region must be NZ or UK.
Xero MCP Server FAQ
What authentication modes are supported?
Two modes: Custom Connections (client ID/secret, recommended for testing/development and 3rd-party MCP clients like Claude Desktop) and Bearer Token (for supporting multiple Xero accounts at runtime, where the MCP client executes an auth flow such as PKCE). The XERO_CLIENT_BEARER_TOKEN takes precedence over XERO_CLIENT_ID if defined.
Do I need to configure OAuth scopes?
Yes. Custom connections require different scopes depending on when they were created (SCOPES_V1 before Apr 29, 2026; SCOPES_V2 from that date). The server tries V1 first and falls back to V2. You can override scopes via the optional XERO_SCOPES environment variable as a space-separated list.
Are there region restrictions for Payroll?
Yes. To use Payroll-specific queries, the organisation region must be either NZ or UK.
How do I get started quickly?
Sign up for a free Xero trial and use a Demo Company, which comes pre-loaded with sample data. You can reset the data or change the country at any time from the My Xero dropdown.
Alternatives to Xero MCP Server
Compare all alternatives →Official Stripe server for payments, customers, subscriptions, invoices, and billing via natural language.
Coinbase's AgentKit MCP extension for onchain actions: transfers, swaps, and contract calls.
Alpaca's official trading server for stocks, ETFs, options, and crypto in plain English.
Compare Xero MCP Server with: