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개