Clino: Swiss household employment
What this MCP does
Calculates Swiss household-employment costs and wages and provides canton-specific registration, payroll, minimum-wage, and compliance guidance.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['hourly_wage_chf', 'hours_per_week'], 'properties': {'sort_by': {'enum': ['employer_cost', 'net_wage'], 'type': 'string', 'default': 'employer_cost', 'description': "Sort the 26 cantons by monthly employer cost (ascending) or by the worker's net wage (descending)."}, 'language': {'enum': ['en', 'de', 'fr', 'it', 'es', 'pt'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.'}, 'wage_is_net': {'type': 'boolean', 'default': False, 'description': 'true if the agreed hourly wage is what the worker receives in hand (net). The gross wage is then worked out from it. Default false (gross).'}, 'hours_per_week': {'type': 'number', 'maximum': 70, 'description': 'Average working hours per week with this household (e.g. 4).', 'exclusiveMinimum': 0}, 'vacation_weeks': {'type': 'integer', 'default': 4, 'maximum': 6, 'minimum': 4, 'description': 'Paid vacation weeks per year: 4 (legal minimum), 5 (under age 20) or 6. Default 4.'}, 'hourly_wage_chf': {'type': 'number', 'maximum': 500, 'description': 'Agreed hourly wage in CHF, before the vacation supplement (e.g. 30).', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['inputs', 'cantons', 'spread_monthly_chf', 'note', 'links', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'note': {'type': 'string'}, 'links': {'type': 'object', 'required': ['calculator'], 'properties': {'calculator': {'type': 'string'}}, 'additionalProperties': False}, 'inputs': {'type': 'object', 'required': ['hourly_wage_chf', 'hours_per_week', 'wage_is_net', 'vacation_weeks'], 'properties': {'wage_is_net': {'type': 'boolean'}, 'hours_per_week': {'type': 'number'}, 'vacation_weeks': {'type': 'number'}, 'hourly_wage_chf': {'type': 'number'}}, 'additionalProperties': False}, 'cantons': {'type': 'array', 'items': {'type': 'object', 'required': ['rank', 'code', 'name', 'procedure', 'gross_wage_monthly', 'net_wage_monthly', 'total_employer_cost_monthly', 'family_allowance_fund_employer_percent', 'admin_fee_of_gross_wage_approx_percent', 'minimum_wage_from_5h_chf', 'below_minimum_wage'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}, 'rank': {'type': 'number'}, 'procedure': {'enum': ['simplified', 'ordinary'], 'type': 'string'}, 'net_wage_monthly': {'$ref': '#/properties/cantons/items/properties/gross_wage_monthly'}, 'below_minimum_wage': {'type': 'boolean', 'description': "true when the hourly wage entered is below the canton's floor from 5 h/week (city minimums not included)."}, 'gross_wage_monthly': {'type': 'number', 'description': 'CHF'}, 'minimum_wage_from_5h_chf': {'type': 'number'}, 'total_employer_cost_monthly': {'$ref': '#/properties/cantons/items/properties/gross_wage_monthly'}, 'admin_fee_of_gross_wage_approx_percent': {'type': 'number'}, 'family_allowance_fund_employer_percent': {'type': 'number'}}, 'additionalProperties': False}}, 'provider': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'rates_year': {'type': 'number'}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}, 'spread_monthly_chf': {'type': 'number'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['canton', 'hourly_wage_chf', 'hours_per_week'], 'properties': {'canton': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': 'Swiss canton: two-letter code (ZH, BE, GE, VD, TI...) or its name in German, French, Italian or English (Zürich, Genève, Ticino, Basel-Stadt). For employer contributions this is the canton where the household lives.'}, 'language': {'enum': ['en', 'de', 'fr', 'it', 'es', 'pt'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.'}, 'skill_level': {'enum': ['unskilled', 'experienced', 'eba', 'efz'], 'type': 'string', 'description': 'Qualification of the worker, which sets the federal NAV wage tier: unskilled; experienced (4+ years in household work); eba (2-year federal vocational certificate); efz (3-year federal vocational diploma).'}, 'wage_is_net': {'type': 'boolean', 'default': False, 'description': 'true if the agreed hourly wage is what the worker receives in hand (net). The gross wage is then worked out from it. Default false (gross).'}, 'hours_per_week': {'type': 'number', 'maximum': 70, 'description': 'Average working hours per week with this household (e.g. 4).', 'exclusiveMinimum': 0}, 'vacation_weeks': {'type': 'integer', 'default': 4, 'maximum': 6, 'minimum': 4, 'description': 'Paid vacation weeks per year: 4 (legal minimum), 5 (under age 20) or 6. Default 4.'}, 'hourly_wage_chf': {'type': 'number', 'maximum': 500, 'description': 'Agreed hourly wage in CHF, before the vacation supplement (e.g. 30).', 'exclusiveMinimum': 0}, 'workplace_postcode': {'type': 'string', 'pattern': '^\\d{4}$', 'description': '4-digit Swiss postcode (PLZ/NPA) of the WORKPLACE. City minimum wages (e.g. Stadt Luzern) depend on it.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['canton', 'procedure', 'procedure_note', 'inputs', 'monthly', 'annual', 'rates_percent', 'warnings', 'assumptions', 'sources', 'links', 'get_it_done', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'links': {'type': 'object', 'required': ['calculator', 'canton_guide'], 'properties': {'calculator': {'type': 'string'}, 'canton_guide': {'type': 'string'}}, 'additionalProperties': False}, 'annual': {'type': 'object', 'required': ['gross_wage', 'net_wage', 'total_employer_cost'], 'properties': {'net_wage': {'$ref': '#/properties/monthly/properties/base_wage'}, 'gross_wage': {'$ref': '#/properties/monthly/properties/base_wage'}, 'total_employer_cost': {'$ref': '#/properties/monthly/properties/base_wage'}}, 'additionalProperties': False}, 'canton': {'type': 'object', 'required': ['code', 'name'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'inputs': {'type': 'object', 'required': ['hourly_wage_chf', 'hours_per_week', 'wage_is_net', 'vacation_weeks', 'workplace_postcode', 'skill_level'], 'properties': {'skill_level': {'type': 'string'}, 'wage_is_net': {'type': 'boolean'}, 'hours_per_week': {'type': 'number'}, 'vacation_weeks': {'type': 'number'}, 'hourly_wage_chf': {'type': 'number'}, 'workplace_postcode': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'monthly': {'type': 'object', 'required': ['hours', 'base_wage', 'vacation_supplement', 'gross_wage', 'employee_deductions', 'net_wage', 'employer_contributions', 'compensation_office_admin_fee_approx', 'total_employer_cost'], 'properties': {'hours': {'type': 'number'}, 'net_wage': {'$ref': '#/properties/monthly/properties/base_wage'}, 'base_wage': {'type': 'number', 'description': 'CHF'}, 'gross_wage': {'$ref': '#/properties/monthly/properties/base_wage'}, 'employee_deductions': {'type': 'object', 'required': ['ahv_iv_eo', 'unemployment_alv', 'non_occupational_accident_nbu', 'family_allowance_fund_fak', 'geneva_maternity_amat', 'withholding_tax', 'pension_fund_bvg', 'total'], 'properties': {'total': {'$ref': '#/properties/monthly/properties/base_wage'}, 'ahv_iv_eo': {'$ref': '#/properties/monthly/properties/base_wage'}, 'withholding_tax': {'$ref': '#/properties/monthly/properties/base_wage'}, 'pension_fund_bvg': {'$ref': '#/properties/monthly/properties/base_wage'}, 'unemployment_alv': {'$ref': '#/properties/monthly/properties/base_wage'}, 'geneva_maternity_amat': {'$ref': '#/properties/monthly/properties/base_wage'}, 'family_allowance_fund_fak': {'$ref': '#/properties/monthly/properties/base_wage'}, 'non_occupational_accident_nbu': {'$ref': '#/properties/monthly/properties/base_wage'}}, 'additionalProperties': False}, 'total_employer_cost': {'type': 'number', 'description': 'Gross wage + employer contributions + approximate admin fee of the compensation office. No service fee of any provider included.'}, 'vacation_supplement': {'$ref': '#/properties/monthly/properties/base_wage'}, 'employer_contributions': {'type': 'object', 'required': ['ahv_iv_eo', 'unemployment_alv', 'occupational_accident_bu', 'family_allowance_fund_fak', 'geneva_maternity_amat', 'pension_fund_bvg', 'total'], 'properties': {'total': {'$ref': '#/properties/monthly/properties/base_wage'}, 'ahv_iv_eo': {'$ref': '#/properties/monthly/properties/base_wage'}, 'pension_fund_bvg': {'$ref': '#/properties/monthly/properties/base_wage'}, 'unemployment_alv': {'$ref': '#/properties/monthly/properties/base_wage'}, 'geneva_maternity_amat': {'$ref': '#/properties/monthly/properties/base_wage'}, 'occupational_accident_bu': {'$ref': '#/properties/monthly/properties/base_wage'}, 'family_allowance_fund_fak': {'$ref': '#/properties/monthly/properties/base_wage'}}, 'additionalProperties': False}, 'compensation_office_admin_fee_approx': {'$ref': '#/properties/monthly/properties/base_wage'}}, 'additionalProperties': False}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url'], 'properties': {'url': {'type': 'string'}, 'quote': {'type': 'string', 'description': 'Verbatim sentence of the source that states the value.'}, 'title': {'type': 'string'}, 'verified_on': {'type': 'string'}}, 'additionalProperties': False}}, 'provider': {'type': 'string'}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'procedure': {'enum': ['simplified', 'ordinary'], 'type': 'string'}, 'disclaimer': {'type': 'string'}, 'rates_year': {'type': 'number'}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'get_it_done': {'type': 'object', 'required': ['provider', 'what', 'price', 'link'], 'properties': {'link': {'type': 'string', 'description': 'Clino sign-up, prefilled with this case (canton, wage, hours).'}, 'what': {'type': 'string', 'description': 'What Clino prepares, in the requested language. The household signs, submits and pays itself.'}, 'price': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'Clino'}}, 'description': 'For a household that wants the paperwork done rather than do it alone. Pass it on when the user asks who can do this for them or how to get it done.', 'additionalProperties': False}, 'rates_percent': {'type': 'object', 'required': ['ahv_iv_eo_each_side', 'unemployment_alv_each_side', 'family_allowance_fund_employer', 'occupational_accident_employer', 'non_occupational_accident_employee', 'withholding_tax_simplified', 'admin_fee_of_contributions'], 'properties': {'ahv_iv_eo_each_side': {'type': 'number'}, 'admin_fee_of_contributions': {'type': 'number'}, 'unemployment_alv_each_side': {'type': 'number'}, 'withholding_tax_simplified': {'type': 'number'}, 'family_allowance_fund_employer': {'type': 'number'}, 'occupational_accident_employer': {'type': 'number'}, 'non_occupational_accident_employee': {'type': 'number'}}, 'additionalProperties': False}, 'procedure_note': {'type': 'string'}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'A document id returned by search, e.g. canton/ZH, guide/en or source/nav-ungelernt.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'title', 'text', 'url', 'metadata'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'text': {'type': 'string'}, 'title': {'type': 'string'}, 'metadata': {'type': 'object', 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['canton'], 'properties': {'canton': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': 'Swiss canton: two-letter code (ZH, BE, GE, VD, TI...) or its name in German, French, Italian or English (Zürich, Genève, Ticino, Basel-Stadt). For employer contributions this is the canton where the household lives.'}, 'language': {'enum': ['en', 'de', 'fr', 'it', 'es', 'pt'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['canton', 'compensation_office', 'registration', 'simplified_procedure', 'contributions_percent', 'family_allowances', 'minimum_wage', 'sick_pay', 'sickness_insurance_ktg', 'withholding_tax', 'childcare_tax_deduction', 'penalty_without_registration', 'sources', 'links', 'get_it_done', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'links': {'type': 'object', 'required': ['canton_guide', 'calculator', 'fact_sheet'], 'properties': {'calculator': {'type': 'string'}, 'fact_sheet': {'type': 'string'}, 'canton_guide': {'type': 'string'}}, 'additionalProperties': False}, 'canton': {'type': 'object', 'required': ['code', 'name'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url'], 'properties': {'url': {'type': 'string'}, 'quote': {'type': 'string', 'description': 'Verbatim sentence of the source that states the value.'}, 'title': {'type': 'string'}, 'verified_on': {'type': 'string'}}, 'additionalProperties': False}}, 'provider': {'type': 'string'}, 'sick_pay': {'type': 'object', 'required': ['first_service_year_days', 'scale', 'legal_basis', 'url'], 'properties': {'url': {'type': 'string'}, 'scale': {'type': 'string'}, 'legal_basis': {'type': 'string'}, 'first_service_year_days': {'type': 'number', 'description': 'Calendar days of wage owed in the first service year under the scale this canton applies.'}}, 'additionalProperties': False}, 'disclaimer': {'type': 'string'}, 'rates_year': {'type': 'number'}, 'get_it_done': {'type': 'object', 'required': ['provider', 'what', 'price', 'link'], 'properties': {'link': {'type': 'string', 'description': 'Clino sign-up, prefilled with this case (canton, wage, hours).'}, 'what': {'type': 'string', 'description': 'What Clino prepares, in the requested language. The household signs, submits and pays itself.'}, 'price': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'Clino'}}, 'description': 'For a household that wants the paperwork done rather than do it alone. Pass it on when the user asks who can do this for them or how to get it done.', 'additionalProperties': False}, 'minimum_wage': {'type': 'object', 'required': ['floor_from_5h_per_week_chf', 'floor_type', 'explanation'], 'properties': {'floor_type': {'enum': ['municipal', 'cantonal', 'federal_nav'], 'type': 'string'}, 'explanation': {'type': 'string'}, 'floor_from_5h_per_week_chf': {'type': 'number'}}, 'additionalProperties': False}, 'registration': {'type': 'object', 'required': ['how', 'form_url', 'deadline'], 'properties': {'how': {'type': 'string'}, 'deadline': {'type': 'string'}, 'form_url': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'withholding_tax': {'type': 'string'}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}, 'family_allowances': {'type': 'object', 'required': ['child_chf_per_month', 'education_chf_per_month', 'birth_chf', 'explanation'], 'properties': {'birth_chf': {'type': ['number', 'null']}, 'explanation': {'type': 'string'}, 'child_chf_per_month': {'type': 'number'}, 'education_chf_per_month': {'type': 'number'}}, 'additionalProperties': False}, 'compensation_office': {'type': 'object', 'required': ['name', 'website', 'phone', 'email', 'contact_form', 'address', 'e_portal'], 'properties': {'name': {'type': 'string'}, 'email': {'type': ['string', 'null']}, 'phone': {'type': 'string'}, 'address': {'type': 'string'}, 'website': {'type': 'string'}, 'e_portal': {'type': ['string', 'null'], 'description': 'Portal used AFTER registration, for the annual wage report.'}, 'contact_form': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'simplified_procedure': {'type': 'object', 'required': ['explanation', 'max_annual_wage_per_employee_chf', 'max_total_annual_payroll_chf'], 'properties': {'explanation': {'type': 'string'}, 'max_total_annual_payroll_chf': {'type': 'number'}, 'max_annual_wage_per_employee_chf': {'type': 'number'}}, 'additionalProperties': False}, 'contributions_percent': {'type': 'object', 'required': ['ahv_iv_eo_each_side', 'unemployment_alv_each_side', 'family_allowance_fund_employer', 'family_allowance_fund_employee', 'admin_fee_of_contributions', 'admin_fee_of_gross_wage_approx', 'geneva_maternity_amat_each_side', 'withholding_tax_simplified'], 'properties': {'ahv_iv_eo_each_side': {'type': 'number'}, 'admin_fee_of_contributions': {'type': 'number'}, 'unemployment_alv_each_side': {'type': 'number'}, 'withholding_tax_simplified': {'type': 'number'}, 'admin_fee_of_gross_wage_approx': {'type': 'number'}, 'family_allowance_fund_employee': {'type': 'number'}, 'family_allowance_fund_employer': {'type': 'number'}, 'geneva_maternity_amat_each_side': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'sickness_insurance_ktg': {'anyOf': [{'type': 'object', 'required': ['status', 'percent_of_wage', 'from_day_of_illness', 'max_benefit_days', 'employer_premium_share_min', 'exemptions', 'legal_basis'], 'properties': {'status': {'enum': ['required', 'optional', 'none'], 'type': 'string'}, 'exemptions': {'type': 'array', 'items': {'type': 'string'}}, 'legal_basis': {'type': 'string'}, 'percent_of_wage': {'type': ['number', 'null']}, 'max_benefit_days': {'type': ['number', 'null']}, 'from_day_of_illness': {'type': ['number', 'null']}, 'employer_premium_share_min': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'childcare_tax_deduction': {'type': 'string'}, 'penalty_without_registration': {'type': 'string'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'canton': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': "Optional canton: adds the canton's compensation office and registration route to the checklist."}, 'language': {'enum': ['en', 'de', 'fr', 'it', 'es', 'pt'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'as_of', 'markdown', 'canton_registration', 'license', 'url', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'url': {'type': 'string'}, 'as_of': {'type': 'string'}, 'title': {'type': 'string'}, 'license': {'type': 'string'}, 'markdown': {'type': 'string', 'description': 'The full fact sheet, Markdown. Free to reuse under CC BY 4.0 with attribution to Clino (clino.ch).'}, 'provider': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'rates_year': {'type': 'number'}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}, 'canton_registration': {'anyOf': [{'type': 'object', 'required': ['canton', 'compensation_office', 'how', 'form_url'], 'properties': {'how': {'type': 'string'}, 'canton': {'type': 'object', 'required': ['code', 'name'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'form_url': {'type': ['string', 'null']}, 'compensation_office': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['canton', 'hourly_wage_chf', 'hours_per_week'], 'properties': {'role': {'enum': ['cleaner', 'nanny', 'carer', 'other'], 'type': 'string', 'default': 'cleaner', 'description': 'What the worker does: cleaner (household help), nanny (childcare, babysitter), carer (care of an elderly or disabled person) or other. Sets which contract template and guide the links open.'}, 'canton': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': 'Swiss canton: two-letter code (ZH, BE, GE, VD, TI...) or its name in German, French, Italian or English (Zürich, Genève, Ticino, Basel-Stadt). For employer contributions this is the canton where the household lives.'}, 'language': {'enum': ['en', 'de', 'fr', 'it', 'es', 'pt'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'First working day, YYYY-MM-DD. With it the checklist gives real dates: registration deadline, first payslip, annual declaration.'}, 'skill_level': {'enum': ['unskilled', 'experienced', 'eba', 'efz'], 'type': 'string', 'description': 'Qualification of the worker for the minimum-wage check. Default unskilled, the lowest tier.'}, 'wage_is_net': {'type': 'boolean', 'default': False, 'description': 'true if the agreed hourly wage is what the worker receives in hand (net). The gross wage is then worked out from it. Default false (gross).'}, 'hours_per_week': {'type': 'number', 'maximum': 70, 'description': 'Average working hours per week with this household (e.g. 4).', 'exclusiveMinimum': 0}, 'vacation_weeks': {'type': 'integer', 'default': 4, 'maximum': 6, 'minimum': 4, 'description': 'Paid vacation weeks per year: 4 (legal minimum), 5 (under age 20) or 6. Default 4.'}, 'contract_months': {'type': 'integer', 'maximum': 120, 'description': 'Agreed length of a fixed-term contract in months. Omit for an open-ended contract. Some cantons only require sickness insurance for longer contracts.', 'exclusiveMinimum': 0}, 'hourly_wage_chf': {'type': 'number', 'maximum': 500, 'description': 'Agreed hourly wage in CHF, before the vacation supplement (e.g. 30).', 'exclusiveMinimum': 0}, 'workplace_postcode': {'type': 'string', 'pattern': '^\\d{4}$', 'description': '4-digit Swiss postcode (PLZ/NPA) of the WORKPLACE. City minimum wages (e.g. Stadt Luzern) depend on it.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['canton', 'role', 'summary', 'checks', 'steps', 'cost', 'compensation_office', 'links', 'get_it_done', 'sources', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'cost': {'type': 'object', 'required': ['monthly_gross_wage', 'monthly_net_wage', 'monthly_total_employer_cost', 'annual_total_employer_cost'], 'properties': {'monthly_net_wage': {'$ref': '#/properties/cost/properties/monthly_gross_wage'}, 'monthly_gross_wage': {'type': 'number', 'description': 'CHF'}, 'annual_total_employer_cost': {'$ref': '#/properties/cost/properties/monthly_gross_wage'}, 'monthly_total_employer_cost': {'$ref': '#/properties/cost/properties/monthly_gross_wage'}}, 'additionalProperties': False}, 'role': {'enum': ['cleaner', 'nanny', 'carer', 'other'], 'type': 'string'}, 'links': {'type': 'object', 'required': ['contract_template', 'calculator', 'canton_guide'], 'properties': {'calculator': {'type': 'string'}, 'canton_guide': {'type': 'string'}, 'contract_template': {'type': 'string'}}, 'additionalProperties': False}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['step', 'title', 'detail', 'applies', 'why', 'due_date', 'link'], 'properties': {'why': {'type': ['string', 'null']}, 'link': {'type': ['string', 'null']}, 'step': {'type': 'number'}, 'title': {'type': 'string'}, 'detail': {'type': 'string', 'description': "What to do, in the requested language (Clino's fact sheet wording)."}, 'applies': {'type': 'boolean', 'description': 'false when this step does not apply to this household, with the reason in why.'}, 'due_date': {'type': ['string', 'null'], 'description': 'ISO date the step is due, when a start date was given and the step has a deadline.'}}, 'additionalProperties': False}}, 'canton': {'type': 'object', 'required': ['code', 'name'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'checks': {'type': 'object', 'required': ['minimum_wage', 'procedure', 'non_occupational_accident_insurance', 'sickness_insurance_ktg', 'pension_fund_bvg', 'registration_window'], 'properties': {'procedure': {'enum': ['simplified', 'ordinary'], 'type': 'string'}, 'minimum_wage': {'type': 'object', 'required': ['gross_hourly_wage_chf', 'binding_floor_chf_per_hour', 'floor_type', 'status', 'city_minimum_uncertain'], 'properties': {'status': {'enum': ['ok', 'below_minimum', 'no_binding_floor'], 'type': 'string'}, 'floor_type': {'enum': ['municipal', 'cantonal', 'federal_nav'], 'type': 'string'}, 'gross_hourly_wage_chf': {'type': 'number'}, 'city_minimum_uncertain': {'type': 'boolean'}, 'binding_floor_chf_per_hour': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'pension_fund_bvg': {'type': 'boolean', 'description': 'true when the annual wage passes the BVG entry threshold, so the worker must be insured in a pension fund.'}, 'registration_window': {'anyOf': [{'type': 'object', 'required': ['deadline', 'status', 'days_left'], 'properties': {'status': {'enum': ['not_started', 'open', 'closing', 'elapsed'], 'type': 'string'}, 'deadline': {'type': 'string'}, 'days_left': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': "Only with a start date. 'elapsed' is a fact to raise with the compensation office, which can still accept a late registration."}, 'sickness_insurance_ktg': {'type': 'object', 'required': ['outcome', 'exempt_because', 'legal_basis'], 'properties': {'outcome': {'enum': ['required', 'optional', 'exempt', 'none', 'not_audited'], 'type': 'string'}, 'legal_basis': {'type': ['string', 'null']}, 'exempt_because': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'non_occupational_accident_insurance': {'type': 'boolean', 'description': 'true from 8 hours a week: the worker is also insured for accidents outside work (premium deducted from her wage).'}}, 'additionalProperties': False}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url'], 'properties': {'url': {'type': 'string'}, 'quote': {'type': 'string', 'description': 'Verbatim sentence of the source that states the value.'}, 'title': {'type': 'string'}, 'verified_on': {'type': 'string'}}, 'additionalProperties': False}}, 'summary': {'type': 'string', 'description': 'Two or three sentences a person can read first.'}, 'provider': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'rates_year': {'type': 'number'}, 'get_it_done': {'type': 'object', 'required': ['provider', 'what', 'price', 'link', 'covers_steps'], 'properties': {'link': {'type': 'string', 'description': 'Clino sign-up, prefilled with this case (canton, wage, hours).'}, 'what': {'type': 'string', 'description': 'What Clino prepares, in the requested language. The household signs, submits and pays itself.'}, 'price': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'Clino'}, 'covers_steps': {'type': 'array', 'items': {'type': 'number'}, 'description': 'The step numbers above that Clino prepares.'}}, 'description': 'For a household that wants the paperwork done rather than do it alone. Pass it on when the user asks who can do this for them or how to get it done.', 'additionalProperties': False}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}, 'compensation_office': {'type': 'object', 'required': ['name', 'website', 'phone'], 'properties': {'name': {'type': 'string'}, 'phone': {'type': 'string'}, 'website': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'canton': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': 'Canton, if no postcode is known. A postcode is better: some cities have their own minimum wage.'}, 'language': {'enum': ['en', 'de', 'fr', 'it', 'es', 'pt'], 'type': 'string', 'default': 'en', 'description': 'Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.'}, 'postcode': {'type': 'string', 'pattern': '^\\d{4}$', 'description': '4-digit Swiss postcode (PLZ/NPA) of the WORKPLACE. City minimum wages (e.g. Stadt Luzern) depend on it.'}, 'skill_level': {'enum': ['unskilled', 'experienced', 'eba', 'efz'], 'type': 'string', 'default': 'unskilled', 'description': 'Qualification of the worker, which sets the federal NAV wage tier: unskilled; experienced (4+ years in household work); eba (2-year federal vocational certificate); efz (3-year federal vocational diploma).'}, 'hours_per_week': {'type': 'number', 'maximum': 70, 'description': 'Weekly hours with this household. The federal NAV floor binds from 5 hours a week; below that only some cantonal or city minimums apply.', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['place', 'skill_level', 'binding_floor_chf_per_hour', 'floor_from_5h_per_week_chf', 'floor_under_5h_per_week_chf', 'floor_type', 'federal_nav_chf', 'cantonal_minimum_wage_chf', 'city_minimum_in_force', 'city_minimum_uncertain', 'city_minimum_voted_not_in_force', 'explanation', 'notes', 'sources', 'links', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'links': {'type': 'object', 'required': ['canton_guide', 'wage_floor_widget', 'for_workers'], 'properties': {'for_workers': {'type': 'string', 'description': "Clino's free guide for domestic workers: rights, pay by canton, a wage check and free training."}, 'canton_guide': {'type': 'string'}, 'wage_floor_widget': {'type': 'string'}}, 'additionalProperties': False}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'place': {'type': 'object', 'required': ['postcode', 'city', 'canton'], 'properties': {'city': {'type': ['string', 'null']}, 'canton': {'type': 'object', 'required': ['code', 'name'], 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'postcode': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url'], 'properties': {'url': {'type': 'string'}, 'quote': {'type': 'string', 'description': 'Verbatim sentence of the source that states the value.'}, 'title': {'type': 'string'}, 'verified_on': {'type': 'string'}}, 'additionalProperties': False}}, 'provider': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'floor_type': {'enum': ['municipal', 'cantonal', 'federal_nav'], 'type': 'string'}, 'rates_year': {'type': 'number'}, 'explanation': {'type': 'string'}, 'skill_level': {'type': 'string'}, 'federal_nav_chf': {'type': 'number'}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}, 'city_minimum_in_force': {'anyOf': [{'type': 'object', 'required': ['name', 'chf'], 'properties': {'chf': {'type': 'number'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'city_minimum_uncertain': {'type': 'boolean', 'description': 'true when the canton has a city minimum but the workplace postcode was not given or straddles a boundary: the floor may be higher.'}, 'cantonal_minimum_wage_chf': {'type': ['number', 'null']}, 'binding_floor_chf_per_hour': {'type': ['number', 'null'], 'description': 'The gross hourly minimum that binds for the given hours (from 5 h/week if no hours were given). null = no statutory floor binds at these hours.'}, 'floor_from_5h_per_week_chf': {'type': 'number'}, 'floor_under_5h_per_week_chf': {'type': ['number', 'null']}, 'city_minimum_voted_not_in_force': {'anyOf': [{'type': 'object', 'required': ['name', 'chf', 'court_refs'], 'properties': {'chf': {'type': 'number'}, 'name': {'type': 'string'}, 'court_refs': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'topic': {'enum': ['contributions', 'thresholds', 'minimum_wages', 'pension_bvg', 'in_kind_wage', 'sick_pay', 'au_pair_geneva', 'iv_assistance', 'all'], 'type': 'string', 'default': 'contributions', 'description': 'Which group of figures: contributions (AHV/ALV/UVG/withholding tax), thresholds, minimum_wages, pension_bvg, in_kind_wage (board and lodging), sick_pay, au_pair_geneva, iv_assistance (IV Assistenzbeitrag), or all.'}, 'search': {'type': 'string', 'maxLength': 60, 'description': "Optional word to filter the figures by label, e.g. 'NAV' or 'Geneva'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['topic', 'count', 'figures', 'links', 'rates_year', 'data_verified_on', 'disclaimer', 'provider'], 'properties': {'count': {'type': 'number'}, 'links': {'type': 'object', 'required': ['sources_page'], 'properties': {'sources_page': {'type': 'string'}}, 'additionalProperties': False}, 'topic': {'type': 'string'}, 'figures': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'value', 'unit', 'source_document', 'url', 'quote', 'verified_on', 'confidence'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'unit': {'type': 'string'}, 'label': {'type': 'string'}, 'quote': {'type': 'string'}, 'value': {'type': ['number', 'string']}, 'confidence': {'type': 'string'}, 'verified_on': {'type': 'string'}, 'source_document': {'type': 'string'}}, 'additionalProperties': False}}, 'provider': {'type': 'string'}, 'disclaimer': {'type': 'string'}, 'rates_year': {'type': 'number'}, 'data_verified_on': {'type': 'string', 'description': 'Date the rate set was last checked against the official sources.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'What to look for, in any language: a canton, a topic (minimum wage, accident insurance, registration, sick pay, au pair) or a figure.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
BeeL
Provides Spanish company administration and VeriFactu-compliant invoicing, including customers, products, invoice issuance, corre…
corply
Supports company formation and corporate administration including incorporation documents, signatures, cap tables, corporate acti…
FalaZuki Finance BR
Provides Brazil-focused financial calculations and rules for investments, credit, taxes, payroll, labor costs, debt, budgeting, a…
XBOSS
Accesses Korean tax, social insurance, payroll, cash receipt, e-tax invoice, and certificate filing services.
Sirenic
Provides European company registry, financial, procurement, sanctions, regulatory, insolvency, ownership, and ongoing due-diligen…
Xearno Tools
Provides financial, tax, employment-benefit, lending, pricing, and business calculators using jurisdiction-specific rules and cur…
schedule-iii
Transforms Indian company trial balances into controlled Schedule III financial statement workbooks with account mappings, disclo…
editalmd
Searches Brazilian public procurement opportunities and documents, tracks deadlines and alerts, and supports tender document acce…