# cz.freelax/tax-engine (remote · freelax.cz)

Deterministic Czech OSVC tax tools for 2026: tax, insurance, deadlines, VAT and exchange rates.

- Trust score: 61/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `freelax.cz`: 61/100 (this document), [markdown](https://verifymcp.io/servers/cz-freelax-tax-engine/api-mcp.md), [page](https://verifymcp.io/servers/cz-freelax-tax-engine/api-mcp)

## Channel facts

- Endpoint: `https://freelax.cz/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.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**: 66/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 14 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - 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**: 50/100
  - AI-judged instruction clarity (fair).
  - Context-footprint check failed: tool/resource definitions use about 2291 tokens (~163/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 7/100
  - Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 82/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 45% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### Claude

```bash
claude mcp add --transport http cz-freelax-tax-engine https://freelax.cz/api/mcp
```

### Codex

```toml
[mcp_servers.cz-freelax-tax-engine]
url = "https://freelax.cz/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cz-freelax-tax-engine": {
      "type": "remote",
      "url": "https://freelax.cz/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add cz-freelax-tax-engine --url https://freelax.cz/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  cz-freelax-tax-engine:
    url: "https://freelax.cz/api/mcp"
```

### Other

```json
{
  "mcpServers": {
    "cz-freelax-tax-engine": {
      "type": "http",
      "url": "https://freelax.cz/api/mcp"
    }
  }
}
```

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-03 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 60, +7)

- [functional improvement] Schema quality: unverified → fair
- [functional improvement] Stability: unverified → 0.03

### 2026-08-01 (score 53)

First indexed and scored.

## MCP tools (14)

### `compute_year` (~368 tokens)

Full-year OSVČ tax computation

Computes a full Czech OSVČ tax year from personal facts: income tax with credits (children, spouse, deductions), social and health insurance, monthly set-aside, safe-to-spend, flat-tax band and regime-eligibility evaluation. All figures come from the deterministic Freelax engine, never from the model.

Input parameters:

- `activityType` (string)
- `annualBusinessIncome` (number): Exact annual business income in CZK; takes precedence over the monthly figure
- `children` (array)
- `citizenshipType` (string)
- `deductions` (object)
- `disabilityGrade` (string)
- `employerCoversHealth` (boolean)
- `flatRatePercent`: Flat-rate expense percentage as a decimal (0.4 / 0.6 / 0.8)
- `hasChildUnder3` (boolean)
- `hasReducedSocialMinimum` (boolean)
- `hasZTP` (boolean)
- `isCzechTaxResident` (boolean)
- `isExemptFromMonthlyZalohy` (boolean)
- `isMarried` (boolean)
- `isNewOsvc` (boolean)
- `isVATRegistered` (boolean)
- `monthlyBusinessIncome` (number): Gross monthly business income in CZK (§ 7 ZDP)
- `publicHealthStatus` (string)
- `rentalMonthlyIncome` (number)
- `spouseIncomeUnderLimit` (boolean): Spouse annual income under the sleva na manžela limit
- `targetRegime` (string): Simulate a different regime without changing the stored facts
- `taxRegime` (string)
- `taxYear` (number): Only 2026 is supported because the engine currently has a 2026 ruleset

### `calc_set_aside` (~219 tokens)

Monthly tax set-aside calculator

How much of a monthly OSVČ income to set aside for Czech income tax, social and health insurance, and what remains safe to spend. Supports mixed §7 business + §9 rental income and the paušální daň (flat tax) regimes.

Input parameters:

- `activityType` (string)
- `advanceExempt` (boolean)
- `employerCoversHealth` (boolean)
- `flatRatePercent`: Flat-rate expense percentage as a decimal: 0.4 (other business), 0.6 (most freelancers / živnost volná), 0.8 (craft trades)
- `monthlyIncome` (number, required): Gross monthly business income in CZK (§ 7 ZDP)
- `reducedMinimumBase` (boolean): New OSVČ in the first 2 years (lower social minimum)
- `rentalMonthlyIncome` (number): Monthly rental income in CZK (§ 9 ZDP); triggers the mixed-income calculation
- `secondaryThresholdExceeded` (boolean)
- `taxRegime` (string)

### `compare_regimes` (~184 tokens)

Standard vs paušální daň comparison

Compares the standard OSVČ regime against paušální daň (flat tax) for a yearly income, including tax credits that would be lost with the flat tax (children, spouse), and recommends the cheaper regime.

Input parameters:

- `annualIncome` (number, required): Gross annual business income in CZK
- `deductions` (object)
- `flatRatePercent`: Flat-rate expense percentage as a decimal: 0.4 (other business), 0.6 (most freelancers / živnost volná), 0.8 (craft trades)
- `hasChildUnder3` (boolean)
- `isMarried` (boolean)
- `numberOfChildren` (integer)
- `rentalAnnualIncome` (number)
- `spouseIncomeUnderLimit` (boolean): Spouse annual income under the credit limit (sleva na manžela/manželku)

### `calc_flat_tax_settlement` (~160 tokens)

Paušální daň year-end settlement

Given the paušální daň band you paid and the actual annual income, computes whether you owe a doplatek (top-up), get a vratka (refund), or must exit the flat-tax regime (income above 2,000,000 CZK).

Input parameters:

- `actualAnnualIncome` (number, required)
- `currentBand` (string, required): Band actually paid during the year
- `flatRatePercent`: Flat-rate expense percentage as a decimal: 0.4 (other business), 0.6 (most freelancers / živnost volná), 0.8 (craft trades)
- `isProjection` (boolean): True for a mid-year projection instead of a final settlement
- `monthsInRegime` (integer)

### `estimate_penalty` (~213 tokens)

Late-payment penalty estimate

Estimates the Czech penalty/interest for a late payment or filing: repo rate + 8 p.p. for insurance and tax interest (3.5% H1 / 3.75% H2 2026), 3 grace days for tax payments, 200 CZK health aggregation floor and the 1,000 CZK tax non-assessment threshold. A dated estimate is rejected when its required rate period falls outside the implemented history.

Input parameters:

- `daysOverdue` (integer, required)
- `dueDate` (string): Original due date (YYYY-MM-DD); anchors the correct half-year repo rate
- `gracePeriodActive` (boolean)
- `obligationType` (string, required): Obligation family: health/social insurance debt, tax_advance (záloha na daň), pausal (paušální daň payment), tax_return (late filing), prehled_* (late Přehled), annual_social (doplatek)
- `owedAmount` (number, required): Outstanding amount in CZK

### `convert_eur_czk` (~79 tokens)

EUR → CZK conversion (ČNB rate)

Converts an EUR amount to CZK using the Czech National Bank daily exchange rate (the rate used for Czech tax purposes). Reports the rate, its publication date and whether a stale cached ČNB publication had to be used. Fails closed when no verified ČNB rate is available.

Input parameters:

- `amountEur` (number, required): Amount in EUR

### `get_filing_deadlines` (~129 tokens)

DPFO filing deadline (daňové přiznání)

Deadline for the Czech personal income tax return (DPFO) for a given tax year, per filing route: paper, self-filed electronic, or via tax advisor. Weekend and holiday shifts are applied.

Input parameters:

- `route` (string): Filing route: standard_deadline = paper/no extension (1 April), self_electronic_extension = filed electronically after 1 April (+1 month), advisor_extension = filed by a tax advisor (1 July)
- `taxYear` (integer, required): The tax year the return is FOR (e.g. 2025 return is filed in 2026)

### `get_prehled_deadlines` (~122 tokens)

Přehled deadlines (ČSSZ + zdravotní pojišťovna)

Filing deadlines for the annual OSVČ Přehled o příjmech a výdajích for both social insurance (ČSSZ) and the health insurer, per tax-return filing route, plus the payment due date (8 calendar days after the filing deadline).

Input parameters:

- `route` (string): Filing route: standard_deadline = paper/no extension (1 April), self_electronic_extension = filed electronically after 1 April (+1 month), advisor_extension = filed by a tax advisor (1 July)
- `taxYear` (integer, required)

### `czech_working_days` (~76 tokens)

Czech holidays and working-day shifts

Czech public holidays for a year (including movable Easter feasts) and, for a specific date, whether it is a working day and the next working day a statutory deadline would shift to.

Input parameters:

- `date` (string): Optional date (YYYY-MM-DD) to test for working-day status
- `year` (integer, required)

### `check_flat_tax_eligibility` (~197 tokens)

Paušální daň eligibility check

Screens whether an OSVČ may enter or stay in the paušální daň (flat tax) regime: public health insurance participation (decisive for foreigners), VAT-payer status, income ceiling 2,000,000 CZK, side income and secondary activity. Returns reasons with severity.

Input parameters:

- `activityType` (string)
- `annualIncome` (number, required): Expected annual business income in CZK
- `citizenshipType` (string): eu = EU/EEA citizen; non_eu_public = non-EU participating in Czech public health insurance (e.g. dočasná ochrana, employment); non_eu_private = non-EU with private/commercial insurance only
- `isVATRegistered` (boolean): Full VAT payer (plátce DPH). Identifikovaná osoba is NOT blocking.
- `publicHealthStatus` (string)
- `rentalAnnualIncome` (number)

### `get_flat_tax_band` (~106 tokens)

Paušální daň band lookup

Which paušální daň band (pásmo 1/2/3) an annual income falls into given the expense flat-rate, the current monthly payment for that band, and the next income threshold to watch.

Input parameters:

- `annualIncome` (number, required)
- `flatRatePercent`: Flat-rate expense percentage as a decimal: 0.4 (other business), 0.6 (most freelancers / živnost volná), 0.8 (craft trades)

### `check_thresholds` (~78 tokens)

Statutory income threshold monitor

Checks an annual income against the four statutory thresholds: VAT registration 2,000,000 CZK, immediate VAT registration 2,536,500 CZK, the 23% higher tax bracket, and the paušální daň eligibility ceiling. Reports approaching (90%), exceeded and remaining amounts.

Input parameters:

- `annualIncome` (number, required)

### `check_io_trigger` (~243 tokens)

Identified person (identifikovaná osoba) trigger check

Checks whether buying services from abroad (Google Ads, Meta, ChatGPT, hosting…) or selling services to EU businesses has made an OSVČ an identifikovaná osoba under § 6h/§ 6i ZDPH, with the 15-day registration deadline (§ 97) and fact-freshness handling. Verdict: ok / check / act_now.

Input parameters:

- `foreignSales` (array): Year-to-date foreign client income for the sales-side (§ 6i) check
- `foreignServicePurchase` (string, required): Foreign service purchases: none_confirmed = verified none, possible = maybe (e.g. runs online ads), qualifying_confirmed = a qualifying purchase from a non-CZ supplier is confirmed
- `foreignServicePurchaseConfirmedAt` (string)
- `purchaseDate` (string): Date of the qualifying purchase; drives the 15-day § 97 registration deadline
- `today` (string): Evaluation date; defaults to today
- `vatStatus` (string, required): Current VAT status of the OSVČ
- `vatStatusConfirmedAt` (string): When the VAT status was last confirmed (freshness window 180 days)

### `get_rule_source` (~117 tokens)

Rule citation and verification lookup

For a Czech OSVČ tax topic, returns the governing rule with current values, primary-source citations (zákon, ČSSZ, VZP, Finanční správa) with verification dates, and related Freelax articles. Topics: pausalni_dan, identifikovana_osoba, dph_registrace, zalohy, prehledy, penale, danove_pasmo_23, vedlejsi_cinnost.

Input parameters:

- `locale` (string)
- `topic` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/cz-freelax-tax-engine/api-mcp#diagnostics

## Score history

- 2026-08-03: 61
- 2026-08-02: 60
- 2026-08-01: 53

## Links

- Remote endpoint: https://freelax.cz/api/mcp
- Website: https://freelax.cz/connect
- Changelog RSS feed: https://verifymcp.io/servers/cz-freelax-tax-engine/api-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/cz-freelax-tax-engine/api-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/cz-freelax-tax-engine/api-mcp
