Skip to main content
Glama

AI2Fin (2Fin) Tax MCP

Australian superannuation estimate

superannuation_estimate
Read-onlyIdempotent

Estimate Australian superannuation for an employee: the compulsory Superannuation Guarantee contribution (12% from 2025-26), concessional (before-tax) contributions cap usage, the 15% in-fund contributions tax, and the Division 293 high-earner surcharge — all effective-dated so a future budget year is picked automatically. Use it for "how much super will I get / can I contribute / will I be taxed" questions in AU; it does not model fund fees, insurance, investment returns, non-concessional contributions or carry-forward caps, and applies to Australia only. Salary sacrifice reduces salary; a personal deductible contribution is a deduction against total assessable income. Both add to the concessional total. The Division 293 threshold is tested against taxable income plus LOW-TAX contributions — that is, concessional contributions excluding any excess over the cap, since the excess is already counted inside taxable income. ordinaryEarnings therefore counts toward the threshold; pass otherTaxableIncome only for income beyond salary, such as investment or business income. Results may include one sourced background fact (relatedFact); the figures do not depend on it.

Input Schema

NameRequiredDescriptionDefault
taxYearNoFinancial-year label like '2025-26'; omit to use the current Australian financial year
salarySacrificeNoVoluntary before-tax (concessional) contributions in AUD
ordinaryEarningsYesOrdinary time earnings the Superannuation Guarantee applies to, in AUD (usually salary/wages)
otherTaxableIncomeNoOther taxable income in AUD — only used to test the Division 293 high-earner threshold
personalDeductibleNoPersonal contributions claimed as a tax deduction in AUD (also concessional)

Output Schema

NameRequiredDescriptionDefault
sgRateYesSuperannuation Guarantee rate applied, as a fraction
sourceYesThe national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au')
countryYesAlways AU — this tool is Australia-only
taxYearYesFinancial year whose parameters were used
div293TaxYesDivision 293 surcharge (extra 15%), 0 when it does not apply (AUD)
sourceUrlNohttps link to the authority page the rate was verified against. Present only on rate answers backed by a verified ledger row — absent (never empty) otherwise, so its presence is itself the claim
assumptionNoA stated assumption that materially affects the figures, when one applies (e.g. no carried-forward concessional cap)
disclaimerYesGeneral-information note that must accompany any figure shown to a person
mayBeStaleYesTrue once the verification date is over a year old — re-confirm with the authority
relatedFactNoOne sourced background fact about the country's superannuation; the figures do not depend on it. Absent when no sourced fact fits.
div293AppliesYesWhether the Division 293 high-earner surcharge applies
dataVerifiedOnYesISO date the rate data was last confirmed against the authority
concessionalCapYesConcessional contributions cap for the year (AUD)
guaranteeAmountYesCompulsory employer SG contribution for the year (AUD)
contributionsTaxYes15% contributions tax on concessional contributions within the cap (AUD)
excessConcessionalYesConcessional contributions above the cap (AUD)
guaranteeableEarningsYesEarnings the SG applied to after the maximum contribution base cap (AUD)
concessionalContributionsYesSG + salary sacrifice + personal deductible, all concessional (AUD)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedOutput schema / properties / assumption
      Added value: +{
      +  "description": "A stated assumption that materially affects the figures, when one applies (e.g. no carried-forward concessional cap)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / relatedFact
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "One sourced background fact about the country's superannuation; the figures do not depend on it. Absent when no sourced fact fits.",
      +  "properties": {
      +    "context": {
      +      "description": "Present on a state or provincial answer: the fact is about the country as a whole",
      +      "enum": [
      +        "national"
      +      ],
      +      "type": "string"
      +    },
      +    "country": {
      +      "description": "2-letter ISO code of the country the fact is about",
      +      "type": "string"
      +    },
      +    "detail": {
      +      "description": "Longer supporting detail, when the corpus has it",
      +      "type": "string"
      +    },
      +    "fact": {
      +      "description": "The fact, in one or two sentences",
      +      "type": "string"
      +    },
      +    "kind": {
      +      "description": "'origin' = when the tax began and what it replaced; 'anniversary' = the same, on the anniversary of its start date; 'story' = a dated story from the facts corpus",
      +      "enum": [
      +        "origin",
      +        "story",
      +        "anniversary"
      +      ],
      +      "type": "string"
      +    },
      +    "more": {
      +      "description": "The tool that returns the full sourced fact set for this country",
      +      "enum": [
      +        "tax_facts"
      +      ],
      +      "type": "string"
      +    },
      +    "sourceName": {
      +      "description": "Who the fact is sourced to",
      +      "type": "string"
      +    },
      +    "sourceUrl": {
      +      "description": "Link to that source — always present",
      +      "type": "string"
      +    },
      +    "topic": {
      +      "description": "Which tax the fact is about",
      +      "enum": [
      +        "gst",
      +        "income",
      +        "company",
      +        "cgt",
      +        "super",
      +        "studentloan",
      +        "general"
      +      ],
      +      "type": "string"
      +    },
      +    "verifiedDate": {
      +      "description": "ISO date the fact was last checked against its source, when recorded",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind",
      +    "topic",
      +    "country",
      +    "fact",
      +    "sourceName",
      +    "sourceUrl",
      +    "more"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / sourceUrl
      Added value: +{
      +  "description": "https link to the authority page the rate was verified against. Present only on rate answers backed by a verified ledger row — absent (never empty) otherwise, so its presence is itself the claim",
      +  "type": "string"
      +}
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial behavior beyond them: automatic effective-dating so a future budget year is selected, the Division 293 threshold being tested against taxable income plus low-tax contributions, and the note that results may carry one sourced background fact that does not affect the figures. These are non-obvious behavioral traits an agent could not infer.

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?

Purpose and computation list are front-loaded, and the second paragraph carries only the modelling semantics that genuinely change how an agent fills parameters. It is dense and long for a tool description, but no sentence is redundant or restates the schema.

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?

An output schema exists, so return values need not be explained; the description instead covers the domain nuance an agent needs: effective dating, scope exclusions, the salary-sacrifice/deduction distinction, the Division 293 base, and the relatedFact caveat. Nothing material for correct invocation is missing.

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 semantic value the schema does not: ordinaryEarnings counts toward the Division 293 threshold, otherTaxableIncome should be passed only for income beyond salary, and salary sacrifice versus personal deductible contributions both add to the concessional total with different tax mechanics.

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 (Estimate) and resource (Australian superannuation) and enumerates the exact computations: Superannuation Guarantee, concessional cap usage, 15% in-fund tax, and Division 293 surcharge. This is clearly distinct from siblings like income_tax_estimate, company_tax_estimate or student_loan_repayment 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 Guidelines4/5

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

It gives explicit usage routing ("how much super will I get / can I contribute / will I be taxed" questions in AU) and a firm when-not list (fund fees, insurance, investment returns, non-concessional contributions, carry-forward caps, Australia only). What it lacks is naming an alternative sibling tool to use instead when the question falls outside scope, so it is clear context rather than full alternative routing.

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