Somantic – German Real Estate Search

Search German property listings and estimate what any German address is worth.

使うべきか

品質と安全性

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

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

コンテキストコスト

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

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

インストール

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

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

{
  "mcpServers": {
    "immobiliensuche": {
      "url": "https://www.somantic.net/api/mcp/"
    }
  }
}

リモートエンドポイント

https://www.somantic.net/api/mcp/streamable-http

できること

ツール一覧

ツール(3)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢search_listings(q, transaction, property, price_min, price_max, ...)

Search current real-estate listings in Germany, newest first. Returns listings with facts, Somantic's valuation (somantic_valuation_eur, price_vs_valuation_pct: negative means priced below it) and source_url, the original listing on the portal that carries the offer. `last_seen` is when Somantic last confirmed the offer as online. Listings no longer confirmed are usually removed from results after 3 days. One offer is often advertised on several portals at once. Those copies are collapsed to the newest, so a page can hold fewer than `per_page` listings and `total` counts the copies rather than the offers.

入力スキーマ

{
  "type": "object",
  "properties": {
    "q": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Where — a city (\"München\", \"Frankfurt am Main\") or a postcode (\"80331\")."
    },
    "transaction": {
      "default": "kaufen",
      "enum": [
        "kaufen",
        "mieten"
      ],
      "type": "string",
      "description": "\"kaufen\" to buy, \"mieten\" to rent."
    },
    "property": {
      "default": "wohnung",
      "enum": [
        "wohnung",
        "haus"
      ],
      "type": "string",
      "description": "\"wohnung\" (apartment) or \"haus\" (house)."
    },
    "price_min": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum price in EUR; monthly cold rent when transaction is \"mieten\"."
    },
    "price_max": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum price in EUR; monthly cold rent when transaction is \"mieten\"."
    },
    "price_per_sqm_min": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum price per m² in EUR; cold rent per m² when\ntransaction is \"mieten\"."
    },
    "price_per_sqm_max": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum price per m² in EUR; cold rent per m² when\ntransaction is \"mieten\"."
    },
    "size_min": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum living space in m²."
    },
    "size_max": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum living space in m²."
    },
    "rooms_min": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum number of rooms (German count, e.g. 2.5)."
    },
    "rooms_max": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum number of rooms."
    },
    "year_min": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Built in or after this year."
    },
    "year_max": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Built before this year."
    },
    "roi_min": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum gross rental yield in percent, e.g. 5 for 5 %. Purchases only."
    },
    "price_below_market": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only listings priced below Somantic's valuation."
    },
    "price_change": {
      "anyOf": [
        {
          "enum": [
            "reduced",
            "increased",
            "any"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only listings whose price changed while listed: \"reduced\",\n\"increased\" or \"any\"."
    },
    "vacant": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only listings that are vacant (bezugsfrei)."
    },
    "renovation_needed": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only listings that need renovation (renovierungsbedürftig)."
    },
    "exclude_foreclosures": {
      "default": false,
      "type": "boolean",
      "description": "Leave out foreclosure auctions (Zwangsversteigerungen)."
    },
    "exclude_erbbaurecht": {
      "default": false,
      "type": "boolean",
      "description": "Leave out leasehold (Erbbaurecht) properties."
    },
    "features": {
      "anyOf": [
        {
          "items": {
            "enum": [
              "balcony",
              "garden",
              "elevator",
              "parking",
              "kitchen",
              "new_building"
            ],
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Required amenities. \"new_building\" keeps only new builds\n(Neubau, Erstbezug, or built within the last 3 years)."
    },
    "energy_class": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Energy efficiency classes, e.g. \"A+,A,B\"."
    },
    "page": {
      "default": 1,
      "type": "integer",
      "description": "Result page, starting at 1."
    },
    "per_page": {
      "default": 20,
      "type": "integer",
      "description": "Results per page, at most 50."
    }
  },
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢get_listing(id, property)

Details of one listing: facts, Somantic's valuation, and the link to the original. No description text: it is the advertiser's, at source_url. A withdrawn (inactive) listing is not returned: the call fails with "No listing", since the offer no longer exists. `image_urls` is always empty: Somantic passes on no photos. They are the advertiser's, at source_url.

入力スキーマ

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The listing id from search_listings."
    },
    "property": {
      "anyOf": [
        {
          "enum": [
            "wohnung",
            "haus"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "\"wohnung\" or \"haus\" if known; both are tried otherwise."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢estimate_value(street, postcode, city, living_space_sqm, property, ...)

Estimate what a German address is worth to buy and to rent. Works for any address, listed or not. The estimate comes from comparable listings around it, so `confidence` and `sample_size` say how much to trust it - a thin sample means a wide, weakly supported band. Returns `estimate` (point values, ranges and €/m² for price and rent) and `confidence`. A point estimate is absent when too few comparables back it; the €/m² band and `sample_size` still say what was found. This is a model output, not an appraisal, and no comparable listing is reproduced in it.

入力スキーマ

{
  "type": "object",
  "properties": {
    "street": {
      "type": "string",
      "description": "Street and house number, e.g. \"Marienplatz 1\". Required: without\nit the answer would silently describe the middle of the postcode."
    },
    "postcode": {
      "type": "string",
      "description": "Five-digit German postcode, e.g. \"80331\"."
    },
    "city": {
      "type": "string",
      "description": "City name, e.g. \"München\"."
    },
    "living_space_sqm": {
      "type": "number",
      "description": "Living area in m²."
    },
    "property": {
      "default": "wohnung",
      "enum": [
        "wohnung",
        "haus"
      ],
      "type": "string",
      "description": "\"wohnung\" (apartment) or \"haus\" (house)."
    },
    "rooms": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Number of rooms (German count, e.g. 2.5). Improves the estimate."
    },
    "year_built": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Year of construction. Improves the estimate."
    },
    "property_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A narrower type such as \"reihenhaus\" or \"etagenwohnung\";\nan unknown value is refused with the list of accepted ones."
    },
    "floor": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Floor the flat is on."
    },
    "features": {
      "anyOf": [
        {
          "items": {
            "enum": [
              "balcony",
              "basement",
              "elevator",
              "garden",
              "kitchen",
              "parking",
              "terrace",
              "new_building"
            ],
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Equipment the property has. Only what it *has* - a feature\nleft out is treated as unknown, not as absent."
    },
    "rented": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "True values it as sold with a sitting tenant, False as sold\nbezugsfrei - in Germany the same flat is worth markedly less with\none. Leave it out unless you know which it is."
    }
  },
  "required": [
    "street",
    "postcode",
    "city",
    "living_space_sqm"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

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