# Marcel (fr.marcel-retraite/marcel): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/fr.marcel-retraite%2Fmarcel/versions/latest)
- Connected to: https://marcel-retraite.fr/mcp
- Homepage: https://marcel-retraite.fr/developer
- Repository: https://github.com/marcel-retraite/marcel-mcp
- Scoring rules: v2
- Tools: 45
- Average: 47.2 / 100 (Cloudy)
- Near-identical pairs: 10

This page shows how Marcel (fr.marcel-retraite/marcel)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 45 tools. Above 40, models choose less accurately.
- Minor: The server's instructions are 2593 characters. Claude Code reads only the first 2,048 by default (Codex 0.154.0 reads them whole). Put what the server is for first.

## Tools

- `validate_results`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: results, results[].engine, results[].traceId, results[].status, results[].rulesVersion, results[].result.
  - Minor: String arguments with no constraint or example: results[].engine, results[].traceId, results[].status, results[].rulesVersion.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `marcel_revenue_at_retirement`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: pension, per, per.capitalAtRetirement, per.yearsOfFractionation, per.taxableIncomeAtRetirement, lmnp, av, av.capitalAtRetirement, av.yearsOfDrawdown, scpi, scpi.annualDistribution.
  - Minor: Says nothing about what it returns.
- `simulate_ifi`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: actifs, actifs[].label, actifs[].valeur, actifs[].type, actifs[].quotePartImmo, passifs, passifs[].label, passifs[].montant, passifs[].deductible, revenusFiscauxReference, irEstime, age.
  - Minor: String arguments with no constraint or example: actifs[].label, passifs[].label.
  - Minor: The meaning of the boolean argument passifs[].deductible is unclear.
  - Minor: Says nothing about what it returns.
- `simulate_marchand_biens`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: prixAchat, prixVente, travaux, autresCharges, regimeTVA, eligiblePME, sortieDividende.
  - Minor: The meaning of the boolean argument eligiblePME is unclear.
  - Minor: The meaning of the boolean argument sortieDividende is unclear.
  - Minor: Says nothing about what it returns.
- `compare_results`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: scenarioA, scenarioB.
  - Minor: Says nothing about what it returns.
- `simulate_immo_saint_barth`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: tresorerieSASU, prixAchat, loyersBrutsAn, chargesAnnuelles, prixRevente, horizonAnnees, tmiFrance, tauxPret.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_obo`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: valeurOpCo, apportPersonnel, detteBancaire, dureeDette, dividendeBrutAnnuel, prixAcquisitionTitres, dureeDetentionTitresAns, tmiDirigeant.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_sci_multi`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: loyersBruts, chargesDeductibles, interetsEmprunt, associes, associes[].id.
  - Minor: String arguments with no constraint or example: associes[].id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_immo_belgique`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: tresorerieSASU, prixAchat, loyersBrutsAn, chargesAnnuelles, prixRevente, horizonAnnees, tmiFrance, tauxPret.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_immo_italie`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: tresorerieSASU, prixAchat, loyersBrutsAn, chargesAnnuelles, prixRevente, horizonAnnees, tmiFrance, tauxPret.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_donation_partage`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: valeurPatrimoine, ageDonateur, typeDonation, beneficiaires, beneficiaires[].id, beneficiaires[].lienParente, beneficiaires[].abattementDejaUtilise, beneficiaires[].handicap.
  - Minor: String arguments with no constraint or example: beneficiaires[].id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument beneficiaires[].handicap is unclear.
  - Minor: Says nothing about what it returns.
- `compare_transmission`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: valeurPatrimoine, ageDonateur, heritiers, heritiers[].id, heritiers[].lienParente.
  - Minor: String arguments with no constraint or example: heritiers[].id.
  - Minor: Says nothing about what it returns.
- `simulate_immo_grece`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: tresorerieSASU, prixAchat, loyersBrutsAn, chargesAnnuelles, prixRevente, horizonAnnees.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_immo_uk`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: tresorerieSASU, loyersBrutsAnGBP, chargesAnnuellesGBP, prixReventeGBP, horizonAnnees, tmiFrance, tauxPret.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `registre_reglementaire`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `simulate_immo_espagne`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: tresorerieSASU, prixAchat, loyersBrutsAn, chargesAnnuelles, prixRevente, horizonAnnees.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_mere_fille`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: dividendeBrut, dureeDetentionAns, societeExclue, engagementConservation, tauxISMere.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument societeExclue is unclear.
  - Minor: The meaning of the boolean argument engagementConservation is unclear.
  - Minor: Says nothing about what it returns.
- `simulate_succession`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: actifBrut, heritiers, heritiers[].id, heritiers[].lienParente, heritiers[].abattementDejaUtilise, heritiers[].handicap.
  - Minor: String arguments with no constraint or example: heritiers[].id.
  - Minor: The meaning of the boolean argument heritiers[].handicap is unclear.
  - Minor: Says nothing about what it returns.
- `marcel_compare_scenarios`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: base.monthlyIncome, base.annualTaxableIncome, base.pensionNet, base.pensionNet.value, base.pensionNet.source, base.pensionNet.status, base.rfr.value, base.rfr.source, base.rfr.status, base.nombreParts, base.nombrePensionnesFoyer, base.birthYear, base.retirementAge, base.existingPerMonthly, scenarios[].modification.type, scenarios[].modification.value.
  - Minor: String arguments with no constraint or example: base.pensionNet.source, base.pensionNet.status, base.rfr.source, base.rfr.status.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_immo_portugal`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: prixAchat, loyersBrutsAn, chargesAnnuelles, prixRevente, horizonAnnees.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `marcel_estimate_pension`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: regime, samSaisi, trimestresRG, trimestresLiberal, pointsCNAVPL, pointsComplementaire, anneesAffiliationCipav, rfr, rfr.value, rfr.source, rfr.status, rfrPrecedent.value, rfrPrecedent.source, rfrPrecedent.status.
  - Minor: String arguments with no constraint or example: rfr.source, rfr.status, rfrPrecedent.source, rfrPrecedent.status.
  - Minor: Says nothing about what it returns.
