Xero

live Utility

Xero (Accounting) MCP Pack

5 tools
0ms auth
free tier 50 calls/day

Tools

list_organisations

List the Xero organisations (tenants) the connected account can access, with tenant id, name, and type. Xero accounting is multi-tenant — use this first to discover the tenant_id for a specific organi

No parameters required.

Try it
list_invoices

List invoices and bills from a Xero accounting organisation. Returns compact invoice summaries (number, type, status, contact, dates, total, amount due, currency) for bookkeeping, accounts-receivable,

No parameters required.

Try it
list_contacts

List contacts (customers and suppliers) from a Xero accounting organisation. Returns name, email, status, and customer/supplier flags. Use for accounting, bookkeeping, and accounts-receivable/payable

No parameters required.

Try it
get_profit_and_loss

Get the Profit and Loss (income statement) financial report from a Xero accounting organisation for an optional date range. Returns the structured Xero report (report name, date, and row sections cove

No parameters required.

Try it
list_accounts

List the chart of accounts from a Xero accounting organisation. Returns each account's code, name, type, class, and status. Use to understand an organisation's general ledger structure for bookkeeping

No parameters required.

Try it

Test with curl

The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.

List available tools
bash
curl -X POST https://gateway.pipeworx.io/xero/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Call a tool
bash
curl -X POST https://gateway.pipeworx.io/xero/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_organisations","arguments":{}}}'

Use with the SDK

Install @pipeworx/sdk to call tools from any TypeScript/Node project.

TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("list_organisations", {});
ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("xero (accounting) mcp pack");