Xero Accounting MCP server

Integrates with Xero Accounting Software to access financial data including accounts, transactions, contacts, invoices, and more through authenticated API connections for financial analysis and bookkeeping tasks.
Back to servers
Setup instructions
Provider
Jianyang Zhang
Release date
Mar 19, 2025
Language
TypeScript
Package
Stats
1.4K downloads
17 stars

The Xero MCP Server integrates with Claude Desktop to enable interaction with Xero Accounting Software through the Model Context Protocol (MCP). This server allows you to authenticate with Xero and perform various accounting operations including managing contacts, transactions, invoices, and generating financial reports.

Installation

Prerequisites

  • Node.js installed on your system
  • Claude Desktop installed on your system
  • A Xero account (free account is sufficient)

Setting Up Xero OAuth Credentials

  1. Create a free Xero user account if you don't have one
  2. Log in to the Xero Developer center
  3. Click "New app"
  4. Enter a name for your app
  5. Select "Web app"
  6. Provide a valid URL (can be anything valid, e.g. https://www.myapp.com)
  7. Enter redirect URI: http://localhost:5000/callback
  8. Accept the Terms & Conditions and click "Create app"
  9. On the left-hand side of the screen, select "Configuration"
  10. Click "Generate a secret" to get your CLIENT_SECRET

Configuring Claude Desktop

  1. Modify the claude_desktop_config.json file to include your Xero credentials:
{
  "mcpServers": {
    "xero-mcp": {
      "command": "npx",
      "args": ["-y", "xero-mcp@latest"],
      "env": {
        "XERO_CLIENT_ID": "YOUR_CLIENT_ID",
        "XERO_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
        "XERO_REDIRECT_URI": "http://localhost:5000/callback"
      }
    }
  }
}
  1. Replace YOUR_CLIENT_ID and YOUR_CLIENT_SECRET with the values from your Xero developer account
  2. Restart Claude Desktop

Usage

Authentication

The first time you use a Xero tool with Claude, a Xero login page will open in your browser. Complete the authentication flow and manually close the web page after authorization is complete.

Privacy Note: After completing the Xero OAuth2 flow, your Xero data may go through the LLM that you use. For testing purposes, consider authorizing to your Xero Demo Company.

Available Tools

Authentication

  • authenticate: Authenticate with Xero using OAuth2

Transactions

  • create_bank_transactions: Create one or more spent or received money transactions
  • list_bank_transactions: Retrieve any spent or received money transactions
  • list_payments: Retrieve payments for invoices and credit notes

Contacts

  • create_contacts: Create one or multiple contacts in a Xero organisation
  • list_contacts: Retrieve all contacts in a Xero organisation

Financial Reports

  • get_balance_sheet: Retrieve the balance sheet report
  • list_accounts: Retrieve the full chart of accounts
  • list_journals: Retrieve journals

Invoices and Quotes

  • list_invoices: Retrieve sales invoices or purchase bills
  • list_quotes: Retrieve sales quotes

Organisation

  • list_organisations: Retrieve Xero organisation details

Example Prompts

You can ask Claude to perform various Xero-related tasks, such as:

  • "Visualize my financial position over the last month"
  • "Track my spendings over last week"
  • "Add all transactions from the monthly statement into my revenue account (account code 201) as receive money"

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "xero-mcp" '{"command":"npx","args":["-y","xero-mcp@latest"],"env":{"XERO_CLIENT_ID":"YOUR_CLIENT_ID","XERO_CLIENT_SECRET":"YOUR_CLIENT_SECRET","XERO_REDIRECT_URI":"http://localhost:5000/callback"}}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "xero-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "xero-mcp@latest"
            ],
            "env": {
                "XERO_CLIENT_ID": "YOUR_CLIENT_ID",
                "XERO_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
                "XERO_REDIRECT_URI": "http://localhost:5000/callback"
            }
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "xero-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "xero-mcp@latest"
            ],
            "env": {
                "XERO_CLIENT_ID": "YOUR_CLIENT_ID",
                "XERO_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
                "XERO_REDIRECT_URI": "http://localhost:5000/callback"
            }
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later