Serveur MCP
Badlen livre un serveur MCP qui expose huit outils par-dessus la surface /api/v1. C’est par là
qu’un relevé entier entre dans le produit d’un seul coup.
Vos relevés ──▶ Claude Code / Desktop ──▶ outils MCP ──▶ Badlen /api/v1 lit et extrait import_transactions dédoublonne, écrit (votre abonnement)Votre client Claude lit les fichiers, sur votre machine, sur votre abonnement. Le serveur est un pont stdio et ne porte aucun modèle : Badlen n’appelle donc jamais l’API d’Anthropic, aucune clé de modèle n’est jamais stockée sur le serveur, et rien d’un relevé n’atteint Badlen hormis des opérations déjà extraites.
L’installer
Section intitulée « L’installer »-
Ayez une instance Badlen en marche, et sachez à quelle adresse vous la joignez. Une instance installée depuis Docker Compose répond sur
http://localhost:8080: ce numéro est leWEB_PORTde votre.env, et le changer là change cette adresse. Derrière un proxy inverse, indiquez l’adresse que sert le proxy. Les exemples ci-dessous portent la valeur par défaut, qui est aussi celle que le serveur prend quandBADLEN_URLn’est pas renseignée. -
Ayez Node et pnpm sur la machine où tourne le client. Le serveur est un script Node que votre client Claude démarre directement, hors de Docker, si bien qu’une machine qui n’a suivi que Installation est à court des deux :
node22.12 ou plus récent etpnpm12, les versions que le dépôt épingle dans sonpackage.jsonracine. -
Lancez
pnpm installà la racine du dépôt, ce qui tire le SDK MCP. -
Émettez une clé API portant exactement cinq droits :
accounts:read,dashboard:read,positions:read,accounts:writeettransactions:write. -
Déclarez le serveur auprès de votre client. Le chemin vers
server.mjsdoit être absolu : le client ne le démarre pas depuis l’intérieur du dépôt.Fenêtre de terminal claude mcp add badlen \-e BADLEN_URL=http://localhost:8080 \-e BADLEN_API_KEY=sk_your_key \-- node /absolute/path/to/packages/mcp/src/server.mjsclaude_desktop_config.json {"mcpServers": {"badlen": {"command": "node","args": ["/absolute/path/to/packages/mcp/src/server.mjs"],"env": {"BADLEN_URL": "http://localhost:8080","BADLEN_API_KEY": "sk_your_key"}}}}
Les huit outils
Section intitulée « Les huit outils »| Outil | Ce qu’il fait |
|---|---|
list_accounts |
Les comptes, avec id, nom, type et valeur, pour que Claude sache où importer |
get_net_worth |
Le patrimoine net et l’allocation par classe d’actifs |
get_positions |
Les lignes par titre, avec les plus-values latentes et réalisées |
create_account |
Créer un compte où importer |
set_balance |
Poser le solde d’un compte manuel sur un jour donné |
add_holding |
Ajouter une ligne de fonds ou d’ETF par son ISIN, cours résolu automatiquement |
reconcile_transactions |
Simulation : comparer un envoi au compte sans rien écrire |
import_transactions |
Écrire l’envoi, dédoublonné |
Aucun d’eux ne supprime quoi que ce soit.
Importer un relevé
Section intitulée « Importer un relevé »Pointez votre client sur les fichiers et demandez-lui, en toutes lettres, de les importer dans
Badlen. Il normalise les opérations, appelle reconcile_transactions pour voir les doublons et vous
poser ses questions, puis appelle import_transactions une fois que vous avez répondu. Rejouer le
même relevé est sans danger : les doublons sont écartés. Ce que ce second appel fait de l’envoi
est sur la page de l’import.
Quand un appel échoue
Section intitulée « Quand un appel échoue »| Ce que vous voyez | Ce que cela veut dire |
|---|---|
401 sur tous les outils |
La clé est absente, inconnue, révoquée ou expirée |
403 sur un seul outil |
La clé a été émise sans le droit dont cet outil a besoin |
400 sur un montant |
Les montants voyagent en chaînes décimales ; un nombre JSON est refusé net |
400 sur une date |
Une date fait dix caractères, YYYY-MM-DD, et non un horodatage |
Toutes les routes qu’atteignent ces outils sont écrites dans la référence de l’API REST, générée depuis le contrôleur plutôt que tapée à la main.