Skip to main content
Glama

Fiscalité d'un contrat d'assurance-vie

simulate_av
Read-onlyIdempotent

Calcule la fiscalité d'un contrat d'assurance-vie : rachat, avance ou transmission (CGI art. 125-0 A, 990 I, 757 B et 777). Entrées : valeur du contrat, total des versements, ancienneté en années, objet du calcul, et, pour une transmission, primes par âge au versement et bénéficiaires (lien, quote-part). Sortie : montants de rachat, d'avance ou transmis. netRachat est un net de contrat, distinct du net du foyer. Au rachat, les prélèvements sociaux de 17,2 % portent sur la part d'unités de compte lorsque plusValuesUC et plusValuesFondsEuros sont fournis. Sans cette répartition, ils sont calculés sur l'ensemble des gains (majorant) : ceux du fonds en euros sont déjà prélevés chaque année. Le régime de transmission suit l'âge de l'assuré à chaque prime : avant 70 ans, CGI art. 990 I ; à partir de 70 ans, CGI art. 757 B (abattement de 30 500 euros par assuré, partagé au prorata, primes seules taxées), puis CGI art. 777 selon le lien. Sans primesParAge ou beneficiairesTransmission, le calcul de transmission est refusé.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "valeurContrat": "<valeurContrat>",
      "versementsTotal": "<versementsTotal>",
      "ancienneteAns": "<ancienneteAns>",
      "objetCalcul": "<objetCalcul>"
    },
    "name": "simulate_av"
  }
}

Input Schema

