Xero MCP Server

officiel

Interagissez avec les données comptables de votre entreprise en utilisant notre serveur MCP officiel.

Documentation

Serveur MCP Xero

Il s'agit d'une implémentation de serveur Model Context Protocol (MCP) pour Xero. Elle fournit une passerelle entre le protocole MCP et l'API de Xero, permettant un accès standardisé aux fonctionnalités de comptabilité et de gestion d'entreprise de Xero.

Fonctionnalités

  • Authentification Xero OAuth2 avec connexions personnalisées
  • Gestion des contacts
  • Gestion du plan comptable
  • Création et gestion des factures
  • Conformité au protocole MCP

Prérequis

  • Node.js (v18 ou supérieure)
  • npm ou pnpm
  • Un compte développeur Xero avec des identifiants API

Documentation et liens

Configuration

Créer un compte Xero

Si vous n'avez pas encore de compte Xero et d'organisation, vous pouvez en créer un en vous inscrivant ici via l'essai gratuit.

Nous vous recommandons de commencer avec une Société de Démonstration, car elle contient des données d'exemple préchargées. Une fois connecté, basculez dessus en utilisant le menu déroulant en haut à gauche et en sélectionnant « Société de Démonstration ». Vous pouvez réinitialiser les données d'une Société de Démonstration, ou changer le pays, à tout moment en utilisant le menu déroulant en haut à gauche et en accédant à Mon Xero.

REMARQUE : Pour utiliser les requêtes spécifiques à la paie, la région doit être soit la Nouvelle-Zélande, soit le Royaume-Uni.

Authentification

Il existe 2 modes d'authentification pris en charge dans le serveur MCP Xero :

1. Connexions personnalisées

C'est un meilleur choix pour les tests et le développement, car il vous permet de spécifier l'identifiant client et les secrets pour une organisation spécifique. C'est également l'approche recommandée si vous intégrez ceci dans des clients MCP tiers tels que Claude Desktop.

Configuration de votre compte développeur Xero

Configurez une connexion personnalisée en suivant ces instructions : https://developer.xero.com/documentation/guides/oauth2/custom-connections/

Portées requises

Les connexions personnalisées nécessitent différentes portées selon leur date de création. Toutes les portées de la liste pertinente doivent être ajoutées à votre connexion personnalisée :

Connexion personnalisée crééePortées requises
Avant le 29 avril 2026SCOPES_V1 (permissions groupées)
À partir du 29 avril 2026SCOPES_V2 (permissions granulaires)

Remarque : Le serveur MCP essaie automatiquement les portées V1 en premier et bascule vers V2 si nécessaire.

Vous pouvez les remplacer en définissant la variable d'environnement XERO_SCOPES avec une liste de portées séparées par des espaces.

Intégration du serveur MCP avec Claude Desktop

Pour ajouter le serveur MCP à Claude, allez dans Paramètres > Développeur > Modifier la configuration et ajoutez ce qui suit à votre fichier claude_desktop_config.json :

{
  "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"
      }
    }
  }
}

La variable XERO_SCOPES est facultative. Si elle est omise, les portées par défaut listées ci-dessus seront utilisées.

REMARQUE : Si vous utilisez Node Version Manager "command": "npx", modifiez la section pour qu'elle contienne le chemin complet vers l'exécutable, c'est-à-dire : your_home_directory/.nvm/versions/node/v22.14.0/bin/npx sur Mac / Linux ou "your_home_directory\\.nvm\\versions\\node\\v22.14.0\\bin\\npx" sur Windows

2. Jeton porteur

C'est un meilleur choix si vous devez prendre en charge plusieurs comptes Xero à l'exécution et permettre au client MCP d'exécuter un flux d'authentification (tel que PKCE) selon les besoins. Dans ce cas, utilisez la configuration suivante :

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

REMARQUE : Le XERO_CLIENT_BEARER_TOKEN prendra le pas sur le XERO_CLIENT_ID s'il est défini.

Portées requises pour le jeton porteur

Lors de l'obtention d'un jeton porteur, vous devez demander les portées appropriées. Les portées que vous devez demander sont :

Remarque : Certaines portées sont en cours de dépréciation au profit de portées plus granulaires. Consultez la documentation des portées Xero OAuth 2.0 pour plus de détails sur les échéanciers de dépréciation.

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

