Xero MCP Server

offiziell

Interagieren Sie mit den Buchhaltungsdaten Ihres Unternehmens über unseren offiziellen MCP-Server.

Dokumentation

Xero MCP-Server

Dies ist eine Model Context Protocol (MCP)-Serverimplementierung für Xero. Sie stellt eine Brücke zwischen dem MCP-Protokoll und der Xero-API dar und ermöglicht einen standardisierten Zugriff auf die Buchhaltungs- und Geschäftsfunktionen von Xero.

Funktionen

  • Xero OAuth2-Authentifizierung mit benutzerdefinierten Verbindungen
  • Kontaktverwaltung
  • Kontenplanverwaltung
  • Rechnungserstellung und -verwaltung
  • MCP-Protokollkonformität

Voraussetzungen

  • Node.js (v18 oder höher)
  • npm oder pnpm
  • Ein Xero-Entwicklerkonto mit API-Anmeldeinformationen

Dokumentation und Links

Einrichtung

Xero-Konto erstellen

Falls Sie noch kein Xero-Konto und keine Organisation haben, können Sie eines erstellen, indem Sie sich hier mit der kostenlosen Testversion anmelden.

Wir empfehlen, mit einem Demo-Unternehmen zu beginnen, da dieses bereits einige Beispieldaten enthält. Nach der Anmeldung wechseln Sie über das Dropdown-Menü oben links zum Demo-Unternehmen, indem Sie „Demo Company“ auswählen. Sie können die Daten eines Demo-Unternehmens jederzeit zurücksetzen oder das Land ändern, indem Sie das Dropdown-Menü oben links verwenden und zu My Xero navigieren.

HINWEIS: Für lohnspezifische Abfragen sollte die Region entweder NZ oder UK sein.

Authentifizierung

Der Xero MCP-Server unterstützt zwei Authentifizierungsmodi:

1. Benutzerdefinierte Verbindungen

Dies ist die bessere Wahl für Tests und Entwicklung, da Sie Client-ID und -Geheimnisse für eine bestimmte Organisation angeben können. Es ist auch der empfohlene Ansatz, wenn Sie dies in Drittanbieter-MCP-Clients wie Claude Desktop integrieren.

Konfiguration Ihres Xero-Entwicklerkontos

Richten Sie eine benutzerdefinierte Verbindung gemäß dieser Anleitung ein: https://developer.xero.com/documentation/guides/oauth2/custom-connections/

Erforderliche Bereiche

Benutzerdefinierte Verbindungen erfordern je nach Erstellungsdatum unterschiedliche Bereiche. Alle Bereiche in der entsprechenden Liste müssen zu Ihrer benutzerdefinierten Verbindung hinzugefügt werden:

Benutzerdefinierte Verbindung erstelltErforderliche Bereiche
Vor dem 29. April 2026SCOPES_V1 (gebündelte Berechtigungen)
Ab dem 29. April 2026SCOPES_V2 (granulare Berechtigungen)

Hinweis: Der MCP-Server versucht automatisch zuerst V1-Bereiche und greift bei Bedarf auf V2 zurück.

Sie können diese überschreiben, indem Sie die Umgebungsvariable XERO_SCOPES auf eine durch Leerzeichen getrennte Liste von Bereichen setzen.

Integration des MCP-Servers mit Claude Desktop

Um den MCP-Server zu Claude hinzuzufügen, gehen Sie zu Einstellungen > Entwickler > Konfiguration bearbeiten und fügen Sie Folgendes zu Ihrer claude_desktop_config.json-Datei hinzu:

{
  "mcpServers": {
    "xero": {
      "command": "npx",
      "args": ["-y", "@xeroapi/xero-mcp-server@latest"],
      "env": {
        "XERO_CLIENT_ID": "your_client_id_here",
        "XERO_CLIENT_SECRET": "your_client_secret_here",
        "XERO_SCOPES": "accounting.invoices accounting.contacts accounting.settings"
      }
    }
  }
}

