Skip to main content
Glama

Fiscalité d'un compte-titres ordinaire

simulate_cto
Read-onlyIdempotent

Calcule, pour une année, la fiscalité d'un compte-titres ordinaire d'une personne physique (CGI art. 200 A, 158, 150-0 A et 150-0 D). Entrées : plus-values, moins-values, dividendes, intérêts, option pour le barème, revenu imposable du foyer hors prélèvement forfaitaire, nombre de parts, situation, revenu fiscal de référence, dispense, moins-values reportables et plus-values de titres acquis avant 2018. Sortie : impôt sur le revenu et prélèvements sociaux, séparés. Par défaut, prélèvement forfaitaire. L'option globale pour le barème est chiffrée lorsque le revenu imposable hors ces revenus et le nombre de parts sont fournis ; sinon le résultat est le forfait et indique que l'option n'est pas chiffrée. Les moins-values s'imputent sur les seules plus-values, avec un report de dix ans.

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_cto"
  }
}

Input Schema

NameRequiredDescriptionDefault
anneeNoAnnée des revenus. Seule 2026 est couverte. Absente : 2026, indiqué dans le résultat.
partsNoNombre de parts du foyer. Absent : l'option pour le barème n'est pas chiffrée.
interetsNoIntérêts et coupons bruts.
situationNoSeul ou couple. Sert à la dispense de prélèvement forfaitaire non libératoire et aux parts de référence du plafonnement du quotient familial. Absente : la dispense n'est pas appréciée, et le plafonnement retient 2 parts de référence.
dividendesNoDividendes bruts.
plusValuesNoPlus-values de cession de l'année, avant imputation des moins-values. Zéro est un gain nul.
moinsValuesNoMoins-values de cession de la même année.
dispensePfnlNoDispense de prélèvement forfaitaire non libératoire demandée dans le délai. Absente : le prélèvement est retenu.
optionBaremeNoOption globale annuelle pour le barème. Absente : prélèvement forfaitaire.
plusValuesAvant2018NoTitres acquis avant 2018. L'abattement pour durée de détention s'applique avec l'option pour le barème.
moinsValuesReportablesNoMoins-values des années antérieures encore reportables, une ligne par année.
revenuImposableHorsPfuNoRevenu imposable du foyer hors dividendes, intérêts et plus-values du prélèvement forfaitaire. Zéro est un revenu nul. Absent : l'option pour le barème n'est pas chiffrée.
revenuFiscalReferenceN2NoRevenu fiscal de référence de l'avant-dernière année, lorsqu'il est connu.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / situation / description
      Previous value: -"Seul ou couple. Sert à la dispense de prélèvement forfaitaire non libératoire. Absente : la dispense n'est pas appréciée."New value: +"Seul ou couple. Sert à la dispense de prélèvement forfaitaire non libératoire et aux parts de référence du plafonnement du quotient familial. Absente : la dispense n'est pas appréciée, et le plafonnement retient 2 parts de référence."
  2. Changed6 schema fields changed
    • changedInput schema / properties / annee / description
      Previous value: -"Année des revenus. Seule 2026 est couverte. Absente : 2026, et le résultat le dit."New value: +"Année des revenus. Seule 2026 est couverte. Absente : 2026, indiqué dans le résultat."
    • changedInput schema / properties / parts / description
      Previous value: -"Nombre de parts. Absent : l'option barème n'est pas chiffrée. Ne pas le supposer."New value: +"Nombre de parts du foyer. Absent : l'option pour le barème n'est pas chiffrée."
    • changedInput schema / properties / plusValuesAvant2018 / description
      Previous value: -"Titres acquis avant 2018. L'abattement pour durée de détention ne s'applique qu'avec l'option barème."New value: +"Titres acquis avant 2018. L'abattement pour durée de détention s'applique avec l'option pour le barème."
    • changedInput schema / properties / revenuFiscalReferenceN2 / description
      Previous value: -"Revenu fiscal de référence de l'avant-dernière année, seulement s'il est connu."New value: +"Revenu fiscal de référence de l'avant-dernière année, lorsqu'il est connu."
    • changedInput schema / properties / revenuImposableHorsPfu / description
      Previous value: -"Revenu imposable du foyer hors dividendes, intérêts et plus-values du prélèvement forfaitaire. Zéro est un revenu nul. Absent : l'option barème n'est pas chiffrée."New value: +"Revenu imposable du foyer hors dividendes, intérêts et plus-values du prélèvement forfaitaire. Zéro est un revenu nul. Absent : l'option pour le barème n'est pas chiffrée."
    • changedInput schema / properties / situation / description
      Previous value: -"Pour la dispense de prélèvement forfaitaire non libératoire. Absente : la dispense n'est pas appréciée."New value: +"Seul ou couple. Sert à la dispense de prélèvement forfaitaire non libératoire. Absente : la dispense n'est pas appréciée."
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description layers on genuinely new behavior: only 2026 is covered, the default regime is PFU, the barème fallback is signalled in the result, and moins-values offset only plus-values with a ten-year carryforward. That is exactly the extra context an agent needs beyond the safety hints.

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 with purpose, then inputs, then output, then the key dependencies — a logical flow with no wasted sentences. The mid-sentence list of inputs largely duplicates the fully-described schema, so it could be trimmed, but nothing is misleading or padded.

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 13-parameter tool with no output schema and no required parameters, the description closes the gaps: it names the two outputs (IR and prélèvements sociaux, reported separately), the default regime, the fallback behavior, and the carryforward rule. An agent has everything needed to call it and interpret the response.

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 coverage is 100%, so the baseline is 3, but the description adds real meaning the schema does not: it states that parts and revenuImposableHorsPfu must both be present to quantify the barème option, and that otherwise the result stays at the forfait and flags the option as uncosted. The input enumeration otherwise restates the schema, keeping it off 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?

States a specific verb (calcule) plus the exact resource (fiscalité d'un compte-titres ordinaire pour une personne physique) and anchors it with the governing CGI articles. The resource itself (CTO) distinguishes it from siblings simulate_av, simulate_pea and simulate_per_sortie, so an agent can route without opening the schema.

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?

Clearly scopes the tool to a single year and a single taxpayer, and spells out the operating conditions (default is prélèvement forfaitaire; the barème option is only quantified when revenuImposableHorsPfu and parts are supplied, otherwise the result says so). It never names a sibling alternative explicitly, so it falls short of a 5, but the context is unambiguous enough to select it correctly.

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.