Xero MCP Server
The official Xero MCP server: an agent reads invoices, contacts, journals and reports and creates invoices, payments and timesheets
- 390 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- The token opens an organisation's real financial data: invoices, payments, bank transactions and employee payroll records
- The agent creates and changes invoices, payments, journals and timesheets, and those changes affect the organisation's real data
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/xero-mcp-serverDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The token opens an organisation's real financial data: invoices, payments, bank transactions and employee payroll records
- The agent creates and changes invoices, payments, journals and timesheets, and those changes affect the organisation's real data
This is third-party code. Review the repository files before installing.
What it does
Xero MCP Server connects an agent to the Xero accounting system through its API. Xero itself publishes the server. It lets Claude Desktop and other MCP clients read an organisation's data and make changes on a plain-language request. For reading it exposes the chart of accounts, contacts, contact groups, invoices, credit notes, quotes, payments, bank transactions, manual journals, items, tax rates and tracking categories. Reports include profit and loss, the balance sheet, the trial balance and aged receivables and payables by contact. For payroll the server returns employees, timesheets, leave types, balances and leave periods. For writing it creates and updates contacts, invoices, credit notes, quotes, payments, bank transactions and manual journals, as well as tracking categories and their options. For timesheets it can create, add lines, approve, revert and delete. Only draft invoices, quotes and credit notes can be updated.
Who it is for. For accountants, small business owners and developers who work in Xero and want to ask about invoices, payments and reports from Claude Desktop or another MCP client.
Good fit when
- You want a profit and loss report or balance sheet from Xero and to go through it in conversation
- You need to find which customers have overdue balances, using aged receivables
- The agent should prepare a draft invoice or quote for a contact
- You want to check bank transactions and payments for a period and match them to invoices
- For the payroll module in the NZ or UK region you need to see timesheets and leave balances and approve a timesheet
Not a fit when
- Your books are not in Xero: the server works only with the Xero API
- You need several organisations with no repeat authorization: the bearer token mode is meant for that, while Custom Connections mode is tied to one organisation
- You need payroll queries in another region: for payroll queries the organisation's region must be NZ or UK
- A client's working data must not be shown to an outside model: the server passes the contents of the books to the agent and the model
Example request
Show the profit and loss report for last quarter, find customers with overdue invoices and prepare a draft invoice for the biggest debtor.MCP
- Transport
- stdio
- Authentication
- OAuth
Environment variables
XERO_CLIENT_IDrequired- Client ID from a Xero Custom Connection
XERO_CLIENT_SECRETrequired, secret- Client secret from a Xero Custom Connection
XERO_CLIENT_BEARER_TOKENsecret- Access token for the client-side sign-in mode, takes priority over the client ID
XERO_SCOPES- Space-separated list of scopes that replaces the default set
Limitations
It needs Node.js 18 or newer and a Xero developer account with API credentials. To begin, the author advises the Demo Company with sample data, which can be reset and switched to another country. Payroll queries work only in the NZ and UK regions.
Two ways to sign in are supported. Custom Connections suits development and clients such as Claude Desktop, with credentials tied to one organisation. Bearer token mode is for when the client runs the sign-in itself, for example with PKCE, and serves several Xero accounts. The token takes priority over the client ID.
The permission set depends on when the connection was created: before April 29, 2026 the SCOPES_V1 set is needed, and from that date SCOPES_V2 with more granular rights. The server tries V1 and falls back to V2, and you can set the list by hand in the `XERO_SCOPES` variable. Some older scopes are marked deprecated. If Node.js is installed through nvm, put the full path in place of `npx`. Availability of Xero from Russia is unconfirmed.
How to disable. Delete the xero entry from claude_desktop_config.json and restart Claude Desktop. In the Xero developer portal delete or disable the Custom Connection to cut access through the issued credentials.
FAQ
How do I connect Xero to Claude Desktop?
Create a Custom Connection in the Xero developer portal, then add an xero server to claude_desktop_config.json with the command npx, the arguments -y and @xeroapi/xero-mcp-server@latest and the variables XERO_CLIENT_ID and XERO_CLIENT_SECRET. Restart Claude Desktop.
Is this the official Xero server?
Yes, the repository belongs to the XeroAPI organisation, meaning Xero itself. The author recommends starting with the Demo Company so you do not touch working data.
What two sign-in modes does the server have?
Custom Connections with a client ID and secret for one organisation, and the XERO_CLIENT_BEARER_TOKEN token when the client runs the sign-in itself. If the token is set, it takes priority over the client ID.
What if I get permission errors?
The permissions depend on when the Custom Connection was created. The server tries the old set and falls back to the new one, and you can set the list by hand in XERO_SCOPES separated by spaces. Add every scope from the matching list to the connection.
Does the server work with payroll?
Yes, but only if the organisation's region is NZ or UK. Employees, timesheets, leave types and balances are available, and for timesheets also creating, editing lines, approving, reverting and deleting.
Discussion
No questions or reviews yet.
Related
MCP serversIntuit's official local MCP server: an agent finds and creates invoices, payments and customers in QuickBooks Online
An MCP server for Actual Budget: agents read accounts and transactions, build spending reports and, with a flag, edit categories.
The server gives agents read access to your bank accounts and transactions through Enable Banking, without payment tools.
BeeCount Cloud MCP is an MCP server for personal bookkeeping, with separate permissions to read reports or change transactions.
SolidInvoice's built-in MCP server: an agent reads invoices, clients and payments and, once allowed, creates new invoices.
Financial Datasets MCP
Financial Datasets MCP Server
An MCP server for the Financial Datasets API: company financials, stock and crypto prices and news for the agent
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Xero MCP Server (this card) | yes | OAuth | 390 | |
| QuickBooks Online MCP Server | yes | OAuth | 445 | Intuit's official server for QuickBooks Online, a different accounting system |
| freee-mcp | yes | OAuth | 515 | the official server for Japan's freee platform with accounting and payroll |
README in short
The README lists the features (OAuth2 sign-in, contacts, chart of accounts, invoices), requirements and links to Xero documentation. It covers both sign-in modes with configuration examples, a table of scopes by connection creation date and the full list of server commands. It ends with a developer section about building and connecting a local version and a reminder not to commit the `.env` file.