AI2Fin (2Fin) Tax MCP
Server Details
Free public tax MCP: GST/VAT, income, company & capital-gains tax for 50+ countries, source-cited.
- Status
- Healthy
- Uptime
- 4.8% over 59 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Server Listing
- GLOBAL TAX RATES MCP | AI2Fin
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: capital gains tax, company tax, country comparisons, GST/VAT computation, personal income tax, student loan repayments, superannuation, and tax rate lookup. No two tools overlap in functionality.
All names use snake_case and are descriptive, with a mix of verb-first (compare_countries, compute_gst_vat, tax_rate_lookup) and noun-first (cgt_estimate, company_tax_estimate) patterns. Slight inconsistency but still highly readable and predictable.
8 tools cover a comprehensive set of tax estimation and lookup tasks without being excessive. The number is well-scoped for a tax-focused MCP server.
The tool set covers major tax areas (personal, corporate, capital gains, GST, super, student loans, rate lookups) but is primarily Australia-focused. Missing tools for other jurisdictions or niche taxes, but descriptions clearly note limitations.
Available Tools
10 toolscgt_estimateCapital gains tax estimate (71 countries)Read-onlyIdempotentInspect
Estimate capital gains tax on one sale of shares or property by a resident individual, for 71 countries (AE, AR, AT, AU, BE, BG, BR, CA, CH, CL, CN, CO, CY, CZ, DE, DK, EE, EG, ES, FI, FR, GB, GH, GR, GT, HK, HR, HU, ID, IE, IL, IN, IS, IT, JM, JP, KE, KR, LI, LK, LT, LU, LV, MT, MU, MX, MY, NG, NL, NO, NZ, PH, PK, PL, PT, QA, RO, RS, RU, SA, SE, SG, SI, SK, TR, TW, TZ, UA, UG, US, ZA). Where the country's rule can be computed the answer is a figure; where it depends on facts the engine cannot model, the answer is the rule itself (rate, holding period, annual exemption, main residence) with the reason — never a borrowed number. Any other country returns 'not covered'. Pass income (other taxable income for the year) where the gain is taxed at marginal rates, and heldMoreThan12Months or holdingMonths where the holding period matters (the Australian 50% discount, the US long-term rate). capitalLosses apply before any discount. Finland (FI) adds its own detail: the better of the actual cost or the deemed acquisition cost (hankintameno-olettama: 20% of the price, 40% after 10 years), the 1 000 € small-disposals rule and 30%/34% capital income tax — pass yearsHeld, and otherCapitalIncome if there is any; costBase may be omitted there. Each answer cites the capital-gains source and date for that country — not the GST/VAT one. For pay without an asset sale use income_tax_estimate. Non-resident rules are out of scope. Results may include one sourced background fact (relatedFact); the figures do not depend on it.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | What was sold: 'shares' (shares and funds) or 'property' (real estate). Rules differ by asset in many countries | shares |
| income | No | Other taxable income for the year, in local currency — sets the marginal rate where the gain is taxed as income (e.g. AU, US short-term). Required where the rule needs it; the answer says so | |
| country | No | 2-letter ISO code of a covered country (upper case); defaults to AU | AU |
| taxYear | No | FI: calendar tax year like '2026'; omit for the current year | |
| costBase | No | What the asset cost, in local currency, including eligible incidental costs. Required except for FI, where omitting it uses the deemed acquisition cost (pass FI buying and selling costs as saleExpenses) | |
| proceeds | Yes | Sale price of the asset, in local currency | |
| yearsHeld | No | FI: whole years owned — 10 or more raises the deemed acquisition cost from 20% to 40% of the price | |
| saleExpenses | No | FI: brokerage, fees and other costs of buying and selling | |
| capitalLosses | No | Capital losses to offset — applied before any discount; FI: from this year or carried forward (five years) | |
| holdingMonths | No | Whole months the asset was held; overrides heldMoreThan12Months | |
| otherCapitalIncome | No | FI: other capital income this year (dividends, rent, other gains) — decides how much of the gain falls above the 30 000 € threshold | |
| heldMoreThan12Months | No | True when the asset was held at least 12 months (e.g. the AU 50% discount, the US long-term rate). Shorthand for holdingMonths: true = 12, false = 0 | |
| totalProceedsThisYear | No | FI: the year's total sale prices, this sale included, for the 1 000 € small-disposals rule; omit when this is the only sale |
Output Schema
| Name | Required | Description |
|---|---|---|
| loss | No | FI: the loss on this sale, if any (only ever from the actual cost) |
| rule | No | The country's rule as written, for relaying — especially when status is rule-only |
| step | No | Which holding-period step applied, when the rule has steps |
| notes | No | FI: rules that decided the answer, in plain words |
| method | No | FI: whether the actual cost or the deemed acquisition cost was deducted |
| reason | No | Why no figure was computed (rule-only), in plain words |
| source | Yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| status | Yes | 'computed' = a figure; 'rule-only' = the rule text and the reason no figure is given (cgtPayable and taxableGain are then null) |
| country | Yes | Country estimated (2-letter ISO code) |
| taxYear | Yes | Tax year whose rules were used, when the rule is year-based |
| currency | No | Currency of every monetary field |
| grossGain | Yes | Proceeds minus cost (FI: minus the larger of actual or deemed cost). Floored at 0, local currency |
| sourceUrl | No | 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 |
| cgtPayable | Yes | Extra tax caused by the gain, in local currency; null when rule-only |
| disclaimer | Yes | General-information note that must accompany any figure shown to a person |
| lossOffset | Yes | Capital losses actually applied |
| mayBeStale | Yes | True once the verification date is over a year old — re-confirm with the authority |
| assumptions | No | Assumptions the answer depends on — relay them with the figure |
| relatedFact | No | One sourced background fact about the country's capital gains tax; the figures do not depend on it. Absent when no sourced fact fits. |
| taxableGain | Yes | Gain the tax was charged on; null when rule-only |
| costDeducted | No | FI: the cost deducted from the price |
| dataVerifiedOn | Yes | ISO date the rate data was last confirmed against the authority |
| lossDeductible | No | FI: whether that loss can be deducted |
| discountApplied | Yes | Whether a discount or inclusion rate reduced the taxable gain (e.g. the AU 50% discount). Always false for FI |
| exemptionApplied | No | Annual exempt amount or allowance used, where there is one |
| smallDisposalsExempt | No | FI: true when the year's sale prices total 1 000 € or less, making every gain tax-free |
company_tax_estimateCompany tax estimate (139 countries)Read-onlyIdempotentInspect
Estimate company/corporate income tax on an annual profit at the headline rate for 139 countries (28 verified against the national authority; the rest are indicative OECD headline rates, and the answer says "not verified — confirm with" the authority). Use it for company profit questions; individuals belong to income_tax_estimate. smallBusiness applies the small-company rate only where it covers all of the company's income (AU, IN); where the reduced rate is a profit band (UK small profits, the Canadian small-business deduction and similar) it is noted, not applied. Headline-rate arithmetic only: state and provincial tax, surcharges and marginal relief are named in the note, not computed. Each answer cites the company-tax source and date — not the GST/VAT one. A negative profit returns an explanation (losses carry forward), never a negative tax; a country not covered says so. Results may include one sourced background fact (relatedFact); the figures do not depend on it.
| Name | Required | Description | Default |
|---|---|---|---|
| profit | Yes | Annual taxable profit in local currency; a negative value (a loss) returns an explanatory message instead of tax | |
| country | Yes | 2-letter ISO code of a covered country (upper case) | |
| smallBusiness | No | Apply the small-company rate — honoured only where it covers all income (AU, IN); elsewhere the reduced rate is noted instead |
Output Schema
| Name | Required | Description |
|---|---|---|
| tax | Yes | Company tax on the profit (local currency, rounded) |
| note | Yes | What the headline calculation excludes (state/provincial tax, surcharge/cess, marginal relief …) |
| source | Yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| country | Yes | Country estimated (2-letter ISO code) |
| afterTax | Yes | Profit after tax |
| taxLabel | Yes | The country's name for the tax, e.g. 'Corporation Tax' |
| sourceUrl | No | 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 |
| disclaimer | Yes | General-information note that must accompany any figure shown to a person |
| mayBeStale | Yes | True once the verification date is over a year old — re-confirm with the authority |
| rateApplied | Yes | Rate actually applied, as a fraction |
| relatedFact | No | One sourced background fact about the country's company tax; the figures do not depend on it. Absent when no sourced fact fits. |
| standardRate | No | The standard (headline) rate, as a fraction |
| effectiveFrom | No | ISO date the rate set in use took effect |
| usedSmallRate | No | Whether the small-company rate was applied |
| dataVerifiedOn | Yes | ISO date the rate data was last confirmed against the authority |
| smallCompanyRate | No | The small-company rate on file, when there is one |
compare_countriesMulti-country tax comparisonRead-onlyIdempotentInspect
Compare headline tax rates — GST/VAT, top personal income tax and company tax — across several countries at once. Use it to shortlist or contrast jurisdictions (relocation, expansion, pricing); for one country's full detail use tax_rate_lookup, and to apply a rate to an amount use compute_gst_vat. Pass income to add, per country, the income_tax_estimate result for that income (income tax, total tax, take-home, average rate, with its own source). The same number is read in each country's own currency and is not converted between currencies. Income tax is estimated for 57 countries; any other row reports 'not covered' for that part and still shows its headline rates. Codes the dataset does not cover are reported back in unmatchedCodes rather than silently dropped; every matched row cites its national tax authority. Results may include one sourced background fact (relatedFact); the figures do not depend on it.
| Name | Required | Description | Default |
|---|---|---|---|
| income | No | Optional gross annual income, before tax. The same number is applied in EACH country's own local currency — it is NOT converted (120000 means AUD 120,000 in AU, GBP 120,000 in GB and SGD 120,000 in SG). When given, each row adds an income-tax estimate for that income | |
| taxYear | No | Optional, only with income: the tax-year label passed to the income-tax estimate for every country, e.g. '2025-26' (AU/NZ/GB/IN) or '2026' (calendar-year countries). Labels differ by country; a country without that year reports the years it has instead of a figure. Omit for each country's current tax year | |
| countries | Yes | Countries to compare — two or more makes a meaningful comparison |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | Yes | One row per matched country |
| source | Yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| sourceUrl | No | 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 |
| disclaimer | Yes | General-information note that must accompany any figure shown to a person |
| mayBeStale | Yes | True once the verification date is over a year old — re-confirm with the authority |
| relatedFact | No | One sourced background fact about the country's consumption tax; the figures do not depend on it. Absent when no sourced fact fits. |
| dataVerifiedOn | Yes | ISO date the rate data was last confirmed against the authority |
| unmatchedCodes | Yes | Requested codes with no data — nothing was guessed for these |
compute_gst_vatGST/VAT add or remove calculatorRead-onlyIdempotentInspect
Add or remove a country's GST/VAT — or its other national consumption tax, such as Japan's consumption tax or Malaysia's SST — on a monetary amount, returning the net / tax / gross split. Use it to convert between tax-exclusive and tax-inclusive prices (invoices, quotes, receipts); for the rates themselves use tax_rate_lookup. Pure arithmetic on the current standard rate, rounded to 2 decimals, in the local currency. Pass region for a state or provincial rate (CA, US): in Canada that is GST plus the provincial tax, in the US the state sales tax. A country with no national rate (the US without a region, or a country with no consumption tax) returns an explanatory error instead of a wrong number. Results may include one sourced background fact (relatedFact); the figures do not depend on it.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'add' puts tax on top of a net amount; 'remove' extracts the tax already inside a gross amount | add |
| amount | Yes | The monetary amount in the local currency — tax-exclusive when mode=add, tax-inclusive when mode=remove | |
| region | No | Optional state or province code, for sub-national sales tax. Held for CA (13 provinces and territories), US (51 states incl. DC). E.g. 'ON' (Ontario) with country CA, or 'CA' (California) with country US. Answered from that state's or province's own cited rate; US figures are the state rate only — local sales taxes are not included. | |
| country | Yes | 2-letter ISO 3166-1 code of the country whose GST/VAT rate applies (case-insensitive) |
Output Schema
| Name | Required | Description |
|---|---|---|
| net | Yes | Amount before tax (local currency, 2 dp) |
| tax | Yes | The GST/VAT portion (local currency, 2 dp) |
| code | Yes | 2-letter ISO country code |
| mode | Yes | Which conversion was performed |
| rate | Yes | Standard rate applied, as a fraction |
| gross | Yes | Amount including tax (local currency, 2 dp) |
| region | No | State or province whose rate was applied — present only when region was passed |
| source | Yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| country | Yes | Country name |
| sourceUrl | No | 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 |
| disclaimer | Yes | General-information note that must accompany any figure shown to a person |
| mayBeStale | Yes | True once the verification date is over a year old — re-confirm with the authority |
| regionName | No | What applies in that region, in a sentence |
| relatedFact | No | One sourced background fact about the country's consumption tax; the figures do not depend on it. Absent when no sourced fact fits. |
| taxLocalName | Yes | The tax's local name, e.g. 'GST', 'VAT' |
| dataVerifiedOn | Yes | ISO date the rate data was last confirmed against the authority |
income_tax_estimateIncome tax & take-home estimate (57 countries)Read-onlyIdempotentInspect
Estimate personal income tax and take-home pay from gross annual income for 57 countries, using the engine's effective-dated brackets with each country's own levies, offsets and social contributions as its scheme defines them. Covered: AE, AR, AT, AU, BD, BE, BR, CA, CH, CL, CN, CO, CR, CZ, DE, DK, EE, EG, ES, FI, FR, GB, GR, GT, HU, ID, IE, IL, IN, IS, IT, JM, JP, KE, KR, LU, LV, MX, MY, NG, NL, NO, NZ, PH, PK, PL, PT, SA, SE, SG, SI, SK, TH, TR, US, VN, ZA. Any other country returns 'not covered' rather than a guess; its headline rates live in tax_rate_lookup. Pass region for a state, province or nation where the scheme has one (CA: 13 regions, e.g. AB, BC, MB; ES: 3 regions, e.g. AN, CT, MD; GB: SCT (Scotland); US: 51 regions, e.g. AK, AL, AR); without it the answer is national only and says so in its assumptions. For Finland pass municipality (Finnish or Swedish name, e.g. 'Tampere' or 'Helsingfors') for that municipality's own rate — otherwise the national average is used and the answer says so — plus church for a parish member and age where it changes the contributions; Finland also returns the tax-card rate (veroprosentti). The figure is for EMPLOYMENT income (salary or wages) wherever a country applies an employee-only item — India's salary standard deduction, UK Class 1 National Insurance, US FICA — and the first assumption says so. For freelance or self-employed profit pass incomeType "self-employed": India and the UK compute it, countries where it is taxed the same answer it, and the rest refuse with what differs rather than return a salaried figure. This is a resident-individual estimate, not a filing calculation: relay the assumptions it returns. Each answer cites the income-tax source and date for that country — not the GST/VAT one. For AU HELP/HECS use student_loan_repayment. Results may include one sourced background fact (relatedFact); the figures do not depend on it.
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | Finland only: age at the end of the tax year. Changes the employee pension and unemployment contributions and, from 66, the earned-income credit; omit to assume a working age (18–64 from 2026, when the 53–62 pension surcharge ended; 18–52 for 2025) | |
| church | No | Finland only: parish membership, for church tax. Needs `municipality`, because each parish sets its own rate | none |
| income | Yes | Gross annual income in local currency, before tax | |
| region | No | Optional state, province or nation code, where the country's scheme has one: CA: 13 regions, e.g. AB, BC, MB; ES: 3 regions, e.g. AN, CT, MD; GB: SCT (Scotland); US: 51 regions, e.g. AK, AL, AR | |
| country | Yes | 2-letter ISO code of a covered country (upper case) | |
| taxYear | No | Tax year as people write it, e.g. '2026-27' or '2026/27' (AU/NZ/GB/IN), '2026' (calendar-year countries), 'YA 2027' (Singapore), 'Tax Year 2027' (Pakistan, which names a year by its end); omit for the current tax year. A year not on file is refused with the years on file | |
| incomeType | No | What the income is: "employment" (salary or wages, the default) or "self-employed" (freelance or sole-trader profit after business expenses). Countries that do not model self-employed income refuse it with what differs instead of returning the employment figure | |
| municipality | No | Finland only: the municipality (kunta) of residence on 31 December of the previous year, in Finnish or Swedish, e.g. 'Helsinki', 'Espoo', 'Tampere', 'Åbo'. Sets the municipal and parish tax rates; omit to use the national average municipal rate |
Output Schema
| Name | Required | Description |
|---|---|---|
| lito | Yes | Kept for compatibility: AU Low Income Tax Offset only, 0 for every other country. See `offsets` for the general figure. |
| gross | Yes | Gross annual income used |
| levies | Yes | Charges on top of the offset tax, by name (social contributions, regional tax) — empty array when none apply |
| region | No | State, province or nation whose tax was included — present only when region was passed |
| source | Yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| country | Yes | Country estimated (2-letter ISO code) |
| offsets | Yes | Credits that reduced the tax, by name — empty array when none apply |
| taxYear | Yes | Tax year the brackets belong to |
| taxable | Yes | Income after any pre-band deduction (UK personal allowance, IN standard deduction, US standard deduction) |
| currency | Yes | Currency of every monetary field |
| takeHome | Yes | Gross minus total tax |
| totalTax | Yes | Total tax after levies and offsets |
| incomeTax | Yes | Income tax before levies and offsets |
| sourceUrl | No | 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 |
| churchRate | No | Finland: church-tax rate applied, as a fraction (0 for a non-member) |
| disclaimer | Yes | General-information note that must accompany any figure shown to a person |
| mayBeStale | Yes | True once the verification date is over a year old — re-confirm with the authority |
| assumptions | No | Assumptions the figures depend on — relay them with the numbers; the first is always the income basis |
| averageRate | No | Total tax over gross, as a fraction |
| incomeBasis | No | What income the figure was computed for: employment (employee-only items applied), self-employed, or any (nothing depends on the income type). The first assumption says the same in words |
| relatedFact | No | One sourced background fact about the country's income tax; the figures do not depend on it. Absent when no sourced fact fits. |
| taxCardRate | No | Finland: the withholding percentage (veroprosentti) Vero would put on the tax card — rounded up to the next half point. Employee pension and unemployment contributions are withheld on top of it |
| marginalRate | No | Marginal rate on the next unit of income, as a fraction |
| medicareLevy | Yes | Kept for compatibility: AU Medicare levy only, 0 for every other country. See `levies` for the general figure. |
| municipality | No | Finland: the municipality whose rates were used, or "national average" |
| municipalRate | No | Finland: municipal income-tax rate applied, as a fraction |
| dataVerifiedOn | Yes | ISO date the rate data was last confirmed against the authority |
| taxCardWithheld | No | Finland: the tax the tax card covers for the year, to the cent (state, municipal, church, health insurance and YLE tax, less the credit) |
| separatelyWithheld | No | Finland: employee pension and unemployment contributions for the year, to the cent — withheld by the employer on top of the tax card |
student_loan_repaymentAustralian HELP/HECS study-loan repaymentRead-onlyIdempotentInspect
Estimate the compulsory annual study or training loan repayment (HELP, HECS, VSL, SFSS, SSL, AASL) for an Australian resident from their repayment income, using the marginal system introduced in 2025-26 with effective-dated thresholds that roll over each financial year. Use it for "how much HELP/HECS will I repay" questions in AU; it does not cover the loan balance, indexation or voluntary repayments, and applies to Australia only. Repayment income is broader than taxable income — it adds back reportable super contributions, reportable fringe benefits, net investment loss and exempt foreign income; pass that combined figure. Results may include one sourced background fact (relatedFact); the figures do not depend on it.
| Name | Required | Description | Default |
|---|---|---|---|
| taxYear | No | Financial-year label like '2025-26'; omit to use the current Australian financial year | |
| repaymentIncome | Yes | ATO repayment income in AUD (taxable income + reportable super + reportable fringe benefits + net investment loss + exempt foreign income) |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | Yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| country | Yes | Always AU — this tool is Australia-only |
| taxYear | Yes | Financial year whose thresholds were used |
| repayment | Yes | Compulsory repayment for the year (AUD) |
| sourceUrl | No | 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 |
| disclaimer | Yes | General-information note that must accompany any figure shown to a person |
| mayBeStale | Yes | True once the verification date is over a year old — re-confirm with the authority |
| relatedFact | No | One sourced background fact about the country's study-loan repayment; the figures do not depend on it. Absent when no sourced fact fits. |
| minThreshold | Yes | Income at or below which the repayment is nil (AUD) |
| effectiveRate | Yes | repayment ÷ repayment income, as a fraction |
| dataVerifiedOn | Yes | ISO date the rate data was last confirmed against the authority |
| repaymentIncome | Yes | Repayment income used (AUD) |
superannuation_estimateAustralian superannuation estimateRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| taxYear | No | Financial-year label like '2025-26'; omit to use the current Australian financial year | |
| salarySacrifice | No | Voluntary before-tax (concessional) contributions in AUD | |
| ordinaryEarnings | Yes | Ordinary time earnings the Superannuation Guarantee applies to, in AUD (usually salary/wages) | |
| otherTaxableIncome | No | Other taxable income in AUD — only used to test the Division 293 high-earner threshold | |
| personalDeductible | No | Personal contributions claimed as a tax deduction in AUD (also concessional) |
Output Schema
| Name | Required | Description |
|---|---|---|
| sgRate | Yes | Superannuation Guarantee rate applied, as a fraction |
| source | Yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| country | Yes | Always AU — this tool is Australia-only |
| taxYear | Yes | Financial year whose parameters were used |
| div293Tax | Yes | Division 293 surcharge (extra 15%), 0 when it does not apply (AUD) |
| sourceUrl | No | 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 |
| assumption | No | A stated assumption that materially affects the figures, when one applies (e.g. no carried-forward concessional cap) |
| disclaimer | Yes | General-information note that must accompany any figure shown to a person |
| mayBeStale | Yes | True once the verification date is over a year old — re-confirm with the authority |
| relatedFact | No | One sourced background fact about the country's superannuation; the figures do not depend on it. Absent when no sourced fact fits. |
| div293Applies | Yes | Whether the Division 293 high-earner surcharge applies |
| dataVerifiedOn | Yes | ISO date the rate data was last confirmed against the authority |
| concessionalCap | Yes | Concessional contributions cap for the year (AUD) |
| guaranteeAmount | Yes | Compulsory employer SG contribution for the year (AUD) |
| contributionsTax | Yes | 15% contributions tax on concessional contributions within the cap (AUD) |
| excessConcessional | Yes | Concessional contributions above the cap (AUD) |
| guaranteeableEarnings | Yes | Earnings the SG applied to after the maximum contribution base cap (AUD) |
| concessionalContributions | Yes | SG + salary sacrifice + personal deductible, all concessional (AUD) |
tax_factsSourced tax facts and origin storiesRead-onlyIdempotentInspect
Sourced facts about a country's tax system: when and why its GST/VAT was introduced, what it replaced, and memorable, true stories (court cases, elections, odd rulings) — each fact linked to its own source. Omit country for a primer on what a consumption tax is plus famous tax stories from history. Pass topic to keep only facts about one tax (each fact lists its topics). Use it for background, explainers, teaching or a conversation opener; for any rate or amount use tax_rate_lookup, compute_gst_vat or the estimate tools, because facts are dated stories, not live figures. Countries without curated facts return the list of countries that have them rather than an invented one.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional: only facts about this tax — 'gst' (GST/VAT and other consumption taxes), 'income', 'company', 'cgt', 'super', 'studentloan' or 'general'. Omit for every fact | |
| country | No | 2-letter ISO code, e.g. AU, GB, JP. Omit for the global primer and famous tax stories |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | 2-letter ISO code (country scope only) |
| facts | Yes | The facts, each with its own source. Show the source alongside any fact you repeat |
| scope | Yes | Whether these are one country’s facts or the global set |
| topic | No | The topic filter applied, when one was passed |
| primer | No | What a consumption tax is (global scope only) |
| country | No | Country name (country scope only) |
| replaced | No | The tax it replaced, when on record |
| disclaimer | Yes | Note that must accompany facts shown to a person |
| originYear | No | Year the country’s GST/VAT began, when on record |
| originStory | No | How it came to be, in a paragraph |
| countriesWithFacts | Yes | Every country code that has curated facts |
tax_rate_as_ofHistorical tax rate lookupRead-onlyIdempotentInspect
Look up the GST/VAT standard rate that applied in a country ON A GIVEN DATE, rather than today's rate. Use it when reconciling or amending a past transaction, invoice or return — several countries changed rate recently (Estonia twice since 2024, Finland, Kazakhstan, Russia, Romania, Slovakia, Ghana, Israel, Ecuador), so the rate today is not the rate that applied then. For the current rate use tax_rate_lookup. The answer states plainly whether a real dated change backs it or whether only the present rate is on record. Results may include one sourced background fact (relatedFact); the figures do not depend on it.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | The date to resolve the rate for, as YYYY-MM-DD, e.g. '2024-06-30' | |
| country | Yes | 2-letter ISO country code, e.g. FI, EE, KZ |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | Yes | The date resolved |
| source | Yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| country | Yes | Country the rate applies to |
| isCurrent | Yes | True when this is also the rate in force today |
| rateSince | Yes | ISO date this standard rate took effect — the start of the unbroken run at this rate, which can be earlier than effectiveFrom |
| rateUntil | Yes | ISO date this standard rate stops applying, or null when no change is on record |
| sourceUrl | No | 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 |
| disclaimer | Yes | General-information note that must accompany any figure shown to a person |
| mayBeStale | Yes | True once the verification date is over a year old — re-confirm with the authority |
| datedChange | Yes | True when a real recorded rate change backs this answer. FALSE means only the present rate is on record for this country, so an earlier change would not be visible here. |
| effectiveTo | Yes | ISO date that record closed, or null if it is still open |
| relatedFact | No | One sourced background fact about the country's consumption tax; the figures do not depend on it. Absent when no sourced fact fits. |
| standardRate | Yes | Standard rate in force on that date, as a fraction (0.24 = 24%) |
| effectiveFrom | Yes | ISO date the dated record that answered took effect. A new record can open without the standard rate moving (a reduced-rate change, or a new instrument restating the same rate), so for when THIS rate took effect read rateSince |
| dataVerifiedOn | Yes | ISO date the rate data was last confirmed against the authority |
| standardRateDisplay | Yes | The same rate formatted for reading |
tax_rate_lookupCountry tax rate lookupRead-onlyIdempotentInspect
Look up one country's headline tax rates: GST/VAT standard and reduced rates, top personal income tax rate, and company tax rate — national rates for 193 countries, plus state and provincial sales tax for CA and US when you pass region. Use it for a single country; to see several countries side by side use compare_countries, and to apply GST/VAT to an amount use compute_gst_vat. Rates come from a fixed dataset verified against the national tax authority — every answer names its source and verification date, and an unsupported country returns a clear error rather than a guess. Results may include one sourced background fact (relatedFact); the figures do not depend on it.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Optional state or province code, for sub-national sales tax. Held for CA (13 provinces and territories), US (51 states incl. DC). E.g. 'ON' (Ontario) with country CA, or 'CA' (California) with country US. Answered from that state's or province's own cited rate; US figures are the state rate only — local sales taxes are not included. | |
| country | Yes | 2-letter ISO 3166-1 code of the country to look up (case-insensitive) |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | 2-letter ISO country code |
| region | No | Present only when region was passed: the state or provincial sales tax, with its OWN source and date |
| source | Yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| country | Yes | Country name |
| sourceUrl | No | 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 |
| taxFamily | Yes | Consumption-tax family, e.g. 'GST', 'VAT' or a non-VAT system like retail sales tax |
| disclaimer | Yes | General-information note that must accompany any figure shown to a person |
| mayBeStale | Yes | True once the verification date is over a year old — re-confirm with the authority |
| companyRate | Yes | Headline company tax rate (display string) |
| relatedFact | No | One sourced background fact about the country's consumption tax; the figures do not depend on it. Absent when no sourced fact fits. |
| reducedRates | Yes | Reduced rates as fractions; empty when none |
| standardRate | Yes | Standard consumption-tax rate as a fraction (0.1 = 10%) |
| taxLocalName | Yes | The tax's local name, e.g. 'GST', 'USt' |
| incomeTopRate | Yes | Top personal income tax rate (display string; may note surcharges) |
| dataVerifiedOn | Yes | ISO date the rate data was last confirmed against the authority |
| standardRateDisplay | Yes | Standard rate formatted for display |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
income_tax_estimate5 fields changed- changed
Input schema / properties / age / descriptionPrevious value: -"Finland only: age at the end of the tax year. Changes the employee pension and unemployment contributions and, from 66, the earned-income credit; omit to assume a working age of 18–52"New value: +"Finland only: age at the end of the tax year. Changes the employee pension and unemployment contributions and, from 66, the earned-income credit; omit to assume a working age (18–64 from 2026, when the 53–62 pension surcharge ended; 18–52 for 2025)" - added
Input schema / properties / incomeTypeAdded value: +{ + "description": "What the income is: \"employment\" (salary or wages, the default) or \"self-employed\" (freelance or sole-trader profit after business expenses). Countries that do not model self-employed income refuse it with what differs instead of returning the employment figure", + "enum": [ + "employment", + "self-employed" + ], + "type": "string" +} - changed
Input schema / properties / taxYear / descriptionPrevious value: -"Tax-year label as the country uses it, e.g. '2025-26' (AU/NZ/GB/IN) or '2026' (calendar-year countries); omit for the current tax year. An unknown year is refused with the years on file"New value: +"Tax year as people write it, e.g. '2026-27' or '2026/27' (AU/NZ/GB/IN), '2026' (calendar-year countries), 'YA 2027' (Singapore), 'Tax Year 2027' (Pakistan, which names a year by its end); omit for the current tax year. A year not on file is refused with the years on file" - changed
Output schema / properties / assumptions / descriptionPrevious value: -"Assumptions the figures depend on — relay them with the numbers"New value: +"Assumptions the figures depend on — relay them with the numbers; the first is always the income basis" - added
Output schema / properties / incomeBasisAdded value: +{ + "description": "What income the figure was computed for: employment (employee-only items applied), self-employed, or any (nothing depends on the income type). The first assumption says the same in words", + "enum": [ + "employment", + "self-employed", + "any" + ], + "type": "string" +}
10 tool updates
- Changed
cgt_estimate43 fields changed- added
Input schema / properties / assetAdded value: +{ + "default": "shares", + "description": "What was sold: 'shares' (shares and funds) or 'property' (real estate). Rules differ by asset in many countries", + "enum": [ + "shares", + "property" + ], + "type": "string" +} - changed
Input schema / properties / capitalLosses / descriptionPrevious value: -"Capital losses to offset, in AUD — applied against the gross gain before any discount"New value: +"Capital losses to offset — applied before any discount; FI: from this year or carried forward (five years)" - changed
Input schema / properties / costBase / descriptionPrevious value: -"Cost base in AUD — what the asset cost, including eligible incidental costs"New value: +"What the asset cost, in local currency, including eligible incidental costs. Required except for FI, where omitting it uses the deemed acquisition cost (pass FI buying and selling costs as saleExpenses)" - added
Input schema / properties / countryAdded value: +{ + "default": "AU", + "description": "2-letter ISO code of a covered country (upper case); defaults to AU", + "enum": [ + "AE", + "AR", + "AT", + "AU", + "BE", + "BG", + "BR", + "CA", + "CH", + "CL", + "CN", + "CO", + "CY", + "CZ", + "DE", + "DK", + "EE", + "EG", + "ES", + "FI", + "FR", + "GB", + "GH", + "GR", + "GT", + "HK", + "HR", + "HU", + "ID", + "IE", + "IL", + "IN", + "IS", + "IT", + "JM", + "JP", + "KE", + "KR", + "LI", + "LK", + "LT", + "LU", + "LV", + "MT", + "MU", + "MX", + "MY", + "NG", + "NL", + "NO", + "NZ", + "PH", + "PK", + "PL", + "PT", + "QA", + "RO", + "RS", + "RU", + "SA", + "SE", + "SG", + "SI", + "SK", + "TR", + "TW", + "TZ", + "UA", + "UG", + "US", + "ZA" + ], + "type": "string" +} - changed
Input schema / properties / heldMoreThan12Months / descriptionPrevious value: -"True when the asset was held over 12 months, which halves the taxable gain (the 50% CGT discount)"New value: +"True when the asset was held at least 12 months (e.g. the AU 50% discount, the US long-term rate). Shorthand for holdingMonths: true = 12, false = 0" - added
Input schema / properties / holdingMonthsAdded value: +{ + "description": "Whole months the asset was held; overrides heldMoreThan12Months", + "minimum": 0, + "type": "integer" +} - changed
Input schema / properties / income / descriptionPrevious value: -"Other taxable income for the year in AUD (salary etc.) — sets the marginal rate the gain stacks on"New value: +"Other taxable income for the year, in local currency — sets the marginal rate where the gain is taxed as income (e.g. AU, US short-term). Required where the rule needs it; the answer says so" - added
Input schema / properties / otherCapitalIncomeAdded value: +{ + "default": 0, + "description": "FI: other capital income this year (dividends, rent, other gains) — decides how much of the gain falls above the 30 000 € threshold", + "minimum": 0, + "type": "number" +} - changed
Input schema / properties / proceeds / descriptionPrevious value: -"Sale price of the asset in AUD"New value: +"Sale price of the asset, in local currency" - added
Input schema / properties / saleExpensesAdded value: +{ + "default": 0, + "description": "FI: brokerage, fees and other costs of buying and selling", + "minimum": 0, + "type": "number" +} - added
Input schema / properties / taxYearAdded value: +{ + "description": "FI: calendar tax year like '2026'; omit for the current year", + "pattern": "^\\d{4}$", + "type": "string" +} - added
Input schema / properties / totalProceedsThisYearAdded value: +{ + "description": "FI: the year's total sale prices, this sale included, for the 1 000 € small-disposals rule; omit when this is the only sale", + "minimum": 0, + "type": "number" +} - added
Input schema / properties / yearsHeldAdded value: +{ + "description": "FI: whole years owned — 10 or more raises the deemed acquisition cost from 20% to 40% of the price", + "minimum": 0, + "type": "number" +} - changed
Input schema / requiredPrevious value: -[ - "income", - "proceeds", - "costBase", - "heldMoreThan12Months" -]New value: +[ + "proceeds" +] - added
Output schema / properties / assumptionsAdded value: +{ + "description": "Assumptions the answer depends on — relay them with the figure", + "items": { + "type": "string" + }, + "type": "array" +} - changed
Output schema / properties / cgtPayable / descriptionPrevious value: -"Extra tax caused by the gain (AUD)"New value: +"Extra tax caused by the gain, in local currency; null when rule-only" - changed
Output schema / properties / cgtPayable / typePrevious value: -"number"New value: +[ + "number", + "null" +] - added
Output schema / properties / costDeductedAdded value: +{ + "description": "FI: the cost deducted from the price", + "type": "number" +} - changed
Output schema / properties / country / descriptionPrevious value: -"Always AU — this tool is Australia-only"New value: +"Country estimated (2-letter ISO code)" - removed
Output schema / properties / country / enumRemoved value: -[ - "AU" -] - added
Output schema / properties / currencyAdded value: +{ + "description": "Currency of every monetary field", + "type": "string" +} - changed
Output schema / properties / discountApplied / descriptionPrevious value: -"Whether the 50% discount halved the taxable gain"New value: +"Whether a discount or inclusion rate reduced the taxable gain (e.g. the AU 50% discount). Always false for FI" - added
Output schema / properties / exemptionAppliedAdded value: +{ + "description": "Annual exempt amount or allowance used, where there is one", + "type": [ + "number", + "null" + ] +} - changed
Output schema / properties / grossGain / descriptionPrevious value: -"Proceeds minus cost base, floored at 0 (AUD)"New value: +"Proceeds minus cost (FI: minus the larger of actual or deemed cost). Floored at 0, local currency" - changed
Output schema / properties / grossGain / typePrevious value: -"number"New value: +[ + "number", + "null" +] - added
Output schema / properties / lossAdded value: +{ + "description": "FI: the loss on this sale, if any (only ever from the actual cost)", + "type": "number" +} - added
Output schema / properties / lossDeductibleAdded value: +{ + "description": "FI: whether that loss can be deducted", + "type": "boolean" +} - changed
Output schema / properties / lossOffset / descriptionPrevious value: -"Capital losses actually applied (AUD)"New value: +"Capital losses actually applied" - changed
Output schema / properties / lossOffset / typePrevious value: -"number"New value: +[ + "number", + "null" +] - added
Output schema / properties / methodAdded value: +{ + "description": "FI: whether the actual cost or the deemed acquisition cost was deducted", + "enum": [ + "actual", + "deemed" + ], + "type": "string" +} - added
Output schema / properties / notesAdded value: +{ + "description": "FI: rules that decided the answer, in plain words", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / reasonAdded value: +{ + "description": "Why no figure was computed (rule-only), in plain words", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / relatedFactAdded value: +{ + "additionalProperties": false, + "description": "One sourced background fact about the country's capital gains tax; 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" +} - added
Output schema / properties / ruleAdded value: +{ + "description": "The country's rule as written, for relaying — especially when status is rule-only", + "properties": { + "annualExemption": { + "type": "string" + }, + "holdingPeriod": { + "type": "string" + }, + "mainResidence": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "rule": { + "type": "string" + } + }, + "type": [ + "object", + "null" + ] +} - added
Output schema / properties / smallDisposalsExemptAdded value: +{ + "description": "FI: true when the year's sale prices total 1 000 € or less, making every gain tax-free", + "type": "boolean" +} - added
Output schema / properties / sourceUrlAdded 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" +} - added
Output schema / properties / statusAdded value: +{ + "description": "'computed' = a figure; 'rule-only' = the rule text and the reason no figure is given (cgtPayable and taxableGain are then null)", + "enum": [ + "computed", + "rule-only" + ], + "type": "string" +} - added
Output schema / properties / stepAdded value: +{ + "description": "Which holding-period step applied, when the rule has steps", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / taxYear / descriptionPrevious value: -"Financial year whose brackets were used"New value: +"Tax year whose rules were used, when the rule is year-based" - changed
Output schema / properties / taxYear / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / taxableGain / descriptionPrevious value: -"Gain added on top of other income (AUD)"New value: +"Gain the tax was charged on; null when rule-only" - changed
Output schema / properties / taxableGain / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Output schema / requiredPrevious value: -[ - "country", - "taxYear", - "grossGain", - "lossOffset", - "discountApplied", - "taxableGain", - "cgtPayable", - "source", - "dataVerifiedOn", - "mayBeStale", - "disclaimer" -]New value: +[ + "country", + "status", + "taxYear", + "grossGain", + "lossOffset", + "discountApplied", + "taxableGain", + "cgtPayable", + "source", + "dataVerifiedOn", + "mayBeStale", + "disclaimer" +]
- Changed
company_tax_estimate11 fields changed- changed
Input schema / properties / country / descriptionPrevious value: -"Country with source-verified company-tax data"New value: +"2-letter ISO code of a covered country (upper case)" - changed
Input schema / properties / country / enumPrevious value: -[ - "AU", - "US", - "GB", - "IN", - "CA" -]New value: +[ + "AD", + "AE", + "AG", + "AL", + "AM", + "AO", + "AR", + "AT", + "AU", + "AZ", + "BA", + "BB", + "BE", + "BF", + "BG", + "BH", + "BJ", + "BN", + "BR", + "BS", + "BT", + "BW", + "BZ", + "CA", + "CD", + "CG", + "CH", + "CI", + "CL", + "CM", + "CN", + "CO", + "CR", + "CV", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "EC", + "EE", + "EG", + "ES", + "FI", + "FJ", + "FR", + "GA", + "GB", + "GD", + "GE", + "GH", + "GR", + "GT", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IN", + "IS", + "IT", + "JM", + "JO", + "JP", + "KE", + "KN", + "KR", + "KW", + "KZ", + "LC", + "LI", + "LK", + "LR", + "LT", + "LU", + "LV", + "MA", + "MC", + "MD", + "ME", + "MK", + "MN", + "MO", + "MR", + "MT", + "MU", + "MV", + "MX", + "MY", + "NA", + "NG", + "NL", + "NO", + "NZ", + "OM", + "PA", + "PE", + "PG", + "PH", + "PK", + "PL", + "PT", + "PY", + "QA", + "RO", + "RS", + "RU", + "SA", + "SC", + "SE", + "SG", + "SI", + "SK", + "SL", + "SM", + "SN", + "SZ", + "TG", + "TH", + "TN", + "TR", + "TT", + "TW", + "UA", + "UG", + "US", + "UY", + "UZ", + "VC", + "VN", + "WS", + "ZA", + "ZM", + "ZW" +] - changed
Input schema / properties / smallBusiness / descriptionPrevious value: -"Apply the small-business/concessional rate — only honoured where it covers all income (AU base-rate entity, IN s.115BAA); GB/CA thresholds are noted instead"New value: +"Apply the small-company rate — honoured only where it covers all income (AU, IN); elsewhere the reduced rate is noted instead" - changed
Output schema / properties / country / descriptionPrevious value: -"Country estimated"New value: +"Country estimated (2-letter ISO code)" - removed
Output schema / properties / country / enumRemoved value: -[ - "AU", - "US", - "GB", - "IN", - "CA" -] - added
Output schema / properties / effectiveFromAdded value: +{ + "description": "ISO date the rate set in use took effect", + "type": "string" +} - added
Output schema / properties / relatedFactAdded value: +{ + "additionalProperties": false, + "description": "One sourced background fact about the country's company tax; 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" +} - added
Output schema / properties / smallCompanyRateAdded value: +{ + "description": "The small-company rate on file, when there is one", + "type": "number" +} - added
Output schema / properties / sourceUrlAdded 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" +} - added
Output schema / properties / standardRateAdded value: +{ + "description": "The standard (headline) rate, as a fraction", + "type": "number" +} - added
Output schema / properties / usedSmallRateAdded value: +{ + "description": "Whether the small-company rate was applied", + "type": "boolean" +}
- Changed
compare_countries9 fields changed- added
Input schema / properties / incomeAdded value: +{ + "description": "Optional gross annual income, before tax. The same number is applied in EACH country's own local currency — it is NOT converted (120000 means AUD 120,000 in AU, GBP 120,000 in GB and SGD 120,000 in SG). When given, each row adds an income-tax estimate for that income", + "examples": [ + 120000 + ], + "minimum": 0, + "type": "number" +} - added
Input schema / properties / taxYearAdded value: +{ + "description": "Optional, only with income: the tax-year label passed to the income-tax estimate for every country, e.g. '2025-26' (AU/NZ/GB/IN) or '2026' (calendar-year countries). Labels differ by country; a country without that year reports the years it has instead of a figure. Omit for each country's current tax year", + "type": "string" +} - added
Output schema / properties / relatedFactAdded value: +{ + "additionalProperties": false, + "description": "One sourced background fact about the country's consumption tax; 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" +} - added
Output schema / properties / rows / items / properties / dataVerifiedOnAdded value: +{ + "description": "ISO date this country's rate was last confirmed against the authority", + "type": "string" +} - added
Output schema / properties / rows / items / properties / incomeTaxEstimateAdded value: +{ + "additionalProperties": false, + "description": "Present only when income was passed: income_tax_estimate's result for this country, in this country's own currency", + "properties": { + "assumptions": { + "description": "Assumptions the figures depend on", + "items": { + "type": "string" + }, + "type": "array" + }, + "averageRate": { + "description": "Total tax over gross, as a fraction", + "type": "number" + }, + "currency": { + "description": "Currency of every monetary field", + "type": "string" + }, + "dataVerifiedOn": { + "description": "ISO date that source was last checked", + "type": "string" + }, + "gross": { + "description": "Gross annual income used", + "type": "number" + }, + "incomeTax": { + "description": "Income tax before levies and offsets", + "type": "number" + }, + "mayBeStale": { + "description": "True when that date is over a year old, or the source is unverified", + "type": "boolean" + }, + "reason": { + "description": "Why there is no figure (not-covered / unavailable only)", + "type": "string" + }, + "source": { + "description": "The income-tax source for this country — says 'not verified' when it was not", + "type": "string" + }, + "sourceUrl": { + "description": "https link to the income-tax source — present only when verified", + "type": "string" + }, + "status": { + "description": "'computed' = figures below; 'not-covered' = income tax is not estimated for this country; 'unavailable' = covered, but not for these inputs (reason says why)", + "enum": [ + "computed", + "not-covered", + "unavailable" + ], + "type": "string" + }, + "takeHome": { + "description": "Gross minus total tax", + "type": "number" + }, + "taxYear": { + "description": "Tax year the brackets belong to", + "type": "string" + }, + "totalTax": { + "description": "Total tax after levies and offsets", + "type": "number" + } + }, + "required": [ + "status" + ], + "type": "object" +} - added
Output schema / properties / rows / items / properties / mayBeStaleAdded value: +{ + "description": "True when that date is over a year old, or the row is unverified", + "type": "boolean" +} - changed
Output schema / properties / rows / items / properties / source / descriptionPrevious value: -"National tax authority for this row"New value: +"Authority this country's GST/VAT rate was verified against — says 'citation pending — not verified' when it was not" - added
Output schema / properties / rows / items / properties / sourceUrlAdded value: +{ + "description": "https link to the authority page for the GST/VAT rate — present only for verified rows", + "type": "string" +} - added
Output schema / properties / sourceUrlAdded 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" +}
- Changed
compute_gst_vat5 fields changed- added
Input schema / properties / regionAdded value: +{ + "description": "Optional state or province code, for sub-national sales tax. Held for CA (13 provinces and territories), US (51 states incl. DC). E.g. 'ON' (Ontario) with country CA, or 'CA' (California) with country US. Answered from that state's or province's own cited rate; US figures are the state rate only — local sales taxes are not included.", + "examples": [ + "ON", + "CA", + "NY" + ], + "maxLength": 2, + "minLength": 2, + "pattern": "^[A-Za-z]{2}$", + "type": "string" +} - added
Output schema / properties / regionAdded value: +{ + "description": "State or province whose rate was applied — present only when region was passed", + "type": "string" +} - added
Output schema / properties / regionNameAdded value: +{ + "description": "What applies in that region, in a sentence", + "type": "string" +} - added
Output schema / properties / relatedFactAdded value: +{ + "additionalProperties": false, + "description": "One sourced background fact about the country's consumption tax; 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" +} - added
Output schema / properties / sourceUrlAdded 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" +}
- Changed
income_tax_estimate32 fields changed- added
Input schema / properties / ageAdded value: +{ + "description": "Finland only: age at the end of the tax year. Changes the employee pension and unemployment contributions and, from 66, the earned-income credit; omit to assume a working age of 18–52", + "maximum": 100, + "minimum": 15, + "type": "integer" +} - added
Input schema / properties / churchAdded value: +{ + "default": "none", + "description": "Finland only: parish membership, for church tax. Needs `municipality`, because each parish sets its own rate", + "enum": [ + "none", + "evangelical-lutheran", + "orthodox" + ], + "type": "string" +} - changed
Input schema / properties / country / descriptionPrevious value: -"Country with bracket data: AU (Australia) or NZ (New Zealand)"New value: +"2-letter ISO code of a covered country (upper case)" - changed
Input schema / properties / country / enumPrevious value: -[ - "AU", - "NZ" -]New value: +[ + "AE", + "AR", + "AT", + "AU", + "BD", + "BE", + "BR", + "CA", + "CH", + "CL", + "CN", + "CO", + "CR", + "CZ", + "DE", + "DK", + "EE", + "EG", + "ES", + "FI", + "FR", + "GB", + "GR", + "GT", + "HU", + "ID", + "IE", + "IL", + "IN", + "IS", + "IT", + "JM", + "JP", + "KE", + "KR", + "LU", + "LV", + "MX", + "MY", + "NG", + "NL", + "NO", + "NZ", + "PH", + "PK", + "PL", + "PT", + "SA", + "SE", + "SG", + "SI", + "SK", + "TH", + "TR", + "US", + "VN", + "ZA" +] - changed
Input schema / properties / income / descriptionPrevious value: -"Gross annual income in local currency (AUD for AU, NZD for NZ), before tax"New value: +"Gross annual income in local currency, before tax" - added
Input schema / properties / municipalityAdded value: +{ + "description": "Finland only: the municipality (kunta) of residence on 31 December of the previous year, in Finnish or Swedish, e.g. 'Helsinki', 'Espoo', 'Tampere', 'Åbo'. Sets the municipal and parish tax rates; omit to use the national average municipal rate", + "maxLength": 60, + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Optional state, province or nation code, where the country's scheme has one: CA: 13 regions, e.g. AB, BC, MB; ES: 3 regions, e.g. AN, CT, MD; GB: SCT (Scotland); US: 51 regions, e.g. AK, AL, AR", + "maxLength": 8, + "type": "string" +} - changed
Input schema / properties / taxYear / descriptionPrevious value: -"Financial-year label like '2025-26'; omit to use the current financial year in that country's timezone"New value: +"Tax-year label as the country uses it, e.g. '2025-26' (AU/NZ/GB/IN) or '2026' (calendar-year countries); omit for the current tax year. An unknown year is refused with the years on file" - removed
Input schema / properties / taxYear / examplesRemoved value: -[ - "2025-26" -] - removed
Input schema / properties / taxYear / patternRemoved value: -"^\\d{4}-\\d{2}$" - added
Output schema / properties / assumptionsAdded value: +{ + "description": "Assumptions the figures depend on — relay them with the numbers", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / averageRateAdded value: +{ + "description": "Total tax over gross, as a fraction", + "type": "number" +} - added
Output schema / properties / churchRateAdded value: +{ + "description": "Finland: church-tax rate applied, as a fraction (0 for a non-member)", + "type": "number" +} - changed
Output schema / properties / country / descriptionPrevious value: -"Country estimated"New value: +"Country estimated (2-letter ISO code)" - removed
Output schema / properties / country / enumRemoved value: -[ - "AU", - "NZ" -] - changed
Output schema / properties / currency / descriptionPrevious value: -"Currency of every monetary field (AUD or NZD)"New value: +"Currency of every monetary field" - added
Output schema / properties / leviesAdded value: +{ + "description": "Charges on top of the offset tax, by name (social contributions, regional tax) — empty array when none apply", + "items": { + "properties": { + "amount": { + "type": "number" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "amount" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / properties / lito / descriptionPrevious value: -"Low Income Tax Offset applied (AU only; 0 otherwise)"New value: +"Kept for compatibility: AU Low Income Tax Offset only, 0 for every other country. See `offsets` for the general figure." - added
Output schema / properties / marginalRateAdded value: +{ + "description": "Marginal rate on the next unit of income, as a fraction", + "type": "number" +} - changed
Output schema / properties / medicareLevy / descriptionPrevious value: -"Medicare levy (AU only; 0 for NZ)"New value: +"Kept for compatibility: AU Medicare levy only, 0 for every other country. See `levies` for the general figure." - added
Output schema / properties / municipalRateAdded value: +{ + "description": "Finland: municipal income-tax rate applied, as a fraction", + "type": "number" +} - added
Output schema / properties / municipalityAdded value: +{ + "description": "Finland: the municipality whose rates were used, or \"national average\"", + "type": "string" +} - added
Output schema / properties / offsetsAdded value: +{ + "description": "Credits that reduced the tax, by name — empty array when none apply", + "items": { + "properties": { + "amount": { + "type": "number" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "amount" + ], + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / regionAdded value: +{ + "description": "State, province or nation whose tax was included — present only when region was passed", + "type": "string" +} - added
Output schema / properties / relatedFactAdded value: +{ + "additionalProperties": false, + "description": "One sourced background fact about the country's income tax; 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" +} - added
Output schema / properties / separatelyWithheldAdded value: +{ + "description": "Finland: employee pension and unemployment contributions for the year, to the cent — withheld by the employer on top of the tax card", + "type": "number" +} - added
Output schema / properties / sourceUrlAdded 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" +} - added
Output schema / properties / taxCardRateAdded value: +{ + "description": "Finland: the withholding percentage (veroprosentti) Vero would put on the tax card — rounded up to the next half point. Employee pension and unemployment contributions are withheld on top of it", + "type": "number" +} - added
Output schema / properties / taxCardWithheldAdded value: +{ + "description": "Finland: the tax the tax card covers for the year, to the cent (state, municipal, church, health insurance and YLE tax, less the credit)", + "type": "number" +} - changed
Output schema / properties / taxYear / descriptionPrevious value: -"Financial year the brackets belong to"New value: +"Tax year the brackets belong to" - added
Output schema / properties / taxableAdded value: +{ + "description": "Income after any pre-band deduction (UK personal allowance, IN standard deduction, US standard deduction)", + "type": "number" +} - changed
Output schema / requiredPrevious value: -[ - "country", - "currency", - "taxYear", - "gross", - "incomeTax", - "medicareLevy", - "lito", - "totalTax", - "takeHome", - "source", - "dataVerifiedOn", - "mayBeStale", - "disclaimer" -]New value: +[ + "country", + "currency", + "taxYear", + "gross", + "taxable", + "incomeTax", + "medicareLevy", + "lito", + "offsets", + "levies", + "totalTax", + "takeHome", + "source", + "dataVerifiedOn", + "mayBeStale", + "disclaimer" +]
- Changed
student_loan_repayment2 fields changed- added
Output schema / properties / relatedFactAdded value: +{ + "additionalProperties": false, + "description": "One sourced background fact about the country's study-loan repayment; 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" +} - added
Output schema / properties / sourceUrlAdded 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" +}
- Changed
superannuation_estimate3 fields changed- added
Output schema / properties / assumptionAdded value: +{ + "description": "A stated assumption that materially affects the figures, when one applies (e.g. no carried-forward concessional cap)", + "type": "string" +} - added
Output schema / properties / relatedFactAdded 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" +} - added
Output schema / properties / sourceUrlAdded 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" +}
- Added
tax_facts - Added
tax_rate_as_of - Changed
tax_rate_lookup4 fields changed- added
Input schema / properties / regionAdded value: +{ + "description": "Optional state or province code, for sub-national sales tax. Held for CA (13 provinces and territories), US (51 states incl. DC). E.g. 'ON' (Ontario) with country CA, or 'CA' (California) with country US. Answered from that state's or province's own cited rate; US figures are the state rate only — local sales taxes are not included.", + "examples": [ + "ON", + "CA", + "NY" + ], + "maxLength": 2, + "minLength": 2, + "pattern": "^[A-Za-z]{2}$", + "type": "string" +} - added
Output schema / properties / regionAdded value: +{ + "additionalProperties": false, + "description": "Present only when region was passed: the state or provincial sales tax, with its OWN source and date", + "properties": { + "code": { + "description": "State or province code", + "type": "string" + }, + "combinedRate": { + "description": "What a buyer pays in total: in Canada the provincial rate plus the 5% GST (or the single HST); in the US the state rate (local taxes not included)", + "type": "number" + }, + "dataVerifiedOn": { + "description": "ISO date the regional rate was last checked", + "type": "string" + }, + "effectiveFrom": { + "description": "ISO date the rate took effect", + "type": "string" + }, + "mayBeStale": { + "description": "True when that date is over a year old, or the rate is unverified", + "type": "boolean" + }, + "name": { + "description": "What applies there, in a sentence", + "type": "string" + }, + "source": { + "description": "Authority the regional rate was verified against — says 'not verified' when it was not", + "type": "string" + }, + "sourceUrl": { + "description": "https link to the authority page — present only for verified rates", + "type": "string" + }, + "standardRate": { + "description": "The state or provincial rate alone, as a fraction", + "type": "number" + }, + "taxName": { + "description": "The tax's name, e.g. 'Ontario HST'", + "type": "string" + } + }, + "required": [ + "code", + "name", + "taxName", + "standardRate", + "combinedRate", + "effectiveFrom", + "source", + "dataVerifiedOn", + "mayBeStale" + ], + "type": "object" +} - added
Output schema / properties / relatedFactAdded value: +{ + "additionalProperties": false, + "description": "One sourced background fact about the country's consumption tax; 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" +} - added
Output schema / properties / sourceUrlAdded 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 tool updates
- Added
student_loan_repayment - Added
superannuation_estimate
6 tool updates
- First observed
cgt_estimate - First observed
company_tax_estimate - First observed
compare_countries - First observed
compute_gst_vat - First observed
income_tax_estimate - First observed
tax_rate_lookup
Related MCP Connectors
Cited official data: tax, VAT, CPI, policy rates, wages, holidays, FX. 128 countries+EU, 7 regions.
Deterministic cross-border tax engine: PE, GAAR, Indian TP, rule-level lookup. Compiled law, no LLM.
Official tax law at the date of the facts, with official links: 9 European countries, EU, OECD.
European govt data, cited: rates, VAT, tax, wages, holidays, FX. 34 countries + EU; Germany free.
Related MCP Servers
AlicenseAqualityAmaintenanceOpen-source, accountant-verified tax computation skills for AI agents. 261+ skills across 172+ jurisdictions covering income tax, VAT/GST, payroll, corporate tax, crypto, and cross-border planning. Every skill is verified section-by-section by licensed CPAs and chartered accountants. 3 tools (list_skills, get_skill, get_skill_sections) and 1 prompt (skill-review).123439AGPL 3.0
Bindler MCPofficial
AlicenseNot gradedqualityCmaintenanceProvides MCP tools that calculate UAE Corporate Tax liability, classify EU AI Act risk and obligations, and compute CBAM certificate costs across the phase-in, with each figure traced to its governing article.MIT- AlicenseNot gradedqualityCmaintenance日本の公的制度(補助金/法令/税務/法人/判例)を提供する MCP サーバー。261 ツール、¥3/billable unit、匿名 3/日 free。Evidence Packets with source_url + source_fetched_at + known_gaps. PyPI: autonomath-mcp.33 PyPI1MIT
- AlicenseAqualityAmaintenanceCukaiMax Tax Authority is an MCP server that gives AI agents source-linked Malaysian individual tax information and deterministic draft preparation checks for YA2025 Form BE/B and YA2026 planning, via a public read-only Streamable HTTP endpoint.5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.