# SA Crypto Tax Rules

> SA crypto tax: FIFO capital gains, tax estimates, CGT exclusion, capital vs revenue, CARF

- name: za.co.aiagenttools/cryptotax
- version: 1.0.1
- connection class: R0 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 82/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/za.co.aiagenttools%2Fcryptotax
- tools: https://api.protogrid.dev/v1/servers/za.co.aiagenttools%2Fcryptotax/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "cryptotax": {
      "type": "http",
      "url": "https://aiagenttools.co.za/cryptotax/mcp",
      "headers": {
        "Authorization": "Bearer ${CRYPTOTAX_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${CRYPTOTAX_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 98
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-96% +updated-6d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 82/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 88 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: unmet_request (destructiveHint, idempotentHint); crypto_capital_or_revenue (destructiveHint, idempotentHint); crypto_tax_rules (destructiveHint, idempotentHint); …
- pass `tools.token_cost`: about 1,800 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 5 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 6, about 1,800 tokens to load them all
- tool set hash: 033655235f4369a692ceb79ba3d6da3e
- tools last changed: 2026-11-13T22:39:35.463Z
- badge: [![protogrid quality](https://protogrid.dev/badge/za.co.aiagenttools/cryptotax.svg)](https://protogrid.dev/servers/za.co.aiagenttools/cryptotax)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-13 `account_balance` added
  - Free to call. Shows the plan on the API key you're using (free tier, Starter, Pro or pay-as-you-go), how much of the monthly allowance is left, the pay-as-you-go credit balance in rand, and where to top up. Without a key it shows how many free calls are left today.

Full history: https://api.protogrid.dev/v1/servers/za.co.aiagenttools%2Fcryptotax/changes

## Remotes

- https://aiagenttools.co.za/cryptotax/mcp (streamable-http, auth none, reachable true, uptime30d 0.95652175)

## Packages

_none_

## Tools (6)

- `account_balance`: Free to call. Shows the plan on the API key you're using (free tier, Starter, Pro or pay-as-you-go), how much of the monthly allowance is left, the pay-as-you-go credit balance in rand, and where to top up. Without a key it shows how many free calls are left today.
- `crypto_capital_or_revenue`: Gives a reasoned indication of whether a South African taxpayer's crypto gains are likely capital (CGT, 40% inclusion) or revenue (fully taxed as income), using the factors SARS and the courts weigh: intention, holding period, trading frequency, how it is funded and whether it is run like a business. An indicator for discussion, not a ruling.
- `crypto_gains_fifo`: Calculates South African capital gains and losses on crypto from a list of buys, sells, crypto-to-crypto swaps, spends, gifts and crypto income, using first-in-first-out (SARS accepts FIFO or specific identification; weighted average is not allowed). Returns each disposal's proceeds, base cost and gain, totals per tax year (1 March – end February), income to declare, and holdings left with their base cost. Optionally estimates the tax per year.
- `crypto_tax_estimate`: Estimates the extra South African income tax caused by crypto in one tax year, for an individual, company or trust: applies the CGT annual exclusion (R50,000 for individuals from 1 March 2026), the 40% or 80% inclusion rate, the tax tables and age rebates, and shows tax with and without the crypto, the marginal rate and any capital loss to carry forward.
- `crypto_tax_rules`: Returns the South African crypto tax rules for a tax year: income tax table and rebates, CGT annual exclusion, inclusion rates and maximum effective rates, company and trust rates, accepted cost methods (FIFO or specific identification; not weighted average), how swaps, spending, income and gifts are treated, and SARS reporting under CARF.
- `unmet_request`: Free to call. If you needed South African data that none of these tools provide (a cost, rate, rule, price or place we don't cover), describe it here in one sentence. We review these every week and build the most-requested data first.
