What Xero gives through its API
Control.dev connects to Xero with OAuth: you sign in to Xero from Control.dev, select the organisation and allow access. Control.dev asks only for Xero’s read scopes, for invoices and credit notes, settings and journals, so it reads Xero read-only and Xero stays the book of record.
- General ledger journals and the chart of accounts
- Tracking categories and their options
- Sales and purchase invoices and credit notes, with their contacts and payment status
What an AI client gets from Xero alone today
Xero runs the Developer Remote MCP Server, a hosted server whose tools read and write invoices, credit notes, quotes, contacts, bank transactions, payments and manual journals and read the profit and loss, balance sheet and trial balance1. It launched with 39 tools, and Xero says more are in the pipeline2. Each tool call runs against one organisation, and an agent that works across several has to make clear which one it acts on before it writes3. Xero’s FAQ tells you to have the agent confirm with you before it writes anything back to Xero4.
Xero also publishes xero-mcp-server, an open source server under the MIT licence that a developer installs and runs with npx, signed in to one organisation with a custom connection or to several with a bearer token, with tools that list, create and update records5. For end users, the Xero connector in Claude is free to add, reads only and follows the user’s Xero permissions6.
What Control.dev’s MCP adds above Xero
Control.dev reads Xero and every other ledger the group runs, then gives the whole group to the same AI client over MCP.
- Every entity on one group chart Each entity’s accounts are mapped to one group chart of accounts, and the eliminations, currency translation and CTA are done before the client reads. The eliminations sit in a column of their own.
- Statements first, not a raw export The client starts from the statements and the group structure, not a raw export of the general ledger. It finds what needs attention there and traces it to the entries.
- Every figure opens to its entries Every actual opens to the transactions behind it, and every row stays connected to its source system and legal entity.
- Your role decides what it sees Over MCP the client gets at most the access your role allows in Control.dev, and a read-only session rejects write tools.
- A plan with a reason on every cell The client can also draft budget values over MCP, and every value it writes carries its reason. The budget version keeps its change history, so a later variance analysis compares the actuals with the assumptions.
- Other MCP servers in the same conversation The client can use its other MCP servers in the same conversation, a CRM for example, and bring that data into a plan or an analysis next to the group’s actuals.
How each AI client connects is on the Control.dev MCP server, every tool it exposes on MCP tools and reusable instructions on finance skills, every integration and what comes in from it on the integrations page, and how the group view is built on multi-entity consolidation.
Already connected Claude to Xero yourself? Control.dev vs building it yourself with Claude compares what you build and keep alive, what the client reads, who may change what, and what it costs.
Xero MCP in three steps
Our team sets up the integration with you. Most companies have live data in under two hours from the first call, a larger group takes days, the hardest a few weeks, and there is no setup fee.
- 01Connect Xero with OAuth In Control.dev, open the entity, add Xero as its data source and sign in with a Xero user who can open the organisation. Select the organisation and allow access. The scopes and the steps are in the Xero integration guide.
- 02Copy the server URL and the client ID into your client In Control.dev, open Data outputs and then MCP Server. Add the server URL and the client ID from the MCP Server page to Claude, ChatGPT or Codex as a remote MCP server, then sign in with your Control.dev login. If the page shows no client ID yet, ask us: registering your client is part of setup.
- 03Ask something you already know One company, one month, one figure. Check it against the same view in Control.dev, then ask the bigger questions.
Questions
How many integrations does a Xero group need, and what does it cost?
One per Xero organisation: one integration is one connected accounting system, such as one entity’s ledger. Control.dev publishes its monthly prices, excluding VAT: EUR 249 for one entity and one integration, EUR 499 for consolidation with three integrations and EUR 999 with five, where a Stripe connection counts as one integration, with no implementation fee, no multi-year contract and a notice period from one month. Larger groups are priced on request: book a demo.
Does Control.dev write to Xero?
No. Control.dev sends only read requests to Xero, so nothing it does changes Xero. Eliminations and group entries stay in Control.dev.
Where does the AI process our data?
Control.dev’s own AI features process data in the EU, and Control.dev’s data is hosted on Google Cloud in Hamina, Finland, encrypted in transit and at rest. What your AI client reads is processed under your agreement with its provider, so where that data goes is your decision.
How fast does a correction in Xero reach the group view?
Scheduled syncs run at least daily, and you can trigger a refresh on demand. Backdated entries and corrections are synced again automatically, so the next sync carries a correction into the group view and into what the client reads.
What do Xero’s own MCP servers do, and when do you use both?
The Developer Remote MCP Server reads and writes invoices, contacts, bank transactions, payments and manual journals and reads the main reports1, one organisation per tool call3, and the Xero connector in Claude reads Xero within your Xero permissions6. Use them for work inside Xero. Use Control.dev for the group: entities on Xero and on other ledgers on one group chart of accounts, with the eliminations done, and the client starting from the statements. One AI client can use both servers in the same conversation.