cz.freelax/tax-engine
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Deterministic Czech OSVC tax tools for 2026: tax, insurance, deadlines, VAT and exchange rates.
| Author | cz.freelax |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 1899 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"tax-engine": {
"url": "https://freelax.cz/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (14)
compute_yearread-onlyComputes 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.
Parameters:
hasZTP— booleantaxYear— number — Only 2026 is supported because the engine currently has a 2026 rulesetchildren— arrayisMarried— booleanisNewOsvc— booleantaxRegime— stringdeductions— objectactivityType— stringtargetRegime— string — Simulate a different regime without changing the stored factshasChildUnder3— booleancitizenshipType— stringdisabilityGrade— stringflatRatePercent— Flat-rate expense percentage as a decimal (0.4 / 0.6 / 0.8)isVATRegistered— booleanisCzechTaxResident— booleanpublicHealthStatus— stringrentalMonthlyIncome— numberannualBusinessIncome— number — Exact annual business income in CZK; takes precedence over the monthly figureemployerCoversHealth— booleanmonthlyBusinessIncome— number — Gross monthly business income in CZK (§ 7 ZDP)spouseIncomeUnderLimit— boolean — Spouse annual income under the sleva na manžela limithasReducedSocialMinimum— booleanisExemptFromMonthlyZalohy— boolean
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
calc_set_asideread-onlyHow 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.
Parameters:
monthlyIncome(required) — number — Gross monthly business income in CZK (§ 7 ZDP)taxRegime— stringactivityType— stringadvanceExempt— booleanflatRatePercent— Flat-rate expense percentage as a decimal: 0.4 (other business), 0.6 (most freelancers / živnost volná), 0.8 (craft trades)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 calculationemployerCoversHealth— booleansecondaryThresholdExceeded— boolean
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
compare_regimesread-onlyCompares 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.
Parameters:
annualIncome(required) — number — Gross annual business income in CZKisMarried— booleandeductions— objecthasChildUnder3— booleanflatRatePercent— Flat-rate expense percentage as a decimal: 0.4 (other business), 0.6 (most freelancers / živnost volná), 0.8 (craft trades)numberOfChildren— integerrentalAnnualIncome— numberspouseIncomeUnderLimit— boolean — Spouse annual income under the credit limit (sleva na manžela/manželku)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
calc_flat_tax_settlementread-onlyGiven 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).
Parameters:
currentBand(required) — string — Band actually paid during the yearactualAnnualIncome(required) — numberisProjection— boolean — True for a mid-year projection instead of a final settlementmonthsInRegime— integerflatRatePercent— Flat-rate expense percentage as a decimal: 0.4 (other business), 0.6 (most freelancers / živnost volná), 0.8 (craft trades)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
estimate_penaltyread-onlyEstimates 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.
Parameters:
obligationType(required) — string — 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(required) — number — Outstanding amount in CZKdaysOverdue(required) — integerdueDate— string — Original due date (YYYY-MM-DD); anchors the correct half-year repo rategracePeriodActive— boolean
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
convert_eur_czkread-onlyConverts 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.
Parameters:
amountEur(required) — number — Amount in EUR
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
get_filing_deadlinesread-onlyDeadline 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.
Parameters:
taxYear(required) — integer — The tax year the return is FOR (e.g. 2025 return is filed in 2026)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)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
get_prehled_deadlinesread-onlyFiling 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).
Parameters:
taxYear(required) — integerroute— 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)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
czech_working_daysread-onlyCzech 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.
Parameters:
year(required) — integerdate— string — Optional date (YYYY-MM-DD) to test for working-day status
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
check_flat_tax_eligibilityread-onlyScreens 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.
Parameters:
annualIncome(required) — number — Expected annual business income in CZKactivityType— stringcitizenshipType— 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 onlyisVATRegistered— boolean — Full VAT payer (plátce DPH). Identifikovaná osoba is NOT blocking.publicHealthStatus— stringrentalAnnualIncome— number
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
get_flat_tax_bandread-onlyWhich 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.
Parameters:
annualIncome(required) — numberflatRatePercent— Flat-rate expense percentage as a decimal: 0.4 (other business), 0.6 (most freelancers / živnost volná), 0.8 (craft trades)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
check_thresholdsread-onlyChecks 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.
Parameters:
annualIncome(required) — number
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
check_io_triggerread-onlyChecks 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.
Parameters:
vatStatus(required) — string — Current VAT status of the OSVČforeignServicePurchase(required) — string — 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 confirmedtoday— string — Evaluation date; defaults to todayforeignSales— array — Year-to-date foreign client income for the sales-side (§ 6i) checkpurchaseDate— string — Date of the qualifying purchase; drives the 15-day § 97 registration deadlinevatStatusConfirmedAt— string — When the VAT status was last confirmed (freshness window 180 days)foreignServicePurchaseConfirmedAt— string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
get_rule_sourceread-onlyFor 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.
Parameters:
topic(required) — stringlocale— string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.