What you can do with Xero

Built for

Bookkeepers, Finance Operations, Founder Finance, Hospitality Operators

Example workflows

Collections before month-end

Turns receivables into a collections queue without exporting aging reports.

Try this

List authorised sales invoices with outstanding balances in Xero, group by customer, and highlight who needs follow-up first.

Close the month in one thread

Combines standard reports into an operator-readable finance brief.

Try this

Run profit and loss, balance sheet, and aged receivables for the latest closed month in Xero and summarise the biggest movements.

Report follow-ups from cache

Narrows a cached report without another Xero Reports fetch.

Try this

Using the P&L you already pulled for last month, hide zero rows and show only the expense sections with the largest movements.

Attach the signed contract

Lists, downloads, and uploads document attachments from chat via Desktop.

Try this

Upload the signed venue contract PDF to the draft invoice for Harbor Ranch Events in Xero.

Context to know first

What is Xero MCP?

It is a MCPBundles connection that lets AI agents read and update your Xero organisation — contacts, invoices, payments, bank activity, journals, payroll, attachments, files, and financial reports — from chat after you connect your Xero account.

What Xero work can I do from chat?

Typical workflows include chasing overdue receivables, preparing month-end reports, reconciling bank lines, updating customers and suppliers, raising invoices or credit notes, listing and uploading attachments, and reviewing payroll runs — all scoped to the connected organisation.

How do cached financial reports work?

The first fetch for a report name and date range is stored on the connection. Follow-up questions can compact rows, cap line count, or filter sections on that stored payload without calling Xero again. Request a fresh pull only when someone needs numbers recomputed after late changes.

Related editorial

Xero Accounting Workflows with AI

Chase overdue invoices, run month-end reports with cached follow-ups, reconcile bank lines, upload invoice attachments, and clean up suppliers from chat — scoped to one Xero organisation per connection.

Read article

AI Skill
SKILL.md

Domain knowledge for Xero — workflow patterns, data models, and gotchas for your AI agent.

Xero

Every call is scoped to one Xero organisation. The active organisation tenant is bound on the connection and sent automatically on each request.

Operational order

  1. Organisation — confirm legal entity, base currency, and tax settings before AR/AP work.
  2. Chart of accounts — list accounts when you need account codes for journals, bank lines, or items.
  3. Contacts — customers and suppliers for invoices, credit notes, bills, and payments.
  4. Invoices / credit notes / purchase orders / receipts — core AR/AP documents.
  5. Payments and bank transactions — cash application and bank feed rows.
  6. Manual journals — adjusting entries outside source documents.
  7. Reports — P&L, balance sheet, aged receivables/payables, trial balance, and other read-only report endpoints.
  8. Payroll — employees, pay runs, payslips, timesheets when payroll scopes are granted.
  9. Files / assets / projects — supporting documents, fixed assets register, and project time when those products are enabled.

Reads

Omit id to page a collection (page, optional where, optional order). Pass id to fetch one row.

Writes

All write tools use the upsert pattern:

  • Create — omit id and supply row fields or body_json.
  • Update — pass id plus changed fields or a full body_json object.

Xero accepts create and update through the same POST collection endpoint; updates must include the resource id inside the payload.

Draft invoices, quotes, and credit notes accept field edits only while Status is DRAFT. Use xero_update_document_status to submit, authorise, void, or delete without editing line items. When updating draft documents, omit LineItems to preserve existing lines or include the full set — partial line-item lists replace the document lines.

Attachments and large files

  • xero_list_attachments, xero_download_attachment, and xero_upload_attachment handle document files.
  • Inline base64 uploads are capped at 1 MB. Use local_path with MCPBundles Desktop or file_url (including prior spillover download links) for larger PDFs and images up to 100 MB.
  • Large attachment downloads and financial reports return presigned S3 download links instead of inline base64 or giant JSON.

Organisation scope cache

After connect, MCPBundles caches account codes, contact names, tax types, bank-account availability, and Xero deeplink base URLs on the credential. Responses may include an org_scope envelope with cache age. Pass refresh_org_scope=true on xero_get_report after chart-of-accounts or contact changes.

Reports

Use xero_get_report with a report name such as ProfitAndLoss, BalanceSheet, TrialBalance, AgedReceivablesByContact, or AgedPayablesByContact, plus date parameters when required.

Report responses are snapshot-cached per credential for the same upstream parameters. Reuse compact, max_rows, and section_contains to narrow the presentation locally without another Xero call. Use refresh=true only when the user explicitly wants a fresh upstream fetch. xero_list_snapshots shows stored report snapshots for the connection.

MCP App panel

The Xero dashboard opens with xero_open_app or on the first panel-driving tool call. Single invoice, quote, and credit-note reads render a document card; financial reports render a table view in the same panel.

Multi-organisation users

When a user connects more than one Xero organisation, each organisation should be a separate connection. Use the connections listing tool to see authorised tenants and names.

