Provides tools for managing Xero accounting operations including creating invoices, bills, bank transactions (expenses), and expense claims, with support for attachments and PKCE authentication.
xero-expenses-mcp
MCP (Model Context Protocol) server for Xero accounting. Supports Invoices, Bills, Expenses (Bank Transactions), and Expense Claims with PKCE authentication.
Features
Invoices (ACCREC) - Create sales invoices to send to customers
Bills (ACCPAY) - Create bills you'll pay later
Expenses - Create "Spend Money" bank transactions for already-paid expenses
Expense Claims - Create receipts and submit expense claims for reimbursement
Attachments - Attach PDFs and images to invoices, bills, expenses, and receipts
PKCE Auth - Desktop app OAuth flow (no client secret required)
Installation
Or install globally:
Xero App Setup
Go to Xero Developer Portal
Create a new app:
App name: Your choice (e.g., "Expense Manager")
Integration type: "Mobile or desktop app" (uses PKCE, no secret needed)
Redirect URI:
http://localhost:3000/callback
Note your Client ID
Claude Code Configuration
Add to your Claude Code MCP settings:
Or use the CLI:
Then set environment variables in your shell or .env file.
Environment Variables
Variable | Required | Description |
| Yes | Your Xero app's client ID |
| No | Only for Web apps (not PKCE) |
| No | Default:
|
Authentication
On first use, the server will open a browser for Xero OAuth. After authenticating, tokens are stored in ~/.xero-mcp/token.json.
Available Tools
Accounts & Contacts
xero_list_accounts- List expense accounts/categoriesxero_list_bank_accounts- List bank accountsxero_list_contacts- Search vendors/contactsxero_list_users- List organization users (for expense claims)
Invoices (Accounts Receivable)
xero_create_invoice- Create a sales invoice to send to customersxero_attach_file_to_invoice- Attach file to an invoice
Bills (Accounts Payable)
xero_create_bill- Create a bill for future paymentxero_attach_file- Attach file to a bill
Expenses (Bank Transactions)
xero_create_expense- Create a "Spend Money" transactionxero_attach_file_to_expense- Attach file to an expense
Expense Claims (deprecated Feb 2026)
xero_create_expense_claim- Create receipt + expense claimxero_attach_file_to_receipt- Attach file to a receipt
Example Usage
In Claude Code:
Claude will use the xero_create_expense_claim tool with:
Token Storage
Tokens are stored in ~/.xero-mcp/token.json. To re-authenticate, delete this file.
License
MIT