Xero MCP Server

Xero MCP Server

MCP-compliant bridge for standardized access to Xero's accounting API.

147
Stars
74
Forks
147
Watchers
15
Issues
Xero MCP Server is an implementation of the Model Context Protocol (MCP) that acts as a bridge between MCP clients and Xero's API. It enables standardized access to Xero's accounting and business features, supporting OAuth2 authentication, accounts, contacts, invoices, and more. The server is compatible with third-party MCP clients and supports both custom connection and bearer token authentication modes. Comprehensive command support allows for seamless integration with applications like Claude Desktop.

Key Features

MCP protocol compliance
Xero OAuth2 authentication with support for custom connections and bearer tokens
Contact management
Chart of Accounts management
Invoice creation and management
Support for multiple MCP command operations
Integration with third-party clients like Claude Desktop
Organization details retrieval
Profit and loss reports
Extensive setup and customization documentation

Use Cases

Standardizing access to Xero's accounting features through MCP
Integrating Xero data into third-party MCP clients such as Claude Desktop
Automated management of contacts, invoices, and chart of accounts in Xero
Facilitating secure authentication and multi-account workflows with OAuth2 and bearer tokens
Extracting financial and business data (e.g. profit and loss reports)
Programmatically listing and managing invoices, credit notes, and tax rates
Business automation workflows leveraging Xero's API features
Enabling accounting software to interoperate with Model Context Protocol systems
Testing and development of integrations with customizable authentication
Supporting multi-region Xero organization queries with a demo company

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

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:

json
{
  "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:

json
{
  "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

bash
# Using npm
npm install

# Using pnpm
pnpm install

Run a build

bash
# 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"

json
{
  "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

Star History Chart

Repository Owner

XeroAPI
XeroAPI

Organization

Repository Details

Language TypeScript
Default Branch main
Size 202 KB
Contributors 14
License MIT License
MCP Verified Nov 12, 2025

Programming Languages

TypeScript
99.49%
JavaScript
0.48%
Shell
0.03%

Tags

Join Our Newsletter

Stay updated with the latest AI tools, news, and offers by subscribing to our weekly newsletter.

We respect your privacy. Unsubscribe at any time.

Related MCPs

Discover similar Model Context Protocol servers

  • attio-mcp-server

    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

    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

    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

    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

    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

    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?

    Be as detailed as possible for better results