PlugWiki

Xero MCP Server: connect your Xero books to Claude, Cursor and other AI apps

Official · by XeroLocal
Getnpm@xeroapi/xero-mcp-serverXeroAPI/xero-mcp-serverDocs

Lets your AI assistant read and create invoices, contacts, payments, quotes and reports in your Xero books.

This is Xero's open-source server that runs on your computer. It lets Claude and other assistants look up accounts, contacts, invoices and reports, and create or update invoices, payments, quotes and journals. It connects with keys from a Xero Custom Connection, which costs extra each month and is only offered in Australia, New Zealand, the UK and the US. If you only want answers about your numbers in Claude, Xero's read-only Claude connector needs no setup.

Good for

  • Small business owners who want to ask about unpaid invoices or this month's profit in plain words
  • Bookkeepers and accountants who want an assistant to draft invoices, quotes and credit notes
  • NZ and UK businesses that run payroll timesheets and leave in Xero
  • Developers building finance automations on Xero's API from Claude Desktop or an editor

Works in

1 with issues · 11 should work

Tap an app to see how to set it up and any known problems.

Install Xero MCP

Claude Code

  1. 1

    Copy this prompt.

    Add the Xero MCP server to Claude Code. Run this command:
    
    claude mcp add xero -e XERO_CLIENT_ID=<XERO_CLIENT_ID> -e XERO_CLIENT_SECRET=<XERO_CLIENT_SECRET> -- npx -y @xeroapi/xero-mcp-server
    
    Ask me for XERO_CLIENT_ID, XERO_CLIENT_SECRET and only put the values in that config, nowhere else.
    
    Then check that it loaded and tell me if I need to sign in or restart.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

Requires Node.js.

Read-only mode: There's no read-only mode. To keep it to lookups and reports, give your Xero Custom Connection only read scopes.

Most people should use a Xero Custom Connection: paste its client ID and secret. To use a bearer token instead, replace both with XERO_CLIENT_BEARER_TOKEN (it expires after about 30 minutes). With nvm, replace npx with the full path to npx.

Built from the package data we hold. Not yet tested by us.

Tools

  • Finds your invoices, draft, sent or paid, for a customer or invoice number

    Lists invoices in Xero, including drafts, sent and paid ones. You can narrow it to one customer or invoice number.

    Try: “Show me all unpaid invoices for Acme Ltd”

    Network · list-invoices

  • Lists your customers and suppliers

    Lists the customers and suppliers saved in your Xero organisation.

    Try: “Find the contact details for our supplier Green Print”

    Network · list-contacts

  • Shows payments received or made against invoices

    Lists payments made against invoices, with date, amount and method. You can look them up by invoice number or reference.

    Try: “Has invoice INV-0042 been paid yet?”

    Network · list-payments

  • Gives you a profit and loss report for any period

    Pulls Xero's profit and loss report, showing revenue, expenses and profit or loss for the period you choose.

    Try: “What was our profit last quarter?”

    Network · list-profit-and-loss

  • Gives you the balance sheet

    Pulls the balance sheet report from Xero.

    Try: “Show me our balance sheet as of the end of last month”

    Network · list-report-balance-sheet

  • Gives you a trial balance of every account

    Pulls the trial balance, a snapshot of the general ledger with debit and credit balances for each account.

    Try: “Run a trial balance for September”

    Network · list-trial-balance

  • Shows how much a customer owes you and how overdue it is

    Shows the aged receivables for one customer up to a date, so you can see what they owe and for how long.

    Try: “How overdue is Acme Ltd on what they owe us?”

    Network · list-aged-receivables-by-contact

  • Shows how much you owe a supplier and how overdue it is

    Shows the aged payables for one supplier up to a date, so you can see what you owe them and for how long.

    Try: “What do we still owe Green Print, and how late is it?”

    Network · list-aged-payables-by-contact

  • Lists bank account transactions

    Lists the transactions on your bank accounts in Xero, for one account or all of them.

    Try: “Show the last 10 transactions on our business account”

    Network · list-bank-transactions

  • Lists your quotes, for one customer or all

    Lists the quotes in Xero, either all of them or those for one customer.

    Try: “List the quotes we sent to Acme Ltd”

    Network · list-quotes

  • Lists credit notes, for one customer or all

    Lists credit notes in Xero, either all of them or those for one contact.

    Try: “Show any credit notes issued to Acme Ltd”

    Network · list-credit-notes

  • Lists manual journal entries

    Lists manual journals in Xero, or shows one journal, or only those changed after a date.

    Try: “Show manual journals posted this month”

    Network · list-manual-journals

Read from the source code

Pros and cons

Good

  • Made by Xero and open source under the MIT license.
  • Covers the core of accounting: contacts, invoices, payments, quotes, credit notes, journals and bank transactions.
  • Reads profit and loss, balance sheet, trial balance and aged receivables and payables reports.
  • Handles payroll employees, leave and timesheets for NZ and UK organisations.
  • Invoice, quote and credit note edits only touch drafts.
  • Works with Xero's free Demo Company for testing.

Watch out

  • A Custom Connection costs an extra monthly Xero subscription.
  • Custom Connections are only offered in Australia, New Zealand, the UK and the US.
  • The token option expires after about 30 minutes and does not renew itself.
  • It works with one Xero organisation at a time.
  • There is no read-only mode.
  • This server runs only on your computer and needs Node.js.

Permissions

high risk · 4 things to watch

High risk

