# AI2Fin (2Fin) Tax MCP (remote · taxmcp.ai2fin.com)

Free public tax MCP: GST/VAT, income, company & capital-gains tax for 50+ countries, source-cited.

- Trust score: 71/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `taxmcp.ai2fin.com`: 71/100 (this document), [markdown](https://verifymcp.io/servers/com-ai2fin-ai2fin-tax-mcp/taxmcp.md), [page](https://verifymcp.io/servers/com-ai2fin-ai2fin-tax-mcp/taxmcp)

## Channel facts

- Endpoint: `https://taxmcp.ai2fin.com`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.3.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 77/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 67/100
  - AI-judged instruction clarity (excellent).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-ai2fin-ai2fin-tax-mcp https://taxmcp.ai2fin.com/
```

### Codex

```toml
[mcp_servers.com-ai2fin-ai2fin-tax-mcp]
url = "https://taxmcp.ai2fin.com/"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-ai2fin-ai2fin-tax-mcp": {
      "type": "remote",
      "url": "https://taxmcp.ai2fin.com/",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-ai2fin-ai2fin-tax-mcp --url https://taxmcp.ai2fin.com/ --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-ai2fin-ai2fin-tax-mcp:
    url: "https://taxmcp.ai2fin.com/"
```

### Other

```json
{
  "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.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 71, +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.

### 2026-07-31 (score 70, +3)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 67, −1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 68, +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.

### 2026-07-27 (score 67, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 66)

First indexed and scored.

## MCP tools (8)

### `tax_rate_lookup` (~133 tokens)

Country tax rate lookup

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.

Input parameters:

- `country` (string, required): 2-letter ISO 3166-1 code of the country to look up (case-insensitive)

Output parameters:

- `code` (string): 2-letter ISO country code
- `companyRate` (string): Headline company tax rate (display string)
- `country` (string): Country name
- `dataVerifiedOn` (string): ISO date the rate data was last confirmed against the authority
- `disclaimer` (string): General-information note that must accompany any figure shown to a person
- `incomeTopRate` (string): Top personal income tax rate (display string; may note surcharges)
- `mayBeStale` (boolean): True once the verification date is over a year old — re-confirm with the authority
- `reducedRates` (array): Reduced rates as fractions; empty when none
- `source` (string): The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au')
- `standardRate` (number): Standard consumption-tax rate as a fraction (0.1 = 10%)
- `standardRateDisplay` (string): Standard rate formatted for display
- `taxFamily` (string): Consumption-tax family, e.g. 'GST', 'VAT' or a non-VAT system like retail sales tax
- `taxLocalName` (string): The tax's local name, e.g. 'GST', 'USt'

### `compute_gst_vat` (~195 tokens)

GST/VAT add or remove calculator

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.

Input parameters:

- `amount` (number, required): The monetary amount in the local currency — tax-exclusive when mode=add, tax-inclusive when mode=remove
- `country` (string, required): 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

Output parameters:

- `code` (string): 2-letter ISO country code
- `country` (string): Country name
- `dataVerifiedOn` (string): ISO date the rate data was last confirmed against the authority
- `disclaimer` (string): General-information note that must accompany any figure shown to a person
- `gross` (number): Amount including tax (local currency, 2 dp)
- `mayBeStale` (boolean): True once the verification date is over a year old — re-confirm with the authority
- `mode` (string): Which conversion was performed
- `net` (number): Amount before tax (local currency, 2 dp)
- `rate` (number): Standard rate applied, as a fraction
- `source` (string): The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au')
- `tax` (number): The GST/VAT portion (local currency, 2 dp)
- `taxLocalName` (string): The tax's local name, e.g. 'GST', 'VAT'

### `compare_countries` (~116 tokens)

Multi-country tax comparison

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.

Input parameters:

- `countries` (array, required): Countries to compare — two or more makes a meaningful comparison

Output parameters:

- `dataVerifiedOn` (string): ISO date the rate data was last confirmed against the authority
- `disclaimer` (string): General-information note that must accompany any figure shown to a person
- `mayBeStale` (boolean): True once the verification date is over a year old — re-confirm with the authority
- `rows` (array): One row per matched country
- `source` (string): The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au')
- `unmatchedCodes` (array): Requested codes with no data — nothing was guessed for these

### `income_tax_estimate` (~205 tokens)

Income tax & take-home estimate (AU, NZ)

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.

Input parameters:

- `country` (string, required): Country with bracket data: AU (Australia) or NZ (New Zealand)
- `income` (number, required): 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

Output parameters:

- `country` (string): Country estimated
- `currency` (string): Currency of every monetary field (AUD or NZD)
- `dataVerifiedOn` (string): ISO date the rate data was last confirmed against the authority
- `disclaimer` (string): General-information note that must accompany any figure shown to a person
- `gross` (number): Gross annual income used
- `incomeTax` (number): Income tax before levies and offsets
- `lito` (number): Low Income Tax Offset applied (AU only; 0 otherwise)
- `mayBeStale` (boolean): True once the verification date is over a year old — re-confirm with the authority
- `medicareLevy` (number): Medicare levy (AU only; 0 for NZ)
- `source` (string): The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au')
- `takeHome` (number): Gross minus total tax
- `taxYear` (string): Financial year the brackets belong to
- `totalTax` (number): Total tax after levies and offsets

### `company_tax_estimate` (~224 tokens)

Company tax estimate (AU, US, GB, IN, CA)

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.

Input parameters:

- `country` (string, required): Country with source-verified company-tax data
- `profit` (number, required): 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

Output parameters:

- `afterTax` (number): Profit after tax
- `country` (string): Country estimated
- `dataVerifiedOn` (string): ISO date the rate data was last confirmed against the authority
- `disclaimer` (string): General-information note that must accompany any figure shown to a person
- `mayBeStale` (boolean): True once the verification date is over a year old — re-confirm with the authority
- `note` (string): What the headline calculation excludes (state/provincial tax, surcharge/cess, marginal relief …)
- `rateApplied` (number): Rate actually applied, as a fraction
- `source` (string): The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au')
- `tax` (number): Company tax on the profit (local currency, rounded)
- `taxLabel` (string): The country's name for the tax, e.g. 'Corporation Tax'

### `cgt_estimate` (~241 tokens)

Australian capital gains tax estimate

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.

Input parameters:

- `capitalLosses` (number): Capital losses to offset, in AUD — applied against the gross gain before any discount
- `costBase` (number, required): Cost base in AUD — what the asset cost, including eligible incidental costs
- `heldMoreThan12Months` (boolean, required): True when the asset was held over 12 months, which halves the taxable gain (the 50% CGT discount)
- `income` (number, required): Other taxable income for the year in AUD (salary etc.) — sets the marginal rate the gain stacks on
- `proceeds` (number, required): Sale price of the asset in AUD

Output parameters:

- `cgtPayable` (number): Extra tax caused by the gain (AUD)
- `country` (string): Always AU — this tool is Australia-only
- `dataVerifiedOn` (string): ISO date the rate data was last confirmed against the authority
- `disclaimer` (string): General-information note that must accompany any figure shown to a person
- `discountApplied` (boolean): Whether the 50% discount halved the taxable gain
- `grossGain` (number): Proceeds minus cost base, floored at 0 (AUD)
- `lossOffset` (number): Capital losses actually applied (AUD)
- `mayBeStale` (boolean): True once the verification date is over a year old — re-confirm with the authority
- `source` (string): The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au')
- `taxYear` (string): Financial year whose brackets were used
- `taxableGain` (number): Gain added on top of other income (AUD)

### `student_loan_repayment` (~204 tokens)

Australian HELP/HECS study-loan repayment

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.

Input parameters:

- `repaymentIncome` (number, required): 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

Output parameters:

- `country` (string): Always AU — this tool is Australia-only
- `dataVerifiedOn` (string): ISO date the rate data was last confirmed against the authority
- `disclaimer` (string): General-information note that must accompany any figure shown to a person
- `effectiveRate` (number): repayment ÷ repayment income, as a fraction
- `mayBeStale` (boolean): True once the verification date is over a year old — re-confirm with the authority
- `minThreshold` (number): Income at or below which the repayment is nil (AUD)
- `repayment` (number): Compulsory repayment for the year (AUD)
- `repaymentIncome` (number): Repayment income used (AUD)
- `source` (string): The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au')
- `taxYear` (string): Financial year whose thresholds were used

### `superannuation_estimate` (~284 tokens)

Australian superannuation estimate

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.

Input parameters:

- `ordinaryEarnings` (number, required): 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

Output parameters:

- `concessionalCap` (number): Concessional contributions cap for the year (AUD)
- `concessionalContributions` (number): SG + salary sacrifice + personal deductible, all concessional (AUD)
- `contributionsTax` (number): 15% contributions tax on concessional contributions within the cap (AUD)
- `country` (string): Always AU — this tool is Australia-only
- `dataVerifiedOn` (string): ISO date the rate data was last confirmed against the authority
- `disclaimer` (string): General-information note that must accompany any figure shown to a person
- `div293Applies` (boolean): Whether the Division 293 high-earner surcharge applies
- `div293Tax` (number): Division 293 surcharge (extra 15%), 0 when it does not apply (AUD)
- `excessConcessional` (number): Concessional contributions above the cap (AUD)
- `guaranteeAmount` (number): Compulsory employer SG contribution for the year (AUD)
- `guaranteeableEarnings` (number): Earnings the SG applied to after the maximum contribution base cap (AUD)
- `mayBeStale` (boolean): True once the verification date is over a year old — re-confirm with the authority
- `sgRate` (number): Superannuation Guarantee rate applied, as a fraction
- `source` (string): The national tax authority the figures were verified against (e.g. 'ATO — ato.gov.au')
- `taxYear` (string): Financial year whose parameters were used

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-ai2fin-ai2fin-tax-mcp/taxmcp#diagnostics

## Score history

- 2026-08-03: 71
- 2026-08-02: 71
- 2026-08-01: 70
- 2026-07-31: 70
- 2026-07-30: 67
- 2026-07-29: 68
- 2026-07-28: 67
- 2026-07-27: 67
- 2026-07-26: 66

## Links

- Remote endpoint: https://taxmcp.ai2fin.com/
- Repository: https://github.com/embracingearth-space/ai2fin-tax-mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-ai2fin-ai2fin-tax-mcp/taxmcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-ai2fin-ai2fin-tax-mcp/taxmcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-ai2fin-ai2fin-tax-mcp/taxmcp
