Zügle

Swiss income tax by municipality, cheaper-town ranking, apartment listings and commute times.

使うべきか

品質と安全性

A
説明の品質
93%
スキーマの完全性
99%
命名の品質
83%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(2)

  • LOWTool 'municipality_detail' description lacks action verbmunicipality_detail 内
  • LOWTool 'commute_cost' description lacks action verbcommute_cost 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~1,636トークン数(ツール定義)
~1.7 KB一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 1.28%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "zugle": {
      "url": "https://zuegle.com/mcp"
    }
  }
}

リモートエンドポイント

https://zuegle.com/mcpstreamable-http

できること

ツール一覧

ツール(8)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢municipality_search(q, zip, limit)

Finds Swiss municipalities by name fragment or postcode. Returns the BFS id, name, canton and postcodes for each match. The BFS id is the key every other tool here takes.

入力スキーマ

{
  "type": "object",
  "properties": {
    "q": {
      "description": "Name fragment, e.g. \"Uster\". Case-insensitive.",
      "type": "string",
      "maxLength": 60
    },
    "zip": {
      "description": "Four-digit Swiss postcode, e.g. \"8308\" (which alone spans three Gemeinden).",
      "type": "string",
      "maxLength": 4
    },
    "limit": {
      "description": "Maximum matches to return (1-50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20
    }
  },
  "required": [],
  "additionalProperties": false
}
⚪tax_lookup(bfsId, income, relationship, confession, children, ...)

Calculates the annual Swiss income tax for one municipality and one household profile, split into federal, cantonal and municipal parts. The figures come from the federal tax administration's calculation for the given gross income.

入力スキーマ

{
  "type": "object",
  "properties": {
    "bfsId": {
      "description": "Municipality BFS id, from municipality_search.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9999
    },
    "income": {
      "description": "Gross annual household income in CHF.",
      "type": "integer",
      "minimum": 1,
      "maximum": 10000000
    },
    "relationship": {
      "description": "Marital status used for the tariff.",
      "type": "string",
      "enum": [
        "single",
        "married"
      ],
      "default": "single"
    },
    "confession": {
      "description": "Church-tax affiliation.",
      "type": "string",
      "enum": [
        "none",
        "roman",
        "protestant"
      ],
      "default": "none"
    },
    "children": {
      "description": "Number of dependent children.",
      "type": "integer",
      "minimum": 0,
      "maximum": 20,
      "default": 0
    },
    "year": {
      "description": "Tax year. Defaults to the year this installation is configured for.",
      "type": "integer",
      "minimum": 2015,
      "maximum": 2025
    }
  },
  "required": [
    "bfsId",
    "income"
  ],
  "additionalProperties": false
}
⚪municipality_detail(bfsId, currentBfsId, income, relationship, confession, ...)

Returns the tax picture for one municipality relative to a stated current home: the annual difference, the tax multiplier, and the multi-year trend where past years are known.

入力スキーマ

{
  "type": "object",
  "properties": {
    "bfsId": {
      "description": "The municipality to describe.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9999
    },
    "currentBfsId": {
      "description": "BFS id of the current home, which every difference is measured against.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9999
    },
    "income": {
      "description": "Gross annual income in CHF.",
      "type": "integer",
      "minimum": 1,
      "maximum": 10000000
    },
    "relationship": {
      "description": "Marital status.",
      "type": "string",
      "enum": [
        "single",
        "married"
      ],
      "default": "single"
    },
    "confession": {
      "description": "Church-tax affiliation.",
      "type": "string",
      "enum": [
        "none",
        "roman",
        "protestant"
      ],
      "default": "none"
    },
    "children": {
      "description": "Dependent children.",
      "type": "integer",
      "minimum": 0,
      "maximum": 20,
      "default": 0
    },
    "years": {
      "description": "How many years of history to include.",
      "type": "integer",
      "minimum": 1,
      "maximum": 7,
      "default": 5
    }
  },
  "required": [
    "bfsId",
    "currentBfsId",
    "income"
  ],
  "additionalProperties": false
}
⚪favorable_municipalities(currentBfsId, income, relationship, confession, children, ...)

Ranks municipalities that are cheaper than, or within CHF 1000/yr of, a stated current home, by annual tax saving — municipalities near-identical in cost are included deliberately, not filtered out. Answered from cached figures only, so the ranking may be partial; the response states how many candidates were covered. Pass `near` (a town or station name) and `radiusKm` to keep only places around where the household lives or works; an unrecognised place is reported, not silently ignored.

