Xero MCP Server
officielInteragissez 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
- Documentation de l'API publique Xero
- Explorateur d'API Xero
- Spécifications OpenAPI Xero
- Documentation du SDK API publique Xero-Node
- Documentation développeur
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éée | Portées requises |
|---|---|
| Avant le 29 avril 2026 | SCOPES_V1 (permissions groupées) |
| À partir du 29 avril 2026 | SCOPES_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_SCOPESavec 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 compteslist-contacts: Récupérer une liste de contacts depuis Xerolist-credit-notes: Récupérer une liste d'avoirslist-invoices: Récupérer une liste de factureslist-items: Récupérer une liste d'articleslist-manual-journals: Récupérer une liste de journaux manuelslist-organisation-details: Récupérer les détails d'une organisationlist-profit-and-loss: Récupérer un rapport de profits et perteslist-quotes: Récupérer une liste de devislist-tax-rates: Récupérer une liste de taux de taxelist-payments: Récupérer une liste de paiementslist-trial-balance: Récupérer un rapport de balance de vérificationlist-bank-transactions: Récupérer une liste de transactions de compte bancairelist-payroll-employees: Récupérer une liste d'employés de paielist-report-balance-sheet: Récupérer un rapport de bilanlist-payroll-employee-leave: Récupérer les enregistrements de congés d'un employé de paielist-payroll-employee-leave-balances: Récupérer les soldes de congés d'un employé de paielist-payroll-employee-leave-types: Récupérer une liste de types de congés de paielist-payroll-leave-periods: Récupérer une liste des périodes de congés d'un employé de paielist-payroll-leave-types: Récupérer une liste de tous les types de congés disponibles dans Xero Paielist-timesheets: Récupérer une liste de feuilles de temps de paielist-aged-receivables-by-contact: Récupère les créances échues pour un contactlist-aged-payables-by-contact: Récupère les dettes échues pour un contactlist-contact-groups: Récupérer une liste de groupes de contactslist-tracking-categories: Récupérer une liste de catégories de suivicreate-bank-transaction: Créer une nouvelle transaction bancairecreate-contact: Créer un nouveau contactcreate-credit-note: Créer un nouvel avoircreate-invoice: Créer une nouvelle facturecreate-item: Créer un nouvel articlecreate-manual-journal: Créer un nouveau journal manuelcreate-payment: Créer un nouveau paiementcreate-quote: Créer un nouveau deviscreate-payroll-timesheet: Créer une nouvelle feuille de temps de paiecreate-tracking-category: Créer une nouvelle catégorie de suivicreate-tracking-option: Créer une nouvelle option de suiviupdate-bank-transaction: Mettre à jour une transaction bancaire existanteupdate-contact: Mettre à jour un contact existantupdate-invoice: Mettre à jour une facture brouillon existanteupdate-item: Mettre à jour un article existantupdate-manual-journal: Mettre à jour un journal manuel existantupdate-quote: Mettre à jour un devis brouillon existantupdate-credit-note: Mettre à jour un avoir brouillon existantupdate-tracking-category: Mettre à jour une catégorie de suivi existanteupdate-tracking-options: Mettre à jour les options de suiviupdate-payroll-timesheet-line: Mettre à jour une ligne sur une feuille de temps de paie existanteapprove-payroll-timesheet: Approuver une feuille de temps de paierevert-payroll-timesheet: Annuler une feuille de temps de paie approuvéeadd-payroll-timesheet-line: Ajouter une nouvelle ligne sur une feuille de temps de paie existantedelete-payroll-timesheet: Supprimer une feuille de temps de paie existanteget-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é.)