
xero-mcp-server
An MCP server that integrates with the MCP protocol.https://modelcontextprotocol.io/introduction
3 years
Works with Finder
11
Github Watches
16
Github Forks
39
Github Stars
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 accounts -
list-contacts
: Retrieve a list of contacts from Xero -
list-credit-notes
: Retrieve a list of credit notes -
list-invoices
: Retrieve a list of invoices -
list-items
: Retrieve a list of items -
list-organisation-details
: Retrieve details about an organisation -
list-profit-and-loss
: Retrieve a profit and loss report -
list-quotes
: Retrieve a list of quotes -
list-tax-rates
: Retrieve a list of tax rates -
list-payments
: Retrieve a list of payments -
list-trial-balance
: Retrieve a trial balance report -
list-profit-and-loss
: Retrieve a profit and loss report -
list-bank-transactions
: Retrieve a list of bank account transactions -
list-payroll-employees
: Retrieve a list of Payroll Employees -
list-report-balance-sheet
: Retrieve a balance sheet report -
list-payroll-employee-leave
: Retrieve a Payroll Employee's leave records -
list-payroll-employee-leave-balances
: Retrieve a Payroll Employee's leave balances -
list-payroll-employee-leave-types
: Retrieve a list of Payroll leave types -
list-payroll-leave-periods
: Retrieve a list of a Payroll Employee's leave periods -
list-payroll-leave-types
: Retrieve a list of all avaliable leave types in Xero Payroll -
list-aged-receivables-by-contact
: Retrieves aged receivables for a contact -
list-aged-payables-by-contact
: Retrieves aged payables for a contact -
list-contact-groups
: Retrieve a list of contact groups -
create-contact
: Create a new contact -
create-credit-note
: Create a new credit note -
create-invoice
: Create a new invoice -
create-payment
: Create a new payment -
create-quote
: Create a new quote -
create-credit-note
: Create a new credit note -
create-payroll-timesheet
: Create a new Payroll Timesheet -
update-contact
: Update an existing contact -
update-invoice
: Update an existing draft invoice -
update-quote
: Update an existing draft quote -
update-credit-note
: Update an existing draft credit note -
update-payroll-timesheet-line
: Update a line on an existing Payroll Timesheet -
approve-payroll-timesheet
: Approve a Payroll Timesheet -
revert-payroll-timesheet
: Revert an approved Payroll Timesheet -
add-payroll-timesheet-line
: Add new line on an existing Payroll Timesheet -
delete-payroll-timesheet
: Delete an existing Payroll Timesheet -
get-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.)
相关推荐
I find academic articles and books for research and literature reviews.
Converts Figma frames into front-end code for various mobile frameworks.
Confidential guide on numerology and astrology, based of GG33 Public information
Embark on a thrilling diplomatic quest across a galaxy on the brink of war. Navigate complex politics and alien cultures to forge peace and avert catastrophe in this immersive interstellar adventure.
Advanced software engineer GPT that excels through nailing the basics.
Delivers concise Python code and interprets non-English comments
💬 MaxKB is a ready-to-use AI chatbot that integrates Retrieval-Augmented Generation (RAG) pipelines, supports robust workflows, and provides advanced MCP tool-use capabilities.
MCP server to provide Figma layout information to AI coding agents like Cursor
Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx
The all-in-one Desktop & Docker AI application with built-in RAG, AI agents, No-code agent builder, MCP compatibility, and more.
AI Agents & MCPs & AI Workflow Automation • (280+ MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Reviews

user_G18c3cD2
I've been using the xero-mcp-server for a while now and it has greatly enhanced our integration processes. The server, developed by XeroAPI, is incredibly reliable and well-documented. The ease of setup and intuitive use make it a standout in its category. Highly recommend checking it out on their GitHub page!