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,960Token(工具定義)
~5.7 KB典型回應大小
中等的注意力影響(128k 上下文的 1.53%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `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 個工具