C

Xero MCP Server

Official Xero accounting MCP server with invoicing, contacts, payroll, and financial reporting

Overall Score61/100

Score Breakdown

Server Info

Package
@xeroapi/xero-mcp-server
Registry
npm
Maintainer
XeroVendor
Category
Finance & Payments
Tags
accountinginvoicesfinancial
Last Scanned
7 Apr 2026

Findings

6 issues

Authentication & Identity

HIGHNo per-request auth - requires instance-per-user

Supports two auth modes: OAuth2 client_credentials flow (XERO_CLIENT_ID + XERO_CLIENT_SECRET) or static bearer token (XERO_CLIENT_BEARER_TOKEN). Stdio transport only. Client credentials are exchanged for access tokens against identity.xero.com. Token refresh is handled automatically. For multi-tenant deployment, the platform must spawn a separate server instance per user.

Remediation

Add HTTP/SSE transport to accept per-request Authorization headers, or implement the MCP OAuth spec.

Tool Schema Quality

MEDIUMOnly 1 of 51 schemas have parameter constraints

Most schemas lack maxLength, enum, or pattern constraints on string parameters.

Remediation

Add constraints to string parameters, especially on write operations.

LLM Safety

HIGHTool descriptions contain instructional language

Descriptions include directives that could influence LLM behavior beyond tool selection.

Remediation

Remove instructional language. Descriptions should be purely factual.

Data Exposure

MEDIUM24 list operations lack pagination

Only list-invoices (page param, 10 per page) and list-contacts (page param, 100 per page) have pagination. The remaining 24 list tools return all records with no pagination or limit parameters. Responses return full records with no field selection. Financial reports (P&L, balance sheet, trial balance) return full reports.

Remediation

Add limit/offset or cursor-based pagination.

LOWNo field selection on responses

Responses return full records rather than projected fields.

Remediation

Implement field selection to return only relevant fields.

Maintenance & Trust

MEDIUM9 dependency vulnerabilities (7 high)

npm audit found 7 high severity CVEs.

Remediation

Update vulnerable dependencies.

Tools

51 total
NameDescriptionRisk
delete-timesheetDelete an existing payroll timesheet in Xero by its ID.admin
get-timesheetRetrieve a single payroll timesheet from Xero by its ID. This provides details such as the timesheet ID, employee ID, start and end dates, total hours, and the last updated date.read
list-accountsLists all accounts in Xero. Use this tool to get the account codes and names to be used when creating invoices in Xeroread
list-contactsList all contacts in Xero. This includes Suppliers and Customers.read
list-credit-notesList credit notes in Xero.read
list-invoicesList invoices in Xero. This includes Draft, Submitted, and Paid invoices.read
list-itemsList items in Xero.read
list-manual-journalsList manual journals in Xero.read
list-quotesList quotes in Xero.read
list-tax-ratesList tax rates in Xero.read
list-trial-balanceList trial balance in Xero.read
list-paymentsList payments in Xero.read
list-profit-and-lossList profit and loss report in Xero.read
list-bank-transactionsList bank transactions in Xero.read
list-payroll-employeesList payroll employees in Xero.read
list-report-balance-sheetList balance sheet report in Xero.read
list-organisation-detailsList organisation details in Xero.read
list-payroll-employee-leaveList payroll employee leave in Xero.read
list-payroll-leave-periodsList payroll leave periods in Xero.read
list-payroll-employee-leave-typesList payroll employee leave types in Xero.read
list-payroll-employee-leave-balancesList payroll employee leave balances in Xero.read
list-payroll-leave-typesList payroll leave types in Xero.read
list-aged-receivables-by-contactList aged receivables by contact in Xero.read
list-aged-payables-by-contactList aged payables by contact in Xero.read
list-payroll-timesheetsList payroll timesheets in Xero.read
list-contact-groupsList contact groups in Xero.read
list-tracking-categoriesList tracking categories in Xero.read
create-contactCreate a contact in Xero.write
create-credit-noteCreate a credit note in Xero.write
create-manual-journalCreate a manual journal in Xero.write
create-invoiceCreate an invoice in Xero. When an invoice is created, a deep link to the invoice in Xero is returned.write
create-quoteCreate a quote in Xero.write
create-paymentCreate a payment in Xero.write
create-itemCreate an item in Xero.write
create-bank-transactionCreate a bank transaction in Xero.write
create-payroll-timesheetCreate a payroll timesheet in Xero.write
create-tracking-categoryCreate a tracking category in Xero.write
create-tracking-optionsCreate tracking options in Xero.write
update-contactUpdate a contact in Xero.write
update-credit-noteUpdate a credit note in Xero.write
update-invoiceUpdate an invoice in Xero. Only works on draft invoices.write
update-manual-journalUpdate a manual journal in Xero.write
update-quoteUpdate a quote in Xero.write
update-itemUpdate an item in Xero.write
update-bank-transactionUpdate a bank transaction in Xero.write
approve-payroll-timesheetApprove a payroll timesheet in Xero.write
add-timesheet-lineAdd a line to a payroll timesheet in Xero.write
update-payroll-timesheet-lineUpdate a line on a payroll timesheet in Xero.write
revert-payroll-timesheetRevert a payroll timesheet in Xero.write
update-tracking-categoryUpdate a tracking category in Xero.write
update-tracking-optionsUpdate tracking options in Xero.write

Deploy Xero MCP Server securely

CompleteFlow adds per-user authentication, permission scoping, and audit logging to any MCP server out of the box.

Deploy on CompleteFlow