Get the FREE Ultimate OpenClaw Setup Guide →

xero

An MCP server that integrates with the MCP protocol. https://modelcontextprotocol.io/introduction

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio xeroapi-xero-mcp-server npx -y @xeroapi/xero-mcp-server@latest \
  --env XERO_CLIENT_ID="your_client_id_here" \
  --env XERO_CLIENT_SECRET="your_client_secret_here"

How to use

The Xero MCP Server serves as a bridge between the MCP protocol and Xero's API, enabling standardized access to Xero data such as contacts, accounts, invoices, and more. It authenticates with Xero via OAuth2 (custom connections) or a bearer token, and exposes a set of MCP commands (for example, list-contacts, create-invoice, list-accounts, list-invoices, update-invoice, etc.) that MCP clients can invoke in a consistent way. This makes it possible to integrate Xero data into other MCP-compliant clients or tooling (including Claude Desktop) by issuing the standard MCP commands and receiving structured responses.

Key capabilities include: authenticating via custom connections or a bearer token, retrieving and manipulating core Xero resources (contacts, invoices, accounts, bank transactions, payroll data, etc.), and performing common operations like creating invoices or updating contacts. The server handles the mapping between MCP requests and the corresponding Xero API calls and returns MCP-compatible responses.

How to install

Prerequisites:

  • Node.js v18 or higher installed on your system
  • npm or pnpm (npm is used in the examples below)
  • A Xero developer account with API credentials (Client ID/Client Secret) or a bearer token as an alternative authentication method

Installation steps:

  1. Install the MCP server package locally (or you can run via npx directly):
# Option A: Local installation
npm install @xeroapi/xero-mcp-server

# Option B: Quick run with npx (no local install)
npx -y @xeroapi/xero-mcp-server@latest
  1. Configure the MCP server in your Claude Desktop integration or MCP client against the package. Example configuration (custom connections):
{
  "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"
      }
    }
  }
}
  1. Start or invoke the server via your chosen method. If you used npx directly, the command will start the MCP server process and expose the MCP endpoints as per the package defaults. If you installed locally, you can run the direct Node entry or use npx as shown above.

  2. Ensure network access to Xero APIs and that your OAuth2 redirect/callbacks are correctly configured in the Xero developer console.

  3. Optional: If you prefer bearer-token authentication, set the XERO_CLIENT_BEARER_TOKEN environment variable instead of client id/secret:

"env": {
  "XERO_CLIENT_BEARER_TOKEN": "your_bearer_token"
}

Additional notes

Notes and tips:

  • The server supports two authentication modes: Custom Connections (client_id/secret per organisation) and Bearer Token (single token for multi-account access). Choose the mode that best fits your deployment scenario.
  • Required OAuth scopes typically include: accounting.invoices, accounting.invoices.read, accounting.contacts, accounting.accounts, accounting.payments, accounting.banktransactions, accounting.manualjournals, and relevant payroll scopes. Check the latest Xero OAuth scopes documentation for updates.
  • If you rely on Claude Desktop or similar clients, update claude_desktop_config.json with the provided xero mcpServers block to enable integration.
  • If you see issues with Node version resolution, you can pin to a specific npx path as noted in the docs (e.g., your_home_directory/.nvm/versions/node/vXX.X.X/bin/npx).
  • Ensure you’re using a Demo Company or proper test data in Xero to avoid affecting production data during development.
  • The MCP server exposes a broad set of list and create/update commands (e.g., list-contacts, create-invoice, update-invoice, list-accounts, list-bank-transactions, etc.). Refer to the README for the complete command list and usage patterns.

Related MCP Servers

Sponsor this space

Reach thousands of developers