- `marcel_find_gap`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: pensionNet.value, pensionNet.source, pensionNet.status, rfr.value, rfr.source, rfr.status, rfrValue, tauxCsgSaisi, existingAssets[].type, existingAssets[].estimatedMonthlyIncome.
  - Minor: String arguments with no constraint or example: pensionNet.source, pensionNet.status, rfr.source, rfr.status, existingAssets[].type.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_per_sortie`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: rendementAnnuel, horizonAns, objetCalcul, tauxReversionConjoint.
  - Minor: Says nothing about what it returns.
- `simulate_rachat`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `acheter_louer`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: prix, apport, credit.capital, credit.duree_mois, credit.assurance_base, credit.assures, credit.assures[].quotite, credit.quotite_totale, loyer_annuel, taxe_fonciere_annuelle, charges_annuelles, charges_locatives_annuelles, travaux, frais_de_vente, patrimoine_immobilier_taxable.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `marcel_financial_twin`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: profile, profile.pensionNet.value, profile.pensionNet.source, profile.pensionNet.status, profile.rfr.value, profile.rfr.source, profile.rfr.status, profile.rfrValue, profile.tauxCsgSaisi.
  - Minor: String arguments with no constraint or example: profile.pensionNet.source, profile.pensionNet.status, profile.rfr.source, profile.rfr.status.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_dutreil`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: valeurTitres, prixRevient, nbEnfants, ageDirigeant, horizonCession, eccDuree, eicDuree.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_sci_ir_vs_is`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: prixAcquisition, loyersBruts, chargesAnnuelles, horizonAnnees.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `optimiser_patrimoine`: 51 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: enveloppes.titresSociete.nbEnfants, transmission.beneficiaires[].nombre.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_av`: 51 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: valeurContrat, versementsTotal, ancienneteAns, objetCalcul, primesParAge[].montant, beneficiairesTransmission[].id, beneficiairesTransmission[].nom, beneficiairesTransmission[].lien, montantRachat.
  - Minor: String arguments with no constraint or example: beneficiairesTransmission[].id, beneficiairesTransmission[].nom.
  - Minor: Says nothing about what it returns.
- `compare_chemin`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `simulate_remuneration_per`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `marcel_simulate_decision`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: profile.pensionNet.value, profile.pensionNet.source, profile.pensionNet.status, profile.rfr.value, profile.rfr.source, profile.rfr.status, profile.rfrValue, profile.tauxCsgSaisi.
  - Minor: String arguments with no constraint or example: profile.pensionNet.source, profile.pensionNet.status, profile.rfr.source, profile.rfr.status.
  - Minor: Says nothing about what it returns.
- `compare_allocation`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: asset.
  - Minor: Says nothing about what it returns.
- `simulate_av_strategie`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_cto`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: moinsValuesReportables[].montant, plusValuesAvant2018[].ansDetention.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `simulate_cumul`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `simulate_per`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `simulate_pv_immo_ir`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_apport_cession`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `simulate_demembrement`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: donationsAnterieures[].montant, donationsAnterieures[].beneficiaire, donationsAnterieures[].donateur.
  - Minor: Says nothing about what it returns.
- `compare_remuneration`: 56 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: situation.
  - Minor: Says nothing about what it returns.
- `simulate_cession_titres_vs_actifs`: 56 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: prixVente, prixAcquisition, dureeDetentionAns, tauxIS, eligiblePME.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument eligiblePME is unclear.
  - Minor: Says nothing about what it returns.
- `simulate_donation`: 56 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `simulate_pea`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: objetCalcul.
  - Minor: Says nothing about what it returns.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