Commandes MCP disponibles

  • list-accounts : Récupérer une liste de comptes
  • list-contacts : Récupérer une liste de contacts depuis Xero
  • list-credit-notes : Récupérer une liste d'avoirs
  • list-invoices : Récupérer une liste de factures
  • list-items : Récupérer une liste d'articles
  • list-manual-journals : Récupérer une liste de journaux manuels
  • list-organisation-details : Récupérer les détails d'une organisation
  • list-profit-and-loss : Récupérer un rapport de profits et pertes
  • list-quotes : Récupérer une liste de devis
  • list-tax-rates : Récupérer une liste de taux de taxe
  • list-payments : Récupérer une liste de paiements
  • list-trial-balance : Récupérer un rapport de balance de vérification
  • list-bank-transactions : Récupérer une liste de transactions de compte bancaire
  • list-payroll-employees : Récupérer une liste d'employés de paie
  • list-report-balance-sheet : Récupérer un rapport de bilan
  • list-payroll-employee-leave : Récupérer les enregistrements de congés d'un employé de paie
  • list-payroll-employee-leave-balances : Récupérer les soldes de congés d'un employé de paie
  • list-payroll-employee-leave-types : Récupérer une liste de types de congés de paie
  • list-payroll-leave-periods : Récupérer une liste des périodes de congés d'un employé de paie
  • list-payroll-leave-types : Récupérer une liste de tous les types de congés disponibles dans Xero Paie
  • list-timesheets : Récupérer une liste de feuilles de temps de paie
  • list-aged-receivables-by-contact : Récupère les créances échues pour un contact
  • list-aged-payables-by-contact : Récupère les dettes échues pour un contact
  • list-contact-groups : Récupérer une liste de groupes de contacts
  • list-tracking-categories : Récupérer une liste de catégories de suivi
  • create-bank-transaction : Créer une nouvelle transaction bancaire
  • create-contact : Créer un nouveau contact
  • create-credit-note : Créer un nouvel avoir
  • create-invoice : Créer une nouvelle facture
  • create-item : Créer un nouvel article
  • create-manual-journal : Créer un nouveau journal manuel
  • create-payment : Créer un nouveau paiement
  • create-quote : Créer un nouveau devis
  • create-payroll-timesheet : Créer une nouvelle feuille de temps de paie
  • create-tracking-category : Créer une nouvelle catégorie de suivi
  • create-tracking-option : Créer une nouvelle option de suivi
  • update-bank-transaction : Mettre à jour une transaction bancaire existante
  • update-contact : Mettre à jour un contact existant
  • update-invoice : Mettre à jour une facture brouillon existante
  • update-item : Mettre à jour un article existant
  • update-manual-journal : Mettre à jour un journal manuel existant
  • update-quote : Mettre à jour un devis brouillon existant
  • update-credit-note : Mettre à jour un avoir brouillon existant
  • update-tracking-category : Mettre à jour une catégorie de suivi existante
  • update-tracking-options : Mettre à jour les options de suivi
  • update-payroll-timesheet-line : Mettre à jour une ligne sur une feuille de temps de paie existante
  • approve-payroll-timesheet : Approuver une feuille de temps de paie
  • revert-payroll-timesheet : Annuler une feuille de temps de paie approuvée
  • add-payroll-timesheet-line : Ajouter une nouvelle ligne sur une feuille de temps de paie existante
  • delete-payroll-timesheet : Supprimer une feuille de temps de paie existante
  • get-payroll-timesheet : Récupérer une feuille de temps de paie existante

Pour une documentation API détaillée, veuillez vous référer à la Spécification du protocole MCP.

Pour les développeurs

Installation

# Using npm
npm install

# Using pnpm
pnpm install

Lancer une compilation

# Using npm
npm run build

# Using pnpm
pnpm build

Intégration avec Claude Desktop

Pour lier votre serveur MCP Xero en développement à Claude Desktop, allez dans Paramètres > Développeur > Modifier la configuration et ajoutez ce qui suit à votre fichier claude_desktop_config.json :

REMARQUE : Pour Windows, assurez-vous que le chemin args échappe le \ entre les dossiers, c'est-à-dire "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"
      }
    }
  }
}

Licence

MIT

Sécurité

Veuillez ne pas valider votre fichier .env ni aucune information d'identification sensible dans le contrôle de version (il est inclus dans .gitignore par défaut pour plus de sécurité.)