Die Variable XERO_SCOPES ist optional. Wenn sie weggelassen wird, werden die oben aufgeführten Standardbereiche verwendet.

HINWEIS: Wenn Sie Node Version Manager verwenden, ändern Sie den Abschnitt "command": "npx" in den vollständigen Pfad zur ausführbaren Datei, z. B.: your_home_directory/.nvm/versions/node/v22.14.0/bin/npx auf Mac / Linux oder "your_home_directory\\.nvm\\versions\\node\\v22.14.0\\bin\\npx" auf Windows.

2. Bearer-Token

Dies ist die bessere Wahl, wenn Sie mehrere Xero-Konten zur Laufzeit unterstützen und dem MCP-Client erlauben möchten, bei Bedarf einen Authentifizierungsablauf (wie PKCE) auszuführen. Verwenden Sie in diesem Fall die folgende Konfiguration:

{
  "mcpServers": {
    "xero": {
      "command": "npx",
      "args": ["-y", "@xeroapi/xero-mcp-server@latest"],
      "env": {
        "XERO_CLIENT_BEARER_TOKEN": "your_bearer_token"
      }
    }
  }
}

HINWEIS: Das XERO_CLIENT_BEARER_TOKEN hat Vorrang vor dem XERO_CLIENT_ID, falls definiert.

Erforderliche Bereiche für Bearer-Token

Beim Anfordern eines Bearer-Tokens müssen Sie die entsprechenden Bereiche anfordern. Die angeforderten Bereiche sollten sein:

Hinweis: Einige Bereiche werden zugunsten granularerer Bereiche eingestellt. Details zu den Einstellungszeitplänen finden Sie in der Xero OAuth 2.0 Scopes-Dokumentation.

accounting.transactions (Deprecated)
accounting.transactions.read (Deprecated)
accounting.invoices
accounting.invoices.read
accounting.payments
accounting.payments.read
accounting.banktransactions
accounting.banktransactions.read
accounting.manualjournals
accounting.manualjournals.read
accounting.reports.read (Deprecated)
accounting.reports.aged.read
accounting.reports.balancesheet.read
accounting.reports.profitandloss.read
accounting.reports.trialbalance.read
accounting.contacts 
accounting.settings 
payroll.settings 
payroll.employees 
payroll.timesheets

