Skip to main content
Glama

Droits d'une donation

simulate_donation
Read-onlyIdempotent

Calcule les droits d'une donation simple, sans acte de partage : pleine propriété, nue-propriété ou usufruit (CGI art. 777 et 779), y compris une même somme donnée à chacun des enfants en une fois, donations progressives sur les abattements, ou assurance-vie hors succession (CGI art. 990 I et 757 B). Porte sur une donation simple ; l'acte de partage entre héritiers (donation-partage, art. 1075 du Code civil) relève de simulate_donation_partage ; pour la nue-propriété avec le barème de l'article 669 en détail, voir simulate_demembrement ; pour une transmission globale avec plusieurs options, optimiser_patrimoine. Entrées : mode, valeur du bien, âge du donateur, nombre de donataires, type de donation, lien, donations antérieures, nature du bien, donateurs (1 ou 2). donationsAnterieures en nombre est imputé sur chaque donataire (CGI art. 784). En liste, chaque montant vise un beneficiaire (index à partir de 1, ou tous) et un donateur (1 ou 2). Sans cette précision, l'hypothèse d'imputation est indiquée. donateurs absent : 1. Avec 2, chaque parent transmet la moitié, avec son abattement et son âge. ageDonateurConjoint absent : le même âge, signalé. En assurance-vie hors succession, les gains d'unités de compte et du fonds en euros sont facultatifs. Lorsqu'ils sont fournis, les prélèvements sociaux de 17,2 % sur les unités de compte (CSS art. L136-7) sont déduits avant l'article 990 I. Absents, ces prélèvements ne sont pas déduits et le résultat le dit. La réduction de 50 % de l'article 790 porte sur les droits d'une donation en pleine propriété, depuis le 31 juillet 2011, de titres éligibles à l'article 787 B ou de biens d'entreprise individuelle éligibles à l'article 787 C, par un donateur de moins de 70 ans. Un bien ordinaire n'ouvre pas cette réduction. En donations progressives, comparaison contient la donation immédiate du même montant, les vagues tous les 15 ans et, en cas de décès avant une vague, la succession du reste, sans probabilité de survie. Sortie : la réponse de la route, avec sa base après abattement, ses droits, son traceId et sa version de règles. Le champ avertissement porte : estimation indicative, pas un conseil en investissement.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "simulate_donation"
  }
}

Input Schema

