AI2Fin (2Fin) Tax MCP
REMOTE · TAXMCP.AI2FIN.COM · SCANNED AUG 3
Free public tax MCP: GST/VAT, income, company & capital-gains tax for 50+ countries, source-cited.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security77
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability67
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1751 tokens (~218/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · taxmcp.ai2fin.com
claude mcp add --transport http com-ai2fin-ai2fin-tax-mcp https://taxmcp.ai2fin.com/
[mcp_servers.com-ai2fin-ai2fin-tax-mcp] url = "https://taxmcp.ai2fin.com/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-ai2fin-ai2fin-tax-mcp": {
"type": "remote",
"url": "https://taxmcp.ai2fin.com/",
"enabled": true
}
}
} openclaw mcp add com-ai2fin-ai2fin-tax-mcp --url https://taxmcp.ai2fin.com/ --transport streamable-http
mcp_servers:
com-ai2fin-ai2fin-tax-mcp:
url: "https://taxmcp.ai2fin.com/" {
"mcpServers": {
"com-ai2fin-ai2fin-tax-mcp": {
"type": "http",
"url": "https://taxmcp.ai2fin.com/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 +3
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 66
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://taxmcp.ai2fin.com
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=ai2fin.com | CN=WE1,O=Google Trust Services,C=US | 30 Jun 2026 | 28 Sept 2026 | ECDSA 256 | ECDSA-SHA256 | b12b4618b1f751d0e9e375b9c8dece2 |
| SANs: ai2fin.com, taxmcp.ai2fin.com, *.taxmcp.ai2fin.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC secure
Validation of taxmcp.ai2fin.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| ai2fin.com. | present | 2371 | 13 | Verified |
| taxmcp.ai2fin.com. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://taxmcp.ai2fin.com | Verified | 200 | |
| http (plaintext) | http://taxmcp.ai2fin.com | HTTPS enforced | 301 | https://taxmcp.ai2fin.com/ |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
cgt_estimate Australian capital gains tax estimate ~241
Estimate Australian capital gains tax for a resident individual by taxing the gain at the marginal rate on top of other income (the difference of two income-tax calculations). Use it for AU asset-sale questions (shares, property, crypto); for pay without an asset sale use income_tax_estimate — other countries' CGT is not covered and returns an error. Applies capital losses before the 50% discount for assets held over 12 months, per ATO ordering; the main-residence exemption and non-resident rules are out of scope.
| Name | Type | Req | Description |
|---|---|---|---|
| capitalLosses | number | — | Capital losses to offset, in AUD — applied against the gross gain before any discount |
| costBase | number | yes | Cost base in AUD — what the asset cost, including eligible incidental costs |
| heldMoreThan12Months | boolean | yes | True when the asset was held over 12 months, which halves the taxable gain (the 50% CGT discount) |
| income | number | yes | Other taxable income for the year in AUD (salary etc.) — sets the marginal rate the gain stacks on |
| proceeds | number | yes | Sale price of the asset in AUD |
| Name | Type | Req | Description |
|---|---|---|---|
| cgtPayable | number | yes | Extra tax caused by the gain (AUD) |
| country | string | yes | Always AU — this tool is Australia-only |
| dataVerifiedOn | string | yes | ISO date the rate data was last confirmed against the authority |
| disclaimer | string | yes | General-information note that must accompany any figure shown to a person |
| discountApplied | boolean | yes | Whether the 50% discount halved the taxable gain |
| grossGain | number | yes | Proceeds minus cost base, floored at 0 (AUD) |
| lossOffset | number | yes | Capital losses actually applied (AUD) |
| mayBeStale | boolean | yes | True once the verification date is over a year old — re-confirm with the authority |
| source | string | yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| taxYear | string | yes | Financial year whose brackets were used |
| taxableGain | number | yes | Gain added on top of other income (AUD) |
No examples provided.
company_tax_estimate Company tax estimate (AU, US, GB, IN, CA) ~224
Estimate company/corporate income tax on an annual profit for Australia, the US, the UK, India or Canada — the five countries with source-verified company rates — applying the small-business/concessional rate where it covers all income. Use it for company profit questions in those countries; individuals belong to income_tax_estimate, and any other country’s headline rate to tax_rate_lookup. Headline-rate arithmetic only: US state tax, Canadian provincial tax, Indian surcharge/cess and UK marginal relief are flagged in the response note but not computed. A negative profit returns an explanation (losses carry forward), never a negative tax.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | Country with source-verified company-tax data |
| profit | number | yes | Annual taxable profit in local currency; a negative value (a loss) returns an explanatory message instead of tax |
| smallBusiness | boolean | — | 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 |
| Name | Type | Req | Description |
|---|---|---|---|
| afterTax | number | yes | Profit after tax |
| country | string | yes | Country estimated |
| dataVerifiedOn | string | yes | ISO date the rate data was last confirmed against the authority |
| disclaimer | string | yes | General-information note that must accompany any figure shown to a person |
| mayBeStale | boolean | yes | True once the verification date is over a year old — re-confirm with the authority |
| note | string | yes | What the headline calculation excludes (state/provincial tax, surcharge/cess, marginal relief …) |
| rateApplied | number | yes | Rate actually applied, as a fraction |
| source | string | yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| tax | number | yes | Company tax on the profit (local currency, rounded) |
| taxLabel | string | yes | The country's name for the tax, e.g. 'Corporation Tax' |
No examples provided.
compare_countries Multi-country tax comparison ~116
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. Codes the dataset does not cover are reported back in unmatchedCodes rather than silently dropped; every matched row cites its national tax authority.
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | yes | Countries to compare — two or more makes a meaningful comparison |
| Name | Type | Req | Description |
|---|---|---|---|
| dataVerifiedOn | string | yes | ISO date the rate data was last confirmed against the authority |
| disclaimer | string | yes | General-information note that must accompany any figure shown to a person |
| mayBeStale | boolean | yes | True once the verification date is over a year old — re-confirm with the authority |
| rows | array | yes | One row per matched country |
| source | string | yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| unmatchedCodes | array | yes | Requested codes with no data — nothing was guessed for these |
No examples provided.
compute_gst_vat GST/VAT add or remove calculator ~195
Add or remove a country's GST/VAT 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 country's current standard rate, rounded to 2 decimals, in the country's local currency. Countries without a single national GST/VAT (e.g. the US) return an explanatory error instead of a wrong number.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | yes | The monetary amount in the local currency — tax-exclusive when mode=add, tax-inclusive when mode=remove |
| country | string | yes | 2-letter ISO 3166-1 code of the country whose GST/VAT rate applies (case-insensitive) |
| mode | string | — | 'add' puts tax on top of a net amount; 'remove' extracts the tax already inside a gross amount |
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | 2-letter ISO country code |
| country | string | yes | Country name |
| dataVerifiedOn | string | yes | ISO date the rate data was last confirmed against the authority |
| disclaimer | string | yes | General-information note that must accompany any figure shown to a person |
| gross | number | yes | Amount including tax (local currency, 2 dp) |
| mayBeStale | boolean | yes | True once the verification date is over a year old — re-confirm with the authority |
| mode | string | yes | Which conversion was performed |
| net | number | yes | Amount before tax (local currency, 2 dp) |
| rate | number | yes | Standard rate applied, as a fraction |
| source | string | yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| tax | number | yes | The GST/VAT portion (local currency, 2 dp) |
| taxLocalName | string | yes | The tax's local name, e.g. 'GST', 'VAT' |
No examples provided.
income_tax_estimate Income tax & take-home estimate (AU, NZ) ~205
Estimate personal income tax and take-home pay for Australia or New Zealand from gross annual income, using effective-dated brackets that roll over automatically each financial year (AU includes the Medicare levy and Low Income Tax Offset). Use it for individual salary and take-home questions in AU or NZ only — other countries return 'not available' rather than a guess; their headline rates live in tax_rate_lookup. This is a resident-individual estimate, not a filing calculation: deductions and offsets beyond LITO are out of scope, and for compulsory HELP/HECS study-loan repayments use student_loan_repayment.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | Country with bracket data: AU (Australia) or NZ (New Zealand) |
| income | number | yes | Gross annual income in local currency (AUD for AU, NZD for NZ), before tax |
| taxYear | string | — | Financial-year label like '2025-26'; omit to use the current financial year in that country's timezone |
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | Country estimated |
| currency | string | yes | Currency of every monetary field (AUD or NZD) |
| dataVerifiedOn | string | yes | ISO date the rate data was last confirmed against the authority |
| disclaimer | string | yes | General-information note that must accompany any figure shown to a person |
| gross | number | yes | Gross annual income used |
| incomeTax | number | yes | Income tax before levies and offsets |
| lito | number | yes | Low Income Tax Offset applied (AU only; 0 otherwise) |
| mayBeStale | boolean | yes | True once the verification date is over a year old — re-confirm with the authority |
| medicareLevy | number | yes | Medicare levy (AU only; 0 for NZ) |
| source | string | yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| takeHome | number | yes | Gross minus total tax |
| taxYear | string | yes | Financial year the brackets belong to |
| totalTax | number | yes | Total tax after levies and offsets |
No examples provided.
student_loan_repayment Australian HELP/HECS study-loan repayment ~204
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.
| Name | Type | Req | Description |
|---|---|---|---|
| repaymentIncome | number | yes | ATO repayment income in AUD (taxable income + reportable super + reportable fringe benefits + net investment loss + exempt foreign income) |
| taxYear | string | — | Financial-year label like '2025-26'; omit to use the current Australian financial year |
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | Always AU — this tool is Australia-only |
| dataVerifiedOn | string | yes | ISO date the rate data was last confirmed against the authority |
| disclaimer | string | yes | General-information note that must accompany any figure shown to a person |
| effectiveRate | number | yes | repayment ÷ repayment income, as a fraction |
| mayBeStale | boolean | yes | True once the verification date is over a year old — re-confirm with the authority |
| minThreshold | number | yes | Income at or below which the repayment is nil (AUD) |
| repayment | number | yes | Compulsory repayment for the year (AUD) |
| repaymentIncome | number | yes | Repayment income used (AUD) |
| source | string | yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| taxYear | string | yes | Financial year whose thresholds were used |
No examples provided.
superannuation_estimate Australian superannuation estimate ~284
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 and personal deductible contributions add to the concessional total; other taxable income is only needed to test the Division 293 threshold.
| Name | Type | Req | Description |
|---|---|---|---|
| ordinaryEarnings | number | yes | Ordinary time earnings the Superannuation Guarantee applies to, in AUD (usually salary/wages) |
| otherTaxableIncome | number | — | Other taxable income in AUD — only used to test the Division 293 high-earner threshold |
| personalDeductible | number | — | Personal contributions claimed as a tax deduction in AUD (also concessional) |
| salarySacrifice | number | — | Voluntary before-tax (concessional) contributions in AUD |
| taxYear | string | — | Financial-year label like '2025-26'; omit to use the current Australian financial year |
| Name | Type | Req | Description |
|---|---|---|---|
| concessionalCap | number | yes | Concessional contributions cap for the year (AUD) |
| concessionalContributions | number | yes | SG + salary sacrifice + personal deductible, all concessional (AUD) |
| contributionsTax | number | yes | 15% contributions tax on concessional contributions within the cap (AUD) |
| country | string | yes | Always AU — this tool is Australia-only |
| dataVerifiedOn | string | yes | ISO date the rate data was last confirmed against the authority |
| disclaimer | string | yes | General-information note that must accompany any figure shown to a person |
| div293Applies | boolean | yes | Whether the Division 293 high-earner surcharge applies |
| div293Tax | number | yes | Division 293 surcharge (extra 15%), 0 when it does not apply (AUD) |
| excessConcessional | number | yes | Concessional contributions above the cap (AUD) |
| guaranteeAmount | number | yes | Compulsory employer SG contribution for the year (AUD) |
| guaranteeableEarnings | number | yes | Earnings the SG applied to after the maximum contribution base cap (AUD) |
| mayBeStale | boolean | yes | True once the verification date is over a year old — re-confirm with the authority |
| sgRate | number | yes | Superannuation Guarantee rate applied, as a fraction |
| source | string | yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| taxYear | string | yes | Financial year whose parameters were used |
No examples provided.
tax_rate_lookup Country tax rate lookup ~133
Look up one country's headline tax rates: GST/VAT standard and reduced rates, top personal income tax rate, and company tax rate. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | 2-letter ISO 3166-1 code of the country to look up (case-insensitive) |
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | 2-letter ISO country code |
| companyRate | string | yes | Headline company tax rate (display string) |
| country | string | yes | Country name |
| dataVerifiedOn | string | yes | ISO date the rate data was last confirmed against the authority |
| disclaimer | string | yes | General-information note that must accompany any figure shown to a person |
| incomeTopRate | string | yes | Top personal income tax rate (display string; may note surcharges) |
| mayBeStale | boolean | yes | True once the verification date is over a year old — re-confirm with the authority |
| reducedRates | array | yes | Reduced rates as fractions; empty when none |
| source | string | yes | The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au') |
| standardRate | number | yes | Standard consumption-tax rate as a fraction (0.1 = 10%) |
| standardRateDisplay | string | yes | Standard rate formatted for display |
| taxFamily | string | yes | Consumption-tax family, e.g. 'GST', 'VAT' or a non-VAT system like retail sales tax |
| taxLocalName | string | yes | The tax's local name, e.g. 'GST', 'USt' |
No examples provided.