Heimster – Swiss homes

Swiss homes to rent or buy, with walking distances, noise, sun and commute times for any address.

使うべきか

品質と安全性

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

検出事項(1)

  • LOWTool 'property_value_range' description lacks action verbproperty_value_range 内

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

コンテキストコスト

~4,470トークン数(ツール定義)
~1.5 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 3.49%)

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

インストール

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

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

{
  "mcpServers": {
    "heimster": {
      "url": "https://heimster.ch/mcp/public"
    }
  }
}

リモートエンドポイント

https://heimster.ch/mcp/publicstreamable-http

できること

ツール一覧

ツール(18)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢search_listings(category, place, property_type, rooms_min, rooms_max, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "rent",
        "buy",
        "shared_flat",
        "sublet"
      ],
      "description": "rent (default), buy, shared_flat (WG room) or sublet."
    },
    "place": {
      "type": "string",
      "description": "Municipality, postal code or canton in Switzerland, e.g. «Winterthur», «8004», «ZH»."
    },
    "property_type": {
      "type": "string",
      "enum": [
        "apartment",
        "house",
        "commercial",
        "parking",
        "land"
      ]
    },
    "rooms_min": {
      "type": "number",
      "description": "Swiss room count, e.g. 3.5"
    },
    "rooms_max": {
      "type": "number"
    },
    "price_min": {
      "type": "integer",
      "description": "CHF; per month for rent, total for buy."
    },
    "price_max": {
      "type": "integer",
      "description": "CHF; per month for rent, total for buy."
    },
    "area_min": {
      "type": "integer",
      "description": "Minimum living area in m²."
    },
    "new_build": {
      "type": "boolean",
      "description": "Only units in new-build projects."
    },
    "max_supermarket_m": {
      "type": "integer",
      "description": "Max walking distance (m) to a supermarket."
    },
    "max_childcare_m": {
      "type": "integer",
      "description": "Max distance (m) to childcare (Kita) or kindergarten."
    },
    "max_school_m": {
      "type": "integer",
      "description": "Max distance (m) to a school."
    },
    "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_train_station_m": {
      "type": "integer",
      "description": "Max distance (m) to a train station."
    },
    "quiet": {
      "type": "boolean",
      "description": "Only quiet locations: road/rail noise by day below 55 dB at the facade."
    },
    "min_sun_score": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Minimum Heimster sun score (0–100, direct sun on the building/flat)."
    },
    "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»."
    },
    "green": {
      "type": "boolean",
      "description": "Only green, family-friendly surroundings: parks & playgrounds within 500 m (grün, im Grünen, Natur, Spielplatz; verdure; verde)."
    },
    "workplace": {
      "type": "string",
      "description": "Where the user works or studies (address or place) – for the commute filter."
    },
    "max_commute_min": {
      "type": "integer",
      "description": "Max door-to-door minutes by public transport to the workplace (default 30)."
    },
    "sort": {
      "type": "string",
      "enum": [
        "newest",
        "price_asc",
        "price_desc"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "additionalProperties": false
}
🟢get_listing(id, language)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Listing id (UUID)."
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢compare_listings(ids, language)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 2,
      "maxItems": 4,
      "description": "Listing ids from search_listings."
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "ids"
  ],
  "additionalProperties": false
}
🟢address_facts(address, 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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "Swiss street address, e.g. «Bahnhofstrasse 10, 8001 Zürich»."
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "address"
  ],
  "additionalProperties": false
}
🟢search_new_builds(place, type, rooms_min, price_max, limit, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "place": {
      "type": "string",
      "description": "Municipality, canton or project name."
    },
    "type": {
      "type": "string",
      "enum": [
        "rent",
        "sale",
        "any"
      ]
    },
    "rooms_min": {
      "type": "number"
    },
    "price_max": {
      "type": "integer",
      "description": "CHF; per month for rent, total for sale."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "additionalProperties": false
}
🟢upcoming_construction(place, min_dwellings, limit, language)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "place": {
      "type": "string",
      "description": "Municipality (e.g. «Uster») or canton code (e.g. «ZH»)."
    },
    "min_dwellings": {
      "type": "integer",
      "minimum": 3
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 15
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "place"
  ],
  "additionalProperties": false
}
🟢area_market_facts(place, language)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "place": {
      "type": "string",
      "description": "E.g. «Zürich Oerlikon», «Kreis 6», «Winterthur»."
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "place"
  ],
  "additionalProperties": false
}
🟢property_value_range(address, living_area_m2, rooms, language)

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): the market price range from public sales data (canton of Zurich so far) – a range, not a valuation. Ask for the living area of a flat. For other cantons offer owner_enquiry.