NameRequiredDescriptionDefault
modeNoDONATION par défaut, DONATIONS_PROGRESSIVES, ou AV_SUCCESSION.
capitalAVNoCapital du contrat d'assurance-vie, en euros. Requis pour le mode assurance-vie hors succession.
donateursNoNombre de donateurs. Absent : 1. Avec 2, chaque parent transmet la moitié de la valeur, avec son abattement et son âge.
horizonAnsNoHorizon en années. Requis pour des donations progressives.
natureBienNoORDINAIRE si absent : pas de réduction de l'article 790. TITRES_787_B ou BIENS_EI_787_C : réduction de 50 % si la donation est en pleine propriété et le donateur a moins de 70 ans.
valeurBienNoValeur du bien ou du portefeuille à transmettre, en euros. Requis pour une donation et pour des donations progressives.
ageDonateurNoÂge du donateur en années révolues. Requis pour une donation. Sert au barème de l'article 669 et au seuil de 70 ans de l'article 790.
lienParenteNoRequis pour une donation : LIGNE_DIRECTE (de parent à enfant), PETIT_ENFANT, ARRIERE_PETIT_ENFANT, CONJOINT, FRERE_SOEUR, NEVEU_NIECE ou AUTRE. Absent : refus, avec la question à poser. Abattement et barème de l'article 777 propres à chaque lien.
reductionPPNoAncien interrupteur. Ignoré : il ne rétablit ni ne retire la réduction de l'article 790.
plusValuesUCNoGains d'unités de compte, en euros. Avec plusValuesFondsEuros, les prélèvements sociaux de 17,2 % (CSS art. L136-7) sont déduits avant l'article 990 I. Absents ensemble : ces prélèvements ne sont pas déduits, et le résultat le dit.
typeDonationNoPLEINE_PROPRIETE, NUE_PROPRIETE ou USUFRUIT. Absent : la donation n'est pas traitée comme une pleine propriété au sens de l'article 790.
primesApres70NoPrimes versées à partir de 70 ans, en euros. Absentes : 0.
primesAvant70NoPrimes versées avant 70 ans, en euros. Absentes : égales au capital.
nombreDonatairesNoNombre de donataires. Requis pour une donation et pour des donations progressives. La valeur est partagée, puis l'abattement s'applique à chaque part.
ageDonateurConjointNoÂge du second donateur. Absent avec deux donateurs : le même âge est retenu et signalé. Ignoré avec un seul donateur, et signalé comme non repris.
nombreBeneficiairesNoNombre de bénéficiaires du contrat. Absent : nombre de donataires, sinon 1.
donationsAnterieuresNoDonations antérieures sur 15 ans (CGI art. 784). Un nombre, en euros, est imputé sur chaque donataire. Une liste précise chaque montant, avec beneficiaire (index à partir de 1, ou tous) et donateur (1 ou 2). Sans beneficiaire, le montant est imputé sur le premier donataire et l'hypothèse est indiquée. Absentes : 0.
plusValuesFondsEurosNoGains du fonds en euros, en euros. Les prélèvements sociaux ont déjà été prélevés sur cette part. À fournir avec plusValuesUC.
ageUsufruitierConjointNoÂge du second usufruitier, retenu si ageDonateurConjoint est absent. Si les deux diffèrent, ageDonateurConjoint est retenu et celui-ci est signalé comme non repris.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / lienParente / description
      Previous value: -"LIGNE_DIRECTE (de parent à enfant), PETIT_ENFANT, ARRIERE_PETIT_ENFANT, CONJOINT, FRERE_SOEUR, NEVEU_NIECE ou AUTRE. Absent : de parent à enfant, abattement de 100 000 euros par donataire. Abattement et barème de l'article 777 propres à chaque lien."New value: +"Requis pour une donation : LIGNE_DIRECTE (de parent à enfant), PETIT_ENFANT, ARRIERE_PETIT_ENFANT, CONJOINT, FRERE_SOEUR, NEVEU_NIECE ou AUTRE. Absent : refus, avec la question à poser. Abattement et barème de l'article 777 propres à chaque lien."
  2. Changed2 schema fields changed
    • changedInput schema / properties / lienParente / description
      Previous value: -"LIGNE_DIRECTE, CONJOINT, FRERE_SOEUR ou AUTRE. Absent : ligne directe, abattement de 100 000 euros par donataire."New value: +"LIGNE_DIRECTE (de parent à enfant), PETIT_ENFANT, ARRIERE_PETIT_ENFANT, CONJOINT, FRERE_SOEUR, NEVEU_NIECE ou AUTRE. Absent : de parent à enfant, abattement de 100 000 euros par donataire. Abattement et barème de l'article 777 propres à chaque lien."
    • changedInput schema / properties / lienParente / enum
      Previous value: -[
      -  "LIGNE_DIRECTE",
      -  "CONJOINT",
      -  "FRERE_SOEUR",
      -  "AUTRE"
      -]New value: +[
      +  "LIGNE_DIRECTE",
      +  "PETIT_ENFANT",
      +  "ARRIERE_PETIT_ENFANT",
      +  "CONJOINT",
      +  "FRERE_SOEUR",
      +  "NEVEU_NIECE",
      +  "AUTRE"
      +]
  3. Changed7 schema fields changed
    • addedInput schema / properties / ageDonateurConjoint
      Added value: +{
      +  "description": "Âge du second donateur. Absent avec deux donateurs : le même âge est retenu et signalé. Ignoré avec un seul donateur, et signalé comme non repris.",
      +  "maximum": 120,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / ageUsufruitierConjoint
      Added value: +{
      +  "description": "Âge du second usufruitier, retenu si ageDonateurConjoint est absent. Si les deux diffèrent, ageDonateurConjoint est retenu et celui-ci est signalé comme non repris.",
      +  "maximum": 120,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / donateurs
      Added value: +{
      +  "description": "Nombre de donateurs. Absent : 1. Avec 2, chaque parent transmet la moitié de la valeur, avec son abattement et son âge.",
      +  "enum": [
      +    1,
      +    2
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / donationsAnterieures / anyOf
      Added value: +[
      +  {
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "beneficiaire": {
      +          "anyOf": [
      +            {
      +              "exclusiveMinimum": 0,
      +              "type": "integer"
      +            },
      +            {
      +              "const": "tous",
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        "donateur": {
      +          "enum": [
      +            1,
      +            2
      +          ],
      +          "type": "number"
      +        },
      +        "montant": {
      +          "minimum": 0,
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "montant"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  }
      +]
    • changedInput schema / properties / donationsAnterieures / description
      Previous value: -"Donations antérieures au même donataire sur 15 ans, en euros. Absentes : 0."New value: +"Donations antérieures sur 15 ans (CGI art. 784). Un nombre, en euros, est imputé sur chaque donataire. Une liste précise chaque montant, avec beneficiaire (index à partir de 1, ou tous) et donateur (1 ou 2). Sans beneficiaire, le montant est imputé sur le premier donataire et l'hypothèse est indiquée. Absentes : 0."
    • removedInput schema / properties / donationsAnterieures / minimum
      Removed value: -0
    • removedInput schema / properties / donationsAnterieures / type
      Removed value: -"number"
  4. Changed2 schema fields changed
    • addedInput schema / properties / plusValuesFondsEuros
      Added value: +{
      +  "description": "Gains du fonds en euros, en euros. Les prélèvements sociaux ont déjà été prélevés sur cette part. À fournir avec plusValuesUC.",
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / plusValuesUC
      Added value: +{
      +  "description": "Gains d'unités de compte, en euros. Avec plusValuesFondsEuros, les prélèvements sociaux de 17,2 % (CSS art. L136-7) sont déduits avant l'article 990 I. Absents ensemble : ces prélèvements ne sont pas déduits, et le résultat le dit.",
      +  "minimum": 0,
      +  "type": "number"
      +}
  5. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare a pure read-only, idempotent, closed-world simulation, and the description still adds substantial behavior beyond them: defaulting rules (donateurs absent = 1, ageDonateurConjoint inherits the same age "signalé"), assumption disclosure when imputation is unspecified, conditional deduction of the 17,2 % prélèvements sociaux, what the progressive-donation comparison actually contains (vagues tous les 15 ans, succession du reste, no survival probability), and the return payload (base après abattement, droits, traceId, version de règles, champ avertissement). It also warns that the output is indicative and not investment advice.

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

Conciseness3/5

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

Front-loading is good — purpose and sibling routing come first — but the body is a single dense paragraph mixing inputs, defaults, tax doctrine and output fields with no visual separation, and it repeats material already in the schema (the 17,2 % CSS deduction, the art. 790 conditions appear twice). With 19 parameters the length is defensible, but the structure could be segmented into modes or input/output blocks.

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

Completeness5/5

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

For a 19-parameter tax simulator with no output schema, the description covers the necessary ground: which inputs matter per mode (capitalAV for AV, horizonAns for progressives, valeurBien and ageDonateur for a donation), the defaults when optional fields are omitted, the legislative basis, and what the response contains including the avertissement disclaimer. Nothing needed to call it correctly in any of the three modes is left implicit.

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?

Schema description coverage is 100 %, so the baseline is 3, and the description does add meaning on top: donationsAnterieures is imputed on each donataire per CGI art. 784, list entries carry a beneficiaire index (starting at 1, or "tous") and a donateur (1 or 2), and missing beneficiaire defaults to the first donataire with the assumption flagged. Some passages (17,2 % social charges, the art. 790 conditions) largely restate what the schema already documents, which keeps it below a 5.

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 and resource: "Calcule les droits d'une donation simple, sans acte de partage", then enumerates the covered variants (pleine propriété, nue-propriété, usufruit; donations progressives; assurance-vie hors succession) with the governing CGI articles. It explicitly names the sibling tools it is not (simulate_donation_partage, simulate_demembrement, optimiser_patrimoine), so an agent can separate it from neighbours without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit routing rules: donation simple here, donation-partage to simulate_donation_partage (art. 1075), detailed art. 669 démembrement barème to simulate_demembrement, multi-option global transmission to optimiser_patrimoine. It also states the exclusion test for the art. 790 reduction ("Un bien ordinaire n'ouvre pas cette réduction"), which is exactly the kind of when-not guidance that prevents mis-invocation.

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.