Xero Expenses MCP

Xero Expenses MCP

Enables interaction with Xero accounting software to create and manage invoices, bills, expenses, and expense claims with file attachments through PKCE authentication.

Category
Visit Server

README

xero-expenses-mcp

MCP (Model Context Protocol) server for Xero accounting. Supports Invoices, Bills, Expenses (Bank Transactions), and Expense Claims with PKCE authentication.

Features

  • Invoices (ACCREC) - Create sales invoices to send to customers
  • Bills (ACCPAY) - Create bills you'll pay later
  • Expenses - Create "Spend Money" bank transactions for already-paid expenses
  • Expense Claims - Create receipts and submit expense claims for reimbursement
  • Attachments - Attach PDFs and images to invoices, bills, expenses, and receipts
  • PKCE Auth - Desktop app OAuth flow (no client secret required)

Installation

npx xero-expenses-mcp

Or install globally:

npm install -g xero-expenses-mcp

Xero App Setup

  1. Go to Xero Developer Portal
  2. Create a new app:
    • App name: Your choice (e.g., "Expense Manager")
    • Integration type: "Mobile or desktop app" (uses PKCE, no secret needed)
    • Redirect URI: http://localhost:3000/callback
  3. Note your Client ID

Claude Code Configuration

Add to your Claude Code MCP settings:

{
  "mcpServers": {
    "xero-expenses": {
      "command": "npx",
      "args": ["xero-expenses-mcp"],
      "env": {
        "XERO_CLIENT_ID": "YOUR_CLIENT_ID"
      }
    }
  }
}

Or use the CLI:

claude mcp add xero-expenses -- npx xero-expenses-mcp

Then set environment variables in your shell or .env file.

Environment Variables

Variable Required Description
XERO_CLIENT_ID Yes Your Xero app's client ID
XERO_CLIENT_SECRET No Only for Web apps (not PKCE)
XERO_REDIRECT_URI No Default: http://localhost:3000/callback

Authentication

On first use, the server will open a browser for Xero OAuth. After authenticating, tokens are stored in ~/.xero-mcp/token.json.

Available Tools

Accounts & Contacts

  • xero_list_accounts - List expense accounts/categories
  • xero_list_bank_accounts - List bank accounts
  • xero_list_contacts - Search vendors/contacts
  • xero_list_users - List organization users (for expense claims)

Invoices (Accounts Receivable)

  • xero_create_invoice - Create a sales invoice to send to customers
  • xero_attach_file_to_invoice - Attach file to an invoice

Bills (Accounts Payable)

  • xero_create_bill - Create a bill for future payment
  • xero_attach_file - Attach file to a bill

Expenses (Bank Transactions)

  • xero_create_expense - Create a "Spend Money" transaction
  • xero_attach_file_to_expense - Attach file to an expense

Expense Claims (deprecated Feb 2026)

  • xero_create_expense_claim - Create receipt + expense claim
  • xero_attach_file_to_receipt - Attach file to a receipt

Example Usage

In Claude Code:

"Create an expense for $45.50 lunch at Cafe Example on 2024-01-15, categorize as Business Meals (account 620)"

Claude will use the xero_create_expense_claim tool with:

{
  "vendorName": "Cafe Example",
  "amount": 45.50,
  "description": "Lunch",
  "accountCode": "620",
  "date": "2024-01-15"
}

Token Storage

Tokens are stored in ~/.xero-mcp/token.json. To re-authenticate, delete this file.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured