Xero MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| XERO_CLIENT_ID | Yes | Your Xero OAuth 2.0 app client ID | |
| XERO_REDIRECT_URI | No | The OAuth 2.0 redirect URI | http://localhost:5000/callback |
| XERO_CLIENT_SECRET | Yes | Your Xero OAuth 2.0 app client secret |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| authenticateC | Authenticate with Xero using OAuth2 |
| create_bank_transactionsB | Creates one or more spent or received money transaction. Only use this tool when user has directly and explicitly ask you to create transactions. |
| create_contactsA | Creates one or multiple contacts in a Xero organisation. Only use this tool when user has directly and explicitly ask you to create contact. |
| get_balance_sheetC | Returns a balance sheet for the end of the month of the specified date. It also returns the value at the end of the same month for the previous year. |
| get_bank_transactionA | Retrieves a single spent or received money transaction by its Xero bank transaction ID |
| get_invoiceA | Retrieves a single sales invoice or purchase bill by its Xero invoice ID |
| list_accountsB | Retrieves the full chart of accounts |
| list_bank_transactionsB | Retrieves any spent or received money transactions |
| list_contactsC | Retrieves all contacts in a Xero organisation |
| list_invoicesC | Retrieves sales invoices or purchase bills |
| list_organisationsB | Retrieves Xero organisation details |
| list_paymentsB | Retrieves payments for invoices and credit notes |
| list_quotesB | Retrieves sales quotes |
| update_bank_transactionC | Updates an existing spent or received money transaction by its Xero bank transaction ID |
| update_invoiceA | Updates an existing sales invoice or purchase bill (typically a draft) to change fields like line items and account codes |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Xero Accounting API (OpenAPI) | OpenAPI 3.0 document for the Xero Accounting API (paths, operations, schemas). Use when you need request/response shapes or endpoint details beyond the bundled tools. |
TDQS
Scored across 15 tools
Each tool has a distinct purpose: authentication, CRUD for specific entities (bank transactions, contacts, invoices), and read-only lists for accounts, organisations, payments, quotes. No functional overlap, and descriptions clearly differentiate between list/get and create/update operations.
Most tools follow a clear verb_noun pattern (e.g., 'create_contacts', 'list_invoices'). Exceptions include 'authenticate' (no noun) and slight plural/singular inconsistency (e.g., 'create_bank_transactions' vs 'get_bank_transaction'), but overall the naming is predictable and readable.
15 tools is well-scoped for a Xero API server covering core entities: authentication, bank transactions, contacts, invoices, accounts, organisations, payments, and quotes. Each tool addresses a necessary operation without excessive granularity.
The tool set provides basic CRUD for bank transactions and contacts, but lacks create for invoices, quotes, and payments, and omits delete/archive for any entity. This leaves notable gaps for full lifecycle management, though the domain is partially covered.