NameRequiredDescriptionDefault
tmiNoTMI du foyer en taux décimal (0.30 pour 30 %), lorsqu'elle est fournie. Absente : l'option pour le barème n'est pas chiffrée.
ageAssureNoÂge actuel de l'assuré. Le régime de transmission suit l'âge à chaque prime, pas cet âge.
objetCalculYes
plusValuesUCNoGains d'unités de compte. Les prélèvements sociaux de 17,2 % portent sur cette part.
primesParAgeNoPrimes avec l'âge de l'assuré au versement. Entrée du calcul de transmission. Absente : ce calcul est refusé.
ancienneteAnsYes
montantRachatNo
valeurContratYes
nbBeneficiairesNoNombre de bénéficiaires. La transmission se calcule à partir de beneficiairesTransmission.
primesAvant2017NoPrimes de ce contrat versées avant le 27/09/2017. Absentes : toutes les primes sont traitées comme postérieures à cette date.
versementsTotalYes
situationFamilialeNoPersonne seule ou couple.
primesTotalesAssureNoPrimes de tous les contrats de l'assuré encore investies, pour le seuil de 150 000 euros.
plusValuesFondsEurosNoGains du fonds en euros. Avec plusValuesUC, entrée du calcul lorsque le contrat a des gains. Au rachat, les prélèvements sociaux ne sont pas dus une seconde fois sur cette part.
beneficiairesTransmissionNoBénéficiaires de la transmission : lien de parenté et quote-part. Absents : le calcul de transmission est refusé.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / plusValuesFondsEuros / description
      Previous value: -"Gains du fonds en euros. Avec plusValuesUC, entrée du calcul lorsque le contrat a des gains."New value: +"Gains du fonds en euros. Avec plusValuesUC, entrée du calcul lorsque le contrat a des gains. Au rachat, les prélèvements sociaux ne sont pas dus une seconde fois sur cette part."
  2. Changed11 schema fields changed
    • changedInput schema / properties / ageAssure / description
      Previous value: -"Ne choisit pas le régime de transmission. Le régime suit l'âge à chaque prime."New value: +"Âge actuel de l'assuré. Le régime de transmission suit l'âge à chaque prime, pas cet âge."
    • changedInput schema / properties / beneficiairesTransmission / description
      Previous value: -"Requis pour une transmission : lien de parenté et quote-part."New value: +"Bénéficiaires de la transmission : lien de parenté et quote-part. Absents : le calcul de transmission est refusé."
    • changedInput schema / properties / beneficiairesTransmission / items / properties / abattementSuccessoralRestant / description
      Previous value: -"Abattement successoral encore disponible. Absent : abattement légal plein du lien, signalé."New value: +"Abattement successoral encore disponible. Absent : abattement légal plein du lien, signalé dans le résultat."
    • changedInput schema / properties / nbBeneficiaires / description
      Previous value: -"Ignoré pour la transmission. Passer beneficiairesTransmission."New value: +"Nombre de bénéficiaires. La transmission se calcule à partir de beneficiairesTransmission."
    • changedInput schema / properties / plusValuesFondsEuros / description
      Previous value: -"Gains du fonds en euros. Requis, avec plusValuesUC, si le contrat a des gains."New value: +"Gains du fonds en euros. Avec plusValuesUC, entrée du calcul lorsque le contrat a des gains."
    • changedInput schema / properties / plusValuesUC / description
      Previous value: -"Gains d'unités de compte. Les prélèvements sociaux de 17,2 % ne portent que sur cette part."New value: +"Gains d'unités de compte. Les prélèvements sociaux de 17,2 % portent sur cette part."
    • changedInput schema / properties / primesAvant2017 / description
      Previous value: -"Primes de ce contrat versées avant le 27/09/2017. Absent : toutes supposées postérieures (hypothèse la moins favorable)."New value: +"Primes de ce contrat versées avant le 27/09/2017. Absentes : toutes les primes sont traitées comme postérieures à cette date."
    • changedInput schema / properties / primesParAge / description
      Previous value: -"Requis pour une transmission. Sans cette liste, le calcul est refusé."New value: +"Primes avec l'âge de l'assuré au versement. Entrée du calcul de transmission. Absente : ce calcul est refusé."
    • changedInput schema / properties / primesParAge / items / properties / ageAuVersement / description
      Previous value: -"Âge de l'assuré au versement. Avant 70 ans : 990 I. À partir de 70 ans : 757 B."New value: +"Âge de l'assuré au versement. Avant 70 ans : CGI art. 990 I. À partir de 70 ans : CGI art. 757 B."
    • changedInput schema / properties / situationFamiliale / description
      Previous value: -"Personne seule ou couple. Même vocabulaire que compare_allocation."New value: +"Personne seule ou couple."
    • changedInput schema / properties / tmi / description
      Previous value: -"TMI du foyer en taux décimal (0.30 pour 30 %), seulement si la personne la donne. Absente : l'option barème n'est pas chiffrée."New value: +"TMI du foyer en taux décimal (0.30 pour 30 %), lorsqu'elle est fournie. Absente : l'option pour le barème n'est pas chiffrée."
  3. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a pure idempotent read-only calculation, and the description adds real domain behavior beyond them: 17,2 % social levies apply to the UC share only when the split is supplied, otherwise on all gains as an upper bound; the euro-fund share is not double-taxed; transfer regime follows age at each premium (990 I vs 757 B with the 30 500 € abattement pro-rated). This is exactly the context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose, then inputs, output, then behavioral caveats in a single dense block with no filler sentences. It is long, and the refusal condition is partly restated from the schema descriptions, but each sentence carries substantive information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description only sketches the return ('montants de rachat, d'avance ou transmis', plus a note that the legal abattement is flagged in the result). For a five-mode, 15-parameter calculation this is slightly thin on output shape, but the decision-critical behavior is fully covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 67 % schema coverage across 15 parameters, the description compensates by explaining the semantics that matter: the age-at-premium rule that overrides ageAssure for transmission, the UC/euro-fund gain split, and that netRachat is a contract-level net distinct from household net. Some parameters (montantRachat, nbBeneficiaires, tmi, ancienneteAns) receive no added meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Calcule la fiscalité d'un contrat d'assurance-vie') and immediately enumerates the three modes it covers (rachat, avance, transmission) with the governing CGI articles. The product domain (assurance-vie) cleanly separates it from siblings like simulate_cto, simulate_pea and simulate_per_sortie.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains which inputs gate which calculation ('Sans primesParAge ou beneficiairesTransmission, le calcul de transmission est refusé') and when the PS majorant applies if plusValuesUC/plusValuesFondsEuros are omitted. It does not explicitly route to a sibling or state when not to use this tool (e.g. for capitalisation contracts), so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.