Hiring plan with dates, cost, net wage, minimum wage and rules for Swiss household employment.
MCP Server: ch.clino/household-employment
This MCP server provides a hiring plan for Swiss household employment. It is described as including dates, cost, net wage, minimum wage, and rules governing hiring in a household employment context. The server content focuses on employment planning details relevant to Switzerland.
🛠️ Key Features
Hiring plan structure
Includes dates
Includes cost information
Provides net wage details
Provides minimum wage information
Includes household employment rules for Switzerland
🚀 Use Cases
Plan or document hiring timelines for Swiss household roles
Estimate hiring cost alongside net wage
Check minimum wage values within household employment rules
Apply rule-based guidance for Swiss household employment
⚡ Developer Benefits
Consistent data fields for planning (dates, cost, net wage, minimum wage, rules)
Clear focus on Switzerland-specific household employment requirements
Monthly and annual cost of employing a cleaner, nanny, babysitter or carer in a Swiss private household, and the worker's net wage: gross wage, vacation supplement, every employee deduction (AHV/IV/EO, unemployment, accident insurance, withholding tax, BVG) and every employer contribution (incl. the canton's family allowance fund and the compensation office's admin fee). Uses the same engine as Clino's public calculator. Picks the simplified or ordinary procedure from the annual wage. Canton = where the household lives.
Parameters8
canton
string
required
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.
hourly_wage_chf
number
required
Agreed hourly wage in CHF, before the vacation supplement (e.g. 30).
hours_per_week
number
required
Average working hours per week with this household (e.g. 4).
wage_is_net
boolean
optional
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).
vacation_weeks
integer
optional
Paid vacation weeks per year: 4 (legal minimum), 5 (under age 20) or 6. Default 4.
workplace_postcode
string
optional
4-digit Swiss postcode (PLZ/NPA) of the WORKPLACE. City minimum wages (e.g. Stadt Luzern) depend on it.
skill_level
string
optional
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).
language
string
optional
Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.
Raw schema
{
"type": "object",
"properties": {
"canton": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"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."
},
"hourly_wage_chf": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 500,
"description": "Agreed hourly wage in CHF, before the vacation supplement (e.g. 30)."
},
"hours_per_week": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 70,
"description": "Average working hours per week with this household (e.g. 4)."
},
"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)."
},
"vacation_weeks": {
"type": "integer",
"minimum": 4,
"maximum": 6,
"default": 4,
"description": "Paid vacation weeks per year: 4 (legal minimum), 5 (under age 20) or 6. Default 4."
},
"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."
},
"skill_level": {
"type": "string",
"enum": [
"unskilled",
"experienced",
"eba",
"efz"
],
"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)."
},
"language": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"it",
"es",
"pt"
],
"default": "en",
"description": "Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en."
}
},
"required": [
"canton",
"hourly_wage_chf",
"hours_per_week"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
compare_cantons
The same hourly wage and weekly hours computed in all 26 Swiss cantons: monthly employer cost, net wage, family allowance fund rate, admin fee and the canton's minimum wage, ranked. Use it for 'where is it cheapest', 'how much does the canton matter' or a table for several cantons.
Parameters6
hourly_wage_chf
number
required
Agreed hourly wage in CHF, before the vacation supplement (e.g. 30).
hours_per_week
number
required
Average working hours per week with this household (e.g. 4).
wage_is_net
boolean
optional
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).
vacation_weeks
integer
optional
Paid vacation weeks per year: 4 (legal minimum), 5 (under age 20) or 6. Default 4.
sort_by
string
optional
Sort the 26 cantons by monthly employer cost (ascending) or by the worker's net wage (descending).
language
string
optional
Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.
Raw schema
{
"type": "object",
"properties": {
"hourly_wage_chf": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 500,
"description": "Agreed hourly wage in CHF, before the vacation supplement (e.g. 30)."
},
"hours_per_week": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 70,
"description": "Average working hours per week with this household (e.g. 4)."
},
"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)."
},
"vacation_weeks": {
"type": "integer",
"minimum": 4,
"maximum": 6,
"default": 4,
"description": "Paid vacation weeks per year: 4 (legal minimum), 5 (under age 20) or 6. Default 4."
},
"sort_by": {
"type": "string",
"enum": [
"employer_cost",
"net_wage"
],
"default": "employer_cost",
"description": "Sort the 26 cantons by monthly employer cost (ascending) or by the worker's net wage (descending)."
},
"language": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"it",
"es",
"pt"
],
"default": "en",
"description": "Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en."
}
},
"required": [
"hourly_wage_chf",
"hours_per_week"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
get_minimum_wage
The legal gross hourly minimum wage for household work (cleaning, childcare, care) at a Swiss workplace: federal NAV tiers by qualification, cantonal minimum wages (GE, NE, JU, TI, BS), city minimum wages (Stadt Luzern in force; Zürich and Winterthur voted, not yet in force) and the rule below 5 hours a week. Give the workplace postcode for the exact answer, or a canton.
Parameters5
postcode
string
optional
4-digit Swiss postcode (PLZ/NPA) of the WORKPLACE. City minimum wages (e.g. Stadt Luzern) depend on it.
canton
string
optional
Canton, if no postcode is known. A postcode is better: some cities have their own minimum wage.
skill_level
string
optional
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
number
optional
Weekly hours with this household. The federal NAV floor binds from 5 hours a week; below that only some cantonal or city minimums apply.
language
string
optional
Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.
Raw schema
{
"type": "object",
"properties": {
"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."
},
"canton": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"description": "Canton, if no postcode is known. A postcode is better: some cities have their own minimum wage."
},
"skill_level": {
"type": "string",
"enum": [
"unskilled",
"experienced",
"eba",
"efz"
],
"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).",
"default": "unskilled"
},
"hours_per_week": {
"type": "number",
"exclusiveMinimum": 0,
"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."
},
"language": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"it",
"es",
"pt"
],
"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,
"$schema": "http://json-schema.org/draft-07/schema#"
}
get_canton_rules
Everything canton-specific for a private household employer: the compensation office (name, contact, portal), how and by when to register, contribution rates with their official sources, family allowances, minimum wage, sick pay in the first year, whether daily sickness allowance insurance (KTG) is mandatory, withholding tax, childcare tax deduction and the penalty for not registering.
Parameters2
canton
string
required
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
string
optional
Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.
Raw schema
{
"type": "object",
"properties": {
"canton": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"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": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"it",
"es",
"pt"
],
"default": "en",
"description": "Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en."
}
},
"required": [
"canton"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
get_employer_guide
Clino's one-page fact sheet for private households, as Markdown, in six languages: when the duties apply (from the first franc), which contributions are due and who pays them, the simplified procedure and its ceiling, minimum wage and working conditions, what happens without registration, and the six steps. Optionally adds one canton's registration route. Free to reuse under CC BY 4.0.
Parameters2
language
string
optional
Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.
canton
string
optional
Optional canton: adds the canton's compensation office and registration route to the checklist.
Raw schema
{
"type": "object",
"properties": {
"language": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"it",
"es",
"pt"
],
"default": "en",
"description": "Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en."
},
"canton": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"description": "Optional canton: adds the canton's compensation office and registration route to the checklist."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
get_official_sources
The federal and cantonal figures Clino uses, each with the official document, its URL, the verbatim sentence that states the value and the date it was checked: contribution rates, thresholds, minimum wages, BVG, board and lodging, sick-pay scales, Geneva au pair contract, IV assistance contribution. Use it to cite or verify a number.
Parameters2
topic
string
optional
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
string
optional
Optional word to filter the figures by label, e.g. 'NAV' or 'Geneva'.
Raw schema
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"contributions",
"thresholds",
"minimum_wages",
"pension_bvg",
"in_kind_wage",
"sick_pay",
"au_pair_geneva",
"iv_assistance",
"all"
],
"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,
"$schema": "http://json-schema.org/draft-07/schema#"
}
get_hiring_checklist
Everything a Swiss household has to do to employ a cleaner, nanny or carer legally, for its own case, in one call: the six steps of Clino's fact sheet in the user's language with real due dates when a start date is given (contract, registration with the compensation office within 30 days, accident insurance from day one, monthly payslip, annual declaration by 30 January, pension fund above the BVG threshold), the canton's sickness-insurance duty with its carve-outs, a minimum-wage check at the workplace, the monthly employer cost and net wage, and prefilled links to a contract template and the calculator. Use it first for 'I want to hire...' questions.
Parameters11
canton
string
required
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.
hourly_wage_chf
number
required
Agreed hourly wage in CHF, before the vacation supplement (e.g. 30).
hours_per_week
number
required
Average working hours per week with this household (e.g. 4).
role
string
optional
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.
start_date
string
optional
First working day, YYYY-MM-DD. With it the checklist gives real dates: registration deadline, first payslip, annual declaration.
contract_months
integer
optional
Agreed length of a fixed-term contract in months. Omit for an open-ended contract. Some cantons only require sickness insurance for longer contracts.
wage_is_net
boolean
optional
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).
vacation_weeks
integer
optional
Paid vacation weeks per year: 4 (legal minimum), 5 (under age 20) or 6. Default 4.
workplace_postcode
string
optional
4-digit Swiss postcode (PLZ/NPA) of the WORKPLACE. City minimum wages (e.g. Stadt Luzern) depend on it.
skill_level
string
optional
Qualification of the worker for the minimum-wage check. Default unskilled, the lowest tier.
language
string
optional
Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en.
Raw schema
{
"type": "object",
"properties": {
"canton": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"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."
},
"hourly_wage_chf": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 500,
"description": "Agreed hourly wage in CHF, before the vacation supplement (e.g. 30)."
},
"hours_per_week": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 70,
"description": "Average working hours per week with this household (e.g. 4)."
},
"role": {
"type": "string",
"enum": [
"cleaner",
"nanny",
"carer",
"other"
],
"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."
},
"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."
},
"contract_months": {
"type": "integer",
"exclusiveMinimum": 0,
"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."
},
"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)."
},
"vacation_weeks": {
"type": "integer",
"minimum": 4,
"maximum": 6,
"default": 4,
"description": "Paid vacation weeks per year: 4 (legal minimum), 5 (under age 20) or 6. Default 4."
},
"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."
},
"skill_level": {
"type": "string",
"enum": [
"unskilled",
"experienced",
"eba",
"efz"
],
"description": "Qualification of the worker for the minimum-wage check. Default unskilled, the lowest tier."
},
"language": {
"type": "string",
"enum": [
"en",
"de",
"fr",
"it",
"es",
"pt"
],
"default": "en",
"description": "Language of the explanatory texts and of the clino.ch links: en, de, fr, it, es or pt. Default en."
}
},
"required": [
"canton",
"hourly_wage_chf",
"hours_per_week"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
search
Search Clino's documents on employing household help in Switzerland: one document per canton (compensation office, registration, contribution rates, minimum wage, family allowances, sick pay, sickness insurance), the employer fact sheet in six languages and every official figure with its source. Returns ids for fetch. Queries in any language; name the canton for canton rules.
Parameters1
query
string
required
What to look for, in any language: a canton, a topic (minimum wage, accident insurance, registration, sick pay, au pair) or a figure.
Raw schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "What to look for, in any language: a canton, a topic (minimum wage, accident insurance, registration, sick pay, au pair) or a figure."
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
fetch
The full text of one document returned by search (canton/ZH, guide/de, source/nav-ungelernt...), with its clino.ch or official URL to cite.
Parameters1
id
string
required
A document id returned by search, e.g. canton/ZH, guide/en or source/nav-ungelernt.
Raw schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "A document id returned by search, e.g. canton/ZH, guide/en or source/nav-ungelernt."
}
},
"required": [
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
A free, read-only Model Context Protocol server that gives AI assistants the rules, rates and deadlines for employing household help in Switzerland (cleaner, nanny, carer), for all 26 cantons, with the official source behind every figure.
Endpoint:https://clino.ch/mcp (Streamable HTTP, no sign-in, no API key)
Docs and live demo:clino.ch/en/mcpOfficial MCP Registry:ch.clino/household-employment
Ask your assistant things like:
"I want to hire a cleaner in Zurich, 6 hours a week at CHF 30. What does it cost me and what do I have to do?"
"Our nanny starts in Geneva on 1 November, 20 hours a week. Give me the plan with dates."
"Is CHF 22 an hour legal for a cleaner in Basel?"
"In which canton is a household employee cheapest for the employer?"
The answers come from the same calculator and canton data that run clino.ch, checked against the official sources (AHV/IV leaflets, cantonal minimum-wage laws, NAV standard contracts, compensation offices).
All tools are read-only (readOnlyHint: true), return structured content with an output schema, and answer in German, English, French, Italian, Spanish or Portuguese.
Tool
What it answers
get_hiring_checklist
The plan for one case: steps with real dates (registration deadline, first payslip, annual declaration), cost, net wage, minimum-wage check, insurance, the canton's forms
estimate_employer_cost
Monthly and annual employer cost and the worker's net wage, line by line (AHV/IV/EO, ALV, FAK, UVG, withholding tax, BVG), simplified or ordinary procedure
compare_cantons
The same job priced in all 26 cantons
get_minimum_wage
The binding floor for household work: cantonal minimum wage (GE, NE, JU, TI, BS) or the NAV standard contract, by skill level
get_canton_rules
One canton: compensation office and its registration form, contribution rates, family allowances, sick pay scale, daily sickness insurance (KTG), withholding tax, childcare deduction
get_employer_guide
What a household employer has to do, step by step, by role (cleaner, nanny, carer)
get_official_sources
The official documents behind the figures, with the date each was checked and, where recorded, the sentence that states the value
search / fetch
Search and read Clino's canton pages, guides and source notes (the pair ChatGPT connectors expect)
Two prompts are included: hiring_plan (plan for employing someone) and check_my_wage (for workers: is my wage legal, what should my payslip show).
Clino's compilation of the figures the server uses is published here under CC BY 4.0 (LICENSE). Attribution: "Clino (clino.ch)" with a link to https://clino.ch/en/sources. General information, not legal advice, provided without warranty.
What the licence covers: the selection, structure, labels and values as Clino compiled them. It does not cover the documents the figures come from. Laws and ordinances are quoted from the official collections. Quotes from other publications, such as the AHV/IV leaflets, are short citations with their source, and those texts stay under their publishers' terms.
151 figures (contribution rates, thresholds, minimum wages, allowances), each with source document, URL and verification date. 131 also carry the sentence of the source that states the value. The confidence column says how each was checked: verified (129), carried forward from an earlier check without a quote (20), derived (1), verified-basis-inferred (1)
One row per canton: compensation office, family allowance fund rate, admin fee, child and education allowances, minimum wage from 5 h/week, KTG obligation, sick pay scale
The full canton rules as the server returns them, 26 cantons
Rates year 2026, last verified against the official sources on the date in each file. This is a snapshot; the always-current files are on clino.ch, built from the same engine as the server: official-figures.csv, official-figures.json, canton-summary.csv. Corrections are welcome as issues.
The server needs no account and has no access to the assistant's conversations, memory or files. The details a tool call sends (postcode, wage, hours) are used only to compute the answer and are not stored. The usage log keeps the tool name, canton, language, role and the client's name and version, with no IP address and no free text. Links in the answers carry utm_source=mcp, so a sign-up through one keeps that origin. Full text: clino.ch/en/privacy.
Limits
General information, not legal advice. Figures for 2026. The server prepares nothing and files nothing: registration with the compensation office, payslips and declarations remain the household's own steps.
About Clino
Clino helps private households in Switzerland employ a cleaner, nanny or carer legally: it prepares the employment contract and the monthly payslips, calculates the contributions, guides the registration with the compensation office and produces the annual wage declaration. Free tools: salary calculator, employment contract, registration by canton.