Skip to main content

Xero MCP Server

Project description

Xero MCP

A Model Context Protocol server that provides access to Xero's accounting API. This server enables LLMs to interact with Xero's financial data, reports, and accounting resources.

Components

Tools

Financial Reports

  • xero_get_balance_sheet

    • Retrieve balance sheet report with assets, liabilities, and equity
    • Input: date (string): Report date in YYYY-MM-DD format
    • Optional: periods, timeframe, tracking_options
  • xero_get_profit_and_loss

    • Retrieve profit and loss statement
    • Input: from_date, to_date (string): Date range in YYYY-MM-DD format
    • Optional: periods, timeframe, tracking_categories
  • xero_get_bank_summary

    • Get bank account balances and movements
    • Optional: from_date, to_date for specific period

Data Access

  • xero_get_accounts

    • List all accounts in the chart of accounts
    • Optional: where filter condition
  • xero_get_contacts

    • Retrieve customer and supplier contacts
    • Optional: where, page, search_term, include_archived
  • xero_get_bank_transactions

    • View bank transactions
    • Optional: where, order, page, modified_after
  • xero_get_invoices

    • Access invoice data
    • Optional: Multiple filter options including where, order, page, statuses

Aging Reports

  • xero_get_aged_payables_by_contact

    • View aged payables for a specific contact
    • Input: contact_id (string)
    • Optional: date, from_date, to_date
  • xero_get_aged_receivables_by_contact

    • View aged receivables for a specific contact
    • Input: contact_id (string)
    • Optional: date, from_date, to_date

Usage with Claude Desktop

To use this server with Claude Desktop, add the following configuration to the "mcpServers" section of your claude_desktop_config.json:

Using uvx (Recommended)

{
  "mcpServers": {
    "Xero App": {
      "command": "~/.cargo/bin/uvx",
      "args": [
        "--from",
        "git+https://github.com/semicolonio/xero-mcp.git",
        "xero-mcp"
      ],
      "env": {
        "XERO_CLIENT_ID": "your_client_id",
        "XERO_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Notes:

  • Replace ~/.cargo/bin/uvx with your actual uvx path
    • Unix/macOS: ~/.cargo/bin/uvx
    • Windows: %USERPROFILE%\.cargo\bin\uvx
  • Replace your_client_id and your_client_secret with your Xero API credentials
  • The server requires OAuth2 authentication on first use

Prerequisites

  1. Install uvx:
cargo install uvx
  1. Get Xero API Credentials:
  • Go to Xero Developer Portal
  • Create a new app
  • Set redirect URI to: http://localhost:8000/callback
  • Copy Client ID and Client Secret

Authentication

The server handles OAuth2 authentication automatically:

  1. On first use, it opens your browser
  2. Log in to your Xero account
  3. Grant requested permissions
  4. Tokens are securely stored and auto-refreshed

Example Usage

# Get all bank accounts
accounts = await xero_get_accounts(where='Type=="BANK"')

# Get balance sheet for specific date
balance_sheet = await xero_get_balance_sheet(date="2024-01-31")

# Get recent bank transactions
transactions = await xero_get_bank_transactions(
    where='Type=="SPEND"',
    order="Date DESC",
    page=1
)

Data Storage

The server maintains a local SQLite database (config/xero_analytics.db) for:

  • Token management
  • Sync statistics
  • Cache optimization

Error Handling

Built-in handling for common issues:

  • API rate limits
  • Network connectivity
  • Authentication failures
  • Invalid parameters

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xero_mcp-0.1.0.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xero_mcp-0.1.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file xero_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: xero_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.30

File hashes

Hashes for xero_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9f796a383e8f1f5eb9d3048ae7dba48e3ed5257f9d2e3badce5066f2e1b6548a
MD5 e615146817659098c77fea420672bb98
BLAKE2b-256 7011f340001ee0b248c81ea781ba6da2c2e01212c80875b5bb55f91f15516d87

See more details on using hashes here.

File details

Details for the file xero_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: xero_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.30

File hashes

Hashes for xero_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7141e6f353e23259dfa8e23ad25465fe5c147f11357750d13d11d74235b707be
MD5 9bbf9b9286b5ec5390c7175320b1c8d1
BLAKE2b-256 88601a57bf7d1da35c0a6e18dc25a8e3a4f87a1b10f9aea9c6415d5d5491a381

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page