swiss-living-index

Official Swiss living-cost & relocation data for all 26 cantons — taxes, rent, premiums, jobs.

Should I use this

Quality & Safety

A
Description quality
94%
Schema completeness
72%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'compare_cantons' description lacks action verbin compare_cantons

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,227Tokens (tool definitions)
~563 BTypical response size
Moderate attention impact (0.96% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "swiss-living-index": {
      "url": "https://swisslivingindex.ch/mcp"
    }
  }
}

Remote endpoints

https://swisslivingindex.ch/mcpstreamable-http

What it can do

Tool inventory

Tools (11)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_metrics

List available metrics for the 26 Swiss cantons (key, label, unit, source, what higher/lower means).

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_canton(canton)

Get all metric values for one canton. canton = 2-letter abbreviation (e.g. ZH, GE, TI). rank 1 = lowest value for cost metrics (dir 'low', e.g. taxes/rent) and highest value for capacity/benefit metrics (dir 'high', e.g. sunshine/jobs). Ranks describe order under the stated scenario, not universal suitability.

Input Schema

{
  "type": "object",
  "properties": {
    "canton": {
      "type": "string"
    }
  },
  "required": [
    "canton"
  ]
}
🟢rank_by_metric(metric, order)

Rank all cantons by a metric. metric = a key from list_metrics; order = "high" or "low" (default high).

Input Schema

{
  "type": "object",
  "properties": {
    "metric": {
      "type": "string"
    },
    "order": {
      "type": "string"
    }
  },
  "required": [
    "metric"
  ]
}
⚪compare_cantons(cantons)

Compare 2–4 cantons across all metrics. cantons = array of abbreviations.

Input Schema

{
  "type": "object",
  "properties": {
    "cantons": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "cantons"
  ]
}
⚪commune_tax(commune, income, married, children, wealth)

Live income+wealth tax for a specific commune & household (official ESTV, year 2026). commune = name or postcode; income in CHF; married bool; children count; wealth in CHF.

Input Schema

{
  "type": "object",
  "properties": {
    "commune": {
      "type": "string"
    },
    "income": {
      "type": "number"
    },
    "married": {
      "type": "boolean"
    },
    "children": {
      "type": "number"
    },
    "wealth": {
      "type": "number"
    }
  },
  "required": [
    "commune",
    "income"
  ]
}
🟢search_commune(query)

Find Swiss communes by name or postcode (official ESTV location register). Returns commune name, canton and postcode — use before commune_tax or estimate_net_move when the spelling is uncertain.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
⚪estimate_net_move(from_commune, to_commune, income, married, children, ...)

Estimate the net yearly CHF impact of moving between two Swiss communes for a household: live commune-level tax (official ESTV 2026) plus canton-average rent and health-premium differences. Positive savings = the move saves money. The flagship relocation calculation as a tool.

Input Schema

{
  "type": "object",
  "properties": {
    "from_commune": {
      "type": "string",
      "description": "current commune name or postcode"
    },
    "to_commune": {
      "type": "string",
      "description": "candidate commune name or postcode"
    },
    "income": {
      "type": "number",
      "description": "gross household income, CHF/year"
    },
    "married": {
      "type": "boolean"
    },
    "children": {
      "type": "number"
    },
    "wealth": {
      "type": "number",
      "description": "taxable wealth, CHF"
    }
  },
  "required": [
    "from_commune",
    "to_commune",
    "income"
  ]
}
🟢get_trend(canton, metric, from_year)

Historical year-series for a metric in one canton (e.g. sunshine back to 1884, migration to 1981, rent to 2010). metric = key from list_metrics with history: rent_mean, net_migration_per_1000, foreigner_pct, sunshine_hours, balance_per_capita, beds_per_1000, jobs, unemployment_pct (SECO yearly averages to 1993). Optional from_year.

Input Schema

{
  "type": "object",
  "properties": {
    "canton": {
      "type": "string"
    },
    "metric": {
      "type": "string"
    },
    "from_year": {
      "type": "number"
    }
  },
  "required": [
    "canton",
    "metric"
  ]
}
⚪upcoming_votes

The next Swiss federal vote dates and (once announced) the subjects on the ballot, in DE/FR/IT/EN (official Federal Chancellery / VoteInfo data).

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢recommend_canton(cost, tax, work, env, health, ...)

Personal canton recommendation ("Where should I live in Switzerland?"): weight 5 categories 0–3 (cost = rent/premiums/electricity; tax = income tax/fiscal balance; work = jobs/unemployment/migration; env = sunshine/crime/vacancy; health = hospital capacity) and get all 26 cantons scored by the transparent percentile method of the Swiss Living Quality Index. Every evidence figure carries value, unit, rank, source and year. Scores describe order under the stated weights, not universal suitability.

Input Schema

{
  "type": "object",
  "properties": {
    "cost": {
      "type": "number",
      "description": "0-3, default 2"
    },
    "tax": {
      "type": "number"
    },
    "work": {
      "type": "number"
    },
    "env": {
      "type": "number"
    },
    "health": {
      "type": "number"
    },
    "infra": {
      "type": "number",
      "description": "0-3, connectivity & infrastructure (active once infra metrics ship)"
    },
    "international_community": {
      "type": "boolean",
      "description": "include foreigner share, higher preferred"
    },
    "limit": {
      "type": "number",
      "description": "top N with evidence, default 5"
    }
  }
}
⚪book_consultation(name, email, phone, topic, message, ...)

Request a personal consultation with Mirabello Consultancy (Swiss relocation & investment-migration specialists) for questions beyond the data — international moves, residency, lump-sum taxation, wealth planning. Requires explicit consent to share contact details.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "topic": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "consent": {
      "type": "boolean",
      "description": "must be true: the person explicitly consents to their contact details being shared with Mirabello Consultancy"
    }
  },
  "required": [
    "name",
    "email",
    "consent"
  ]
}

Recommended Prompts

search_research
Search for information about [topic] using swiss-living-index
Expected tools: search_commune
find_specific
Find [specific item] using swiss-living-index
Expected tools: search_commune
list_items
List all [items] available in swiss-living-index
Expected tools: list_metrics
retrieve_data
Get details about [item] from swiss-living-index
Expected tools: get_canton
fetch_info
Fetch [information type] using swiss-living-index
Expected tools: get_canton

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded11 tools
verifiedversion not recorded11 tools