{"name":"io.github.sanzation/obolus","slug":"sanzation-obolus","title":"Obolus","description":"Read-only payroll calculations and multi-country tax comparisons for eight countries.","url":"https://mcp.market/server/sanzation-obolus","rating":null,"grade":"C","score":63,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":1,"ok":1,"last_checked_at":"2026-09-20T16:15:58.660Z","last_ok_at":"2026-09-20T16:15:58.660Z","latency_ms":629},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://www.obolusfinanz.de/en/developers","version":"1.0.3","remotes":[{"type":"streamable-http","url":"https://www.obolusfinanz.de/api/mcp/public"}],"packages":[],"tools":[{"name":"berechne","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"country":{"type":"string","enum":["DE","AT","US","CH","CA","AU","UK","IE"],"description":"Preferred high-level country code for MCP calls. For German payroll use DE. The adapter maps this to legacy Land."},"tax_year":{"type":"integer","description":"Preferred high-level tax year for MCP calls. The adapter maps this to legacy Stjahr.","examples":[2026]},"age":{"type":"integer","minimum":18,"maximum":100,"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."},"gross_salary":{"type":"object","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":{"type":"number","minimum":0,"description":"Gross salary in major currency units, for example 60000 for EUR 60,000 annual gross or 5000 for EUR 5,000 monthly gross."},"currency":{"type":"string","enum":["EUR","USD","CHF","CAD","AUD","GBP"],"description":"Salary currency, for example EUR."},"period":{"type":"string","enum":["annual","monthly","weekly","daily"],"description":"Salary period. annual maps to LZZ=1, monthly to LZZ=2, weekly to LZZ=3, daily to LZZ=4."}},"required":["amount","currency","period"]},"location":{"type":"object","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":{"type":"string","description":"German federal state code or full state name, for example BE or Berlin. The adapter maps BE to Berlin."}}},"employee_type":{"type":"string","enum":["standard_statutory_employee","private_health_insurance","pension_exempt","pension_exempt_private_health"],"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."},"payroll_preset":{"type":"string","enum":["DE_STANDARD_EMPLOYEE_STATUTORY","DE_PRIVATE_HEALTH_INSURANCE","DE_PENSION_EXEMPT","DE_PENSION_EXEMPT_PRIVATE_HEALTH"],"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."},"tax":{"type":"object","additionalProperties":false,"description":"Preferred high-level tax assumptions for MCP calls. The adapter maps these to Steuerklasse, Kirche, and Kinderfreibetrag.","properties":{"tax_class":{"type":"integer","enum":[1,2,3,4,5,6],"description":"German tax class, 1 through 6."},"church_tax":{"type":"boolean","default":false,"description":"Whether German church tax applies. false maps to Kirche=0 and true maps to Kirche=1."},"child_allowance_factor":{"type":"number","minimum":0,"default":0,"description":"German child allowance factor, for example 0, 0.5, 1, or 2."}}},"social_security":{"type":"object","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":{"pension_insurance":{"type":"string","enum":["statutory","exempt"],"default":"statutory","description":"Use statutory for normal employees. Use exempt only for civil servants, self-employed, pensioners, or explicitly pension-exempt cases."},"unemployment_insurance":{"type":"string","enum":["statutory","exempt"],"default":"statutory","description":"Use statutory for normal employees. This is mapped together with pension_insurance for the legacy German payroll engine."},"health_insurance":{"type":"string","enum":["statutory","private"],"default":"statutory","description":"Use statutory for German GKV/PV. Use private only when the user explicitly has private health insurance."},"health_additional_contribution_percent":{"type":"number","minimum":0,"maximum":5,"examples":[2.5,2.9],"description":"German statutory health Zusatzbeitrag as literal percentage points, for example 2.9 for 2.90%. Do not use basis points such as 290."},"long_term_care_insurance":{"type":"string","enum":["statutory","private"],"default":"statutory","description":"Use statutory for normal German care insurance. Private should only be used together with private health insurance."},"children_for_care_insurance":{"type":"integer","minimum":0,"default":0,"description":"Number of children relevant for German long-term care insurance contribution logic."},"private_health_employee_contribution_ct":{"type":"integer","minimum":0,"description":"Private health insurance employee contribution in minor units for the selected period. Required only when health_insurance is private."}}},"Land":{"type":"string","enum":["DE","AT","US","CH","CA","AU","UK","IE"],"description":"Country code for the calculation."},"Stjahr":{"type":"integer","description":"Tax year.","examples":[2026]},"Currency":{"type":"string","enum":["EUR","USD","CHF","CAD","AUD","GBP"],"description":"Display currency / calculation currency code."},"LZZ":{"type":"integer","enum":[1,2,3,4],"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."},"Modus":{"type":"integer","enum":[1,2,3],"default":1,"description":"Calculation mode. Use 1 for one person, 2 for two persons, and 3 for the German TaxSim capped real-splitting simulation."},"Faktor":{"type":"number","default":1,"description":"Global factor for factor-based tax class handling."},"KinderFRB":{"type":"number","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."},"KinderPVA":{"type":"integer","minimum":0,"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."},"Kindergeld":{"type":"integer","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."},"Personen":{"type":"array","minItems":1,"maxItems":2,"description":"One or two payroll person records. Each person contains salary, tax class, region, insurance, child, and optional special-income inputs.","items":{"type":"object","additionalProperties":true,"properties":{"Land":{"type":"string","enum":["DE","AT","US","CH","CA","AU","UK","IE"],"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."},"Gehalt_ct":{"type":"integer","minimum":0,"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."},"Gehalt_ct_ohne_Sonst":{"type":"integer","minimum":0,"description":"Gross pay excluding one-off or bonus payments for the selected payroll period, in minor units."},"Steuerklasse":{"type":"integer","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."},"Geldwerter_Vorteil":{"type":"integer","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."},"PreTax_Deduction_ct":{"type":"integer","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."},"pendlerEuro":{"type":"integer","description":"Austria-only commuter allowance amount in minor units."},"Pendler_KM":{"type":"integer","description":"Austria-only commuting distance in kilometers."},"Pendler_Zumutbar":{"type":"integer","description":"Austrian commuter reasonableness flag."},"Pendler_Tage":{"type":"integer","description":"Austria-only monthly commuter days."},"Altersrente_Bezug":{"type":"integer","description":"1 if pension/retirement benefits apply, otherwise 0. Mainly used for DE/AT pensioner workflows."},"Bundesland":{"type":"string","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"]},"Lohnzahlungszeitraum":{"type":"integer","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."},"Stjahr":{"type":"integer","description":"Tax year."},"Faktor":{"type":"number","description":"Germany-only tax factor used for tax class IV/factor workflows."},"Geburtsjahr":{"type":"integer","description":"Birth year."},"Versorgungsbezuege":{"type":"integer","description":"Germany-only pension or civil-service pension payments in minor units."},"Erster_mntl_Versorgungsbezug":{"type":"integer","description":"Germany-only first monthly pension payment in minor units."},"Versorgungsbezuege_Sonderzahlung":{"type":"integer","description":"Germany-only special pension payment in minor units."},"Erstes_Jahr_Versorgungsbezug":{"type":"integer","description":"Germany-only first tax year of pension receipt."},"Monate_Versorgungsbezuege":{"type":"integer","description":"Germany-only number of months with pension payments."},"Freibetrag_Sonst":{"type":"integer","description":"Allowance on one-off payments in minor units."},"Hinzubetrag":{"type":"integer","description":"Additional amount on one-off payments in minor units."},"Sonstige_Bezuege":{"type":"integer","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."},"Sonstige_Entschaedigung":{"type":"integer","description":"Compensation payments in minor units."},"Sonstige_Sterbe":{"type":"integer","description":"Death benefit / survivor payment in minor units."},"de_payroll_preset":{"type":"string","enum":["DE_STANDARD_EMPLOYEE_STATUTORY","DE_PRIVATE_HEALTH_INSURANCE","DE_PENSION_EXEMPT","DE_PENSION_EXEMPT_PRIVATE_HEALTH"],"default":"DE_STANDARD_EMPLOYEE_STATUTORY","oneOf":[{"const":"DE_STANDARD_EMPLOYEE_STATUTORY","title":"Germany standard employee with statutory pension and statutory health","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."},{"const":"DE_PRIVATE_HEALTH_INSURANCE","title":"Germany employee with 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."},{"const":"DE_PENSION_EXEMPT","title":"Germany pension/unemployment exempt with statutory health","description":"Use this for civil servants, self-employed, or other no-statutory-pension cases that still use statutory health/care handling."},{"const":"DE_PENSION_EXEMPT_PRIVATE_HEALTH","title":"Germany pension/unemployment exempt with private health","description":"Use this only for exempt PKV cases. Provide de_private_health_employee_contribution_ct."}],"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."},"de_statutory_pension_and_unemployment":{"type":"boolean","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."},"de_statutory_health_and_care":{"type":"boolean","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."},"de_health_extra_contribution_percent":{"type":"number","minimum":0,"maximum":10,"examples":[1.7,2.5],"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."},"de_private_health_employee_contribution_ct":{"type":"integer","minimum":0,"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."},"Freibetrag_AG":{"type":"integer","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."},"Hinzubetrag_AG":{"type":"integer","description":"Employer surcharge in minor units."},"Hat_Studienkredit":{"type":"integer","description":"Student loan repayment flag. Relevant for UK student loan, AU HELP/HECS, and IE student-loan-style deductions where modeled."},"Stfr_vermgsbteil":{"type":"integer","description":"Tax-free capital-forming benefit share in minor units."},"Entschädigungen_vermgsbteil":{"type":"integer","description":"Capital-forming compensation share in minor units."},"Sonstige_Bezuege_Versorgungsbezug":{"type":"integer","description":"One-off payments tied to pension benefits in minor units."},"KinderPVA":{"type":"integer","minimum":0,"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."},"Kirche":{"type":"integer","description":"Church tax membership flag. Use 1 when church tax applies and 0 when it does not."},"Kinderfreibetrag":{"type":"number","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."}},"required":["Land","Gehalt_ct","Steuerklasse","Geburtsjahr"]}}},"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":[{"country":"DE","tax_year":2026,"age":35,"gross_salary":{"amount":60000,"currency":"EUR","period":"annual"},"location":{"federal_state":"BE"},"employee_type":"standard_statutory_employee","payroll_preset":"DE_STANDARD_EMPLOYEE_STATUTORY","tax":{"tax_class":1,"church_tax":false,"child_allowance_factor":0},"social_security":{"pension_insurance":"statutory","unemployment_insurance":"statutory","health_insurance":"statutory","health_additional_contribution_percent":2.9,"long_term_care_insurance":"statutory","children_for_care_insurance":0}}],"x-legacy-examples":[{"Land":"DE","Stjahr":2026,"Currency":"EUR","LZZ":2,"Modus":1,"Faktor":1,"KinderFRB":0,"KinderPVA":0,"Kindergeld":0,"Personen":[{"Land":"DE","Gehalt_ct":583333,"Gehalt_ct_ohne_Sonst":583333,"Steuerklasse":1,"Bundesland":"Berlin","Lohnzahlungszeitraum":2,"Stjahr":2026,"Faktor":1,"Geburtsjahr":1988,"de_payroll_preset":"DE_STANDARD_EMPLOYEE_STATUTORY","de_statutory_pension_and_unemployment":true,"de_statutory_health_and_care":true,"de_health_extra_contribution_percent":2.5,"Kirche":0,"KinderPVA":0,"Kinderfreibetrag":0}]},{"Land":"DE","Stjahr":2026,"Currency":"EUR","LZZ":1,"Modus":1,"Faktor":1,"KinderFRB":0,"KinderPVA":0,"Kindergeld":0,"Personen":[{"Land":"DE","Gehalt_ct":7000000,"Gehalt_ct_ohne_Sonst":7000000,"Steuerklasse":1,"Bundesland":"Berlin","Lohnzahlungszeitraum":1,"Stjahr":2026,"Faktor":1,"Geburtsjahr":1988,"de_payroll_preset":"DE_STANDARD_EMPLOYEE_STATUTORY","de_statutory_pension_and_unemployment":true,"de_statutory_health_and_care":true,"de_health_extra_contribution_percent":2.5,"Kirche":0,"KinderPVA":0,"Kinderfreibetrag":0}]},{"Land":"DE","Stjahr":2026,"Currency":"EUR","LZZ":2,"Modus":1,"Faktor":1,"KinderFRB":0,"KinderPVA":0,"Kindergeld":0,"Personen":[{"Land":"DE","Gehalt_ct":583333,"Gehalt_ct_ohne_Sonst":583333,"Steuerklasse":1,"Bundesland":"Berlin","Lohnzahlungszeitraum":2,"Stjahr":2026,"Faktor":1,"Geburtsjahr":1988,"de_payroll_preset":"DE_PRIVATE_HEALTH_INSURANCE","de_statutory_pension_and_unemployment":true,"de_statutory_health_and_care":false,"de_health_extra_contribution_percent":0,"de_private_health_employee_contribution_ct":45000,"Kirche":0,"KinderPVA":0,"Kinderfreibetrag":0}]},{"Land":"AT","Stjahr":2026,"Currency":"EUR","LZZ":2,"Modus":1,"Faktor":1,"KinderFRB":0,"KinderPVA":0,"Kindergeld":0,"Personen":[{"Land":"AT","Gehalt_ct":500000,"Gehalt_ct_ohne_Sonst":500000,"Steuerklasse":1,"Bundesland":"Wien","Lohnzahlungszeitraum":2,"Stjahr":2026,"Faktor":1,"Geburtsjahr":1988,"PreTax_Deduction_ct":0,"pendlerEuro":0,"Pendler_KM":0,"Pendler_Zumutbar":0,"Pendler_Tage":0,"Kinderfreibetrag":0}]},{"Land":"CH","Stjahr":2026,"Currency":"CHF","LZZ":1,"Modus":1,"Faktor":1,"KinderFRB":0,"KinderPVA":0,"Kindergeld":0,"Personen":[{"Land":"CH","Gehalt_ct":10000000,"Gehalt_ct_ohne_Sonst":10000000,"Steuerklasse":1,"Bundesland":"Zürich","Lohnzahlungszeitraum":1,"Stjahr":2026,"Faktor":1,"Geburtsjahr":1988,"PreTax_Deduction_ct":0,"Kinderfreibetrag":0}]},{"Land":"US","Stjahr":2026,"Currency":"USD","LZZ":1,"Modus":1,"Faktor":1,"KinderFRB":0,"KinderPVA":0,"Kindergeld":0,"Personen":[{"Land":"US","Gehalt_ct":9000000,"Gehalt_ct_ohne_Sonst":9000000,"Steuerklasse":1,"Bundesland":"California","Lohnzahlungszeitraum":1,"Stjahr":2026,"Faktor":1,"Geburtsjahr":1988,"PreTax_Deduction_ct":0,"Sonstige_Bezuege":0,"Freibetrag_AG":0,"Kinderfreibetrag":0}]},{"Land":"UK","Stjahr":2026,"Currency":"GBP","LZZ":1,"Modus":1,"Faktor":1,"KinderFRB":0,"KinderPVA":0,"Kindergeld":0,"Personen":[{"Land":"UK","Gehalt_ct":6000000,"Gehalt_ct_ohne_Sonst":6000000,"Steuerklasse":1,"Bundesland":"England","Lohnzahlungszeitraum":1,"Stjahr":2026,"Faktor":1,"Geburtsjahr":1988,"PreTax_Deduction_ct":0,"Hat_Studienkredit":0,"Sonstige_Bezuege":0,"Freibetrag_AG":0,"Kinderfreibetrag":0}]},{"Land":"IE","Stjahr":2026,"Currency":"EUR","LZZ":1,"Modus":1,"Faktor":1,"KinderFRB":0,"KinderPVA":0,"Kindergeld":0,"Personen":[{"Land":"IE","Gehalt_ct":7000000,"Gehalt_ct_ohne_Sonst":7000000,"Steuerklasse":1,"Lohnzahlungszeitraum":1,"Stjahr":2026,"Faktor":1,"Geburtsjahr":1988,"PreTax_Deduction_ct":0,"Hat_Studienkredit":0,"Sonstige_Bezuege":0,"Kinderfreibetrag":0}]},{"Land":"CA","Stjahr":2026,"Currency":"CAD","LZZ":1,"Modus":1,"Faktor":1,"KinderFRB":0,"KinderPVA":0,"Kindergeld":0,"Personen":[{"Land":"CA","Gehalt_ct":8500000,"Gehalt_ct_ohne_Sonst":8500000,"Steuerklasse":1,"Bundesland":"Ontario","Lohnzahlungszeitraum":1,"Stjahr":2026,"Faktor":1,"Geburtsjahr":1988,"PreTax_Deduction_ct":0,"Sonstige_Bezuege":0,"Freibetrag_AG":0,"Kinderfreibetrag":0}]},{"Land":"AU","Stjahr":2026,"Currency":"AUD","LZZ":1,"Modus":1,"Faktor":1,"KinderFRB":0,"KinderPVA":0,"Kindergeld":0,"Personen":[{"Land":"AU","Gehalt_ct":9000000,"Gehalt_ct_ohne_Sonst":9000000,"Steuerklasse":1,"Lohnzahlungszeitraum":1,"Stjahr":2026,"Faktor":1,"Geburtsjahr":1988,"PreTax_Deduction_ct":0,"Hat_Studienkredit":0,"Sonstige_Bezuege":0,"Kinderfreibetrag":0}]}]}},{"name":"taxcompare","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"age":{"type":"integer","minimum":18,"maximum":100,"default":35,"description":"Adult age in the selected tax year."},"regions":{"type":"object","additionalProperties":{"type":"string"},"description":"Country-keyed tax regions, for example CH: ZH. Omitted regions use country defaults, reported in calculation_profile."},"salary_ct":{"type":"integer","minimum":0,"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."},"annual_gross":{"type":"number","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."},"gross_mode":{"type":"string","enum":["shared_gross","local_median_gross"],"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."},"period":{"type":"string","enum":["annual","monthly"],"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."},"person_type":{"type":"string","enum":["single","married"],"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."},"joint_assessment":{"type":"boolean","default":false,"description":"Broad joint filing / joint assessment assumption for comparable country-level estimates. For precise country-specific filing details, use berechne."},"children":{"type":"integer","minimum":0,"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."},"tax_year":{"anyOf":[{"type":"string"},{"type":"integer"}],"description":"Tax year, for example 2026. The same tax year is applied to every selected country."},"countries":{"type":"array","minItems":2,"items":{"type":"string","enum":["DE","AT","US","CH","CA","AU","UK","IE"]},"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."},"currency":{"type":"string","enum":["eur","usd","chf","cad","aud","gbp","EUR","USD","CHF","CAD","AUD","GBP"],"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."}},"required":["countries","currency","tax_year"],"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":[{"salary_ct":5000000,"gross_mode":"shared_gross","period":"annual","person_type":"single","joint_assessment":false,"children":0,"tax_year":2026,"countries":["US","IE","DE","CA"],"currency":"EUR"},{"salary_ct":7000000,"gross_mode":"shared_gross","period":"annual","person_type":"single","joint_assessment":false,"children":0,"tax_year":2026,"countries":["DE","AT","CH","US","UK","IE","CA","AU"],"currency":"EUR"},{"gross_mode":"local_median_gross","period":"annual","joint_assessment":false,"children":0,"tax_year":2026,"countries":["DE","AT","CH","US","UK","IE","CA","AU"],"currency":"eur"}]}}],"scan":{"score":63,"grade":"C","scanned_at":"2026-09-20T16:16:03.480Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T16:16:03.429Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2795ms"]},"poisoning":{"score":15,"max":15,"notes":["2 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://www.obolusfinanz.de/api/mcp/public","reachable":true,"authRequired":false,"latencyMs":2795,"serverInfo":{"name":"Obolus Finanz Payroll API","version":"2.1.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://www.obolusfinanz.de/favicon.ico","source":"site","width":48,"height":48},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}