xero-mcp
Provides integration with Xero, enabling management of accounting data such as invoices and related financial operations through the Xero API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@xero-mcpWhat's the total of outstanding invoices?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
xero-mcp
The Xero MCP door, extracted from the main Teller gateway repo and
deployed standalone on Netlify Functions, as a fast trial of hosting outside
GCP. Nothing in /src/core or /src/adapters was rewritten — every file
here is a copy of the original, with only import paths adjusted for the new
directory layout. The RBAC decision, the audit trail, the Xero adapter, and
the Money boundary are the same code, same behaviour, same tests passing
against them in the main repo.
What's different from the GCP version
Transport:
WebStandardStreamableHTTPServerTransport(Request/Response), not the Node-specific one — this is what makes it run on Netlify's web-standard function runtime at all.Auth: Cloud Run's IAM has no Netlify equivalent. This uses a single shared-secret header (
x-teller-secret) instead — readnetlify/functions/mcp.mts's header comment before deploying. It is a PoC-grade gate: whoever holds the secret acts as one fixed principal (TELLER_MCP_PRINCIPAL), not per-person identity.Roll-forward is off. No local filesystem, no Python runtime on Netlify Functions —
TELLER_TRACKER_FILEstays unset, which the code already treats as a deliberate no-op, same as it does locally.Rate limiting: same as the main repo today — Xero's own
429+Retry-After, read and respected. There is no in-process token bucket to lose by running on a platform with unbounded concurrent instances, because one was never built (see the main repo'sPOC-PLAN.md§C2 for the documentedpg_advisory_xact_lockescape hatch if this ever needs one).
Related MCP server: Python Xero MCP Server for BYB
Deploy
netlify deploy --prodThen set the real values for every var in .env.example in Netlify's own
environment variable settings — never in a committed file.
Structure
src/core/ rbac.ts, audit.ts, claims.ts, money.ts, policy.ts, db.ts,
intents.ts, invoices.ts, log.ts, review/escalate.ts
src/adapters/ xero.ts, tracker/* (roll-forward's plan/apply split,
inert here - see above)
netlify/functions/mcp.mts the only new file - protocol + platform glueThis server cannot be deployed
Maintenance
Related MCP Connectors
Open-source AI accounting skills verified by licensed accountants (tax, VAT, payroll).
Connect Claude or Cursor to books, invoices, bills, payroll, and sealed closes.
Log expenses, receipts and mileage from chat: auto-categorise, split VAT, summarise, export, rebill.
Chilean DTE/SII invoicing — issue invoices, reconcile payments and manage clients with AI agents.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables interaction with the Xero Accounting API to manage contacts, invoices, payments, accounts, and financial reports. It provides a suite of tools for natural language access to accounting records and business performance data.201Apache 2.0
- -licenseNot gradedqualityDmaintenanceEnables interaction with Xero accounting API for financial reporting, sales analysis, grant tracking, and bill management using natural language.1-
- FlicenseNot gradedqualityDmaintenanceAn enhanced MCP server for Xero, enabling natural language interaction with your Xero organisation for accounting tasks like invoices, contacts, bank transactions, and payroll.-
- AlicenseAqualityCmaintenanceEnables natural language interaction with Xero accounting data, managing contacts, invoices, and accounts across multiple organisations via OAuth2.12MIT