Swiss homes to rent or buy, with walking distances, noise, sun and commute times for any address.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this for ANY Swiss address, even without a listing – «what is it like to live at …», «is it noisy», «schools/Kita/ÖV near …», «was gibt es rund um …», «quartier calme ?», «com'è la zona …»: the building (year, floors, flats, heating), public transport, everyday places within walking distance, road/rail noise, local prices and rents, construction nearby, and listings in or near the building.
Swiss street address, e.g. «Bahnhofstrasse 10, 8001 Zürich».
Language of titles, descriptions and links (default de). Use the user's language.
Use this for ANY Swiss address, even without a listing – «what is it like to live at …», «is it noisy», «schools/Kita/ÖV near …», «was gibt es rund um …», «quartier calme ?», «com'è la zona …»: the building (year, floors, flats, heating), public transport, everyday places within walking distance, road/rail noise, local prices and rents, construction nearby, and listings in or near the building.
| Argument | Type | Description |
|---|---|---|
| address* | string | Swiss street address, e.g. «Bahnhofstrasse 10, 8001 Zürich». |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "Swiss street address, e.g. «Bahnhofstrasse 10, 8001 Zürich»."
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
}
},
"additionalProperties": false
}Use this to apply for a RENTAL listing with the person's Heimster application profile (bewerben, sich bewerben, postuler, candidarsi). Call it directly once they confirm – if they are not signed in, the app shows the Heimster sign-in itself; if the profile or the phone check is missing, the result says how to complete it. Documents are never sent through the chat; they are shared on the Heimster application page afterwards.
| Argument | Type | Description |
|---|---|---|
| message | string | Short personal note to the provider (optional). |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
| listing_id* | string |
{
"type": "object",
"required": [
"listing_id"
],
"properties": {
"message": {
"type": "string",
"description": "Short personal note to the provider (optional)."
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
},
"listing_id": {
"type": "string"
}
},
"additionalProperties": false
}Use this for market figures of a Swiss municipality, Kreis or Quartier (Mietpreise, Quadratmeterpreise, Leerstand, Landpreise; prix au m², loyers, taux de vacance; prezzi, affitti, sfitto): condominium and house prices per m², rents per m², land prices and vacancy rate, each with year, area level and source.
| Argument | Type | Description |
|---|---|---|
| place* | string | E.g. «Zürich Oerlikon», «Kreis 6», «Winterthur». |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
{
"type": "object",
"required": [
"place"
],
"properties": {
"place": {
"type": "string",
"description": "E.g. «Zürich Oerlikon», «Kreis 6», «Winterthur»."
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
}
},
"additionalProperties": false
}Use this to book a place at an open viewing (Besichtigung buchen, réserver une visite, prenotare una visita) – viewing ids come from get_listing. Needs name, e-mail and number of people. Signed in: booked at once; otherwise after the e-mail confirmation.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| email* | string | |
| phone | string | |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
| listing_id* | string | |
| party_size | integer | |
| viewing_id* | string |
{
"type": "object",
"required": [
"listing_id",
"viewing_id",
"name",
"email"
],
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
},
"listing_id": {
"type": "string"
},
"party_size": {
"type": "integer",
"maximum": 6,
"minimum": 1
},
"viewing_id": {
"type": "string"
}
},
"additionalProperties": false
}Use this when someone wants to compare two to four listings (vergleichen, comparer, confrontare): price, price per m², rooms, area, floor, availability, public transport, shops and schools nearby, sun score – side by side.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Listing ids from search_listings. |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
{
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 4,
"minItems": 2,
"description": "Listing ids from search_listings."
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
}
},
"additionalProperties": false
}Use this when someone wants to be notified about new listings (Suchabo, Benachrichtigung, alerte, avviso): e-mails new matching listings for a place, type, rooms, price and area. Needs their e-mail (or a Heimster sign-in). Starts after the confirmation link; unsubscribe in one click.
| Argument | Type | Description |
|---|---|---|
| email* | string | |
| place* | string | Municipality, postal code or canton in Switzerland, e.g. «Winterthur», «8004», «ZH». |
| area_min | integer | |
| category | string | |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
| price_max | integer | |
| rooms_min | number | |
| property_type | string |
{
"type": "object",
"required": [
"place",
"email"
],
"properties": {
"email": {
"type": "string"
},
"place": {
"type": "string",
"description": "Municipality, postal code or canton in Switzerland, e.g. «Winterthur», «8004», «ZH»."
},
"area_min": {
"type": "integer"
},
"category": {
"enum": [
"rent",
"buy",
"shared_flat",
"sublet"
],
"type": "string"
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
},
"price_max": {
"type": "integer"
},
"rooms_min": {
"type": "number"
},
"property_type": {
"enum": [
"apartment",
"house",
"commercial",
"parking",
"land"
],
"type": "string"
}
},
"additionalProperties": false
}Full text of a result from search (id like «listing:<uuid>» or «project:<slug>»).
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
},
"additionalProperties": false
}Use this when an OWNER wants to follow their property's value over time (Wert verfolgen, monatliches Update): returns the link to the free owner valuation – after it the owner follows the value monthly in their Heimster account.
| Argument | Type | Description |
|---|---|---|
| address* | string | |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
| living_area_m2 | number |
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string"
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
},
"living_area_m2": {
"type": "number"
}
},
"additionalProperties": false
}Use this to show one listing in full (id from search_listings, a Heimster link, or «found:<id>» for agency-website listings): photos, floor plans, description, costs, location facts, open viewings with ids, and the link. Call it before booking a viewing or applying.
| Argument | Type | Description |
|---|---|---|
| id* | string | Listing id (UUID). |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Listing id (UUID)."
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
}
},
"additionalProperties": false
}Use this when someone asks about their own applications or purchase interests on Heimster (meine Bewerbungen, Stand meiner Bewerbung, mes candidatures): status and links. Call it directly – if the person is not signed in, the app shows the Heimster sign-in itself.
| Argument | Type | Description |
|---|---|---|
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
{
"type": "object",
"properties": {
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
}
},
"additionalProperties": false
}Use this when an OWNER anywhere in Switzerland wants to sell, let or value a property, or wants a broker (Haus/Wohnung verkaufen, vermieten, Makler gesucht, bewerten lassen; vendre, louer, agence immobilière; vendere, affittare): the Heimster team gets in touch within two working days and, if the owner wishes, connects an experienced local brokerage – nothing goes to a brokerage without their consent. Needs the address, the intent, name and e-mail (phone and timeframe optional). Signed in: sent at once; otherwise after the e-mail confirmation.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| email* | string | |
| phone | string | |
| intent* | string | |
| address* | string | |
| message | string | |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
| timeframe | string | now = within 3 months, year = within 12 months |
Use this when an OWNER asks what their flat or house is worth (Was ist meine Wohnung wert, Marktwert, valeur de mon bien, quanto vale): returns the link to Heimster's free owner valuation for that address (all of Switzerland, about two minutes, value after a short SMS check, with a personal cockpit). Heimster gives no figure for a specific property here; for area prices use area_market_facts.
| Argument | Type | Description |
|---|---|---|
| rooms | number | |
| address* | string | |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
| living_area_m2 | number | Optional – prefills the valuation. |
{
"type": "object",
"required": [
"address"
],
"properties": {
"rooms": {
"type": "number"
},
"address": {
"type": "string"
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
},
"living_area_m2": {
"type": "number",
"description": "Optional – prefills the valuation."
}
},
"additionalProperties": false
}Use this to register interest in a property FOR SALE with the agent (Kaufinteresse anmelden, kaufen möchten, intérêt d'achat, interesse all'acquisto). Optional: phone, a message and the financing status (unknown, self_funded, confirmed, approved). Call it directly once they confirm – if they are not signed in, the app shows the Heimster sign-in itself.
| Argument | Type | Description |
|---|---|---|
| phone | string | |
| message | string | |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
| financing | string | |
| listing_id* | string |
{
"type": "object",
"required": [
"listing_id"
],
"properties": {
"phone": {
"type": "string"
},
"message": {
"type": "string"
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
},
"financing": {
"enum": [
"unknown",
"self_funded",
"confirmed",
"approved"
],
"type": "string"
},
"listing_id": {
"type": "string"
}
},
"additionalProperties": false
}Free-text search over Heimster listings and new-build projects. Returns ids for fetch.
| Argument | Type | Description |
|---|---|---|
| query* | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string"
}
},
"additionalProperties": false
}Searches homes and properties in Switzerland – to rent or buy, also by feel (ruhig, sonnig, lebendig/belebt, grün, zentral, familienfreundlich; calme, ensoleillé, animé; tranquillo, vivace) (Wohnung mieten/kaufen, Haus kaufen, WG-Zimmer, Studio; appartement à louer/acheter, maison; appartamento in affitto/in vendita; flat, apartment, house). Covers current listings on Heimster and on Swiss agency websites, with walking distance to supermarket, childcare (Kita, crèche), school, park, stop and train station; quiet locations (road/rail noise); sun score; and the door-to-door public-transport commute to the person's workplace (workplace + max_commute_min). Ask where they work when the commute matters. Filter by place, type, rooms, price and area; sort by newest or price.
| Argument | Type | Description |
|---|---|---|
| sort | string | |
| green | boolean | Only green, family-friendly surroundings: parks & playgrounds within 500 m (grün, im Grünen, Natur, Spielplatz; verdure; verde). |
| limit | integer | |
| place | string | Municipality, postal code or canton in Switzerland, e.g. «Winterthur», «8004», «ZH». |
| quiet | boolean | Only quiet locations: road/rail noise by day below 55 dB at the facade. |
| lively | boolean | Only lively locations: many restaurants & cafés within 500 m on foot (belebt, lebendig, urban, Ausgang; animé; vivace). Use for «vivid area», «lots of restaurants», «where things happen». |
Use this for new-build homes (Neubau, Erstbezug, Erstvermietung, neuf, nuova costruzione): developments with available units, prices from, rooms and move-in date. Filter by place, rent/sale, rooms and maximum price.
| Argument | Type | Description |
|---|---|---|
| type | string | |
| limit | integer | |
| place | string | Municipality, canton or project name. |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
| price_max | integer | CHF; per month for rent, total for sale. |
| rooms_min | number |
{
"type": "object",
"properties": {
"type": {
"enum": [
"rent",
"sale",
"any"
],
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"place": {
"type": "string",
"description": "Municipality, canton or project name."
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
},
"price_max": {
"type": "integer",
"description": "CHF; per month for rent, total for sale."
},
"rooms_min": {
"type": "number"
}
},
"additionalProperties": false
}Use this when someone wants to contact the provider of a listing (anfragen, Kontakt aufnehmen, Besichtigung anfragen, contacter l'agence, contattare): sends the enquiry in their name. Needs their name, e-mail and a short message (phone optional). Works for Heimster listings and «found:<id>» agency-website listings (forwarded to the agency). If the person is signed in to Heimster it is sent at once; otherwise Heimster e-mails a confirmation link first.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| email* | string | |
| phone | string | |
| message* | string | The user's own words, 5–2000 characters. |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
| listing_id* | string |
{
"type": "object",
"required": [
"listing_id",
"name",
"email",
"message"
],
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"message": {
"type": "string",
"description": "The user's own words, 5–2000 characters."
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
},
"listing_id": {
"type": "string"
}
},
"additionalProperties": false
}Use this when someone asks what is being built or planned in a Swiss municipality or canton (Was wird gebaut, Überbauung, Bauprojekte, nouveaux logements en construction, cantieri): approved and ongoing residential projects with at least 3 flats from the federal building register (GWR), with size and status.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| place* | string | Municipality (e.g. «Uster») or canton code (e.g. «ZH»). |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
| min_dwellings | integer |
{
"type": "object",
"required": [
"place"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 15,
"minimum": 1
},
"place": {
"type": "string",
"description": "Municipality (e.g. «Uster») or canton code (e.g. «ZH»)."
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
},
"min_dwellings": {
"type": "integer",
"minimum": 3
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"address",
"intent",
"name",
"email"
],
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"intent": {
"enum": [
"sell",
"let",
"value",
"info"
],
"type": "string"
},
"address": {
"type": "string"
},
"message": {
"type": "string"
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
},
"timeframe": {
"enum": [
"now",
"year",
"later"
],
"type": "string",
"description": "now = within 3 months, year = within 12 months"
}
},
"additionalProperties": false
}| area_min | integer | Minimum living area in m². |
| category | string | rent (default), buy, shared_flat (WG room) or sublet. |
| language | string | Language of titles, descriptions and links (default de). Use the user's language. |
| new_build | boolean | Only units in new-build projects. |
| price_max | integer | CHF; per month for rent, total for buy. |
| price_min | integer | CHF; per month for rent, total for buy. |
| rooms_max | number |
| rooms_min | number | Swiss room count, e.g. 3.5 |
| workplace | string | Where the user works or studies (address or place) – for the commute filter. |
| max_park_m | integer | Max distance (m) to a park. |
| max_stop_m | integer | Max distance (m) to a bus/tram stop. |
| max_school_m | integer | Max distance (m) to a school. |
| min_sun_score | integer | Minimum Heimster sun score (0–100, direct sun on the building/flat). |
| property_type | string |
| max_childcare_m | integer | Max distance (m) to childcare (Kita) or kindergarten. |
| max_commute_min | integer | Max door-to-door minutes by public transport to the workplace (default 30). |
| max_supermarket_m | integer | Max walking distance (m) to a supermarket. |
| max_train_station_m | integer | Max distance (m) to a train station. |
{
"type": "object",
"properties": {
"sort": {
"enum": [
"newest",
"price_asc",
"price_desc"
],
"type": "string"
},
"green": {
"type": "boolean",
"description": "Only green, family-friendly surroundings: parks & playgrounds within 500 m (grün, im Grünen, Natur, Spielplatz; verdure; verde)."
},
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"place": {
"type": "string",
"description": "Municipality, postal code or canton in Switzerland, e.g. «Winterthur», «8004», «ZH»."
},
"quiet": {
"type": "boolean",
"description": "Only quiet locations: road/rail noise by day below 55 dB at the facade."
},
"lively": {
"type": "boolean",
"description": "Only lively locations: many restaurants & cafés within 500 m on foot (belebt, lebendig, urban, Ausgang; animé; vivace). Use for «vivid area», «lots of restaurants», «where things happen»."
},
"area_min": {
"type": "integer",
"description": "Minimum living area in m²."
},
"category": {
"enum": [
"rent",
"buy",
"shared_flat",
"sublet"
],
"type": "string",
"description": "rent (default), buy, shared_flat (WG room) or sublet."
},
"language": {
"enum": [
"de",
"en",
"fr",
"it"
],
"type": "string",
"description": "Language of titles, descriptions and links (default de). Use the user's language."
},
"new_build": {
"type": "boolean",
"description": "Only units in new-build projects."
},
"price_max": {
"type": "integer",
"description": "CHF; per month for rent, total for buy."
},
"price_min": {
"type": "integer",
"description": "CHF; per month for rent, total for buy."
},
"rooms_max": {
"type": "number"
},
"rooms_min": {
"type": "number",
"description": "Swiss room count, e.g. 3.5"
},
"workplace": {
"type": "string",
"description": "Where the user works or studies (address or place) – for the commute filter."
},
"max_park_m": {
"type": "integer",
"description": "Max distance (m) to a park."
},
"max_stop_m": {
"type": "integer",
"description": "Max distance (m) to a bus/tram stop."
},
"max_school_m": {
"type": "integer",
"description": "Max distance (m) to a school."
},
"min_sun_score": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Minimum Heimster sun score (0–100, direct sun on the building/flat)."
},
"property_type": {
"enum": [
"apartment",
"house",
"commercial",
"parking",
"land"
],
"type": "string"
},
"max_childcare_m": {
"type": "integer",
"description": "Max distance (m) to childcare (Kita) or kindergarten."
},
"max_commute_min": {
"type": "integer",
"description": "Max door-to-door minutes by public transport to the workplace (default 30)."
},
"max_supermarket_m": {
"type": "integer",
"description": "Max walking distance (m) to a supermarket."
},
"max_train_station_m": {
"type": "integer",
"description": "Max distance (m) to a train station."
}
},
"additionalProperties": false
}