{"serverId":"mcp-registry/com.zuegle/zugle","tools":[{"name":"listing_search","fixed":{"name":"listing_search","description":"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.","inputSchema":{"type":"object","required":["bfsId"],"properties":{"bfsId":{"type":"integer","maximum":9999,"minimum":1,"description":"Municipality to search in."},"limit":{"type":"integer","default":10,"maximum":25,"minimum":1,"description":"Maximum listings to return (1-25)."},"rooms":{"type":"number","maximum":20,"minimum":1,"description":"Preferred size in rooms; re-ranks, never filters."},"surface":{"type":"number","maximum":1000,"minimum":5,"description":"Preferred living space in m²; re-ranks."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":224,"tokensAfter":224},{"name":"municipality_search","fixed":{"name":"municipality_search","description":"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.","inputSchema":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":60,"description":"Name fragment, e.g. \"Uster\". Case-insensitive."},"zip":{"type":"string","maxLength":4,"description":"Four-digit Swiss postcode, e.g. \"8308\" (which alone spans three Gemeinden)."},"limit":{"type":"integer","default":20,"maximum":50,"minimum":1,"description":"Maximum matches to return (1-50)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":183,"tokensAfter":183},{"name":"tax_lookup","fixed":{"name":"tax_lookup","description":"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.","inputSchema":{"type":"object","required":["bfsId","income"],"properties":{"year":{"type":"integer","maximum":2025,"minimum":2015,"description":"Tax year. Defaults to the year this installation is configured for."},"bfsId":{"type":"integer","maximum":9999,"minimum":1,"description":"Municipality BFS id, from municipality_search."},"income":{"type":"integer","maximum":10000000,"minimum":1,"description":"Gross annual household income in CHF."},"children":{"type":"integer","default":0,"maximum":20,"minimum":0,"description":"Number of dependent children."},"confession":{"enum":["none","roman","protestant"],"type":"string","default":"none","description":"Church-tax affiliation."},"relationship":{"enum":["single","married"],"type":"string","default":"single","description":"Marital status used for the tariff."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":310,"tokensAfter":310}],"toolsChanged":3,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}