Skip to content

cz.freelax/tax-engine

by freelax.cz · remote · no sign-in to list tools · v1.0.0 · published by cz.freelax

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

Changes · 9

14 tools: 9 change things and 5 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

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

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "calc_set_aside" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true}; The name "calc_set_aside" says "set": a word for a change.

    What this check looks for
  • The server marks "convert_eur_czk" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true}; The name "convert_eur_czk" says "convert": a word for a change.

    What this check looks for
  • The server marks "check_io_trigger" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true}; The name "check_io_trigger" says "trigger": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

14 tools

Changes things 9Claude Code: ask
  • calc_flat_tax_settlementGiven 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 abo…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: true
  • calc_set_asideHow much of a monthly OSVČ income to set aside for Czech income tax, social and health insurance, and what remains safe to spend.1 finding

    Why it is in this group

    • The name "calc_set_aside" says "set": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "calc_set_aside" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The name "calc_set_aside" says "set": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
  • check_flat_tax_eligibilityScreens 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…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
  • check_io_triggerChecks 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,…1 finding

    Why it is in this group

    • The name "check_io_trigger" says "trigger": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "check_io_trigger" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The name "check_io_trigger" says "trigger": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
  • check_thresholdsChecks 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…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
  • compute_yearComputes 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…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
  • convert_eur_czkConverts an EUR amount to CZK using the Czech National Bank daily exchange rate (the rate used for Czech tax purposes).1 finding

    Why it is in this group

    • The name "convert_eur_czk" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert_eur_czk" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The name "convert_eur_czk" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
  • czech_working_daysCzech 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 t…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
  • estimate_penaltyEstimates the Czech penalty/interest for a late payment or filing: repo rate + 8 p.p.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
Only reads 5Claude Code: allow
  • compare_regimesCompares 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…No findings

    Why it is in this group

    • The name "compare_regimes" says "compare": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
  • get_filing_deadlinesDeadline for the Czech personal income tax return (DPFO) for a given tax year, per filing route: paper, self-filed electronic, or via tax advisor.No findings

    Why it is in this group

    • The name "get_filing_deadlines" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
  • get_flat_tax_bandWhich 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.No findings

    Why it is in this group

    • The name "get_flat_tax_band" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
  • get_prehled_deadlinesFiling 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 (…No findings

    Why it is in this group

    • The name "get_prehled_deadlines" says "get": a word for reading.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: true
  • get_rule_sourceFor 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 Freela…No findings

    Why it is in this group

    • The name "get_rule_source" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

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

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__tax-engine__compare_regimes",
      "mcp__tax-engine__get_filing_deadlines",
      "mcp__tax-engine__get_prehled_deadlines",
      "mcp__tax-engine__get_flat_tax_band",
      "mcp__tax-engine__get_rule_source"
    ],
    "ask": [
      "mcp__tax-engine__compute_year",
      "mcp__tax-engine__calc_set_aside",
      "mcp__tax-engine__calc_flat_tax_settlement",
      "mcp__tax-engine__estimate_penalty",
      "mcp__tax-engine__convert_eur_czk",
      "mcp__tax-engine__czech_working_days",
      "mcp__tax-engine__check_flat_tax_eligibility",
      "mcp__tax-engine__check_thresholds",
      "mcp__tax-engine__check_io_trigger"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as tax-engine. Review it before you use it.