Xero MCP Server
MCP-compliant bridge for standardized access to Xero's accounting API.
Key Features
Use Cases
README
Xero MCP Server
This is a Model Context Protocol (MCP) server implementation for Xero. It provides a bridge between the MCP protocol and Xero's API, allowing for standardized access to Xero's accounting and business features.
Features
- Xero OAuth2 authentication with custom connections
- Contact management
- Chart of Accounts management
- Invoice creation and management
- MCP protocol compliance
Prerequisites
- Node.js (v18 or higher)
- npm or pnpm
- A Xero developer account with API credentials
Docs and Links
- Xero Public API Documentation
- Xero API Explorer
- Xero OpenAPI Specs
- Xero-Node Public API SDK Docs
- Developer Documentation
Setup
Create a Xero Account
If you don't already have a Xero account and organisation already, can create one by signing up here using the free trial.
We recommend using a Demo Company to start with because it comes with some pre-loaded sample data. Once you are logged in, switch to it by using the top left-hand dropdown and selecting "Demo Company". You can reset the data on a Demo Company, or change the country, at any time by using the top left-hand dropdown and navigating to My Xero.
NOTE: To use Payroll-specific queries, the region should be either NZ or UK.
Authentication
There are 2 modes of authentication supported in the Xero MCP server:
1. Custom Connections
This is a better choice for testing and development which allows you to specify client id and secrets for a specific organisation. It is also the recommended approach if you are integrating this into 3rd party MCP clients such as Claude Desktop.
Configuring your Xero Developer account
Set up a Custom Connection following these instructions: https://developer.xero.com/documentation/guides/oauth2/custom-connections/
Currently the following scopes are required for all sessions: scopes
Integrating the MCP server with Claude Desktop
To add the MCP server to Claude go to Settings > Developer > Edit config and add the following to your claude_desktop_config.json file:
{
"mcpServers": {
"xero": {
"command": "npx",
"args": ["-y", "@xeroapi/xero-mcp-server@latest"],
"env": {
"XERO_CLIENT_ID": "your_client_id_here",
"XERO_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
NOTE: If you are using Node Version Manager "command": "npx" section change it to be the full path to the executable, ie: your_home_directory/.nvm/versions/node/v22.14.0/bin/npx on Mac / Linux or "your_home_directory\\.nvm\\versions\\node\\v22.14.0\\bin\\npx" on Windows
2. Bearer Token
This is a better choice if you are to support multiple Xero accounts at runtime and allow the MCP client to execute an auth flow (such as PKCE) as required. In this case, use the following configuration:
{
"mcpServers": {
"xero": {
"command": "npx",
"args": ["-y", "@xeroapi/xero-mcp-server@latest"],
"env": {
"XERO_CLIENT_BEARER_TOKEN": "your_bearer_token"
}
}
}
}
NOTE: The XERO_CLIENT_BEARER_TOKEN will take precedence over the XERO_CLIENT_ID if defined.
Available MCP Commands
list-accounts: Retrieve a list of accountslist-contacts: Retrieve a list of contacts from Xerolist-credit-notes: Retrieve a list of credit noteslist-invoices: Retrieve a list of invoiceslist-items: Retrieve a list of itemslist-organisation-details: Retrieve details about an organisationlist-profit-and-loss: Retrieve a profit and loss reportlist-quotes: Retrieve a list of quoteslist-tax-rates: Retrieve a list of tax rateslist-payments: Retrieve a list of paymentslist-trial-balance: Retrieve a trial balance reportlist-profit-and-loss: Retrieve a profit and loss reportlist-bank-transactions: Retrieve a list of bank account transactionslist-payroll-employees: Retrieve a list of Payroll Employeeslist-report-balance-sheet: Retrieve a balance sheet reportlist-payroll-employee-leave: Retrieve a Payroll Employee's leave recordslist-payroll-employee-leave-balances: Retrieve a Payroll Employee's leave balanceslist-payroll-employee-leave-types: Retrieve a list of Payroll leave typeslist-payroll-leave-periods: Retrieve a list of a Payroll Employee's leave periodslist-payroll-leave-types: Retrieve a list of all avaliable leave types in Xero Payrolllist-aged-receivables-by-contact: Retrieves aged receivables for a contactlist-aged-payables-by-contact: Retrieves aged payables for a contactlist-contact-groups: Retrieve a list of contact groupscreate-contact: Create a new contactcreate-credit-note: Create a new credit notecreate-invoice: Create a new invoicecreate-payment: Create a new paymentcreate-quote: Create a new quotecreate-credit-note: Create a new credit notecreate-payroll-timesheet: Create a new Payroll Timesheetupdate-contact: Update an existing contactupdate-invoice: Update an existing draft invoiceupdate-quote: Update an existing draft quoteupdate-credit-note: Update an existing draft credit noteupdate-payroll-timesheet-line: Update a line on an existing Payroll Timesheetapprove-payroll-timesheet: Approve a Payroll Timesheetrevert-payroll-timesheet: Revert an approved Payroll Timesheetadd-payroll-timesheet-line: Add new line on an existing Payroll Timesheetdelete-payroll-timesheet: Delete an existing Payroll Timesheetget-payroll-timesheet: Retrieve an existing Payroll Timesheet
For detailed API documentation, please refer to the MCP Protocol Specification.
For Developers
Installation
# Using npm
npm install
# Using pnpm
pnpm install
Run a build
# Using npm
npm run build
# Using pnpm
pnpm build
Integrating with Claude Desktop
To link your Xero MCP server in development to Claude Desktop go to Settings > Developer > Edit config and add the following to your claude_desktop_config.json file:
NOTE: For Windows ensure the args path escapes the \ between folders ie. "C:\\projects\xero-mcp-server\\dist\\index.js"
{
"mcpServers": {
"xero": {
"command": "node",
"args": ["insert-your-file-path-here/xero-mcp-server/dist/index.js"],
"env": {
"XERO_CLIENT_ID": "your_client_id_here",
"XERO_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
License
MIT
Security
Please do not commit your .env file or any sensitive credentials to version control (it is included in .gitignore as a safe default.)
Star History
Repository Owner
Organization
Repository Details
Programming Languages
Tags
Join Our Newsletter
Stay updated with the latest AI tools, news, and offers by subscribing to our weekly newsletter.
Related MCPs
Discover similar Model Context Protocol servers
attio-mcp-server
MCP server for enabling Attio CRM access via AI model context clients.
attio-mcp-server implements a Model Context Protocol (MCP) server that facilitates communication between MCP clients, such as Claude, and the Attio CRM API. It enables reading and writing company notes and records within Attio by leveraging a bearer token for authentication. Designed for Node.js, it provides streamlined integration with Attio for applications utilizing AI-driven model context protocols.
- ⭐ 16
- MCP
- hmk/attio-mcp-server
mcp-cli
A command-line inspector and client for the Model Context Protocol
mcp-cli is a command-line interface tool designed to interact with Model Context Protocol (MCP) servers. It allows users to run and connect to MCP servers from various sources, inspect available tools, resources, and prompts, and execute commands non-interactively or interactively. The tool supports OAuth for various server types, making integration and automation seamless for developers working with MCP-compliant servers.
- ⭐ 391
- MCP
- wong2/mcp-cli
MCP Zotero
Model Context Protocol server for seamless Zotero integration with AI tools.
MCP Zotero provides a Model Context Protocol server enabling AI models such as Claude to access and interact with Zotero libraries. Users can securely link their Zotero accounts and perform actions including listing collections, retrieving papers, searching the library, and getting details about specific items. Integration is designed for both standalone operation and as an extension for tools like Claude Desktop.
- ⭐ 137
- MCP
- kaliaboi/mcp-zotero
Offorte MCP Server
Bridge AI agents with Offorte proposal automation via the Model Context Protocol.
Offorte MCP Server enables external AI models to create and send proposals through Offorte by implementing the Model Context Protocol. It facilitates automation workflows between AI agents and Offorte's proposal engine, supporting seamless integration with chat interfaces and autonomous systems. The server provides a suite of tools for managing contacts, proposals, templates, and automation sets, streamlining the proposal creation and delivery process via standardized context handling. Designed for extensibility and real-world automation, it leverages Offorte's public API to empower intelligent business proposals.
- ⭐ 4
- MCP
- offorte/offorte-mcp-server
GitHub Enterprise MCP Server
Expose GitHub Enterprise data through a Model Context Protocol server.
GitHub Enterprise MCP Server provides an MCP (Model Context Protocol) interface to integrate with GitHub Enterprise APIs, enabling standardized access to repository data, issues, pull requests, workflows, and user management. It is compatible with both GitHub Enterprise Server and GitHub.com environments and supports features like repository management, file browsing, and enterprise statistics. The platform is designed for seamless integration with tools such as Cursor, making it simple to interact with GitHub data programmatically or via MCP-compliant clients.
- ⭐ 25
- MCP
- ddukbg/github-enterprise-mcp
GameBrain MCP API Clients
Easily connect to the GameBrain MCP server with customizable client configuration.
GameBrain MCP API Clients enables users to seamlessly integrate with the GameBrain Model Context Protocol (MCP) server by providing a ready-to-use configuration and client setup. Users can generate a free API key and connect to the server with minimal setup using the supplied JSON config. The tool is designed to facilitate standardized access and communication with remote model context providers.
- ⭐ 2
- MCP
- ddsky/gamebrain-api-clients
Didn't find tool you were looking for?