Settings and activity
1 result found
-
62 votes
Hi everyone, thanks for sharing this idea and adding your feedback.
We understand why being able to connect Claude across multiple Xero organisations could be helpful, particularly for advisors and bookkeepers who work across several clients or entities. The idea is to allow a single Claude connection to access multiple organisations, removing the need to reconnect or switch between organisations when working across different datasets.
We've updated the status of this idea to Gaining Support. If this would be useful for your workflow, please add your vote and share more about how you'd use it.
An error occurred while saving the comment An error occurred while saving the comment
philippe Fraser
commented
This would be so usefil
philippe Fraser
supported this idea
·
Hey - so this blew my mind - I got Claude to write 3 x custom MCP connectors, (one for each Xero organisation), and it works! Downside, took about 20 minutes to get it all working, and costs £5/month for a custom connector per Xero organisation, so £15/month for me. But it works!
get claude to talk you through it, but here are instructions for you, and below are instructions for Claude;
How we did it - three organisations, one Claude, using Xero Custom
Connections plus the open-source Xero MCP server. You repeat the whole
thing once per organisation.
IN THE XERO DEVELOPER CENTRE (once per organisation)
1. developer.xero.com > My Apps > New app > Custom connection. Name it so
you can tell them apart later, e.g. "Claude MCP - [org name]".
2. Scopes. Tick the scopes you will need. If the scope ends with “.read” it means it is read only. That was fine for me- up to you how you use it. For my read-only variant I used:
well: accounting.attachments, accounting.banktransactions,
accounting.contacts, accounting.invoices, accounting.manualjournals,
accounting.payments, accounting.reports.aged,
accounting.reports.balancesheet, accounting.reports.profitandloss,
accounting.reports.trialbalance, accounting.settings
3. Authorising user - you. I use read-only, so I used my own username However, if you are going to let Claude create or edit anything, create a separate Xero user for it first and authorise as that user. Xero records who createdan invoice, and you will want that to say "Claude", not you.
4. Save, then Connect. You get an email with two steps that both matter:
a) Buy a Custom Connection subscription. One PER ORGANISATION - they
are not shared. You can buy them one at a time as you go; I did.
UK is GBP 5/month ex VAT (AU $10 inc GST, NZ $10 ex GST, US $5 ex
tax). Worth knowing: Xero moved developer pricing to tiers on
2 March 2026 with a free starter tier of 5 connections, but Custom
Connections were explicitly excluded and "remain on the same
commercial terms" - so the free tier does not cover this.
b) The consent screen. This is the step that matters. It lists every
Xero organisation your user can see. Pick one. You cannot change it
afterwards - you would have to create a new custom connection.
5. Copy the Client ID from the app page, then generate a Client Secret.
It is shown once and it is 48 characters. Count them before pasting it
anywhere - a 49-character paste, one stray character picked up on
copy, cost me an hour debugging a connection that looked perfectly
configured.
ON THE CLAUDE SIDE
6. Run Xero's own open-source MCP server, @xeroapi/xero-mcp-server, once
per connection: a separate server entry for each, each given that
connection's own client ID, secret and scopes in its environment, and
each under a distinct name (xero-companyA, xero-companyB, ...).
7. Claude then sees each organisation's tools namespaced by server name,
so a question about company B is answered from company B's books.
Group questions work by asking each in turn and summing. You can leave
the built-in hosted Xero connector attached to a further organisation
alongside these - they coexist fine.
TWO THINGS THAT CAUGHT US OUT
- The tool list does NOT reflect your granted scopes in step 2 above. Even on a read-only connection, create-invoice, create-payment, the update-* tools and the payroll tools all still appear and are callable. However, Xero only allows what is defined in step 2.
- A server's NAME is not evidence of which organisation it is bound to.
You picked the organisation by hand on the consent screen, so one
mis-click gives you a perfectly working connection to the wrong
company's books: real numbers, right currency, internally consistent,
wrong entity. Nothing downstream ever looks wrong. So make the first
call of every session a parameterless "organisation details" call on
each server and check the name that comes back before trusting a single
figure.
IF YOU WANT CLAUDE TO DO THE SETUP, paste it everything above, plus:
"Please set up multiple MCP server entries pointing at Xero custom
connections, one per organisation, so I can ask for reports across all of
them. Ask me first how many organisations I need and what each server
should be called. I have the client IDs and secrets ready - write the
config with placeholders so I can paste the credentials in myself."
THE OBVIOUS CAVEAT: this is one app registration, one paid subscription
and one local server process per entity. For three organisations it is
fine. For a practice with 30+ clients it plainly a lot of work - which is why
native multi-org support in the connector is the thing actually being
asked for here.