← The evidence ledger
Evidence row 290032
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 31d27211-434c-4503-8285-0ee7da95a3e8
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- d613ec8d5ef05990ed941ceea5b39ed4049e8485c938438c4d880d6187fc4ef2
- Leaf
- 0x4d667c0887cb244032fdcaad47ee031c955eff15bfd867fae202fda2b22625c0
What was observed
{
"count": 2,
"tools": [
{
"description": "Calculate detailed payroll and net salary for one country and person. Use this for tax class, region, health insurance, pension, deductions, or other country-specific inputs. For the same gross salary across two or more countries, use taxcompare. Use semantic fields where available; legacy fields remain REST compatibility inputs. Monetary fields in the legacy request are minor units and period-specific.",
"inputSchema": {
"additionalProperties": true,
"description": "Input for one-country detailed payroll calculations. Prefer country, tax_year, gross_salary, location, employee_type, tax, and social_security. Use semantic German payroll fields instead of raw engine flags. Prefer taxcompare for multi-country comparisons; legacy fields use minor currency units and are period-specific.",
"examples": [
{
"age": 35,
"country": "DE",
"employee_type": "standard_statutory_employee",
"gross_salary": {
"amount": 60000,
"currency": "EUR",
"period": "annual"
},
"location": {
"federal_state": "BE"
},
"payroll_preset": "DE_STANDARD_EMPLOYEE_STATUTORY",
"social_security": {
"children_for_care_insurance": 0,
"health_additional_contribution_percent": 2.9,
"health_insurance": "statutory",
"long_term_care_insurance": "statutory",
"pension_insurance": "statutory",
"unemployment_insurance": "statutory"
},
"tax": {
"child_allowance_factor": 0,
"church_tax": false,
"tax_class": 1
},
"tax_year": 2026
}
],
"properties": {
"Currency": {
"description": "Display currency / calculation currency code.",
"enum": [
"EUR",
"USD",
"CHF",
"CAD",
"AUD",
"GBP"
],
"type": "string"
},
"Faktor": {
"default": 1,
"description": "Global factor for factor-based tax class handling.",
"type": "number"
},
"KinderFRB": {
"default": 0,
"description": "Top-level child allowance, child count, dependent count, or child-credit factor for the calculation. DE uses allowance-style factors; AT/CH/US and other systems use country-specific child/dependent meanings where supported.",
"type": "number"
},
"KinderPVA": {
"default": 0,
"description": "Total child count relevant for German long-term care insurance contribution logic. Leave 0 outside German care-insurance scenarios unless a country-specific child workflow explicitly requires it.",
"minimum": 0,
"type": "integer"
},
"Kindergeld": {
"default": 0,
"description": "Child benefit amount in minor units for the selected calculation context. Leave 0 for standard payroll estimates unless explicitly modeling child benefit or a country-specific dependent benefit.",
"type": "integer"
},
"LZZ": {
"default": 1,
"description": "Payroll period identifier for the calculation. Values: 1=year, 2=month, 3=week, 4=day. All salary and payroll monetary inputs must be for this period, not automatically annualized.",
"enum": [
1,
2,
3,
4
],
"type": "integer"
},
"Land": {
"description": "Country code for the calculation.",
"enum": [
"DE",
"AT",
"US",
"CH",
"CA",
"AU",
"UK",
"IE"
],
"type": "string"
},
"Modus": {
"default": 1,
"description": "Calculation mode. Use 1 for one person, 2 for two persons, and 3 for the German TaxSim capped real-splitting simulation.",
"enum": [
1,
2,
3
],
"type": "integer"
},
"Personen": {
"description": "One or two payroll person records. Each person contains salary, tax class, region, insurance, child, and optional special-income inputs.",
"items": {
"additionalProperties": true,
"properties": {
"Altersrente_Bezug": {
"description": "1 if pension/retirement benefits apply, otherwise 0. Mainly used for DE/AT pensioner workflows.",
"type": "integer"
},
"Bundesland": {
"description": "Country-polymorphic region selector for regional taxes and payroll rules. DE uses full Obolus state names such as Berlin, Bayern, Nordrhein-Westfalen, Sachsen, not ISO abbreviations such as BE or BY. AT uses Austrian federal states such as Wien. CH uses the canton such as Zurich. US uses state names such as California. CA uses provinces such as Ontario, Quebec, or British Columbia. UK uses England, Scotland, Wales, or Northern Ireland. Leave omitted for country examples that omit it unless the user gives a specific supported region.",
"examples": [
"Baden-Wuerttemberg",
"Bayern",
"Berlin",
"Brandenburg",
"Bremen",
"Hamburg",
"Hessen",
"Mecklenburg-Vorpommern",
"Niedersachsen",
"Nordrhein-Westfalen",
"Rheinland-Pfalz",
"Saarland",
"Sachsen",
"Sachsen-Anhalt",
"Schleswig-Holstein",
"Thueringen"
],
"type": "string"
},
"Entschädigungen_vermgsbteil": {
"description": "Capital-forming compensation share in minor units.",
"type": "integer"
},
"Erster_mntl_Versorgungsbezug": {
"description": "Germany-only first monthly pension payment in minor units.",
"type": "integer"
},
"Erstes_Jahr_Versorgungsbezug": {
"description": "Germany-only first tax year of pension receipt.",
"type": "integer"
},
"Faktor": {
"description": "Germany-only tax factor used for tax class IV/factor workflows.",
"type": "number"
},
"Freibetrag_AG": {
"description": "Employer/payroll allowance or additional withholding amount in minor units. Country meanings include DE employer wage-tax feature, AT allowance notice, US/CA additional withholding, and UK payroll allowance handling.",
"type": "integer"
},
"Freibetrag_Sonst": {
"description": "Allowance on one-off payments in minor units.",
"type": "integer"
},
"Geburtsjahr": {
"description": "Birth year.",
"type": "integer"
},
"Gehalt_ct": {
"description": "Gross pay for this person's selected payroll period in minor units. The value must match LZZ/Lohnzahlungszeitraum: for EUR 70,000 per year with LZZ=1 send 7000000; for monthly payroll with LZZ=2 send the monthly gross, for example 583333 for EUR 5,833.33.",
"minimum": 0,
"type": "integer"
},
"Gehalt_ct_ohne_Sonst": {
"description": "Gross pay excluding one-off or bonus payments for the selected payroll period, in minor units.",
"minimum": 0,
"type": "integer"
},
"Geldwerter_Vorteil": {
"description": "Taxable benefits in minor units. Used as in-kind benefit, taxable benefit, benefit in kind, natural salary, or imputed income depending on country; supported for DE, AT, CH, UK, US, CA, and IE.",
"type": "integer"
},
"Hat_Studienkredit": {
"description": "Student loan repayment flag. Relevant for UK student loan, AU HELP/HECS, and IE student-loan-style deductions where modeled.",
"type": "integer"
},
"Hinzubetrag": {
"description": "Additional amount on one-off payments in minor units.",
"type": "integer"
},
"Hinzubetrag_AG": {
"description": "Employer surcharge in minor units.",
"type": "integer"
},
"KinderPVA": {
"default": 0,
"description": "Number of children relevant for German long-term care insurance. Children can reduce the care insurance rate; use 0 when no child discount applies.",
"minimum": 0,
"type": "integer"
},
"Kinderfreibetrag": {
"default": 0,
"description": "Child allowance, dependent count, or child-credit factor for this person. DE uses child allowance shares such as 0, 0.5, 1, or 2. AT uses child count for Familienbonus workflows. CH uses child deduction count. US uses dependent credits count. CA/UK/AU/IE use dependent or child context where supported, often outside direct payroll tax.",
"type": "number"
},
"Kirche": {
"description": "Church tax membership flag. Use 1 when church tax applies and 0 when it does not.",
"type": "integer"
},
"Land": {
"description": "Country code that selects the payroll/tax system for this person. Interpret all country-polymorphic fields in this person record, such as Steuerklasse, Bundesland, PreTax_Deduction_ct, Kinderfreibetrag, and output tax buckets, through this Land value. Supported systems: DE, AT, CH, US, UK, IE, CA, AU.",
"enum": [
"DE",
"AT",
"US",
"CH",
"CA",
"AU",
"UK",
"IE"
],
"type": "string"
},
"Lohnzahlungszeitraum": {
"description": "Payroll period for this person. Values: 1=year, 2=month, 3=week, 4=day. The person's Gehalt_ct must be the gross amount for the same period. Some country UIs expose only a subset: AT/CH commonly annual or monthly; DE/US and defaults commonly annual, monthly, or weekly.",
"type": "integer"
},
"Monate_Versorgungsbezuege": {
"description": "Germany-only number of months with pension payments.",
"type": "integer"
},
"Pendler_KM": {
"description": "Austria-only commuting distance in kilometers.",
"type": "integer"
},
"Pendler_Tage": {
"description": "Austria-only monthly commuter days.",
"type": "integer"
},
"Pendler_Zumutbar": {
"description": "Austrian commuter reasonableness flag.",
"type": "integer"
},
"PreTax_Deduction_ct": {
"description": "Country-polymorphic pre-tax deductions in minor units for the selected payroll period. Interpret by Land: AT occupational provision/commuter-related deduction, CH pillar 3a or occupational pension purchase, US 401k/IRA/HSA, UK salary sacrifice or pension, CA RRSP/pension, AU super salary sacrifice, and IE pension contribution.",
"type": "integer"
},
"Sonstige_Bezuege": {
"description": "One-off payments or bonus income in minor units. Country meanings include DE other remuneration, UK/US/CA/IE supplemental income, AU bonus pay, and AT/CH special salary or bonus handling where supported.",
"type": "integer"
},
"Sonstige_Bezuege_Versorgungsbezug": {
"description": "One-off payments tied to pension benefits in minor units.",
"type": "integer"
},
"Sonstige_Entschaedigung": {
"description": "Compensation payments in minor units.",
"type": "integer"
},
"Sonstige_Sterbe": {
"description": "Death benefit / survivor payment in minor units.",
"type": "integer"
},
"Steuerklasse": {
"description": "Country-polymorphic tax class, tariff, filing status, or tax-code selector. Do not reuse German tax-class meanings outside Land=DE. DE: 1=single, 2=single parent, 3/4/5=married tax classes, 6=additional job. AT: 1=standard employee, 2=sole earner with child, 3=single parent with child. CH: current backend-supported ordinary Zurich tariffs are 1=single/no children and 2=married or children; CH values above 1 are normalized to 2 until Tarif C/H are implemented end-to-end. US: 1=Single, 3=Joint, 4=Head of Household. UK: 1=1257L standard tax code. IE: 1=Single, 2=Joint one income, 3=Joint two incomes. AU: 1=Resident, 2=Non-Resident, 3=Working Holiday. CA uses the payroll claim setup for federal/provincial tax calculation.",
"type": "integer"
},
"Stfr_vermgsbteil": {
"description": "Tax-free capital-forming benefit share in minor units.",
"type": "integer"
},
"Stjahr": {
"description": "Tax year.",
"type": "integer"
},
"Versorgungsbezuege": {
"description": "Germany-only pension or civil-service pension payments in minor units.",
"type": "integer"
},
"Versorgungsbezuege_Sonderzahlung": {
"description": "Germany-only special pension payment in minor units.",
"type": "integer"
},
"de_health_extra_contribution_percent": {
"description": "Preferred MCP alias for the German statutory health insurance Zusatzbeitrag. Use the literal percent value, for example 2.5 for 2.5%. The server normalizes this to legacy KVZ. Do not use basis points, tenths, cents, 25, 250, or any minor-unit encoding.",
"examples": [
1.7,
2.5
],
"maximum": 10,
"minimum": 0,
"type": "number"
},
"de_payroll_preset": {
"default": "DE_STANDARD_EMPLOYEE_STATUTORY",
"description": "Preferred semantic German payroll preset for MCP calls. Use this instead of raw Obolus flags. For 'Germany, normal employee, tax class I' choose DE_STANDARD_EMPLOYEE_STATUTORY.",
"enum": [
"DE_STANDARD_EMPLOYEE_STATUTORY",
"DE_PRIVATE_HEALTH_INSURANCE",
"DE_PENSION_EXEMPT",
"DE_PENSION_EXEMPT_PRIVATE_HEALTH"
],
"oneOf": [
{
"const": "DE_STANDARD_EMPLOYEE_STATUTORY",
"description": "Use this for the normal German employee case. The adapter maps it to Obolus backend flags gesetzliche_RV=0, gesetzlicheKvPvStatus=0, KV_Art=0, AN_Beitraege_PKV=0.",
"title": "Germany standard employee with statutory pension and statutory health"
},
{
"const": "DE_PRIVATE_HEALTH_INSURANCE",
"description": "Use this only when the user explicitly has PKV. The adapter keeps statutory pension/unemployment enabled and maps health/care to private. Provide de_private_health_employee_contribution_ct.",
"title": "Germany employee with private health insurance"
},
{
"const": "DE_PENSION_EXEMPT",
"description": "Use this for civil servants, self-employed, or other no-statutory-pension cases that still use statutory health/care handling.",
"title": "Germany pension/unemployment exempt with statutory health"
},
{
"const": "DE_PENSION_EXEMPT_PRIVATE_HEALTH",
"description": "Use this only for exempt PKV cases. Provide de_private_health_employee_contribution_ct.",
"title": "Germany pension/unemployment exempt with private health"
}
],
"type": "string"
},
"de_private_health_employee_contribution_ct": {
"description": "Semantic Germany-only adapter field for private health insurance employee contribution in minor units for the selected payroll period. Required when de_statutory_health_and_care=false or a private-health preset is selected. Leave omitted or 0 for statutory GKV/PV.",
"minimum": 0,
"type": "integer"
},
"de_statutory_health_and_care": {
"default": true,
"description": "Semantic Germany-only adapter field. true means statutory health and long-term care insurance apply. The adapter maps true to Obolus gesetzlicheKvPvStatus=0 and KV_Art=0; false means private health insurance and requires de_private_health_employee_contribution_ct.",
"type": "boolean"
},
"de_statutory_pension_and_unemployment": {
"default": true,
"description": "Semantic Germany-only adapter field. true means statutory pension and unemployment insurance apply. The adapter maps true to Obolus gesetzliche_RV=0 and false to gesetzliche_RV=1. Use false only for civil servants, self-employed, or explicitly pension-exempt cases.",
"type": "boolean"
},
"pendlerEuro": {
"description": "Austria-only commuter allowance amount in minor units.",
"type": "integer"
}
},
"required": [
"Land",
"Gehalt_ct",
"Steuerklasse",
"Geburtsjahr"
],
"type": "object"
},
"maxItems": 2,
"minItems": 1,
"type": "array"
},
"Stjahr": {
"description": "Tax year.",
"examples": [
2026
],
"type": "integer"
},
"age": {
"default": 35,
"description": "Age in the selected tax year. If omitted, the calculation reports the standard age-35 assumption instead of silently hiding the default.",
"maximum": 100,
"minimum": 18,
"type": "integer"
},
"country": {
"description": "Preferred high-level country code for MCP calls. For German payroll use DE. The adapter maps this to legacy Land.",
"enum": [
"DE",
"AT",
"US",
"CH",
"CA",
"AU",
"UK",
"IE"
],
"type": "string"
},
"employee_type": {
"default": "standard_statutory_employee",
"description": "Preferred high-level German employee type. Use standard_statutory_employee for the common statutory pension, unemployment, health, and care insurance case.",
"enum": [
"standard_statutory_employee",
"private_health_insurance",
"pension_exempt",
"pension_exempt_private_health"
],
"type": "string"
},
"gross_salary": {
"additionalProperties": false,
"description": "Preferred high-level gross salary input. Amount is in major currency units, not cents. The adapter maps it to legacy Gehalt_ct minor units and LZZ.",
"properties": {
"amount": {
"description": "Gross salary in major currency units, for example 60000 for EUR 60,000 annual gross or 5000 for EUR 5,000 monthly gross.",
"minimum": 0,
"type": "number"
},
"currency": {
"description": "Salary currency, for example EUR.",
"enum": [
"EUR",
"USD",
"CHF",
"CAD",
"AUD",
"GBP"
],
"type": "string"
},
"period": {
"description": "Salary period. annual maps to LZZ=1, monthly to LZZ=2, weekly to LZZ=3, daily to LZZ=4.",
"enum": [
"annual",
"monthly",
"weekly",
"daily"
],
"type": "string"
}
},
"required": [
"amount",
"currency",
"period"
],
"type": "object"
},
"location": {
"additionalProperties": false,
"description": "Preferred high-level location input. For Germany, federal_state may be a state code such as BE or a full Obolus state name such as Berlin.",
"properties": {
"federal_state": {
"description": "German federal state code or full state name, for example BE or Berlin. The adapter maps BE to Berlin.",
"type": "string"
}
},
"type": "object"
},
"payroll_preset": {
"default": "DE_STANDARD_EMPLOYEE_STATUTORY",
"description": "Preferred high-level payroll preset. Use DE_STANDARD_EMPLOYEE_STATUTORY for a normal German employee with statutory pension, unemployment, health, and care insurance.",
"enum": [
"DE_STANDARD_EMPLOYEE_STATUTORY",
"DE_PRIVATE_HEALTH_INSURANCE",
"DE_PENSION_EXEMPT",
"DE_PENSION_EXEMPT_PRIVATE_HEALTH"
],
"type": "string"
},
"social_security": {
"additionalProperties": false,
"description": "Preferred high-level German social-security assumptions. Use enums instead of raw Obolus flags. The adapter maps statutory/exempt/private choices to the legacy payroll-engine fields.",
"properties": {
"children_for_care_insurance": {
"default": 0,
"description": "Number of children relevant for German long-term care insurance contribution logic.",
"minimum": 0,
"type": "integer"
},
"health_additional_contribution_percent": {
"description": "German statutory health Zusatzbeitrag as literal percentage points, for example 2.9 for 2.90%. Do not use basis points such as 290.",
"examples": [
2.5,
2.9
],
"maximum": 5,
"minimum": 0,
"type": "number"
},
"health_insurance": {
"default": "statutory",
"description": "Use statutory for German GKV/PV. Use private only when the user explicitly has private health insurance.",
"enum": [
"statutory",
"private"
],
"type": "string"
},
"long_term_care_insurance": {
"default": "statutory",
"description": "Use statutory for normal German care insurance. Private should only be used together with private health insurance.",
"enum": [
"statutory",
"private"
],
"type": "string"
},
"pension_insurance": {
"default": "statutory",
"description": "Use statutory for normal employees. Use exempt only for civil servants, self-employed, pensioners, or explicitly pension-exempt cases.",
"enum": [
"statutory",
"exempt"
],
"type": "string"
},
"private_health_employee_contribution_ct": {
"description": "Private health insurance employee contribution in minor units for the selected period. Required only when health_insurance is private.",
"minimum": 0,
"type": "integer"
},
"unemployment_insurance": {
"default": "statutory",
"description": "Use statutory for normal employees. This is mapped together with pension_insurance for the legacy German payroll engine.",
"enum": [
"statutory",
"exempt"
],
"type": "string"
}
},
"type": "object"
},
"tax": {
"additionalProperties": false,
"description": "Preferred high-level tax assumptions for MCP calls. The adapter maps these to Steuerklasse, Kirche, and Kinderfreibetrag.",
"properties": {
"child_allowance_factor": {
"default": 0,
"description": "German child allowance factor, for example 0, 0.5, 1, or 2.",
"minimum": 0,
"type": "number"
},
"church_tax": {
"default": false,
"description": "Whether German church tax applies. false maps to Kirche=0 and true maps to Kirche=1.",
"type": "boolean"
},
"tax_class": {
"description": "German tax class, 1 through 6.",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
}
},
"type": "object"
},
"tax_year": {
"description": "Preferred high-level tax year for MCP calls. The adapter maps this to legacy Stjahr.",
"examples": [
2026
],
"type": "integer"
}
},
"type": "object",
"x-legacy-examples": [
{
"Currency": "EUR",
"Faktor": 1,
"KinderFRB": 0,
"KinderPVA": 0,
"Kindergeld": 0,
"LZZ": 2,
"Land": "DE",
"Modus": 1,
"Personen": [
{
"Bundesland": "Berlin",
"Faktor": 1,
"Geburtsjahr": 1988,
"Gehalt_ct": 583333,
"Gehalt_ct_ohne_Sonst": 583333,
"KinderPVA": 0,
"Kinderfreibetrag": 0,
"Kirche": 0,
"Land": "DE",
"Lohnzahlungszeitraum": 2,
"Steuerklasse": 1,
"Stjahr": 2026,
"de_health_extra_contribution_percent": 2.5,
"de_payroll_preset": "DE_STANDARD_EMPLOYEE_STATUTORY",
"de_statutory_health_and_care": true,
"de_statutory_pension_and_unemployment": true
}
],
"Stjahr": 2026
},
{
"Currency": "EUR",
"Faktor": 1,
"KinderFRB": 0,
"KinderPVA": 0,
"Kindergeld": 0,
"LZZ": 1,
"Land": "DE",
"Modus": 1,
"Personen": [
{
"Bundesland": "Berlin",
"Faktor": 1,
"Geburtsjahr": 1988,
"Gehalt_ct": 7000000,
"Gehalt_ct_ohne_Sonst": 7000000,
"KinderPVA": 0,
"Kinderfreibetrag": 0,
"Kirche": 0,
"Land": "DE",
"Lohnzahlungszeitraum": 1,
"Steuerklasse": 1,
"Stjahr": 2026,
"de_health_extra_contribution_percent": 2.5,
"de_payroll_preset": "DE_STANDARD_EMPLOYEE_STATUTORY",
"de_statutory_health_and_care": true,
"de_statutory_pension_and_unemployment": true
}
],
"Stjahr": 2026
},
{
"Currency": "EUR",
"Faktor": 1,
"KinderFRB": 0,
"KinderPVA": 0,
"Kindergeld": 0,
"LZZ": 2,
"Land": "DE",
"Modus": 1,
"Personen": [
{
"Bundesland": "Berlin",
"Faktor": 1,
"Geburtsjahr": 1988,
"Gehalt_ct": 583333,
"Gehalt_ct_ohne_Sonst": 583333,
"KinderPVA": 0,
"Kinderfreibetrag": 0,
"Kirche": 0,
"Land": "DE",
"Lohnzahlungszeitraum": 2,
"Steuerklasse": 1,
"Stjahr": 2026,
"de_health_extra_contribution_percent": 0,
"de_payroll_preset": "DE_PRIVATE_HEALTH_INSURANCE",
"de_private_health_employee_contribution_ct": 45000,
"de_statutory_health_and_care": false,
"de_statutory_pension_and_unemployment": true
}
],
"Stjahr": 2026
},
{
"Currency": "EUR",
"Faktor": 1,
"KinderFRB": 0,
"KinderPVA": 0,
"Kindergeld": 0,
"LZZ": 2,
"Land": "AT",
"Modus": 1,
"Personen": [
{
"Bundesland": "Wien",
"Faktor": 1,
"Geburtsjahr": 1988,
"Gehalt_ct": 500000,
"Gehalt_ct_ohne_Sonst": 500000,
"Kinderfreibetrag": 0,
"Land": "AT",
"Lohnzahlungszeitraum": 2,
"Pendler_KM": 0,
"Pendler_Tage": 0,
"Pendler_Zumutbar": 0,
"PreTax_Deduction_ct": 0,
"Steuerklasse": 1,
"Stjahr": 2026,
"pendlerEuro": 0
}
],
"Stjahr": 2026
},
{
"Currency": "CHF",
"Faktor": 1,
"KinderFRB": 0,
"KinderPVA": 0,
"Kindergeld": 0,
"LZZ": 1,
"Land": "CH",
"Modus": 1,
"Personen": [
{
"Bundesland": "Zürich",
"Faktor": 1,
"Geburtsjahr": 1988,
"Gehalt_ct": 10000000,
"Gehalt_ct_ohne_Sonst": 10000000,
"Kinderfreibetrag": 0,
"Land": "CH",
"Lohnzahlungszeitraum": 1,
"PreTax_Deduction_ct": 0,
"Steuerklasse": 1,
"Stjahr": 2026
}
],
"Stjahr": 2026
},
{
"Currency": "USD",
"Faktor": 1,
"KinderFRB": 0,
"KinderPVA": 0,
"Kindergeld": 0,
"LZZ": 1,
"Land": "US",
"Modus": 1,
"Personen": [
{
"Bundesland": "California",
"Faktor": 1,
"Freibetrag_AG": 0,
"Geburtsjahr": 1988,
"Gehalt_ct": 9000000,
"Gehalt_ct_ohne_Sonst": 9000000,
"Kinderfreibetrag": 0,
"Land": "US",
"Lohnzahlungszeitraum": 1,
"PreTax_Deduction_ct": 0,
"Sonstige_Bezuege": 0,
"Steuerklasse": 1,
"Stjahr": 2026
}
],
"Stjahr": 2026
},
{
"Currency": "GBP",
"Faktor": 1,
"KinderFRB": 0,
"KinderPVA": 0,
"Kindergeld": 0,
"LZZ": 1,
"Land": "UK",
"Modus": 1,
"Personen": [
{
"Bundesland": "England",
"Faktor": 1,
"Freibetrag_AG": 0,
"Geburtsjahr": 1988,
"Gehalt_ct": 6000000,
"Gehalt_ct_ohne_Sonst": 6000000,
"Hat_Studienkredit": 0,
"Kinderfreibetrag": 0,
"Land": "UK",
"Lohnzahlungszeitraum": 1,
"PreTax_Deduction_ct": 0,
"Sonstige_Bezuege": 0,
"Steuerklasse": 1,
"Stjahr": 2026
}
],
"Stjahr": 2026
},
{
"Currency": "EUR",
"Faktor": 1,
"KinderFRB": 0,
"KinderPVA": 0,
"Kindergeld": 0,
"LZZ": 1,
"Land": "IE",
"Modus": 1,
"Personen": [
{
"Faktor": 1,
"Geburtsjahr": 1988,
"Gehalt_ct": 7000000,
"Gehalt_ct_ohne_Sonst": 7000000,
"Hat_Studienkredit": 0,
"Kinderfreibetrag": 0,
"Land": "IE",
"Lohnzahlungszeitraum": 1,
"PreTax_Deduction_ct": 0,
"Sonstige_Bezuege": 0,
"Steuerklasse": 1,
"Stjahr": 2026
}
],
"Stjahr": 2026
},
{
"Currency": "CAD",
"Faktor": 1,
"KinderFRB": 0,
"KinderPVA": 0,
"Kindergeld": 0,
"LZZ": 1,
"Land": "CA",
"Modus": 1,
"Personen": [
{
"Bundesland": "Ontario",
"Faktor": 1,
"Freibetrag_AG": 0,
"Geburtsjahr": 1988,
"Gehalt_ct": 8500000,
"Gehalt_ct_ohne_Sonst": 8500000,
"Kinderfreibetrag": 0,
"Land": "CA",
"Lohnzahlungszeitraum": 1,
"PreTax_Deduction_ct": 0,
"Sonstige_Bezuege": 0,
"Steuerklasse": 1,
"Stjahr": 2026
}
],
"Stjahr": 2026
},
{
"Currency": "AUD",
"Faktor": 1,
"KinderFRB": 0,
"KinderPVA": 0,
"Kindergeld": 0,
"LZZ": 1,
"Land": "AU",
"Modus": 1,
"Personen": [
{
"Faktor": 1,
"Geburtsjahr": 1988,
"Gehalt_ct": 9000000,
"Gehalt_ct_ohne_Sonst": 9000000,
"Hat_Studienkredit": 0,
"Kinderfreibetrag": 0,
"Land": "AU",
"Lohnzahlungszeitraum": 1,
"PreTax_Deduction_ct": 0,
"Sonstige_Bezuege": 0,
"Steuerklasse": 1,
"Stjahr": 2026
}
],
"Stjahr": 2026
}
]
},
"name": "berechne"
},
{
"description": "Compare annual gross, net pay, taxes, and employee social contributions across two or more supported countries. Use shared_gross for the same offer and local_median_gross for country-market benchmarks. Provide tax_year and at least two countries. Use berechne for detailed single-country payroll.",
"inputSchema": {
"additionalProperties": false,
"description": "Input for a multi-country salary comparison. Use at least two countries, tax_year, and either salary_ct/annual_gross for shared_gross or local_median_gross without a salary. Results are annual major-currency estimates.",
"examples": [
{
"children": 0,
"countries": [
"US",
"IE",
"DE",
"CA"
],
"currency": "EUR",
"gross_mode": "shared_gross",
"joint_assessment": false,
"period": "annual",
"person_type": "single",
"salary_ct": 5000000,
"tax_year": 2026
},
{
"children": 0,
"countries": [
"DE",
"AT",
"CH",
"US",
"UK",
"IE",
"CA",
"AU"
],
"currency": "EUR",
"gross_mode": "shared_gross",
"joint_assessment": false,
"period": "annual",
"person_type": "single",
"salary_ct": 7000000,
"tax_year": 2026
},
{
"children": 0,
"countries": [
"DE",
"AT",
"CH",
"US",
"UK",
"IE",
"CA",
"AU"
],
"currency": "eur",
"gross_mode": "local_median_gross",
"joint_assessment": false,
"period": "annual",
"tax_year": 2026
}
],
"properties": {
"age": {
"default": 35,
"description": "Adult age in the selected tax year.",
"maximum": 100,
"minimum": 18,
"type": "integer"
},
"annual_gross": {
"description": "Backward-compatible annual gross salary alias in major currency units, not cents. Prefer salary_ct. Example: 50000 means 50,000 in the selected currency. Required for shared_gross mode only when salary_ct is not provided; optional and ignored when omitted for local_median_gross.",
"type": "number"
},
"children": {
"default": 0,
"description": "Number of children or dependents used as a broad comparison assumption. Country-specific child allowance and credit rules are simplified for comparability.",
"minimum": 0,
"type": "integer"
},
"countries": {
"description": "List of country tax systems to compare. Use at least two countries for a comparison. Supported values: DE, AT, CH, US, UK, IE, CA, AU.",
"items": {
"enum": [
"DE",
"AT",
"US",
"CH",
"CA",
"AU",
"UK",
"IE"
],
"type": "string"
},
"minItems": 2,
"type": "array"
},
"currency": {
"description": "Input and output currency: EUR, USD, CHF, CAD, AUD, GBP, or lower-case equivalents. Results normalize currency codes to lower-case. Unlike berechne, taxcompare prefers salary_ct for salary input and returns major currency units.",
"enum": [
"eur",
"usd",
"chf",
"cad",
"aud",
"gbp",
"EUR",
"USD",
"CHF",
"CAD",
"AUD",
"GBP"
],
"type": "string"
},
"gross_mode": {
"default": "shared_gross",
"description": "Comparison basis. Use shared_gross for the same user-provided annual gross across all countries. Use local_median_gross for country-specific editorial median gross benchmarks. Defaults to shared_gross when omitted.",
"enum": [
"shared_gross",
"local_median_gross"
],
"type": "string"
},
"joint_assessment": {
"default": false,
"description": "Broad joint filing / joint assessment assumption for comparable country-level estimates. For precise country-specific filing details, use berechne.",
"type": "boolean"
},
"period": {
"default": "annual",
"description": "Period for salary_ct. Use annual when salary_ct is the annual gross salary. Use monthly when salary_ct is one monthly gross salary; taxcompare annualizes it before comparing countries. annual_gross is always annual and ignores this field.",
"enum": [
"annual",
"monthly"
],
"type": "string"
},
"person_type": {
"default": "single",
"description": "Broad household assumption for comparison. single maps to joint_assessment=false; married maps to joint_assessment=true unless joint_assessment is provided explicitly. For precise country-specific filing details, use berechne.",
"enum": [
"single",
"married"
],
"type": "string"
},
"regions": {
"additionalProperties": {
"type": "string"
},
"description": "Country-keyed tax regions, for example CH: ZH. Omitted regions use country defaults, reported in calculation_profile.",
"type": "object"
},
"salary_ct": {
"description": "Preferred salary input for MCP calls. Salary in minor units for the selected period, for example 5000000 for EUR 50,000. With period=annual this is annual salary; with period=monthly this is monthly salary and Obolus annualizes it for the comparison. Required for shared_gross mode unless annual_gross is provided as a legacy alias.",
"minimum": 0,
"type": "integer"
},
"tax_year": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
],
"description": "Tax year, for example 2026. The same tax year is applied to every selected country."
}
},
"required": [
"countries",
"currency",
"tax_year"
],
"type": "object"
},
"name": "taxcompare"
}
]
}What the leaf hashes
{"body":"d613ec8d5ef05990ed941ceea5b39ed4049e8485c938438c4d880d6187fc4ef2","id":290032,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793046901850810,"prev":null,"subject":"31d27211-434c-4503-8285-0ee7da95a3e8","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x4d66bd7e136c28e33963b00333d38148c3280bb38a97acc92e643117c042c6a9
- 0x7a42025135c68d0d06681286a9ae3829042096d93b7c6f9100caf230009c7038
- 0x40f899363e17c6b00edc66c96ae2297242aaa250afdf47dccacc4c147031d312
- 0x2035cc14e4a825115a3663fa028b3860577787e97badec9095772e18be6d7880
- 0x9c8ae63335c4691d174724d3485606825a4f6d517c726adeb3a75eb7aca0e976
- 0x5185f62fac549c7b8951365971f81c37be4250b24edd1cfb4727afb330e1b228
- 0x2b57ec8e19f49589068b3e60e91f79227b9c65069b69c242a9ba67459a032479
- 0x799f07231d972269e00dd0754e507b14770468ab8357ec229c70da77c66d9b7f
- 0xbdf91263475abe0c60a5d597ec58006adb6dd8b96856f85f7d33dff273c9d605
- 0x3964b657b861782aa5a33079a40c16e105428d017af356e7a7cb8cc02e82d7ec
- 0xaa143d27804a7949a2b1598e5b8ab52f09ca62ad72136c2be3d24cdecb5d5be0
- 0x9c16024747eaca32d09963ccb001059f75dcd9bb8dfc221e5234d54d2b3388d9
- 0x1ffd24a0422348bb2305058cc138e276511e1c074bf8139af5b773941f0e5de2
- 0x88e326a39b26e2c125306c9d3805d14398ace088bba9a2a0aa376b811cfb201a
- 0x2be1e80e065dd6b2cc75a7142be22225acd144ac975d70bf24b4f01fd76dc497
- 0x2e6a32eb32761c210560e852405e2f865f958ddbe01027894f8b9c1b3433b9f0
- 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae