Sponsored by Deepsite.site

Xero MCP Server

Created By
andyciggy7 months ago
Content

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

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

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Tavily Mcp
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
WindsurfThe new purpose-built IDE to harness magic
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
Amap Maps高德地图官方 MCP Server
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Serper MCP ServerA Serper MCP Server
CursorThe AI Code Editor
ChatWiseThe second fastest AI chatbot™
Playwright McpPlaywright MCP server
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
DeepChatYour AI Partner on Desktop