A wrong or tricked request can put payments, invoices or journal entries into your real books. Start on the Demo Company, approve each change yourself, and grant the connection only the scopes you need.

What it can do

  • Read your data
  • Create and change things
  • Delete things
  • Read-only mode

Watch out for

  • It can record payments and post journals

    The assistant can create payments, bank transactions, invoices, credit notes and manual journals in your live books. Approve each action by hand and test on the Demo Company first. github.com

  • There is no read-only mode

    Every connection gets the create and update tools. Give the Custom Connection only the scopes you need if you just want reports and lookups. github.com

  • Your Xero secret sits in a config file

    The client secret is stored in plain text in your app's settings. Keep that file private and never commit it. github.com

  • It can delete payroll timesheets

    One tool deletes a payroll timesheet, and others approve or revert them. Check payroll changes before they go through. github.com

Security advisories

No published security advisories as of Nov 1, 2026.

Technical details
Turning on read-onlyNo read-only switch. Narrow access by granting only read scopes to the Custom Connection or by setting XERO_SCOPES to a shorter list.
Talks toapi.xero.com. identity.xero.com
Sign-in and keysCustom Connection client ID and secret, or a bearer token, stored as environment variables in your client's config file.
Scopes
  • accounting.invoices

  • accounting.payments

  • accounting.banktransactions

  • accounting.manualjournals

  • accounting.contacts

  • accounting.settings

  • accounting.reports.*.read

  • payroll.settings

  • payroll.employees

  • payroll.timesheets

Alternatives

Use Xero's read-only Claude connector to ask about your numbers, and this local server when you want the assistant to create invoices or payments. Developers with a Xero app on the Core plan or above can use Xero's hosted Remote MCP instead of running anything locally.

ServerOfficialRunsSign-inCan change thingsToolsWeekly downloads
For Xero
Xero MCP ServerThis pageOfficialLocalAPI keyYes51–
xero-mcpCommunityLocal–––154/wk
CodeSpar XeroCommunityLocalToken––42/wk
Mindstone XeroCommunityLocalAPI key–––
Other tools for the same job
Xero connector for ClaudeOfficialHostedAccountNo20–
Xero Developer Remote MCPOfficialHostedAccountYes––

What people say

People find setup frustrating, mostly because of the paid Custom Connection, region limits and expiring tokens.

Common complaints

  • Setup is hard: a paid Custom Connection, region limits and scope changes block people at each step.
  • Outside Australia, New Zealand, the UK and the US you are left with a token that expires every 30 minutes.
  • It covers less than the full Xero API, so some users add their own code on top.
  • It only works with one Xero organisation at a time.
  • Token errors were fixed by granting every scope the README lists.

In their words

Questions

Is the Xero MCP server free?

The server is free and open source, but connecting it to real books needs a Xero Custom Connection, which is an extra monthly subscription. Connecting it to Xero's Demo Company is free.

Xero MCP server vs the Xero connector in Claude?

The Claude connector costs nothing extra, needs no setup and is read-only: it answers questions about profit, cash, invoices and customers. This server can also create and update records, but needs a paid Custom Connection and runs on your computer.

Does it work in Canada or the EU?

Not with a Custom Connection, which Xero only sells in Australia, New Zealand, the UK and the US. Elsewhere you can use the token option, but the token expires after about 30 minutes and has to be replaced by hand.

Is there a hosted Xero MCP server URL?

Yes, but not for this server. Xero runs https://api.xero.com/mcp/v1 for developers whose Xero app is on the Core plan or above, and the read-only Claude connector uses https://mcp.xero.com/mcp. This open-source server only runs on your computer.

Can it connect to more than one Xero organisation?

No. Xero's maintainers say it is designed for one organisation at a time, and with several authorised it only returns data from one.

Can it change or delete my accounting data?

Yes. It can create payments, invoices, bank transactions and journals, update contacts and drafts, and delete payroll timesheets. It cannot change an invoice once it is no longer a draft.

Is it safe to use on my real books?

Only with care. Test on the Demo Company first, approve each change yourself, and give the Custom Connection only the scopes you need.

Why do I get 'Failed to get Xero token'?

Usually the Custom Connection is missing scopes the server asks for. Users fixed it by adding every scope listed in the README to the connection.

Can it handle payroll?

Yes, for New Zealand and UK organisations. It can list employees and leave, and create, approve, revert or delete timesheets.

How do I add it to Claude Desktop?

Use the Claude Desktop tab in the install box above and paste your Custom Connection keys. If you use nvm, replace npx with its full path.

Information

updated Nov 1, 2026

Publisher
Xero (official)
Package
@xeroapi/xero-mcp-server
Registry
npm
Transport
stdio
Auth
token in env
License
MIT
Last commit
Oct 26, 2026

WebsiteDocsGitHubnpmIssues

Other Xero MCP servers

Sources

Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.

Show all 12
  1. GitHub · github.com
  2. Xero Developer · developer.xero.com
  3. Xero connector for Claude · xero.com
  4. Tool source · github.com
  5. Remote MCP FAQs · developer.xero.com
  6. Xero connector · claude.com
  7. GitHub · github.com
  8. GitHub · github.com
  9. GitHub · github.com
  10. Xero Developer Remote MCP · developer.xero.com
  11. GitHub · github.com
  12. GitHub · github.com

Facts from the official MCP registry, GitHub, npm, PyPI and the Docker catalog. Updated Nov 1, 2026.