Skip to main content
All connectors
qbash Connectors / Xero

Xero MCP serverand Python AI tasks

qbash hosts a Xero MCP server you can use in Claude, ChatGPT, Codex, Cursor, Grok Bot and Muse.

Developers use qbash Tasks to write cloud-hosted Python functions that pair Xero with models such as Claude and GPT.

MCP server

Build a Xero MCP server

Give ChatGPT, Claude and your other AI tools access to Xero through one server. You pick which Xero tools it shares, and you can add other connectors, memory folders and Tasks to the same server.

How to set it up

  1. Connect Xero on the qbash Connectors page.
  2. Create an MCP server and add the Xero tools you want to share.
  3. Paste the server URL into your client. It connects with OAuth or an access token.

Python AI task

Write a Xero task in Python

A qbash Task is a hosted Python function that calls Xero and AI models.

Review outstanding sales invoices

Read a page of authorized sales invoices, then ask an inline prompt to list the ones with an amount still due.

main.py
report = qbash.integrations.xero.list_invoices(status="AUTHORISED", page="1")
invoices = (report.get("data") or {}).get("Invoices", [])
if invoices:
review = qbash.ai.run_prompt(
slug="xero-outstanding-invoices",
variables={"invoices": json.dumps(invoices)},
)
qbash.output(review)
else:
qbash.output("No authorized invoices on this page.")
Sample list_invoices response
{
"status": "success",
"data": {
"Invoices": [
{
"InvoiceNumber": "INV-0042",
"Contact": {
"Name": "Example company"
},
"AmountDue": 2500,
"CurrencyCode": "CAD",
"Status": "AUTHORISED"
}
]
},
"message": "Invoices retrieved"
}

What the Xero connector can do

  • Create a new sales invoice
  • Update an existing invoice
  • Get a single invoice by ID
  • List one page of sales invoices with optional filters
  • Void an existing invoice
  • Email an invoice to the contact
  • Create a new bill (accounts payable)
  • List one page of bills (accounts payable)
  • Create a new contact
  • Update an existing contact
  • Get a single contact by ID
  • List one page of contacts with an optional filter
  • Record a payment against an invoice
  • List one page of payments
  • Create a credit note
  • List credit notes, one page only
  • Create a purchase order
  • Get a purchase order by ID
  • Create a new item/product
  • List items, one page only
  • List the chart of accounts, one page only
See every Xero method in the SDK Reference

qbash Tasks: AI applications in Python

A Task is a Python function that calls Xero, your other connectors and models such as Claude, GPT, Gemini and Grok. qbash hosts and runs it.

AnthropicOpenAIGeminixAI

Run Tasks on a schedule or from your team's tools

OpenAIAnthropicGrokGmailSlackGitHub+ more
  • Deterministic where it counts Write the logic in Python and call a model only for the steps that need judgement, so the rest runs the same way every time.
  • Version controlled Every save is a revision you can compare and roll back.
  • Logged Each run records its inputs, output, errors and what started it.
  • Shared credentials Connections belong to your organization, so a Task keeps working when its author is away.

Xero MCP questions

Does Xero have an official MCP server?

Yes. Xero publishes xero-mcp-server on GitHub under XeroAPI, which you run locally with Node.js and your own Xero app credentials. qbash hosts the connection behind a URL that can also serve your other connectors and Python tasks.

Can the assistant send invoices to customers?

Yes. send_invoice emails an invoice to its contact, and void_invoice cancels one. Disable those tools on the qbash MCP server if the assistant should only read and draft.

Can one connection cover several Xero organizations?

No. Each connection stores a single Xero tenant, so a second organization gets its own connection and its own tools on the server.

Guides that use Xero

Build a Xero task

Write it in Python with AI steps, and qbash hosts it with versions and run logs.

Build a task

Build a Xero MCP server

Pick the Xero tools to share and connect ChatGPT, Claude or Grok Bot.

Build an MCP server