MCP server for Xero accounting β contacts, invoices, payments, accounts, and financial reports.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Model Context Protocol (MCP) server for the Xero Accounting API. Enables Claude and other MCP-compatible clients to manage Xero contacts, invoices, payments, accounts, and reports.
xero_invoices_get renders as a rich, read-only card in MCP Apps hosts β neutral by default, brandable via window.__BRAND__ injection or MCP_BRAND_* env varsNote on registry auth: This server depends only on public npm packages, so the Cloudflare and DigitalOcean cloud builders install its dependencies anonymously β no token is required for one-click deploy. (If a future release adds a private
@wyre-ai/*dependency, you would supply a GitHub PAT withread:packagesas a build variable βNODE_AUTH_TOKENfor Cloudflare Workers, a build-timeGITHUB_TOKENsecret for DigitalOcean.)Installing the published package: The released package is published to the GitHub Packages npm registry, which requires authentication on every install (even for public packages). To install it, authenticate npm to
npm.pkg.github.comwith a GitHub PAT that hasread:packages:
The server listens on http://0.0.0.0:8080/mcp by default.
| Variable | Required | Default | Description |
|---|---|---|---|
XERO_ACCESS_TOKEN | Yes (env mode) | β | Xero OAuth2 access token |
XERO_TENANT_ID | Yes (env mode) | β | Xero tenant ID (organisation) |
MCP_TRANSPORT | No | stdio | Transport type: stdio or http |
MCP_HTTP_PORT | No | 8080 | HTTP server port |
MCP_HTTP_HOST | No | 0.0.0.0 | HTTP server bind address |
AUTH_MODE | No | env | Auth mode: env or gateway |
When AUTH_MODE=gateway, credentials are passed per-request via HTTP headers instead of environment variables:
X-Xero-Access-Token β OAuth2 access tokenX-Xero-Tenant-Id β Xero tenant IDThis allows a gateway/proxy to manage multi-tenant credentials.
xero_invoices_get renders as an interactive card in MCP Apps hosts
(Claude Desktop/web) showing status, contact, dates, amounts, and line
items; plain-JSON behavior is unchanged in other hosts. The card is
read-only β invoices are financial records, so no write actions are
exposed from it. It is neutral by default and brandable via
window.__BRAND__ injection or MCP_BRAND_* env vars (MCP_BRAND_NAME,
MCP_BRAND_LOGO_URL, MCP_BRAND_PRIMARY_COLOR, MCP_BRAND_ACCENT_COLOR,
MCP_BRAND_BG, MCP_BRAND_TEXT) β no rebuild needed.
Tools are organized into domains. Use xero_navigate to select a domain, then use the domain-specific tools.
xero_navigate β Select a domain (contacts, invoices, payments, accounts, reports)xero_back β Return to domain selectionxero_contacts_list β List contacts with pagination and optional filteringxero_contacts_get β Get detailed contact information by IDxero_contacts_create β Create a new contact (customer or supplier)xero_contacts_search β Search contacts by namexero_invoices_list β List invoices with optional status and type filtersxero_invoices_get β Get detailed invoice information by IDxero_invoices_create β Create a new invoice (sales or bill)xero_invoices_update_status β Update invoice status (submit, authorise, void)xero_payments_list β List payments with optional status filterxero_payments_get β Get detailed payment information by IDxero_payments_create β Record a payment against an invoicexero_accounts_list β List chart of accounts with optional type/class filterxero_accounts_get β Get detailed account information by IDxero_reports_profit_and_loss β Profit and Loss (income statement) for a date rangexero_reports_balance_sheet β Balance Sheet as of a specific datexero_reports_aged_receivables β Aged Receivables by contactxero_reports_aged_payables β Aged Payables by contactApache-2.0
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/xero-2)<a href="https://allmcps.com/mcp/xero-2"><img src="https://allmcps.com/api/badge/xero-2?style=directory" alt="Xero on AllMCPs" /></a>