Pagination and filters

  • Default page size is 100 rows; walk page until a page returns fewer rows.
  • where uses Xero's OData-like filter syntax on supported collections.
  • Some collections support include_archived or summary_only.

Tools in this Server (70)

Xero Delete Accounts

Delete, void, or archive a Xero account by id. Draft rows are marked DELETED; authorised invoices, credit notes, and bank transactions are voided when...

Xero Delete Bank Transactions

Delete, void, or archive a Xero bank transaction by id. Draft rows are marked DELETED; authorised invoices, credit notes, and bank transactions are vo...

Xero Delete Connection

Disconnect a Xero organisation from the current OAuth token using its connection id.

Xero Delete Contacts

Delete, void, or archive a Xero contact by id. Draft rows are marked DELETED; authorised invoices, credit notes, and bank transactions are voided when...

Xero Delete Credit Notes

Delete, void, or archive a Xero credit note by id. Draft rows are marked DELETED; authorised invoices, credit notes, and bank transactions are voided ...

Xero Delete Files

Delete a Xero file by id.

Xero Delete Invoices

Delete, void, or archive a Xero invoice by id. Draft rows are marked DELETED; authorised invoices, credit notes, and bank transactions are voided when...

Xero Delete Items

Delete, void, or archive a Xero item by id. Draft rows are marked DELETED; authorised invoices, credit notes, and bank transactions are voided when re...

Xero Delete Manual Journals

Delete, void, or archive a Xero manual journal by id. Draft rows are marked DELETED; authorised invoices, credit notes, and bank transactions are void...

Xero Delete Purchase Orders

Delete, void, or archive a Xero purchase order by id. Draft rows are marked DELETED; authorised invoices, credit notes, and bank transactions are void...

Xero Delete Quotes

Delete, void, or archive a Xero quote by id. Draft rows are marked DELETED; authorised invoices, credit notes, and bank transactions are voided when r...

Xero Delete Receipts

Delete, void, or archive a Xero receipt by id. Draft rows are marked DELETED; authorised invoices, credit notes, and bank transactions are voided when...

Xero Delete Tracking Categories

Delete, void, or archive a Xero tracking categorie by id. Draft rows are marked DELETED; authorised invoices, credit notes, and bank transactions are ...

Xero Download Attachment

Download an attachment from a Xero document. Large files return a presigned S3 download link instead of inline base64.

Xero Get Accounts

List or fetch Xero accounts. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Assets

List or fetch Xero fixed assets. Omit id to list; pass id for one row.

Xero Get Asset Types

List or fetch Xero fixed asset types. Omit id to list; pass id for one row.

Xero Get Bank Transactions

List or fetch Xero bank transactions. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Budgets

List or fetch Xero budgets. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Contacts

List or fetch Xero contacts. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Credit Notes

List or fetch Xero credit notes. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Currencies

List or fetch Xero currencies. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Employees

List or fetch Xero payroll employees. Omit id to page; pass id for one row.

Xero Get Files

List or fetch Xero files. Omit id to list; pass id for one row.

Xero Get Folders

List or fetch Xero folders. Omit id to list; pass id for one row.

Xero Get Invoices

List or fetch Xero invoices. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Items

List or fetch Xero items. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Manual Journals

List or fetch Xero manual journals. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Organisation

Fetch the connected Xero organisation profile, including base currency, country code, financial year settings, and tax configuration.

Xero Get Payments

List or fetch Xero payments. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Payroll Settings

List or fetch Xero payroll payroll settings. Omit id to page; pass id for one row.

Xero Get Pay Runs

List or fetch Xero payroll pay runs. Omit id to page; pass id for one row.

Xero Get Pay Slips

List or fetch Xero payroll pay slips. Omit id to page; pass id for one row.

Xero Get Projects

List or fetch Xero projects. Omit id to list; pass id for one row.

Xero Get Project Tasks

List or fetch Xero project tasks. Omit id to list; pass id for one row.

Xero Get Project Time

List or fetch Xero project time. Omit id to list; pass id for one row.

Xero Get Purchase Orders

List or fetch Xero purchase orders. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Quotes

List or fetch Xero quotes. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Receipts

List or fetch Xero receipts. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Report

Fetch a Xero financial report by name. ProfitAndLoss, BalanceSheet, TrialBalance, BudgetSummary, ExecutiveSummary, and BankSummary require from_date a...

Xero Get Tax Rates

List or fetch Xero tax rates. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Timesheets

List or fetch Xero payroll timesheets. Omit id to page; pass id for one row.

Xero Get Tracking Categories

List or fetch Xero tracking categories. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero Get Users

List or fetch Xero users. Omit id to page the collection with optional where/order filters; pass id for the full row.

Xero List Attachments

List attachments on a Xero document such as an invoice, quote, credit note, or contact.

Xero List Connections

List Xero organisations authorised for the current OAuth token, including tenant id, tenant name, and connection id.

Xero List Snapshots

List cached Xero upstream snapshots for this credential: report name, date range fingerprint, fetch time, and payload size. Does not call Xero.

Xero Open App

Open the Xero interactive dashboard. Use when the user asks to open or view Xero before fetching a specific invoice, quote, credit note, or report. Us...

Xero Update Document Status

Change the status of a Xero invoice, quote, or credit note without editing line items. Use SUBMITTED or AUTHORISED to progress drafts, DELETED to remo...

Xero Upload Attachment

Upload a file attachment to a Xero document. Inline base64 is capped at 1 MB; use local_path with MCPBundles Desktop or file_url for larger PDFs and i...

Xero Upsert Accounts

Create or update a Xero account. Omit id to create; pass id to update. Supply row fields or body_json. Only DRAFT rows accept field edits on invoices,...

Xero Upsert Bank Transactions

Create or update a Xero bank transaction. Omit id to create; pass id to update. Supply row fields or body_json. Only DRAFT rows accept field edits on ...

Xero Upsert Contacts

Create or update a Xero contact. Omit id to create; pass id to update. Supply row fields or body_json. Only DRAFT rows accept field edits on invoices,...

Xero Upsert Credit Notes

Create or update a Xero credit note. Omit id to create; pass id to update. Supply row fields or body_json. When updating, include all LineItems or omi...

Xero Upsert Employees

Create or update a Xero payroll employee. Omit id to create; pass id to update.

Xero Upsert Files

Create or update a Xero file. Omit id to create; pass id to update.

Xero Upsert Invoices

Create or update a Xero invoice. Omit id to create; pass id to update. Supply row fields or body_json. When updating, include all LineItems or omit Li...

Xero Upsert Items

Create or update a Xero item. Omit id to create; pass id to update. Supply row fields or body_json. Only DRAFT rows accept field edits on invoices, qu...

Xero Upsert Manual Journals

Create or update a Xero manual journal. Omit id to create; pass id to update. Supply row fields or body_json. Only DRAFT rows accept field edits on in...

Xero Upsert Organisation

Update organisation-level Xero settings. Provide the fields to change as body_json matching the Organisation payload shape.

Xero Upsert Payments

Create or update a Xero payment. Omit id to create; pass id to update. Supply row fields or body_json. Only DRAFT rows accept field edits on invoices,...

Xero Upsert Pay Runs

Create or update a Xero payroll pay run. Omit id to create; pass id to update.

Xero Upsert Projects

Create or update a Xero project. Omit id to create; pass id to update.

Xero Upsert Project Tasks

Create or update a Xero project task. Omit id to create; pass id to update.

Xero Upsert Project Time

Create or update a Xero project time. Omit id to create; pass id to update.

Xero Upsert Purchase Orders

Create or update a Xero purchase order. Omit id to create; pass id to update. Supply row fields or body_json. Only DRAFT rows accept field edits on in...

Xero Upsert Quotes

Create or update a Xero quote. Omit id to create; pass id to update. Supply row fields or body_json. When updating, include all LineItems or omit Line...

Xero Upsert Receipts

Create or update a Xero receipt. Omit id to create; pass id to update. Supply row fields or body_json. Only DRAFT rows accept field edits on invoices,...

Xero Upsert Timesheets

Create or update a Xero payroll timesheet. Omit id to create; pass id to update.

Xero Upsert Tracking Categories

Create or update a Xero tracking categorie. Omit id to create; pass id to update. Supply row fields or body_json. Only DRAFT rows accept field edits o...

Frequently Asked Questions

What is Xero MCP?

It is a MCPBundles connection that lets AI agents read and update your Xero organisation — contacts, invoices, payments, bank activity, journals, payroll, attachments, files, and financial reports — from chat after you connect your Xero account.

What Xero work can I do from chat?

Typical workflows include chasing overdue receivables, preparing month-end reports, reconciling bank lines, updating customers and suppliers, raising invoices or credit notes, listing and uploading attachments, and reviewing payroll runs — all scoped to the connected organisation.

How do cached financial reports work?

The first fetch for a report name and date range is stored on the connection. Follow-up questions can compact rows, cap line count, or filter sections on that stored payload without calling Xero again. Request a fresh pull only when someone needs numbers recomputed after late changes.

Can agents manage invoice attachments?

Yes. Agents can list attachments on invoices and related documents, download files for review, and upload PDFs or images from your machine through MCPBundles Desktop. Large files use spillover download links instead of inline chat payloads.

How do organisation boundaries work?

Each connection targets one Xero organisation. If you manage several entities, connect each organisation separately so data never crosses tenants.

How do I connect Xero to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/xero. Authentication is handled automatically.

How many tools does Xero provide?

Xero provides 70 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does Xero require?

Xero uses One-click sign in. Xero requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect Xero to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/xero

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to Xero and paste the MCP URL into Remote MCP server URL.
  4. Click Add. Xero will appear under Not connected — select it and click Connect to complete OAuth.
Name: Xero
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/xero
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use Xero?

Sign in to connect your credentials and start running tools from the chat.

Xero MCP Server — Accounting Workflows with AI