Développeurs
Serveur MCP Invoiso
Dernière mise à jour : 2026-08-18
Invoiso parle le Model Context Protocol, si bien qu’un client MCP — Claude, ChatGPT ou tout autre qui le parle — peut lire et manipuler les factures, les achats, les contacts, les stocks et les rapports de votre espace invoiso. Cette page contient tout ce qu’il faut pour en connecter un.
Le point de terminaison
https://www.invoiso.com/api/mcp
Transport Streamable HTTP (POST, JSON-RPC 2.0)
Auth OAuth 2.1 — see below
Server invoiso 0.1.0
Protocol 2025-06-18, 2025-03-26, 2024-11-05La plupart des gens n’ont besoin que de l’URL. Ajoutez-la comme connecteur personnalisé dans ChatGPT ou comme serveur MCP distant dans Claude, puis connectez-vous à invoiso comme d’habitude — aucune clé d’API n’est nécessaire. Le client découvre seul comment s’authentifier : un appel non authentifié répond 401 avec un en-tête WWW-Authenticate pointant vers https://www.invoiso.com/.well-known/oauth-protected-resource, qui nomme le serveur d’autorisation et les portées à demander.
Connexion
- Ajoutez
https://www.invoiso.com/api/mcpà votre client comme serveur MCP distant. - Le client vous envoie vers la connexion invoiso. Connectez-vous comme d’habitude.
- Approuvez l’accès décrit par l’écran de consentement. Il nomme l’espace que vous connectez.
- Vous êtes connecté. Posez à votre client une question sur vos comptes — « qu’ai-je facturé le mois dernier ? » est une bonne première question, car elle ne demande aucune permission au-delà de la lecture.
Les portées demandées sont openid, email, profile et user:org:read. La dernière est ce qui nous dit quel espace vous connectez ; sans elle, le serveur refuse plutôt que de deviner — voir plus bas.
À quel espace vous êtes connecté
Vous êtes connecté à l’espace qui était actif dans votre navigateur au moment où vous avez approuvé la connexion. L’écran de consentement le nomme. C’est la même règle que suit le navigateur — une session est dans un seul espace à la fois — et cela signifie que changer d’espace dans invoiso ne change pas ce que voit votre client MCP.
Pour pointer un client vers un autre espace : basculez d’abord vers cet espace dans invoiso, puis supprimez et rajoutez la connexion dans votre client. Vous repasserez par le consentement, et le nouveau jeton portera le nouvel espace.
Si le serveur ne peut pas déterminer à quel espace un jeton correspond, il répond 403 avec error="insufficient_scope" en nommant la portée à demander, plutôt que d’en choisir un. Choisir serait pire que refuser : la mauvaise réponse plausible est votre espace personnel vide, et vous en concluriez qu’invoiso a perdu vos comptes.
Ce que permet votre forfait
Tout est disponible pour l’assistant à l’intérieur d’invoiso, quel que soit le forfait. Ce qui change pour un client MCP externe, c’est le droit d’écrire.
| Forfait | Outils disponibles | Peut écrire |
|---|---|---|
| Free | 63 | Lecture seule |
| Business | 167 | Oui |
| Complete | 167 | Oui |
Une connexion en lecture seule n’est pas un client réduit — c’est l’ensemble des outils qui se contentent de rapporter. L’écriture depuis un client externe commence à Business. Demandez à une connexion en lecture seule de modifier quelque chose : elle le dit en une phrase et ne change rien, au lieu d’échouer obscurément.
Ce que font les outils
Il y a 167 outils. 63 d’entre eux se contentent de rapporter ; les autres écrivent. Chaque outil porte les trois annotations définies par MCP — readOnlyHint, destructiveHint et openWorldHint — pour que votre client puisse vous demander avant de faire quelque chose d’irréversible. 15 d’entre eux peuvent modifier quelque chose en dehors d’invoiso : envoyer un e-mail, publier une page de paiement, écrire dans Xero ou QuickBooks. Ce sont ceux qu’il vaut la peine de faire confirmer.
Les montants sont toujours donnés deux fois
Un espace peut contenir des documents en plusieurs devises. Tout outil qui renvoie un montant le renvoie dans la devise propre du document et dans la devise de reporting de l’espace, convertie au taux figé sur ce document. Seul le second est comparable d’un document à l’autre, et les instructions du serveur disent au modèle de ne jamais additionner deux montants en devises différentes. Là où aucun taux ne couvrait une date, le chiffre de reporting est null plutôt que zéro.
Les totaux viennent de l’outil de rapport
run_report répond aux questions « combien ». Les outils de liste listent ; additionner une liste n’est pas la même arithmétique — les brouillons et les avoirs se comptent autrement — et la description de chaque outil dit lequel il est.
Ce que le serveur lit, et ce qu’il conserve
Un appel d’outil lit et écrit les données propres à votre espace : vos factures, achats, contacts, produits et réglages. Les réponses contiennent les enregistrements demandés — pour un contact, son nom, et éventuellement une adresse e-mail, une adresse postale ou un numéro d’identification fiscale, parce que ce sont les éléments qui figurent sur une facture.
Le serveur ne conserve aucune copie séparée d’une conversation, n’envoie aucune réponse d’outil ailleurs qu’au client qui a demandé, et ne renvoie jamais d’identifiants, de clés d’API ni de jetons OAuth — les vôtres ou ceux d’un service connecté. Ce que nous faisons des données en général, y compris quels tiers reçoivent quoi, figure dans la politique de confidentialité, et les conditions s’appliquent à cette connexion comme à toute autre.
Déconnexion
Supprimez la connexion dans votre client MCP. C’est suffisant : le jeton est la seule chose qui donne accès, et rien de notre côté ne continue de fonctionner sans lui. Supprimer votre compte invoiso supprime tout ce qu’il y a derrière — la politique de confidentialité dit ce que cela signifie et combien de temps cela prend.
Détails du protocole
Le serveur négocie 2025-06-18, 2025-03-26 et 2024-11-05, en répondant avec la plus récente que lui et le client comprennent tous deux. Une version non reconnue reçoit en réponse la plus récente que nous prenons en charge plutôt qu’un refus, ce que demande la spécification.
L’autorisation suit OAuth 2.1 avec PKCE. La découverte se fait par les métadonnées de ressource protégée RFC 9728 à https://www.invoiso.com/.well-known/oauth-protected-resource, et le serveur d’autorisation publie à la fois un document RFC 8414 et un document OpenID Connect. Les clients s’enregistrent eux-mêmes par enregistrement dynamique (RFC 7591), ce qui explique que les étapes ci-dessus ne demandent qu’une URL. Le point d’enregistrement n’est annoncé que sur le document RFC 8414 ; un client qui ne lit que celui d’OpenID Connect ne le trouvera pas et aura besoin de l’identifiant client prédéfini ci-dessous.
Si votre client ne peut pas s’enregistrer lui-même et demande un identifiant client, écrivez à support@invoiso.com et nous vous en donnerons un. Laissez le secret client vide — le client est public et s’authentifie par PKCE.
Les jetons sont vérifiés contre le JWKS de notre propre instance et doivent porter notre émetteur ainsi que la portée qui nomme votre espace. Un jeton émis par un autre déploiement d’invoiso, ou par une autre instance Clerk, est refusé. Un jeton d’une autre application enregistrée auprès de cette instance n’est pas distinguable du nôtre et est accepté — c’est ce que signifie l’enregistrement ouvert, et c’est pourquoi il vaut la peine de lire l’écran de consentement, qui nomme l’application qui demande, avant d’approuver.
Si quelque chose ne va pas
Écrivez à support@invoiso.com en indiquant ce que votre client a demandé et ce qui est revenu. Un 401 signifie généralement qu’il faut ré-approuver la connexion ; un 403 nommant une portée signifie que le client ne l’a pas demandée ; et un refus qui nomme votre forfait est la barrière de lecture seule ci-dessus, pas une panne.