Skip to main content
Glama

MaCalculatriceEnLigne

Calculate Moroccan Income Tax

calculate_moroccan_income_tax
Read-onlyIdempotent

Calculate Moroccan income tax (IR) on annual net taxable income (SNI) using the CGI Art. 73 progressive scale, minus the family-charge tax reduction. Returns: {annual_income_mad, taxable_income, family_deduction, income_tax_before_family_reduction_mad, income_tax_mad, effective_rate_pct, marginal_rate_pct, brackets}. See list_bundles for related 'finance-afrique-quebec' calculators.

Input Schema

NameRequiredDescriptionDefault
dependentsNoNumber of dependents (tax reduction of 600 MAD/year each, max 6)
annual_income_madYesAnnual net taxable income (SNI) in MAD: gross minus CNSS/AMO and professional expenses

Output Schema

NameRequiredDescriptionDefault
resultNoComputed result. Object whose fields depend on the tool (e.g. {tax, marginal_rate, brackets} for tax tools, {volume_l, gallons} for volume tools).
sourceNoAuthoritative source for the rule or formula (e.g. "Article 197 CGI", "NF DTU 21").
formulaNoHuman-readable formula or method used (e.g. "I=P·r·t", "Magnus formula").
reference_urlNoLink to a calcul2 page documenting the calculation in detail.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / annual_income_mad / description
      Previous value: -"Annual gross income in Moroccan Dirhams (MAD)"New value: +"Annual net taxable income (SNI) in MAD: gross minus CNSS/AMO and professional expenses"
    • changedInput schema / properties / dependents / description
      Previous value: -"Number of dependents (360 MAD deduction each, max 6)"New value: +"Number of dependents (tax reduction of 600 MAD/year each, max 6)"
  2. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: the computation method (progressive CGI Art. 73 scale) and the fact that a family-charge reduction is applied, which tells the agent the result is a net-of-reduction figure.

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?

Two sentences, front-loaded with the core action and tax basis, followed by the cross-reference. The enumerated return-key list is somewhat long and partially duplicates the output schema, but it does not obscure the primary intent.

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?

An output schema exists, so return values did not need spelling out, yet the description still enumerates them — redundant but harmless. Combined with 100% schema coverage and full annotations, an agent has everything needed to invoke the tool correctly; only the when-to-use routing is thin.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (annual_income_mad, dependents) are already fully documented including the 600 MAD/dependent cap. The description restates the SNI basis and the family reduction but adds no syntax, units or edge-case detail the schema lacks, so the baseline of 3 is appropriate.

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 (calculate) and a precisely scoped resource (Moroccan income tax / IR on annual net taxable income), naming the governing legal basis (CGI Art. 73). This clearly distinguishes it from the many sibling income-tax calculators (Belgian, French, Senegalese, Quebec, Swiss) without needing to open 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 Guidelines3/5

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

The description implies usage by defining the exact input basis (annual net taxable income, SNI, after CNSS/AMO and professional expenses) and points to list_bundles for related 'finance-afrique-quebec' calculators. However, it never states when to prefer this tool over adjacent siblings such as calculate_moroccan_cnss or calculate_moroccan_profit_foncier, and gives no exclusions or prerequisites.

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.