Skip to main content
Glama

Estimate SA tax on crypto gains and income for a tax year

crypto_tax_estimate
Read-only

Estimates the extra South African income tax caused by crypto in one tax year, for an individual, company or trust: applies the CGT annual exclusion (R50,000 for individuals from 1 March 2026), the 40% or 80% inclusion rate, the tax tables and age rebates, and shows tax with and without the crypto, the marginal rate and any capital loss to carry forward.

Input Schema

NameRequiredDescriptionDefault
ageNoIndividuals: age on the last day of the tax year. Default 40
tax_yearNoYear the tax year ends, e.g. 2027 for 1 March 2026 – 28 February 2027. Default: current tax year
taxpayerNoType of taxpayer: individual, company, trust or special_trust. Default individualindividual
other_taxable_incomeNoTaxable income from everything else, in rand. Default 0
crypto_revenue_incomeNoCrypto amounts taxed as ordinary income: trading profits, mining, staking, crypto salary. Default 0
other_net_capital_gainNoNet capital gain on other assets in the same year (the exclusion is shared). Default 0
crypto_net_capital_gainNoNet capital gain (or loss, negative) on crypto held as an investment
brought_forward_capital_lossNoAssessed capital loss from earlier years. Default 0

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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 a read-only, closed-world computation, so the safety bar is low; the description nonetheless adds real behavioural context by disclosing the calculation methodology (annual exclusion, 40%/80% inclusion rate, tax tables, age rebates) and what the result contains (tax with and without crypto, marginal rate, carry-forward loss). It does not state that results are an estimate only, nor how non-default tax years or unsupported cases are handled.

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?

The purpose is front-loaded in the opening clause and every subsequent clause carries substantive information (exclusion, inclusion rate, outputs). It is one long run-on sentence, which makes it harder to scan than a short structured breakdown would be.

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?

With no output schema, the description usefully spells out the return components, and the non-required parameters with defaults are all documented in the schema. What is missing is a caveat about the estimate's reliability and how the caller should obtain the capital-gain inputs, but overall it is sufficient to invoke the tool correctly.

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 every parameter already carries its own meaning, including defaults and the note that the annual exclusion is shared with other capital gains. The description adds domain framing but no parameter-level detail beyond the schema, so the baseline 3 applies.

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?

The description names a specific verb ('Estimates') and a precisely scoped resource ('the extra South African income tax caused by crypto in one tax year'), including the taxpayer types covered. This is clearly distinguishable from the sibling lookup tool (crypto_tax_rules) and the classification/FIFO helpers, which do not produce a liability figure.

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?

Usage is only implied: an agent can infer it should call this when it wants a tax liability estimate rather than rules or raw gains. There is no explicit when-not guidance, no mention that crypto_gains_fifo or crypto_capital_or_revenue should be run first to derive the gain figures this tool consumes, and no statement of prerequisites such as prior-year assessed losses.

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.

Resources