Skip to main content
Glama
webdata-tools-mcp

webdata-tools-mcp

Search German and Austrian property listings (ImmoScout24)

search_german_property_listings
Read-onlyIdempotent

Find rental and purchase apartments or houses in Germany and Austria by location, price, area, rooms, and property type.

Instructions

Apartments and houses for rent or sale in Germany or Austria: price, rent, area, rooms, address with coordinates, energy class, features, agent, photos and dates. Not Switzerland. Runs the Apify Actor tacps126/immobilienscout24-scraper on your Apify account (about $0.001 per listing; spend per call is capped at $0.5).

Input Schema

NameRequiredDescriptionDefault
countryNode = Germany (immobilienscout24.de), at = Austria (immobilienscout24.at).de
min_areaNoMinimum area in m2.
locationsYesCities, districts or regions in plain words, e.g. ["Berlin","München Schwabing"]; in Austria a city or federal state, e.g. ["Wien","Tirol"].
max_itemsNoMaximum results to return (default 50, max 500). Cost scales with this.
max_priceNoMaximum price in EUR (monthly rent or purchase price).
min_priceNoMinimum price in EUR (monthly rent or purchase price).
min_roomsNoMinimum number of rooms.
offer_typeNoRent or buy listings.rent
extra_inputNoAdvanced: extra Actor input fields, merged over the defaults.
changes_onlyNoOnly listings that are new, changed (old and new price, rent, size, rooms) or removed since the last call with the same search. For price tracking on a schedule.
property_typeNoApartments or houses.apartment

Output Schema

NameRequiredDescriptionDefault
toolYesName of the tool that produced the result.
countYesNumber of records the Actor returned.
itemsYesThe records. Long text fields are shortened to 600 characters.
shownYesNumber of records included in `items` (can be lower than count when the result is long).
truncatedYesTrue when records were left out to keep the result short; ask for fewer items.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.10.1
    • addedInput schema / properties / changes_only
      Added value: +{
      +  "default": false,
      +  "description": "Only listings that are new, changed (old and new price, rent, size, rooms) or removed since the last call with the same search. For price tracking on a schedule.",
      +  "type": "boolean"
      +}
  2. Changed2 schema fields changedv0.4.0
    • addedInput schema / properties / country
      Added value: +{
      +  "default": "de",
      +  "description": "de = Germany (immobilienscout24.de), at = Austria (immobilienscout24.at).",
      +  "enum": [
      +    "de",
      +    "at"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / locations / description
      Previous value: -"Cities, districts or regions in plain words, e.g. [\"Berlin\",\"München Schwabing\"]."New value: +"Cities, districts or regions in plain words, e.g. [\"Berlin\",\"München Schwabing\"]; in Austria a city or federal state, e.g. [\"Wien\",\"Tirol\"]."
  3. Changed6 schema fields changedv0.1.1
    • addedInput schema / properties / max_price / description
      Added value: +"Maximum price in EUR (monthly rent or purchase price)."
    • addedInput schema / properties / min_price / description
      Added value: +"Minimum price in EUR (monthly rent or purchase price)."
    • addedInput schema / properties / min_rooms / description
      Added value: +"Minimum number of rooms."
    • addedInput schema / properties / offer_type / description
      Added value: +"Rent or buy listings."
    • addedInput schema / properties / property_type / description
      Added value: +"Apartments or houses."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "count": {
      +      "description": "Number of records the Actor returned.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "items": {
      +      "description": "The records. Long text fields are shortened to 600 characters.",
      +      "items": {
      +        "additionalProperties": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "shown": {
      +      "description": "Number of records included in `items` (can be lower than count when the result is long).",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "tool": {
      +      "description": "Name of the tool that produced the result.",
      +      "type": "string"
      +    },
      +    "truncated": {
      +      "description": "True when records were left out to keep the result short; ask for fewer items.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "tool",
      +    "count",
      +    "shown",
      +    "truncated",
      +    "items"
      +  ],
      +  "type": "object"
      +}
  4. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, openWorld, idempotent, non-destructive), the description discloses substantive behavior: it runs a specific Apify Actor on the caller's account, costs roughly $0.001 per listing, and caps spend at $0.5 per call. That billing and external-dependency detail is exactly the kind of context annotations cannot convey. It stops short of covering failure modes or pagination, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with no filler; geography scope is front-loaded and cost information follows immediately. The enumeration of returned fields is somewhat wasted effort since an output schema already exists, which slightly dilutes the value-per-sentence ratio.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter, nested, open-world scraping tool with an output schema, the description covers the essentials an agent needs: geographic coverage, cost model, spend cap, and account dependency. Gaps remain around the incremental 'changes_only' mode and the 'extra_input' override, but those are fully documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 11 parameters is already documented in the schema, making the baseline 3. The description reinforces a few fields (price, area, rooms, country scope via 'Not Switzerland') but adds no syntax, format, or interaction semantics beyond the schema. Notably, neither the nested 'extra_input' escape hatch nor 'changes_only' is mentioned in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (rental/sale apartments and houses on ImmoScout24 in Germany/Austria) and enumerates the returned fields, so an agent knows exactly what domain of data it gets. It deliberately excludes Switzerland, which sharpens the boundary. The verb 'search' is only implicit from the name rather than stated in the description, which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the domain ('property listings in Germany or Austria') and one exclusion is given ('Not Switzerland'), but there is no explicit statement of when to call this versus when not to, and no mention of prerequisites such as the Apify account being required. Since no sibling tool covers the same domain, the practical ambiguity is low, but the guidance is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.