入力スキーマ

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string"
    },
    "living_area_m2": {
      "type": "number",
      "description": "Required for flats."
    },
    "rooms": {
      "type": "number"
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "address"
  ],
  "additionalProperties": false
}
🟡send_enquiry(listing_id, name, email, phone, message, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "listing_id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "message": {
      "type": "string",
      "description": "The user's own words, 5–2000 characters."
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "listing_id",
    "name",
    "email",
    "message"
  ],
  "additionalProperties": false
}
🟢book_viewing(listing_id, viewing_id, name, email, phone, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "listing_id": {
      "type": "string"
    },
    "viewing_id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "party_size": {
      "type": "integer",
      "minimum": 1,
      "maximum": 6
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "listing_id",
    "viewing_id",
    "name",
    "email"
  ],
  "additionalProperties": false
}
🟡create_search_alert(category, place, property_type, rooms_min, price_max, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "rent",
        "buy",
        "shared_flat",
        "sublet"
      ]
    },
    "place": {
      "type": "string",
      "description": "Municipality, postal code or canton in Switzerland, e.g. «Winterthur», «8004», «ZH»."
    },
    "property_type": {
      "type": "string",
      "enum": [
        "apartment",
        "house",
        "commercial",
        "parking",
        "land"
      ]
    },
    "rooms_min": {
      "type": "number"
    },
    "price_max": {
      "type": "integer"
    },
    "area_min": {
      "type": "integer"
    },
    "email": {
      "type": "string"
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "place",
    "email"
  ],
  "additionalProperties": false
}
⚪follow_property_value(address, email, living_area_m2, rooms, language)

Use this when an OWNER wants to follow their property's value over time (Wert verfolgen, monatliches Update; canton of Zurich so far): a private page and a monthly e-mail with the market range, buyer demand and construction nearby. Needs e-mail and, for a flat, the living area. Starts after the e-mail confirmation.

入力スキーマ

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "living_area_m2": {
      "type": "number"
    },
    "rooms": {
      "type": "number"
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "address",
    "email"
  ],
  "additionalProperties": false
}
⚪owner_enquiry(address, intent, timeframe, name, email, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string"
    },
    "intent": {
      "type": "string",
      "enum": [
        "sell",
        "let",
        "value",
        "info"
      ]
    },
    "timeframe": {
      "type": "string",
      "enum": [
        "now",
        "year",
        "later"
      ],
      "description": "now = within 3 months, year = within 12 months"
    },
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "address",
    "intent",
    "name",
    "email"
  ],
  "additionalProperties": false
}
🟢my_applications(language)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "additionalProperties": false
}
🟢apply_for_listing(listing_id, message, language)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "listing_id": {
      "type": "string"
    },
    "message": {
      "type": "string",
      "description": "Short personal note to the provider (optional)."
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "listing_id"
  ],
  "additionalProperties": false
}
⚪register_purchase_interest(listing_id, phone, message, financing, language)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "listing_id": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "financing": {
      "type": "string",
      "enum": [
        "unknown",
        "self_funded",
        "confirmed",
        "approved"
      ]
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "fr",
        "it"
      ],
      "description": "Language of titles, descriptions and links (default de). Use the user's language."
    }
  },
  "required": [
    "listing_id"
  ],
  "additionalProperties": false
}
🟢search(query)

Free-text search over Heimster listings and new-build projects. Returns ids for fetch.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
🟢fetch(id)

Full text of a result from search (id like «listing:<uuid>» or «project:<slug>»).

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

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