Verfügbare MCP-Befehle

  • list-accounts: Eine Liste von Konten abrufen
  • list-contacts: Eine Liste von Kontakten aus Xero abrufen
  • list-credit-notes: Eine Liste von Gutschriften abrufen
  • list-invoices: Eine Liste von Rechnungen abrufen
  • list-items: Eine Liste von Artikeln abrufen
  • list-manual-journals: Eine Liste manueller Journale abrufen
  • list-organisation-details: Details zu einer Organisation abrufen
  • list-profit-and-loss: Einen Gewinn- und Verlustbericht abrufen
  • list-quotes: Eine Liste von Angeboten abrufen
  • list-tax-rates: Eine Liste von Steuersätzen abrufen
  • list-payments: Eine Liste von Zahlungen abrufen
  • list-trial-balance: Einen Probebilanzbericht abrufen
  • list-bank-transactions: Eine Liste von Bankkontotransaktionen abrufen
  • list-payroll-employees: Eine Liste von Lohnmitarbeitern abrufen
  • list-report-balance-sheet: Einen Bilanzbericht abrufen
  • list-payroll-employee-leave: Die Urlaubsaufzeichnungen eines Lohnmitarbeiters abrufen
  • list-payroll-employee-leave-balances: Die Urlaubssalden eines Lohnmitarbeiters abrufen
  • list-payroll-employee-leave-types: Eine Liste von Lohnurlaubsarten abrufen
  • list-payroll-leave-periods: Eine Liste der Urlaubsperioden eines Lohnmitarbeiters abrufen
  • list-payroll-leave-types: Eine Liste aller verfügbaren Urlaubsarten in Xero Payroll abrufen
  • list-timesheets: Eine Liste von Lohnstundenzetteln abrufen
  • list-aged-receivables-by-contact: Fällige Forderungen für einen Kontakt abrufen
  • list-aged-payables-by-contact: Fällige Verbindlichkeiten für einen Kontakt abrufen
  • list-contact-groups: Eine Liste von Kontaktgruppen abrufen
  • list-tracking-categories: Eine Liste von Tracking-Kategorien abrufen
  • create-bank-transaction: Eine neue Banktransaktion erstellen
  • create-contact: Einen neuen Kontakt erstellen
  • create-credit-note: Eine neue Gutschrift erstellen
  • create-invoice: Eine neue Rechnung erstellen
  • create-item: Einen neuen Artikel erstellen
  • create-manual-journal: Ein neues manuelles Journal erstellen
  • create-payment: Eine neue Zahlung erstellen
  • create-quote: Ein neues Angebot erstellen
  • create-payroll-timesheet: Einen neuen Lohnstundenzettel erstellen
  • create-tracking-category: Eine neue Tracking-Kategorie erstellen
  • create-tracking-option: Eine neue Tracking-Option erstellen
  • update-bank-transaction: Eine bestehende Banktransaktion aktualisieren
  • update-contact: Einen bestehenden Kontakt aktualisieren
  • update-invoice: Eine bestehende Entwurfsrechnung aktualisieren
  • update-item: Einen bestehenden Artikel aktualisieren
  • update-manual-journal: Ein bestehendes manuelles Journal aktualisieren
  • update-quote: Ein bestehendes Entwurfsangebot aktualisieren
  • update-credit-note: Eine bestehende Entwurfsgutschrift aktualisieren
  • update-tracking-category: Eine bestehende Tracking-Kategorie aktualisieren
  • update-tracking-options: Tracking-Optionen aktualisieren
  • update-payroll-timesheet-line: Eine Zeile in einem bestehenden Lohnstundenzettel aktualisieren
  • approve-payroll-timesheet: Einen Lohnstundenzettel genehmigen
  • revert-payroll-timesheet: Einen genehmigten Lohnstundenzettel zurücksetzen
  • add-payroll-timesheet-line: Eine neue Zeile zu einem bestehenden Lohnstundenzettel hinzufügen
  • delete-payroll-timesheet: Einen bestehenden Lohnstundenzettel löschen
  • get-payroll-timesheet: Einen bestehenden Lohnstundenzettel abrufen

Detaillierte API-Dokumentation finden Sie in der MCP-Protokollspezifikation.

Für Entwickler

Installation

# Using npm
npm install

# Using pnpm
pnpm install

Build ausführen

# Using npm
npm run build

# Using pnpm
pnpm build

Integration mit Claude Desktop

Um Ihren Xero MCP-Server in der Entwicklung mit Claude Desktop zu verknüpfen, gehen Sie zu Einstellungen > Entwickler > Konfiguration bearbeiten und fügen Sie Folgendes zu Ihrer claude_desktop_config.json-Datei hinzu:

HINWEIS: Stellen Sie unter Windows sicher, dass der args-Pfad die \ zwischen Ordnern escaped, z. B. "C:\\projects\xero-mcp-server\\dist\\index.js"

{
  "mcpServers": {
    "xero": {
      "command": "node",
      "args": ["insert-your-file-path-here/xero-mcp-server/dist/index.js"],
      "env": {
        "XERO_CLIENT_ID": "your_client_id_here",
        "XERO_CLIENT_SECRET": "your_client_secret_here"
      }
    }
  }
}

Lizenz

MIT

Sicherheit

Bitte committen Sie Ihre .env-Datei oder sensible Anmeldeinformationen nicht in die Versionskontrolle (sie ist standardmäßig in .gitignore enthalten, als sichere Voreinstellung).