Xero Mcp Server

Created byXeroAPIXeroAPI

An MCP server that integrates with the MCP protocol. [MCP Protocol Introduction](https://modelcontextprotocol.io/introduction)

Overview

What is xero-mcp-server?

The ### xero-mcp-server is an implementation of a server that integrates with the Model Context Protocol (MCP). This server allows developers to build applications that can communicate effectively using the MCP, facilitating data exchange and interaction between different systems. The MCP is designed to provide a standardized way for applications to share context and data, making it easier to develop interconnected services.

Features of xero-mcp-server

  • Integration with MCP: The server is built to seamlessly integrate with the Model Context Protocol, ensuring compatibility and ease of use for developers.
  • Public Repository: The xero-mcp-server is available as a public repository, allowing developers to access the source code, contribute, and collaborate on improvements.
  • MIT License: The project is licensed under the MIT license, which allows for free use, modification, and distribution of the software.
  • Active Community: With a growing number of stars and forks, the xero-mcp-server has an active community that contributes to its development and support.

How to Use xero-mcp-server

  1. Clone the Repository: Start by cloning the xero-mcp-server repository from GitHub to your local machine using the command:

    git clone https://github.com/XeroAPI/xero-mcp-server.git
    
  2. Install Dependencies: Navigate to the project directory and install any necessary dependencies. This typically involves running:

    npm install
    
  3. Run the Server: After installing dependencies, you can start the server with:

    npm start
    
  4. Integrate with Your Application: Use the server's API to integrate it with your application, following the documentation provided in the repository.

  5. Contribute: If you want to contribute to the project, feel free to fork the repository, make your changes, and submit a pull request.

Frequently Asked Questions

What is the Model Context Protocol (MCP)?

The Model Context Protocol (MCP) is a protocol designed to facilitate the sharing of context and data between applications. It provides a standardized way for different systems to communicate, making it easier to develop interconnected services.

Is xero-mcp-server free to use?

Yes, xero-mcp-server is licensed under the MIT license, which allows for free use, modification, and distribution.

How can I contribute to the xero-mcp-server project?

You can contribute by forking the repository, making your changes, and submitting a pull request. The community welcomes contributions that enhance the functionality and usability of the server.

Where can I find the documentation for xero-mcp-server?

Documentation for the xero-mcp-server can typically be found in the repository's README file or in a dedicated documentation folder within the repository.

How can I report issues or bugs in xero-mcp-server?

You can report issues or bugs by navigating to the "Issues" section of the xero-mcp-server GitHub repository and submitting a new issue with details about the problem you encountered.

Details

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

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.)

Server Config

{
  "mcpServers": {
    "xero-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/metorial/mcp-container--xeroapi--xero-mcp-server--xero-mcp-server",
        "node ./dist/index.js"
      ],
      "env": {
        "XERO_CLIENT_ID": "xero-client-id",
        "XERO_CLIENT_SECRET": "xero-client-secret"
      }
    }
  }
}

Project Info

Author
XeroAPI
Created At
Jul 7, 2025
Star
91
Language
TypeScript
Tags
-

Xero Mcp Server Alternative

For some alternatives to Xero Mcp Server that you may need, we provide you with sites divided by category.

Python and TypeScript library for integrating the Stripe API into agentic workflows

A simple implementation of an MCP server for the ScreenshotOne API

An official Qdrant Model Context Protocol (MCP) server implementation

The Logfire MCP Server is here! 🎉

View More >>