Xero
Accounting and payroll.
Verdict
Common use cases
- Pull overdue invoice list during collection calls
- Check quote status before client meetings
- Update invoice line items from Slack threads
- Export contact segments for email campaigns
- Verify payment terms in real-time negotiations
Integration
- Vendor
- Xero
- Category
- finance
- Auth
- OAUTH2
- Tools
- 4
- Composio slug
xero
Tools
- Get Connections
Tool to list active xero connections. use when you need to retrieve all current tenant connections for the authenticated user.
- Get Contacts
Tool to retrieve a list of contacts. use when you need up-to-date contact information with filtering, paging, or incremental updates.
- Get Quotes
Tool to retrieve a list of quotes. use when you need to list, filter, or page through sales quotes. use after obtaining the tenant id via connections.
- Update Invoice
Tool to update an existing invoice. use when you need to modify the details of an invoice after it's been created.
Setup
Setup guide
- 11. In Switchy, open your workspace settings and navigate to the Integrations tab. 2. Find Xero in the MCP directory and click Connect. 3. You'll be redirected to Xero's OAuth consent screen—log in with the account that has access to the organizations you want to query. 4. Grant the requested scopes: accounting.contacts.read, accounting.transactions.read, and accounting.settings.read at minimum; if you plan to update invoices, also approve accounting.transactions (write). 5. Select which Xero organizations (tenants) Switchy can access, then authorize. 6. Back in Switchy, you'll see a green Connected badge next to Xero. 7. Open any Space, type '@Xero get connections' and send—if you see a list of tenant IDs and names, the integration is live. 8. To invoke a tool, @mention Xero in a message and describe what you need; the AI will map your request to the appropriate tool and tenant.
What teammates see: by default, memories from Xero are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.
Works well with
Top models
Compatibility data appears once enough Spaces have used this MCP together with a given model.
How Switchy teams use it
Starter prompts
List Overdue Invoices
@Xero show me all invoices that are overdue right now, grouped by contact name and sorted by amount descending.Open in a Space →
Find Recent Quotes
@Xero get all quotes created in the past month and summarize them in a table with contact, date, total, and status.Open in a Space →
Update Invoice Discount
@Xero update invoice INV-1234 to apply a 10% discount on the total and add a note that it was approved by the sales director.Open in a Space →
Export Active Contacts
@Xero retrieve all active contacts who have made a purchase in the last six months, and export their names, emails, and account balances as CSV.Open in a Space →
Check Payment Terms
@Xero look up the contact record for Acme Corp and tell me their payment terms, credit limit, and outstanding balance.Open in a Space →
Example outputs
Illustrative - representative of the model's voice and quality, not literal recordings.
@xero show me all contacts we've added or updated in the last 30 days, grouped by customer type
Based on your Xero tenant, 23 contacts were added or modified since December 15. Breaking these down: 14 are marked as customers (including 3 new enterprise accounts), 6 are suppliers, and 3 are listed as both customer and supplier. The largest additions include Acme Distribution Ltd and two consulting firms. This example illustrates a filtered contact retrieval followed by AI categorization of the results.
This example uses the Get Contacts tool with an incremental date filter, then asks the AI to group results. Requires read_contacts OAuth scope. Note that Xero's API returns contacts in pages of up to 100; for larger datasets, the MCP handles pagination automatically but response time increases.
@xero update invoice INV-2024-0891 to mark it as sent and change the due date to January 31
Invoice INV-2024-0891 has been updated in your Xero organization. The status is now 'AUTHORISED' (Xero's term for sent/approved invoices), and the due date has been changed from January 15 to January 31, 2025. The invoice total of $4,250 remains unchanged. This example shows a direct modification of an existing invoice using its reference number.
This example uses the Update Invoice tool, which requires the accounting.transactions scope and write permissions. Be aware that certain invoice fields (like amounts on locked periods) cannot be changed after submission. Always verify the invoice is in an editable state before attempting updates, or you'll receive a validation error from Xero's API.
@xero pull all open quotes from this quarter and draft a summary email highlighting our top 5 opportunities by value
I retrieved 18 open quotes from Q1 2025 totaling $127,400. Here's a draft summary: 'Our pipeline shows strong momentum with five standout opportunities: CloudTech migration ($32K), Retail Systems upgrade ($24K), Harbor Logistics integration ($19K), Summit Consulting annual retainer ($18K), and Apex Manufacturing setup ($15K). These five represent 85% of our open quote value. Recommend prioritizing CloudTech and Retail Systems for close this month.' This example combines quote retrieval with AI synthesis.
This example chains the Get Quotes tool (filtered by date and status) with the AI's analytical capabilities to produce a business summary. Requires read_quotes scope. Xero quotes don't auto-sync with CRM systems, so this view reflects only what's been entered in Xero. Rate limit: 60 calls per minute per tenant.
Use-case deep-dives
When Xero MCP beats manual invoice updates for retainer billing
A 6-person creative agency bills 20 retainer clients monthly with variable scope adjustments. The Xero MCP wins here because Update Invoice lets the account manager tweak line items from Switchy without opening Xero's UI for every change. Get Contacts pulls the current client list so the team can verify billing addresses before sending. The OAuth2 flow means one person authenticates once and the whole team shares access in the workspace. This breaks down if you're issuing 100+ invoices per month with complex approval chains—at that scale you need dedicated billing automation, not an MCP. For agencies under 50 active clients, this MCP turns invoice cleanup from a 90-minute monthly chore into a 15-minute Switchy session.
How Get Quotes speeds up deal review in weekly sales standups
A 4-person SaaS sales team runs weekly pipeline reviews where they need to see which quotes are still open and which expired last week. Get Quotes pulls the full list filtered by status so the team can triage follow-ups without switching to Xero mid-meeting. Get Connections confirms the right tenant is active if the company has multiple Xero orgs. The 4-tool scope is narrow—this MCP won't help you create quotes or pull invoice aging reports—but for teams that live in Switchy and only need read access to quote status, it's faster than screen-sharing Xero. If your sales process involves editing quotes on the fly or pulling custom reports, you'll hit the tool limit fast. For straightforward quote review at 10-30 deals per quarter, this MCP keeps the standup moving.
Why solo consultants skip this MCP for monthly bookkeeping
A solo consultant reconciling 15 monthly expenses might think the Xero MCP saves time, but the 4-tool set doesn't include expense creation or bank feed matching—the two tasks that actually eat hours. Get Contacts and Get Quotes are irrelevant if you're not invoicing clients through Xero. Update Invoice only helps if you're correcting mistakes after the fact, not building invoices from scratch. The OAuth2 setup is overkill for one person who's already logged into Xero. This MCP is built for teams sharing access to Xero data inside Switchy, not individuals doing their own books. If you're a freelancer, open Xero directly. If you're a 3-person consultancy where one person manages all client invoicing and the others need read-only quote access, then the MCP starts to make sense.
Frequently asked
What can the Xero MCP do in Switchy?
The Xero MCP lets your team read contacts and quotes, list active tenant connections, and update invoices directly from Switchy. It's designed for teams that need to pull customer data or modify invoices without switching to the Xero web app. You won't create new invoices or run full accounting workflows — this is for lookups and lightweight edits.
Do I need admin access to connect Xero via OAuth?
You need a Xero user account with at least Standard or Advisor permissions to authorize the OAuth connection. The MCP requests read access to contacts and quotes, plus write access to invoices. If your Xero org restricts API access to admins, you'll need their approval to complete the setup.
Can the Xero MCP create new invoices or bills?
No. The MCP only updates existing invoices — it can't create invoices, bills, or purchase orders. If your workflow requires creating records, use Xero's web app or a dedicated integration tool. The MCP is built for teams that need to tweak invoice details or pull customer data, not full accounting automation.
How does this compare to using Xero's API directly?
The MCP wraps four common Xero API endpoints so your team can query contacts or update invoices without writing code. You lose the flexibility of the full API — no bank transactions, no expense claims, no payroll. If you need those, build a custom integration. If you just need invoice edits and contact lookups, the MCP is faster.
Who on the team should connect the Xero MCP?
Whoever manages your Xero account and understands which tenants you want to expose. Once connected, any Switchy user in your workspace can call the tools, so connect it under a service account or a finance lead's credentials. The connection doesn't count against Xero's user seat limits.