mcp server
tax-engine
Deterministic Czech OSVC tax tools for 2026: tax, insurance, deadlines, VAT and exchange rates.
Description as published by the maintainer. Source
- version 1.0.0
- active
active — Registry entry last updated 2026-08-01.
What this server can do
The endpoint published in the registry did not answer (Error: connect ECONNREFUSED 2a01:4f9:c012:5b62::1:443). The listing points at a server that is not running. The functions below are the last successful declaration, not a fresh answer.
Endpoint status observed on . Source: https://freelax.cz/api/mcp.
14 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
calc_flat_tax_settlement(currentBand, isProjection, monthsInRegime, flatRatePercent, actualAnnualIncome)- 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). Required: currentBand, actualAnnualIncome.
calc_set_aside(taxRegime, activityType, advanceExempt, monthlyIncome, flatRatePercent, reducedMinimumBase, rentalMonthlyIncome, employerCoversHealth, secondaryThresholdExceeded)- 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. Required: monthlyIncome.
check_flat_tax_eligibility(activityType, annualIncome, citizenshipType, isVATRegistered, publicHealthStatus, rentalAnnualIncome)- 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. Required: annualIncome.
check_io_trigger(today, vatStatus, foreignSales, purchaseDate, vatStatusConfirmedAt, foreignServicePurchase, foreignServicePurchaseConfirmedAt)- 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. Required: vatStatus, foreignServicePurchase.
check_thresholds(annualIncome)- 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. Required: annualIncome.
compare_regimes(isMarried, deductions, annualIncome, hasChildUnder3, flatRatePercent, numberOfChildren, rentalAnnualIncome, spouseIncomeUnderLimit)- 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. Required: annualIncome.
compute_year(hasZTP, taxYear, children, isMarried, isNewOsvc, taxRegime, deductions, activityType, targetRegime, hasChildUnder3, citizenshipType, disabilityGrade, flatRatePercent, isVATRegistered, isCzechTaxResident, publicHealthStatus, rentalMonthlyIncome, annualBusinessIncome, employerCoversHealth, monthlyBusinessIncome, spouseIncomeUnderLimit, hasReducedSocialMinimum, isExemptFromMonthlyZalohy)- 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.
convert_eur_czk(amountEur)- 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. Required: amountEur.
czech_working_days(date, year)- 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. Required: year.
estimate_penalty(dueDate, owedAmount, daysOverdue, obligationType, gracePeriodActive)- 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. Required: obligationType, owedAmount, daysOverdue.
get_filing_deadlines(route, taxYear)- 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. Required: taxYear.
get_flat_tax_band(annualIncome, flatRatePercent)- 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. Required: annualIncome.
get_prehled_deadlines(route, taxYear)- 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). Required: taxYear.
get_rule_source(topic, locale)- 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. Required: topic.
Last successful function declaration observed on . Source: https://freelax.cz/api/mcp. We list what the server declared; we do not call any of these functions.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| Latest published version | 1.0.0 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-08-01 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| First listed in the MCP Registry | 2026-08-01 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| mcp tools declared | 14 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | freelax.cz | |
| mcp endpoint status | unreachable | The endpoint published in the registry did not answer (Error: connect ECONNREFUSED 2a01:4f9:c012:5b62::1:443). The listing points at a server that is not running. | as of probe | freelax.cz |
Where to get it
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json