Accueil/Documentation

Documentation

Documentation du serveur MCP Patriboum

Référence complète des tools, des types de nœuds et des règles fiscales modélisées — tout ce que votre IA peut construire, simuler et analyser avec Patriboum.

  • 22 tools MCP
  • 25 types de nœuds
  • 15 enveloppes fiscales
  • Gratuit

Patriboum est un serveur MCP (Model Context Protocol) qui expose un moteur de simulation patrimoniale française à un agent IA : construire le bilan d'un client, le simuler année par année, le stress-tester — et faire visualiser le résultat au client dans son navigateur via une simple URL qui ouvre l'application avec la session chargée.

  • Endpoint : https://patriboum.com/mcp (transport streamable HTTP, stateless)
  • Compatibilité : tout client MCP HTTP — Claude Desktop, Claude Code, Cursor, ZCode, Windsurf, VS Code, Gemini CLI… (voir le guide d'installation)
  • Gratuit, sans inscription. Voir l'avertissement légal.

Vue d'ensemble

Un agent connecté à Patriboum peut :

  1. Découvrir le domaine : catalogue des types de nœuds, règles de connexion, fiches produit par type (info_node : plafonds légaux, fiscalité sourcée, formules du moteur).
  2. Construire le patrimoine d'un client : comptes, stratégies d'épargne, prêts, détenteurs, événements — sous forme de graphe orienté.
  3. Simuler : projection déterministe ou Monte Carlo (jusqu'à 10 000 trajectoires), stress tests de krach, lecture en euros constants.
  4. Analyser : patrimoine net (dette déduite), impôts latents, revenus, allocation par classe d'actifs, liquidité en mois d'autonomie.
  5. Optimiser : répartition de l'épargne par recuit simulé, exploration de variantes du graphe.
  6. Partager : chaque session possède une URL qui ouvre l'application (éditeur de graphe) avec la session déjà chargée.

Architecture : l'agent parle au serveur en JSON-RPC sur POST /mcp ; le navigateur du client ouvre le viewUrl sur l'app GET /app?load=<id> (session chargée dans l'éditeur) ou la page read-only GET /session/<id> (auto-refresh 3 s). Sessions persistées en JSON côté serveur.

Agent IA (Claude/Cursor/ZCode…)          Navigateur du client
      │                                        │
      │ POST /mcp (JSON-RPC, stateless)        │ viewUrl → /app?load=<id>
      ▼                                        ▼   (ou /session/<id>, refresh 3 s)
┌──────────────────────────────────────────────────────┐
│  Serveur Patriboum                                   │
│  /mcp ← tools MCP     /app, /session/<id> ← navigateur│
│  moteur de simulation (fiscalité FR, Monte Carlo)     │
│  sessions : data/sessions/<uuid>.json                 │
└──────────────────────────────────────────────────────┘

Démarrage rapide

1. Connecter l'agent

Ajoutez l'URL https://patriboum.com/mcp à votre client MCP préféré — les snippets par client sont sur la page installation.

2. Créer une session

create_session(name="Patrimoine SCPI de Paul")
→ { "sessionId": "…", "viewUrl": "https://patriboum.com/app?load=…" }

Donnez le viewUrl au client : le lien ouvre l'application (éditeur de graphe) avec la session chargée — recharger la page pour voir les modifications ultérieures de l'agent.

3. Construire et connecter les nœuds

add_node(type="dca",    label="Épargne SCPI", params={money: 6000, end: 20})
add_node(type="scpi",   label="SCPI Européenne",
         params={capitalValue: 20000, revenueRate: 6, frenchShare: 0})
add_node(type="holder", label="Paul",
         params={avgTaxRate: 13, taxRate: 30, part: 2.5})
add_node(type="scenario", label="Patrimoine Paul")
connect(source="<dca>", target="<scpi>")
connect(source="<holder>", target="<scpi>")
connect(source="<scpi>", target="<scenario>")

Les nodeId sont renvoyés par chaque add_node. list_node_types et info_node donnent les paramètres et défauts de chaque type.

4. Simuler et analyser

run_simulation(sessionId, years=20)
→ capital final, performance, dividendes, impôts
run_monte_carlo(sessionId, years=30, runs=3000)
→ médiane, fourchettes p10–p90, taux de réussite
get_net_worth(sessionId, spending=18000, inflation=2)
→ patrimoine net, revenu requis, en euros constants

Référence des 22 tools

Découverte

ToolParamètresRôle
list_node_types—Catalogue : types de nœuds, paramètres (unités, défauts) et règles de connexion
get_schema—Même catalogue en JSON structuré (machine-readable)
list_templates—Flows d'exemple prêts à l'emploi
info_nodetypeFiche complète d'UN type : documentation produit (plafonds, fiscalité sourcée, positionnement conseil) + mécanique du simulateur (formules, pièges)

Sessions

ToolParamètresRôle
create_sessionname, template?Crée un patrimoine → {sessionId, viewUrl}
list_sessions—Sessions existantes, plus récentes d'abord
get_sessionsessionIdFlow complet + dernière simulation + viewUrl
get_nodesessionId, nodeFiche d'un nœud : paramètres résolus, méta, connexions, série annuelle

Construction

ToolParamètresRôle
add_nodesessionId, type, label?, params?, meta?, position?Ajoute un nœud avec les défauts de l'UI
update_nodesessionId, nodeId, label?, params?, meta?Modifie un nœud (fusion des paramètres, meta fusionné en profondeur)
remove_nodesessionId, nodeIdSupprime un nœud et ses connexions
connectsessionId, source, target, percentage?Connecte source → target (règles validées ; percentage pour un dispatcher)
disconnectsessionId, source, targetSupprime une connexion
set_flowsessionId, nodes, edgesRemplace tout le flow (équivalent import JSON)

Simulation & analyse

ToolParamètresRôle
run_simulationsessionId, years? (défaut 10), crashes?Déterministe : applique les taux configurés chaque année, retourne le résumé (capital, performance, dividendes, impôts)
run_monte_carlosessionId, years?, runs? (défaut 3000, max 10000), distribution?, seed?, crashes?Stochastique : médiane par année + fourchettes p10/p25/p75/p90 + distribution finale + taux de réussite
get_simulation_yearssessionId, years?, byAccount?, accounts?, mode?, inflation?Détail année par année : capital brut/net, revenus, impôts, frais, encaissé, impôt latent
get_net_worthsessionId, spending?, inflation?Patrimoine net consolidé ; avec spending, courbe du revenu requis (barista) et année d'autonomie passive
get_portfolio_allocationsessionId, year?Répartition par classe d'actifs (immobilier/actions/crypto/épargne)
get_liquiditysessionId, year?, monthlySpending?Répartition liquide/semi-liquide/illiquide ; avec monthlySpending, mois d'autonomie

Optimisation

ToolParamètresRôle
optimize_allocationsessionId, years? (défaut 25)Recuit simulé : répartit le montant des DCA entre les comptes pour maximiser le capital final
optimize_graphsessionId, iterations?, years?⚠️ Expérimental : exploration MCTS de variations du graphe

Paramètres transverses

crashes (stress test) — disponible sur run_simulation et run_monte_carlo. Chaque crash : {year, market, drawdown, recovery?, recoveryYears?, underperformance?}. Marchés : actions (CTO/PEA), crypto, av, scpi, immobilier. Après le choc à l'année year, deux formes de reprise : sous-performance (défaut — N ans sous le taux de N points, forme « L ») ou rebond (surtaxé pour refaire la perte, forme « V »).

{ year: 8, market: "actions", drawdown: -35, recoveryYears: 5 }

distribution — lognormal (défaut : tirages gaussiens avec la volatilité historique de chaque classe) ou bootstrap (rejoue de vraies années historiques — S&P 500 dividendes réinvestis 1995-2024, Bitcoin 2016-2024 — recalées sur les taux configurés). Les comptes à taux fixe (livrets, PEL, compte à terme) restent déterministes.

seed — rejoue une simulation identique : comparez deux allocations à aléa fixe.

inflation — sur get_simulation_years et get_net_worth (%, ex. 2) : convertit tous les montants de l'année N en euros constants (divisés par (1+i)^N) pour une lecture en pouvoir d'achat d'aujourd'hui. Filtre d'affichage : la simulation n'est pas recalculée.

Les 25 types de nœuds

Comptes d'investissement

TypeDescriptionPoints clés
peaPlan d'Épargne en ActionsPlafond 150 000 € de versements ; PFU 30,1 % avant 5 ans, exonération d'IR après ; débord possible vers CTO/PEA-PME
peaPmePEA-PMEPlafond 225 000 € partagé avec le PEA (75 000 € dédiés PME)
ctoCompte-titres ordinairePas de plafond, PFU 30,1 % sur les plus-values
avAssurance-vieSeuil 150 000 € de primes, abattement annuel 4 600/9 200 €, PFU 7,3/12,8 % + PS ; fiscalité du rachat avec prorata des gains
perPlan d'Épargne RetraiteDéduction à l'entrée (10 % du revenu, plafonné ~8×PASS), capital bloqué jusqu'à la retraite, sortie rente ou capital
scpiSCPIRendement + revalorisation, frenchShare (fiscalité française proportionnelle), démembrement NP/UF possible
realEstateImmobilier locatifLoyers indexés, plus-value immobilière (abattements 6–30 ans + surtaxe 50–250 k€), fiscalité au taux marginal
residenceRésidence principale / secondaireExonération de plus-value pour la résidence principale ; anti-double-comptage des flux
cryptoActifs numériquesPFU 30 % (12,8 % + PS)
compteTermCompte à termeTaux fixe contractuel, fiscalité PFU

Comptes d'épargne réglementée

TypeDescriptionPoints clés
livretALivret ATaux réglementé net d'impôt, plafond 22 950 €
lddsLivret de Développement Durable et SolidaireTaux réglementé, plafond 12 000 €
lepLivret d'Épargne PopulaireTaux réglementé majoré, sous condition de revenus
pelPlan d'Épargne LogementTaux garanti ; PEL ouverts depuis 2018 : PFU annuel (pas d'exonération après 12 ans)
currentAccountCompte courantTrésorerie, aucun rendement

Stratégies

TypeDescriptionParamètres clés
dcaVersements programmésmoney (€/an), start, end
lumpsumVersement uniquemoney, start
loanEmprunt (injecte le capital)money, rate, duration, loanType (amortissable/inFine/capitalConstant)
withdrawalRetraits programmésmoney (€/an), start, end

Aiguillage, détenteurs, événements

TypeDescription
dispatcherRépartit un flux entre plusieurs comptes (percentage sur chaque connexion, somme = 100 %)
holderDétenteur : taux moyen d'imposition, TMI, parts fiscales ; porte la fiscalité des comptes connectés
closeVente/liquidation d'un compte à une année donnée (déclenche la fiscalité de sortie)
lockGel des versements à partir d'une année (ex. primes AV figées)
scenarioSortie obligatoire du graphe : agrège le patrimoine d'un scénario
allBranchement pratique : compte connecté à tous les scénarios

Règles de connexion

  • Stratégies (dca, lumpsum, loan) → comptes ou dispatcher
  • Comptes → scenario ou dispatcher (le pea peut déborder vers un cto, le per vers av/cto, selon les règles de cascade)
  • dispatcher → comptes uniquement ; holder → comptes (fiscalité) ; close/lock → comptes
  • scenario = sortie : jamais source. Un flow sans scénario ne produit aucun résultat.

Les connexions invalides sont rejetées par connect avec un message explicatif.

Profils de prêt

Le nœud loan calcule au pas annuel selon loanType :

  • amortissable (défaut) : mensualité constante ; la part de capital remboursée progresse chaque année.
  • inFine : intérêts seuls chaque année, capital remboursé en totalité à l'échéance (duration obligatoire).
  • capitalConstant : même capital remboursé chaque année, mensualité décroissante (duration obligatoire).

Le capital emprunté est injecté dans le compte cible à l'année start ; les mensualités sont déduites des revenus du compte.

Métadonnées descriptives (`meta`)

Chaque nœud accepte un champ meta : objet libre ignoré par le moteur, restitué aux agents LLM et affiché dans l'UI. Convention recommandée :

{
  "profile": {
    "age": 38,
    "profession": "Dirigeant de PME",
    "maritalStatus": "marié",
    "children": 2
  },
  "lifeGoals": [{ "goal": "Arrêt de l'activité à 45 ans", "targetAge": 45 }]
}

Pour une SCPI : fiche de santé alignée sur les fiches publiques (identity, health : TOF, endettement, SRI ; performance, fees, diversification…). update_node fusionne le meta en profondeur : mettre à jour {profile: {age: 39}} conserve profession et objectifs.

Déroulé type — cas « patrimoine SCPI »

1. create_session(name="Patrimoine SCPI de Paul")   → sessionId, viewUrl
2. add_node(type="dca", label="Épargne SCPI", params={money: 6000, end: 20})
3. add_node(type="scpi", label="SCPI Européenne",
            params={capitalValue: 20000, revenueRate: 6, frenchShare: 0})
4. add_node(type="holder", label="Paul",
            params={avgTaxRate: 13, taxRate: 30, part: 2.5})
5. add_node(type="scenario", label="Patrimoine Paul")
6. connect(dca → scpi), connect(holder → scpi), connect(scpi → scenario)
7. run_simulation(sessionId, years=20)
8. get_portfolio_allocation(sessionId, year=20)  → 100 % immobilier

Bonnes pratiques de présentation

  • Montrez la médiane Monte Carlo au client (une chance sur deux de faire mieux), la moyenne restant un simple comparateur optimiste.
  • Présentez les deux lectures : euros courants (montants bruts) et euros constants (pouvoir d'achat, inflation: 2).
  • Stress-testez : un crash actions −35 % l'an 8 avec reprise « L » en 5 ans change souvent la conversation.
  • Comparez à effort égal : même flux d'épargne, deux allocations, même seed.

Auto-hébergement

Patriboum est une application Nuxt auto-hébergeable ; le serveur MCP vit dans l'application.

  • Endpoint local : http://localhost:3001/mcp (npm run dev)
  • NUXT_PUBLIC_BASE_URL : URL publique des viewUrls
  • PATRIMOINE_SESSIONS_DIR : dossier des sessions (défaut data/sessions/)
  • Transport stateless : aucun handshake persistant, compatible Nitro et tous les clients MCP.

Avertissement

Patriboum est un outil de simulation à vocation pédagogique : il ne fournit pas de conseil en investissement personnalisé et ne tient pas lieu d'analyse personnalisée. Les projections reposent sur des hypothèses saisies par l'utilisateur (taux, fiscalité en vigueur, susceptibles d'évolution) et ne préjugent pas des performances futures. Investir comporte un risque de perte en capital et des risques de liquidité. L'output d'un agent IA branché sur Patriboum doit être vérifié par un professionnel avant toute décision. Voir les mentions légales.