入力スキーマ

{
  "type": "object",
  "properties": {
    "currentBfsId": {
      "description": "BFS id of the current home.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9999
    },
    "income": {
      "description": "Gross annual income in CHF.",
      "type": "integer",
      "minimum": 1,
      "maximum": 10000000
    },
    "relationship": {
      "description": "Marital status.",
      "type": "string",
      "enum": [
        "single",
        "married"
      ],
      "default": "single"
    },
    "confession": {
      "description": "Church-tax affiliation.",
      "type": "string",
      "enum": [
        "none",
        "roman",
        "protestant"
      ],
      "default": "none"
    },
    "children": {
      "description": "Dependent children.",
      "type": "integer",
      "minimum": 0,
      "maximum": 20,
      "default": 0
    },
    "currentRooms": {
      "description": "Size of the current home in rooms, used for the rent comparison.",
      "type": "number",
      "minimum": 1,
      "maximum": 20
    },
    "near": {
      "description": "Town or station name to search around, e.g. \"Winterthur\". Not a postcode.",
      "type": "string",
      "maxLength": 80
    },
    "radiusKm": {
      "description": "Distance from `near` in km (default 20). Ignored without `near`.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "currentBfsId",
    "income"
  ],
  "additionalProperties": false
}
🟢listing_search(bfsId, rooms, surface, limit)

Lists apartments currently advertised in one municipality, cheapest first, with the local median asking rent. Indicative figures for browsing only: they come from a portal feed and are not verified against the listing page.

入力スキーマ

{
  "type": "object",
  "properties": {
    "bfsId": {
      "description": "Municipality to search in.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9999
    },
    "rooms": {
      "description": "Preferred size in rooms; re-ranks, never filters.",
      "type": "number",
      "minimum": 1,
      "maximum": 20
    },
    "surface": {
      "description": "Preferred living space in m²; re-ranks.",
      "type": "number",
      "minimum": 5,
      "maximum": 1000
    },
    "limit": {
      "description": "Maximum listings to return (1-25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "default": 10
    }
  },
  "required": [
    "bfsId"
  ],
  "additionalProperties": false
}
⚪commute_time(from, to)

Returns the public-transport journey time in minutes between two Swiss places, using the national timetable.

入力スキーマ

{
  "type": "object",
  "properties": {
    "from": {
      "description": "Origin as a place or station name, e.g. \"Uster\". Not a postcode on its own.",
      "type": "string",
      "maxLength": 80
    },
    "to": {
      "description": "Destination as a place or station name.",
      "type": "string",
      "maxLength": 80,
      "default": "Zürich HB"
    }
  },
  "required": [
    "from"
  ],
  "additionalProperties": false
}
⚪commute_cost(from, to)

Estimates the monthly cost in CHF of commuting between two Swiss places, as a transit-pass estimate priced from Swiss regional fare-zone data. Some pricing regimes are approximations rather than an exact tariff.

入力スキーマ

{
  "type": "object",
  "properties": {
    "from": {
      "description": "Origin as a place or station name, e.g. \"Feusisberg\". Not a postcode on its own.",
      "type": "string",
      "maxLength": 80
    },
    "to": {
      "description": "Destination as a place or station name.",
      "type": "string",
      "maxLength": 80,
      "default": "Zürich HB"
    }
  },
  "required": [
    "from"
  ],
  "additionalProperties": false
}
🟡rent_benchmark(bfsId, rooms)

Reports the Swiss Federal Statistical Office's average monthly rent for a municipality, optionally for a given apartment size in rooms. BFS does not publish rent below canton level except for 10 named cities, so the figure may describe the CANTON rather than the municipality itself; the response states which.

入力スキーマ

{
  "type": "object",
  "properties": {
    "bfsId": {
      "description": "Municipality BFS id, from municipality_search.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9999
    },
    "rooms": {
      "description": "Apartment size in rooms, e.g. 3.5. Omit for the overall average.",
      "type": "number",
      "minimum": 1,
      "maximum": 20
    }
  },
  "required": [
    "bfsId"
  ],
  "additionalProperties": false
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 8 件
検証済みバージョンは記録されていませんツール 8 件