Xero MCP server and Claude connector: what it does, scopes, how to connect
Xero has an open-source local MCP server (read and write) and a read-only hosted server at mcp.xero.com behind its Claude connector. Verified 21 Oct 2026.
- Official MCP server · read & write (local)
- Official remote MCP · read-only
- Claude connector · read-only
- Hosting
- Local stdio (open source,
@xeroapi/xero-mcp-server) and remote HTTP (https://mcp.xero.com/mcp) - Auth
- OAuth 2.0. Local: Custom Connection (client ID and secret, one org) or bearer token. Connector: your Xero sign-in
- Read / write
- Local server: read and write; some writes post at once. Remote server and connector: read-only
- Works with
- Local: Claude Desktop, Claude Code, Cursor, other MCP clients. Connector: Claude.ai and Desktop. ChatGPT: separate Xero plugin (per Xero)
- Plan requirement
- Active Xero subscription. Connector free to add (per Xero). Local server needs a Custom Connection; Xero says these keep existing commercial terms, and the price isn't stated on Xero pages we could open
- Last changed
- 2026-04-29: granular V2 scopes for new Custom Connections. Connector listed in the Claude directory April 2026
- Verification
- Verified 21 Oct 2026 by theFinanceStack · confidence: high
What can an agent do with Xero through MCP?
The local server has 51 tools that read and write one Xero organisation. The hosted connector has 20 tools, and they only read.
Where it runs
| Option | Tools | Reads or writes |
|---|---|---|
| Local server (open source) | 51: 25 list, 11 create and 10 update tools, plus 5 payroll timesheet actions (per the README). Payroll works only for NZ and UK organisations. | Reads and writes one Xero organisation |
| Hosted connector (Claude) | 20, per the Claude directory: profit and loss and cash position through to bills, purchase orders and bank transactions | Read-only |
What happens when the local server writes
Not every write is a draft. Per the source code:
| Record | What happens |
|---|---|
| Invoices | Always created as DRAFT. Only drafts can be edited. |
| Bank transactions | Created as AUTHORISED and post to the ledger at once. |
| Payments | Apply to approved invoices immediately. |
| Manual journals | Default to DRAFT, but create-manual-journal and update-manual-journal both accept POSTED. update-manual-journal can also void or delete a draft journal. |
Tools that post to the ledger, move money or approve
create-paymentcreate-bank-transactionandupdate-bank-transactioncreate-manual-journalandupdate-manual-journalapprove-timesheetandrevert-timesheet
Can
- Read profit and loss, aged receivables and payables, invoices, bills, contacts and accounts (both)
- Read cash position and financial position (connector)
- Read balance sheet, trial balance, credit notes, quotes and manual journals (local)
- Create draft invoices; update draft invoices, contacts, credit notes, quotes and items (local)
- Create bank transactions (posted), record payments, create and update journals as draft or posted (local)
- Read payroll employees and leave; create, approve, revert and delete timesheets (NZ/UK, local)
Cannot
- Write through mcp.xero.com or the connector (read-only per Xero)
- Authorise an invoice: the local invoice tools handle drafts only
- Give tax, compliance or financial advice (per Xero)
What access does it get?
Scoped OAuth access to one Xero organisation. The local server requests its default scopes or the ones in XERO_SCOPES. The connector uses your Xero sign-in and is read-only.
| Where | Scopes and permissions (as documented) | Admin requirement |
|---|---|---|
| Local MCP server (Custom Connection) | Connections created on or after 29 Apr 2026 use V2 scopes; default: accounting.invoices, accounting.payments, accounting.banktransactions, accounting.manualjournals, accounting.reports.aged.read, accounting.reports.balancesheet.read, accounting.reports.profitandloss.read, accounting.reports.trialbalance.read, accounting.contacts, accounting.settings, payroll.settings, payroll.employees, payroll.timesheets. Older connections use V1 (accounting.transactions, accounting.reports.read and others). Without XERO_SCOPES the server requests the full default list, so narrowing only works if XERO_SCOPES names the same reduced set. | Not documented in Xero pages we could open. The README calls Custom Connections suited to testing and development. |
| Local MCP server (bearer token) | Whatever your client's auth flow (for example PKCE) requested; passed as XERO_CLIENT_BEARER_TOKEN. | Not documented by the vendor beyond your client's own auth setup |
| Remote server / Claude connector | Not documented by the vendor. You sign in with your Xero login and choose an organisation; read-only. | Xero doesn't document role requirements. Claude Team/Enterprise: an Owner adds the connector first. |
How do I connect it?
Use the Claude connector for questions, and the local server only when an agent must change records in Xero.
- Open https://claude.com/connectors/xero and click Add to Claude, or add Xero from the connectors directory in Claude.
- Sign in with your Xero login and choose the organisation.
- Team/Enterprise: an Owner must add the connector first.
Read-only. Works with free or paid Claude plans (per Xero).
What should a finance team watch for?
Writes that post immediately, Xero's API limits of 60 calls a minute and 5,000 a day per organisation, and plain-text credentials.
- The local server writes straight to Xero: bank transactions post as AUTHORISED, payments apply at once, and journals post if the agent sets POSTED on create or update. On V2 connections, leave out accounting.payments, accounting.banktransactions and accounting.manualjournals unless a workflow needs them. On older V1 connections these sit inside accounting.transactions and can't be dropped separately; a new Custom Connection uses the granular scopes.
- Xero's API limits apply to the local server: 5 concurrent calls, 60 a minute and 5,000 a day per organisation. A bulk update can use up the daily allowance.
- Each Custom Connection covers one organisation. Xero says Custom Connections keep their existing commercial terms after its March 2026 pricing change; the dataset's paid add-on note could not be confirmed on a Xero page.
- The client secret or bearer token sits in plain text in the client config or
.env, often synced or shared. Don't commit it; use the client's secret storage where available. - Xero says connector data "disappears once the chat ends" and is never used to train AI models; see Xero's and Anthropic's terms.
- Memos, references and bank descriptions return as free text. An injected instruction could push a local-server agent to post a journal or record a payment, so keep human approval on.
How could finance teams and accounting firms use it?
The connector suits questions and reporting. The local server suits drafting that a person approves in Xero.
Inside a company
- Ask for cash position, overdue receivables or a month-on-month profit and loss comparison.
- Draft monthly management commentary from the profit and loss and financial position, then edit it.
- Build a collections list from aged receivables and draft follow-up emails for a person to send.
- With the local server and invoice scopes only: create draft invoices that a person approves in Xero.
At an accounting firm
- Summarise a client's period results and unusual movements before a meeting.
- Run pre-close checks on aged payables and bank transactions. The trial balance needs the local server.
- With the local server: draft accrual journals. Grant accounting.manualjournals without the payment or bank transaction scopes, keep write approval on in the client, and check each journal is still DRAFT in Xero before review.
- Plan one Custom Connection per client organisation for the local server. Each may carry a Xero charge and has its own API limits, so check pricing before rolling out across clients.
Keep a person approving anything that changes the ledger, and treat AI-drafted figures as drafts until they tie to Xero.
Want Xero connected to Claude for your team?
We configure scoped connections and a review step before anything changes your books. Fixed fee.
Book a 30-minute setup callChange log
| Date | Change | Source |
|---|---|---|
| 2026-09-16 | Xero announced a Xero plugin in ChatGPT and Claude for Small Business integration | blog.xero.com/product-updates/claude-for-small-business-chat |
| 2026-04-29 | Custom Connections created from this date use granular V2 scopes (local server) | github.com/XeroAPI/xero-mcp-server |
| 2026-04 | Xero connector listed in the Claude directory (read-only, mcp.xero.com/mcp); now 20 tools | claude.com/connectors/xero |
| 2026-03-02 | Xero developer pricing tiers took effect; Custom Connections keep existing terms | developer.xero.com/faq/pricing-and-policy-updates |
FAQ
Is this official?
Yes. Xero's XeroAPI GitHub organisation publishes the local server (MIT), and the Claude directory lists the connector as made by Xero Limited, Anthropic verified.
Is it free?
Xero says the connector is free to add with an active Xero subscription. The local server needs a Custom Connection, which may carry a Xero charge; check current pricing.
Does it write to my books?
The connector doesn't; Xero says it is read-only. The local server does. Invoices stay drafts. Bank transactions and payments post at once, and journals can be posted.
Is my data used to train models?
Xero says connector data is never used to train AI models and is removed when the chat ends. For the local server and the ChatGPT plugin, check Xero's and your AI provider's terms.
Can my accountant use it on my behalf?
Xero doesn't address this.
Sources
- XeroAPI/xero-mcp-server README (GitHub)
- xero-mcp-server default scope lists and XERO_SCOPES handling
- xero-mcp-server: bank transactions created as AUTHORISED
- xero-mcp-server: manual journal status options
- xero-mcp-server: update-manual-journal status options
- xero-mcp-server: invoices created as DRAFT
- xero-mcp-server: create-payment tool
- Xero: Xero connector in Claude
- Xero Canada: Xero connector in Claude
- Claude directory: Xero
- Xero Developer FAQ: API limits
- Xero Developer FAQ: pricing and policy updates
- Xero blog: Claude for Small Business and ChatGPT (16 Sep 2026)
- ChatGPT: Xero plugin listing (could not be opened)
- Glama: Xero MCP Server listing
- Claude Code docs: MCP (claude mcp add syntax)
Verified by theFinanceStack, 21 Oct 2026. Vendor list on the CFO Software Market Map courtesy of Jason Staats; AI connectivity data by theFinanceStack. Not tax, compliance or financial advice.