by XeroAPI
Provides a bridge between the Model Context Protocol and Xero's API, enabling standardized access to Xero accounting and business features.
Enables developers to interact with Xero's accounting platform through standardized MCP commands, handling authentication, CRUD operations, and reporting without writing direct Xero API calls.
{
"mcpServers": {
"xero": {
"command": "npx",
"args": ["-y", "@xeroapi/xero-mcp-server@latest"],
"env": {
"XERO_CLIENT_ID": "<YOUR_CLIENT_ID>",
"XERO_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"XERO_CLIENT_BEARER_TOKEN": "<YOUR_BEARER_TOKEN>"
}
}
}
}
list‑invoices
, create‑contact
, or approve‑payroll‑timesheet
via an MCP‑compatible client (e.g., Claude Desktop).Q: Which authentication method should I choose? A: Use custom connections (client ID/secret) for development and when embedding the server in a controlled environment. Use bearer‑token mode when you need to support many Xero accounts at runtime.
Q: Do I need a Xero developer account? A: Yes. Create an account, register an app, and obtain the client credentials or bearer token.
Q: Can I run the server on Windows?
A: Absolutely. Ensure Node.js is installed and set the command
to npx
(or provide the full path to npx if using NVM).
Q: How do I add the server to Claude Desktop?
A: Add the configuration shown above to claude_desktop_config.json
under mcpServers.xero
.
Q: Is the source code open source? A: Yes, it is hosted on GitHub under the MIT license.
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.
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.
There are 2 modes of authentication supported in the Xero MCP server:
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
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.
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 TimesheetFor detailed API documentation, please refer to the MCP Protocol Specification.
# Using npm
npm install
# Using pnpm
pnpm install
# Using npm
npm run build
# Using pnpm
pnpm build
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"
}
}
}
}
MIT
Please do not commit your .env
file or any sensitive credentials to version control (it is included in .gitignore
as a safe default.)
Please log in to share your review and rating for this MCP.
{ "mcpServers": { "xero": { "command": "npx", "args": [ "-y", "@xeroapi/xero-mcp-server@latest" ], "env": { "XERO_CLIENT_ID": "<YOUR_CLIENT_ID>", "XERO_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>", "XERO_CLIENT_BEARER_TOKEN": "<YOUR_BEARER_TOKEN>" } } } }
Discover more MCP servers with similar functionality and use cases
by stripe
Enables popular agent frameworks to integrate with Stripe APIs via function calling, providing tools for MCP, Python, and TypeScript.
by goat-sdk
GOAT is the largest agentic finance toolkit for AI agents, enabling them to become economic actors by leveraging blockchains, cryptocurrencies, and wallets.
by financial-datasets
Provides AI assistants with tools to retrieve income statements, balance sheets, cash flow statements, stock prices, market news, and crypto information via the Model Context Protocol.
by razorpay
Enables seamless interaction with Razorpay APIs via Model Context Protocol, allowing developers and AI agents to capture payments, manage orders, process refunds, handle settlements, and more through a unified MCP interface.
by armorwallet
Armor Crypto MCP provides a unified interface for AI agents to interact with the crypto ecosystem, including wallet management, swaps, staking, and multi-chain operations.
by alpacahq
Alpaca’s MCP server lets you trade stocks and options, analyze market data, and build strategies through Alpaca's Trading API.
by kukapay
Integrates the Freqtrade cryptocurrency trading bot with an MCP server, exposing the bot's REST API as tools that AI agents can call for fully automated trading operations.
by kukapay
Offers over 50 cryptocurrency technical analysis indicators and corresponding trading strategies, enabling AI agents and developers to assess market trends and generate buy, hold, or sell signals.
by stefanoamorelli
SEC EDGAR MCP is an open-source MCP server that connects AI models to the rich dataset of SEC EDGAR filings. It makes the trove of public company data accessible to AI assistants (LLMs) for financial research, investment insights, and corporate transparency use cases.