Connecter un assistant IA (MCP)
MoneyLights a un serveur MCP intégré, donc un assistant IA — Claude Desktop, Claude Code, un agent IDE, tout ce qui parle le protocole — peut travailler avec les données de ton organisation sur demande.
C’est la même crédential que l’API REST : une connexion MCP est une clé API, avec les mêmes portées, les mêmes limites et le même bouton de révocation. Il n’y a rien de séparé à gérer.
Connexion
Section intitulée « Connexion »Le point de terminaison est https://api.moneylights.app/mcp (HTTP Streamable). Une configuration typique du client :
{ "mcpServers": { "moneylights": { "url": "https://api.moneylights.app/mcp", "headers": { "X-API-Key": "ml_sk_..." } } }}Avec Claude Code, c’est une seule commande :
claude mcp add --transport http moneylights https://api.moneylights.app/mcp \ --header "X-API-Key: ml_sk_..."Crée la clé dans Paramètres → Clés API et accorde-lui uniquement les portées dont l’assistant a besoin. Tout nécessite la clé, y compris la liste des outils.
Ce que l’assistant peut faire
Section intitulée « Ce que l’assistant peut faire »La liste des outils est calculée à partir des portées de ta clé, à chaque demande. Une clé sans portée n’est même pas informée de l’existence de l’outil correspondant.
| Outil | Portée | Ce qu’il fait |
|---|---|---|
get_cashflow_overview | cashflow:read | Revenu/dépense/net mensuel, solde d’ouverture, principales catégories |
get_analytics_overview | analytics:read | Agrégats par catégorie, client, projet et personne |
list_transactions | transactions:read | Transactions, filtrées et paginées, chacune avec les documents qui lui sont liés |
list_documents | documents:read | Documents et leurs champs extraits, chacun avec les mouvements qui lui sont liés |
get_document_file | documents:read | Le fichier original d’un document — le PDF ou l’image que l’application affiche |
get_pending_distribution | profitpulse:read | Distributions en attente Safe-to-Spend |
list_vendors | vendors:read | Fournisseurs, avec dépenses totales |
list_clients | clients:read | Clients, avec revenus totaux |
list_projects | projects:read | Projets, avec totaux et objectifs |
upload_document | documents:write | Fichiers une facture ou un reçu dans tes documents |
Les deux aperçus sont calculés sur la même base et le disent : chaque réponse porte un basis — période,
devises, les comptes couverts (tous visibles, sauf si demandé par id), et comment les transferts entre les
propres comptes de l’organisation ont été traités. Par défaut, ils sont exclus des revenus et des dépenses,
pied par pied, exactement comme la vue Cashflow de l’application les montre ; passe includeInternalTransfers: true à
l’un ou l’autre outil pour le mouvement bancaire brut, que le basis étiquette alors comme tel et qui n’est pas
comparable avec le défaut. Compare les chiffres entre les deux outils uniquement lorsque leur basis correspond.
netCashResult est le revenu moins les dépenses des mouvements bancaires — un résultat de trésorerie, pas un bénéfice comptable.
Quel document va avec quel mouvement
Section intitulée « Quel document va avec quel mouvement »Les deux listes le disent, des deux côtés, de la manière dont l’application le montre. Chaque transaction porte
linkedDocuments et chaque document porte linkedTransactions ; chaque entrée nomme l’autre
côté et un link :
confirmed— le document est associé au mouvement, ce qui compte comme documenté.suggested— le correspondancier propose l’appariement ; personne ne l’a confirmé et le mouvement manque encore son document. L’entrée porte lescoredu correspondancier.
Un assistant peut donc dire aucune facture d’une facture en attente de confirmation d* déjà classée — et ne peut rien changer, car cette connexion n’a pas d’outil pour cela.
Un mouvement peut porter plusieurs documents confirmés. Un document est lié à au plus un mouvement, donc
une facture payée en plusieurs parties montre uniquement le mouvement auquel elle a été associée. Un document encore
Processing n’a pas de liens encore ; None signifie aucun.
Les portées tiennent toujours : le côté éloigné d’un lien est décrit (fournisseur et numéro, ou description et montant) uniquement à une clé qui peut aussi lire cette ressource. Avec une portée, tu obtiens l’id de l’autre côté, le type de lien et le score — assez pour savoir qu’un mouvement est documenté, pas ce que dit la facture.
Lire un original
Section intitulée « Lire un original »get_document_file prend un documentId de list_documents et renvoie le fichier stocké
lui-même — le même PDF ou image que l’application ouvre — comme une ressource intégrée avec son type MIME
(application/pdf, image/jpeg, …), à côté de l’id du document, du nom du fichier et de la taille — fichiers jusqu’à 10 Mo, le même plafond qu’un téléchargement. C’est
comme un assistant vérifie si une différence provient de la facture, de ce qui a été extrait ou
du mouvement auquel il a été associé, sans exporter quoi que ce soit. C’est une lecture : rien sur le
document, ses champs extraits ou ses liens ne change. Un document qui n’est pas le tien est simplement
non trouvé.
Classer des documents
Section intitulée « Classer des documents »upload_document est le seul outil qui écrit, et il a été choisi pour ce
rôle délibérément : il n’ajoute jamais que des éléments. L’assistant envoie le fichier
(PDF ou image, jusqu’à 10 Mo) et MoneyLights le traite à travers le même pipeline
qu’un téléchargement dans l’application — stocké, ses champs extraits (fournisseur, date,
numéro, montants) et auto-apparié avec tes transactions bancaires.
Envoyer le même fichier deux fois ne duplique jamais tes données : le re-téléchargement est enregistré comme un doublon signalé pointant vers l’original. Tout ce que l’assistant classe est visible — et supprimable — dans l’application.
Chaque autre écriture (création de clients, reclassement de transactions, configuration d’enveloppes…) reste dans l’application par choix : ces actions supposent un humain les confirmant.
Invites sélectionnées
Section intitulée « Invites sélectionnées »Le serveur propose également des points de départ prêts à l’emploi — une revue mensuelle du cashflow, une analyse des dépenses des fournisseurs, un nettoyage des documents manquants — listés uniquement lorsque ta clé peut exécuter tous les outils dont ils ont besoin. Utilise-les tels quels ou édite-les librement.
Sécurité
Section intitulée « Sécurité »- L’assistant est limité par la clé, vérifiée à chaque demande. Déclasse ou supprime le créateur de la clé et l’assistant se restreint ou s’arrête lors de l’appel suivant.
- Les données financières contiennent du texte écrit par des étrangers — références de paiement, documents envoyés par e-mail. Les résultats des outils sont livrés à l’intérieur d’une limite marquée indiquant au modèle de les traiter comme des données, jamais comme des instructions. Considère cela comme une atténuation, pas une garantie, et limite strictement les clés.
- Pour déconnecter un assistant, révoque sa clé dans Paramètres → Clés API. Immédiat, toujours disponible.
Donne à chaque assistant sa propre clé — une par client signifie que tu peux en couper une sans perturber le reste.